codevdesign 0.0.75 → 0.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,183 +1,183 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { ChoixLangue } from '@/enums/choixLangue'
3
-
4
- /**
5
- * Valide que le champ contient une valeur définie et non vide.
6
- * Accepte les chaînes de caractères non vides, les nombres différents de 0,
7
- * et toute autre valeur définie (ex. objets sélectionnés dans un v-select).
8
- *
9
- * @param valeur La valeur saisie ou sélectionnée dans le champ.
10
- * @returns true si la valeur est considérée comme valide, sinon retourne un message d'erreur.
11
- */
12
-
13
- export function estRequis(valeur: unknown, t: (key: string, params?: any) => string): true | string {
14
- if (valeur == null) return t('validateurs.estRequis')
15
-
16
- if (typeof valeur === 'number' && isNaN(valeur)) return t('validateurs.estRequis')
17
-
18
- if (typeof valeur === 'string') {
19
- return valeur.trim().length > 0 || t('validateurs.estRequis')
20
- }
21
-
22
- return true // On considère tout le reste comme valide (ex: number, object, etc.)
23
- }
24
-
25
- /**
26
- * Valide que le champ contient une valeur qui est d'une longeur minimale.
27
- * @param valeur La valeur saisie du champ texte.
28
- * @param min La longeur minimale de la valeur.
29
- * @returns true si la longeur de la valeur est égale ou supérieure au minimum, sinon retourne un message d'erreur.
30
- */
31
- export function estMinimumLongueur(valeur: string, min: number, t: (key: string, params?: any) => string) {
32
- if (min <= 0) {
33
- min = 1
34
- console.warn(
35
- 'CsqcValidateurs (estMinimumLongeur) - Une valeur négative ou égale à 0 a été reçue. Assurez-vous de passer une valeur supérieur à 0 dans la fonction estMinimumLongeur. La valeur a été mise à 1.',
36
- )
37
- }
38
- return (valeur && valeur.trim().length >= min) || t('validateurs.estMinimumLongueur', { nbCaracteres: min })
39
- }
40
-
41
- /**
42
- * Valide que le champ contient une valeur qui ne dépasse pas une longeur maximale.
43
- * @param valeur La valeur saisie du champ texte.
44
- * @param max La longeur maximale (inclusive) de la valeur.
45
- * @returns true si la longeur de la valeur est inférieure ou égale au maximum, sinon retourne un message d'erreur.
46
- */
47
- export function estMaximumLongueur(valeur: string, max: number, t: (key: string, params?: any) => string) {
48
- if (max < 1) {
49
- max = 1
50
- console.warn(
51
- 'CsqcValidateurs (estMaximumLongueur) - Une valeur négative ou égale à 0 a été reçue. Assurez-vous de passer une valeur supérieur à 0 dans la fonction estMaximumLongueur. La valeur a été mise à 1.',
52
- )
53
- }
54
-
55
- return (valeur && valeur.trim().length <= max) || t('validateurs.estMaximumLongueur', { nbCaracteres: max })
56
- }
57
-
58
- /**
59
- * Vérifie qu'une valeur passée en paramètre est unique parmis une liste de valeurs. La validation du bilinguisme sera appliquée
60
- * selon la langue CSS configurée et passée en option.
61
- * @param valeur La valeur a vérifier
62
- * @param modele L'instance d'un modèle avec un primary key id
63
- * @param options Les configurations de la fonction
64
- * @returns Vrai si la valeur est unique, ou une string d'erreur si un doublon est trouvé.
65
- */
66
- export function estUniqueBilingue<T extends ModeleAvecId>(
67
- valeur: string,
68
- modele: T,
69
- options: EstUniqueOptionsBilingue<T>,
70
- t: (key: string, params?: any) => string,
71
- ) {
72
- // Affectations valeurs par défaut
73
- const { champs, langueCss, valeurs } = options
74
- if (!langueCss) options.langueCss = ChoixLangue.Francais
75
- valeur = valeur.toLowerCase().trim()
76
-
77
- switch (langueCss) {
78
- case ChoixLangue.Anglais:
79
- if (!champs.Anglais) {
80
- console.error(
81
- 'CsqcValidateurs (estUnique) - Le champ anglais doit être speçifié lorsque la langueCss est en anglais.',
82
- )
83
- throw Error(
84
- 'CsqcValidateurs (estUnique) - Le champ anglais doit être speçifié lorsque la langueCss est en anglais.',
85
- )
86
- }
87
- return (
88
- !valeurs.find(
89
- e =>
90
- (e[champs.Anglais!] as string) != null &&
91
- (e[champs.Anglais!] as string).toLowerCase().trim() === valeur &&
92
- e.id !== modele.id,
93
- ) || t('validateurs.estUnique', { valeurExistante: valeur })
94
- )
95
- case ChoixLangue.Francais:
96
- if (!champs.Francais) {
97
- console.error(
98
- 'CsqcValidateurs (estUnique) - Le champ français doit être speçifié lorsque la langueCss est en français.',
99
- )
100
- throw Error(
101
- 'CsqcValidateurs (estUnique) - Le champ français doit être speçifié lorsque la langueCss est en français.',
102
- )
103
- }
104
- return (
105
- valeurs.find(
106
- e =>
107
- (e[champs.Francais!] as string) != null &&
108
- (e[champs.Francais!] as string).toLowerCase().trim() === valeur &&
109
- e.id !== modele.id,
110
- ) == null || t('validateurs.estUnique', { valeurExistante: valeur })
111
- )
112
- case ChoixLangue.Bilingue:
113
- if (!champs.Anglais || !champs.Francais) {
114
- console.error(
115
- "CsqcValidateurs (estUnique) - Les deux champs (français et anglais) doivent être speçifiés lorsque qu'on est en mode de validation bilingue.",
116
- )
117
- throw Error(
118
- "CsqcValidateurs (estUnique) - Les deux champs (français et anglais) doivent être speçifiés lorsque qu'on est en mode de validation bilingue.",
119
- )
120
- }
121
- const estUnique =
122
- valeurs.find(
123
- e =>
124
- ((e[champs.Francais!] != null && (e[champs.Francais!] as string).toLowerCase().trim() === valeur) ||
125
- (e[champs.Anglais!] != null && (e[champs.Anglais!] as string).toLowerCase().trim() === valeur)) &&
126
- e.id !== modele.id,
127
- ) == null
128
- return estUnique || t('validateurs.estUnique', { valeurExistante: valeur })
129
- default:
130
- break
131
- }
132
-
133
- throw Error('pas supposé être ici')
134
- }
135
-
136
- /**
137
- * Vérifie qu'une valeur passée en paramètre est unique parmis une liste de valeurs.
138
- * @param valeur La valeur a vérifier
139
- * @param modele L'instance d'un modèle avec un primary key id
140
- * @param options Les configurations de la fonction
141
- * @returns Vrai si la valeur est unique, ou une string d'erreur si un doublon est trouvé.
142
- */
143
- export function estUnique<T extends ModeleAvecId>(
144
- valeur: string,
145
- modele: T,
146
- options: EstUniqueOptions<T>,
147
- t: (key: string, params?: any) => string,
148
- ) {
149
- const { champ, valeurs } = options
150
- return (
151
- !valeurs.some(
152
- e =>
153
- e[champ] != null &&
154
- (e[champ] as string).toLowerCase().trim() === valeur.toLowerCase().trim() &&
155
- e.id !== modele.id,
156
- ) || t('validateurs.estUnique', { valeurExistante: valeur })
157
- )
158
- }
159
-
160
- type ModeleAvecId = { id: number }
161
-
162
- type ValeursChampEstUniqueOptions<ModeleAvecId> = {
163
- ['Francais']?: keyof ModeleAvecId
164
- ['Anglais']?: keyof ModeleAvecId
165
- }
166
-
167
- interface EstUniqueOptionsBilingue<T extends ModeleAvecId> {
168
- champs: ValeursChampEstUniqueOptions<T>
169
- valeurs: T[]
170
- langueCss?: ChoixLangue
171
- }
172
-
173
- interface EstUniqueOptions<T extends ModeleAvecId> {
174
- champ: keyof T
175
- valeurs: T[]
176
- }
177
- export default {
178
- estRequis,
179
- estMinimumLongueur,
180
- estMaximumLongueur,
181
- estUnique,
182
- estUniqueBilingue,
183
- }
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { ChoixLangue } from '@/enums/choixLangue'
3
+
4
+ /**
5
+ * Valide que le champ contient une valeur définie et non vide.
6
+ * Accepte les chaînes de caractères non vides, les nombres différents de 0,
7
+ * et toute autre valeur définie (ex. objets sélectionnés dans un v-select).
8
+ *
9
+ * @param valeur La valeur saisie ou sélectionnée dans le champ.
10
+ * @returns true si la valeur est considérée comme valide, sinon retourne un message d'erreur.
11
+ */
12
+
13
+ export function estRequis(valeur: unknown, t: (key: string, params?: any) => string): true | string {
14
+ if (valeur == null) return t('csqc.validateurs.estRequis')
15
+
16
+ if (typeof valeur === 'number' && isNaN(valeur)) return t('csqc.validateurs.estRequis')
17
+
18
+ if (typeof valeur === 'string') {
19
+ return valeur.trim().length > 0 || t('csqc.validateurs.estRequis')
20
+ }
21
+
22
+ return true // On considère tout le reste comme valide (ex: number, object, etc.)
23
+ }
24
+
25
+ /**
26
+ * Valide que le champ contient une valeur qui est d'une longeur minimale.
27
+ * @param valeur La valeur saisie du champ texte.
28
+ * @param min La longeur minimale de la valeur.
29
+ * @returns true si la longeur de la valeur est égale ou supérieure au minimum, sinon retourne un message d'erreur.
30
+ */
31
+ export function estMinimumLongueur(valeur: string, min: number, t: (key: string, params?: any) => string) {
32
+ if (min <= 0) {
33
+ min = 1
34
+ console.warn(
35
+ 'CsqcValidateurs (estMinimumLongeur) - Une valeur négative ou égale à 0 a été reçue. Assurez-vous de passer une valeur supérieur à 0 dans la fonction estMinimumLongeur. La valeur a été mise à 1.',
36
+ )
37
+ }
38
+ return (valeur && valeur.trim().length >= min) || t('csqc.validateurs.estMinimumLongueur', { nbCaracteres: min })
39
+ }
40
+
41
+ /**
42
+ * Valide que le champ contient une valeur qui ne dépasse pas une longeur maximale.
43
+ * @param valeur La valeur saisie du champ texte.
44
+ * @param max La longeur maximale (inclusive) de la valeur.
45
+ * @returns true si la longeur de la valeur est inférieure ou égale au maximum, sinon retourne un message d'erreur.
46
+ */
47
+ export function estMaximumLongueur(valeur: string, max: number, t: (key: string, params?: any) => string) {
48
+ if (max < 1) {
49
+ max = 1
50
+ console.warn(
51
+ 'CsqcValidateurs (estMaximumLongueur) - Une valeur négative ou égale à 0 a été reçue. Assurez-vous de passer une valeur supérieur à 0 dans la fonction estMaximumLongueur. La valeur a été mise à 1.',
52
+ )
53
+ }
54
+
55
+ return (valeur && valeur.trim().length <= max) || t('csqc.validateurs.estMaximumLongueur', { nbCaracteres: max })
56
+ }
57
+
58
+ /**
59
+ * Vérifie qu'une valeur passée en paramètre est unique parmis une liste de valeurs. La validation du bilinguisme sera appliquée
60
+ * selon la langue CSS configurée et passée en option.
61
+ * @param valeur La valeur a vérifier
62
+ * @param modele L'instance d'un modèle avec un primary key id
63
+ * @param options Les configurations de la fonction
64
+ * @returns Vrai si la valeur est unique, ou une string d'erreur si un doublon est trouvé.
65
+ */
66
+ export function estUniqueBilingue<T extends ModeleAvecId>(
67
+ valeur: string,
68
+ modele: T,
69
+ options: EstUniqueOptionsBilingue<T>,
70
+ t: (key: string, params?: any) => string,
71
+ ) {
72
+ // Affectations valeurs par défaut
73
+ const { champs, langueCss, valeurs } = options
74
+ if (!langueCss) options.langueCss = ChoixLangue.Francais
75
+ valeur = valeur.toLowerCase().trim()
76
+
77
+ switch (langueCss) {
78
+ case ChoixLangue.Anglais:
79
+ if (!champs.Anglais) {
80
+ console.error(
81
+ 'CsqcValidateurs (estUnique) - Le champ anglais doit être speçifié lorsque la langueCss est en anglais.',
82
+ )
83
+ throw Error(
84
+ 'CsqcValidateurs (estUnique) - Le champ anglais doit être speçifié lorsque la langueCss est en anglais.',
85
+ )
86
+ }
87
+ return (
88
+ !valeurs.find(
89
+ e =>
90
+ (e[champs.Anglais!] as string) != null &&
91
+ (e[champs.Anglais!] as string).toLowerCase().trim() === valeur &&
92
+ e.id !== modele.id,
93
+ ) || t('csqc.validateurs.estUnique', { valeurExistante: valeur })
94
+ )
95
+ case ChoixLangue.Francais:
96
+ if (!champs.Francais) {
97
+ console.error(
98
+ 'CsqcValidateurs (estUnique) - Le champ français doit être speçifié lorsque la langueCss est en français.',
99
+ )
100
+ throw Error(
101
+ 'CsqcValidateurs (estUnique) - Le champ français doit être speçifié lorsque la langueCss est en français.',
102
+ )
103
+ }
104
+ return (
105
+ valeurs.find(
106
+ e =>
107
+ (e[champs.Francais!] as string) != null &&
108
+ (e[champs.Francais!] as string).toLowerCase().trim() === valeur &&
109
+ e.id !== modele.id,
110
+ ) == null || t('csqc.validateurs.estUnique', { valeurExistante: valeur })
111
+ )
112
+ case ChoixLangue.Bilingue:
113
+ if (!champs.Anglais || !champs.Francais) {
114
+ console.error(
115
+ "CsqcValidateurs (estUnique) - Les deux champs (français et anglais) doivent être speçifiés lorsque qu'on est en mode de validation bilingue.",
116
+ )
117
+ throw Error(
118
+ "CsqcValidateurs (estUnique) - Les deux champs (français et anglais) doivent être speçifiés lorsque qu'on est en mode de validation bilingue.",
119
+ )
120
+ }
121
+ const estUnique =
122
+ valeurs.find(
123
+ e =>
124
+ ((e[champs.Francais!] != null && (e[champs.Francais!] as string).toLowerCase().trim() === valeur) ||
125
+ (e[champs.Anglais!] != null && (e[champs.Anglais!] as string).toLowerCase().trim() === valeur)) &&
126
+ e.id !== modele.id,
127
+ ) == null
128
+ return estUnique || t('csqc.validateurs.estUnique', { valeurExistante: valeur })
129
+ default:
130
+ break
131
+ }
132
+
133
+ throw Error('pas supposé être ici')
134
+ }
135
+
136
+ /**
137
+ * Vérifie qu'une valeur passée en paramètre est unique parmis une liste de valeurs.
138
+ * @param valeur La valeur a vérifier
139
+ * @param modele L'instance d'un modèle avec un primary key id
140
+ * @param options Les configurations de la fonction
141
+ * @returns Vrai si la valeur est unique, ou une string d'erreur si un doublon est trouvé.
142
+ */
143
+ export function estUnique<T extends ModeleAvecId>(
144
+ valeur: string,
145
+ modele: T,
146
+ options: EstUniqueOptions<T>,
147
+ t: (key: string, params?: any) => string,
148
+ ) {
149
+ const { champ, valeurs } = options
150
+ return (
151
+ !valeurs.some(
152
+ e =>
153
+ e[champ] != null &&
154
+ (e[champ] as string).toLowerCase().trim() === valeur.toLowerCase().trim() &&
155
+ e.id !== modele.id,
156
+ ) || t('csqc.validateurs.estUnique', { valeurExistante: valeur })
157
+ )
158
+ }
159
+
160
+ type ModeleAvecId = { id: number }
161
+
162
+ type ValeursChampEstUniqueOptions<ModeleAvecId> = {
163
+ ['Francais']?: keyof ModeleAvecId
164
+ ['Anglais']?: keyof ModeleAvecId
165
+ }
166
+
167
+ interface EstUniqueOptionsBilingue<T extends ModeleAvecId> {
168
+ champs: ValeursChampEstUniqueOptions<T>
169
+ valeurs: T[]
170
+ langueCss?: ChoixLangue
171
+ }
172
+
173
+ interface EstUniqueOptions<T extends ModeleAvecId> {
174
+ champ: keyof T
175
+ valeurs: T[]
176
+ }
177
+ export default {
178
+ estRequis,
179
+ estMinimumLongueur,
180
+ estMaximumLongueur,
181
+ estUnique,
182
+ estUniqueBilingue,
183
+ }
package/locales/fr.json CHANGED
@@ -61,6 +61,12 @@
61
61
  "placeholder": {
62
62
  "date": "Choisir une date",
63
63
  "selectionner": "Sélectionner"
64
+ },
65
+ "validateurs": {
66
+ "estMaximumLongeur": "Aucun | Ce champ ne doit pas dépasser {nbCaracteres} caractère | Ce champ ne doit pas dépasser {nbCaracteres} caractères.",
67
+ "estMinimumLongueur": "Aucun | Ce champ est trop court, il doit contenir au moins {nbCaracteres} caractère | Ce champ est trop court, il doit contenir au moins {nbCaracteres} caractères",
68
+ "estRequis": "Ce champ est requis",
69
+ "estUnique": "La valeur '{valeurExistante}' existe déjà"
64
70
  }
65
71
  }
66
72
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codevdesign",
3
- "version": "0.0.75",
3
+ "version": "0.0.76",
4
4
  "description": "Composants Vuetify 3 pour les projets Codev",
5
5
  "files": [
6
6
  "./**/*.vue",