codevdesign 1.0.77 → 1.0.79

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.
Files changed (94) hide show
  1. package/assets/csqc.css +28 -30
  2. package/composants/csqcAide.vue +1 -1
  3. package/composants/csqcAlerteErreur.vue +1 -1
  4. package/composants/csqcChaise/chaiseConteneur.vue +3 -3
  5. package/composants/csqcChaise/chaiseItem.vue +54 -54
  6. package/composants/csqcCodeBudgetaireGenerique.vue +254 -254
  7. package/composants/csqcConfirmation.vue +2 -1
  8. package/composants/csqcDate.vue +4 -1
  9. package/composants/csqcDialogue.vue +6 -4
  10. package/composants/csqcEditeurTexteRiche.vue +1 -1
  11. package/composants/csqcEntete.vue +17 -17
  12. package/composants/csqcImportCSV.vue +2 -2
  13. package/composants/csqcModaleSaisie.vue +1 -1
  14. package/composants/csqcRecherche.vue +7 -7
  15. package/composants/csqcRechercheUtilisateur.vue +1 -1
  16. package/composants/csqcSnackbar.vue +1 -1
  17. package/composants/csqcSwitch.vue +5 -5
  18. package/composants/csqcTable/csqcTable.vue +19 -14
  19. package/composants/csqcTable/csqcTableModaleChoixColonnes.vue +4 -4
  20. package/composants/csqcTable/sortableDataTable.ts +1 -1
  21. package/composants/csqcTexteBilingue.vue +175 -175
  22. package/composants/csqcTiroir.vue +7 -5
  23. package/composants/gabarit/csqcMenu.vue +4 -4
  24. package/composants/gabarit/pivEntete.vue +5 -3
  25. package/composants/gabarit/pivPiedPage.vue +44 -29
  26. package/composants/validateurs.ts +8 -2
  27. package/editeur.ts +1 -1
  28. package/importCSV.ts +1 -1
  29. package/index.ts +80 -80
  30. package/locales/en.json +1 -1
  31. package/locales/fr.json +3 -3
  32. package/modeles/assurancesAssuranceGeneraleGrics.ts +3 -3
  33. package/modeles/assurancesAssurancePersonnelleGrics.ts +6 -6
  34. package/modeles/assurancesContratGrics.ts +6 -6
  35. package/modeles/assurancesDetailsPrimeReguliereGrics.ts +4 -4
  36. package/modeles/assurancesDonneesAssureurGrics.ts +5 -5
  37. package/modeles/assurancesEmployeGrics.ts +4 -4
  38. package/modeles/assurancesGrics.ts +6 -6
  39. package/modeles/assurancesRegimeAssuranceGrics.ts +2 -2
  40. package/modeles/assurancesRegimeBaseEmployeurGrics.ts +2 -2
  41. package/modeles/assurancesRegimeBaseGrics.ts +2 -2
  42. package/modeles/composants/csqcMenuModele.ts +18 -18
  43. package/modeles/composants/datatableColonne.ts +19 -19
  44. package/modeles/employeAdresseGrics.ts +6 -6
  45. package/modeles/employeAdressesPersonnellesGrics.ts +4 -4
  46. package/modeles/employeAffectationCorpsEmploiGrics.ts +2 -2
  47. package/modeles/employeBanquesCongeBanqueGrics.ts +2 -2
  48. package/modeles/employeBanquesCongeGrics.ts +6 -6
  49. package/modeles/employeBanquesCongeRegimeAbsenceGrics.ts +2 -2
  50. package/modeles/employeCourrielsPersonnels.ts +2 -2
  51. package/modeles/employeCourrielsProfessionnels.ts +2 -2
  52. package/modeles/employeEmploisCategorieGrics.ts +2 -2
  53. package/modeles/employeEmploisClasseGrics.ts +2 -2
  54. package/modeles/employeEmploisCorpsEmploiGrics.ts +2 -2
  55. package/modeles/employeEmploisEtatEmploiGrics.ts +2 -2
  56. package/modeles/employeEmploisGrics.ts +29 -29
  57. package/modeles/employeEmploisGroupePaieGrics.ts +2 -2
  58. package/modeles/employeEmploisLieuTravailPrincipalGrics.ts +3 -3
  59. package/modeles/employeEmploisLieuxTravailSecondairesGrics.ts +3 -3
  60. package/modeles/employeEmploisRegimeAbsenceGrics.ts +2 -2
  61. package/modeles/employeEmploisSecteurGrics.ts +2 -2
  62. package/modeles/employeEmploisStatutEngagementGrics.ts +2 -2
  63. package/modeles/employeExperienceEmploiGrics.ts +2 -2
  64. package/modeles/employeExperienceEmployeGrics.ts +5 -5
  65. package/modeles/employeExperienceExperiencesGrics.ts +4 -4
  66. package/modeles/employeExperienceExperiencesTotalesGrics.ts +7 -7
  67. package/modeles/employeExperienceGrics.ts +9 -9
  68. package/modeles/employeGrics.ts +23 -23
  69. package/modeles/employeTelephoneGrics.ts +4 -4
  70. package/modeles/employeTelephonesPersonnelsGrics.ts +3 -3
  71. package/modeles/employeTelephonesProfessionnelsGrics.ts +3 -3
  72. package/modeles/groupeCE.ts +6 -6
  73. package/modeles/groupeCEIntervalle.ts +6 -6
  74. package/modeles/historiquesAbsenceBanqueGrics.ts +2 -2
  75. package/modeles/historiquesAbsenceGrics.ts +13 -13
  76. package/modeles/historiquesAbsenceLieuTravailGrics.ts +2 -2
  77. package/modeles/historiquesAbsenceSousBanqueGrics.ts +2 -2
  78. package/modeles/motifsAbsenceBanque.ts +2 -2
  79. package/modeles/motifsAbsenceGrics.ts +9 -9
  80. package/modeles/motifsAbsenceRegimeAbsence.ts +2 -2
  81. package/modeles/motifsAbsenceSousMotifs.ts +2 -2
  82. package/modeles/motifsAbsenceTraitementBanques.ts +3 -3
  83. package/modeles/syndicat.ts +18 -18
  84. package/modeles/syndicatGroupeCe.ts +3 -3
  85. package/modeles/syndicatResponsable.ts +8 -8
  86. package/modeles/syndicatUnite.ts +3 -3
  87. package/modeles/unite.ts +15 -15
  88. package/modeles/uniteTypeEnseignement.ts +4 -4
  89. package/modeles/utilisateur.ts +8 -8
  90. package/outils/appAxios.ts +16 -16
  91. package/outils/csqcOutils.ts +6 -5
  92. package/outils/csqcRafraichisseurTokenParent.ts +20 -4
  93. package/outils/rafraichisseurToken.ts +310 -310
  94. package/package.json +1 -1
@@ -1,175 +1,175 @@
1
- <template>
2
- <v-row dense>
3
- <v-col
4
- v-if="afficherChampFr"
5
- cols="12"
6
- >
7
- <label
8
- v-if="!libelleInterieur"
9
- :for="`saisieChampFr-${cleTradFr}`"
10
- :class="{ libelle: true, required: estRequis }"
11
- >{{ $t(cleTradFr) }}
12
- </label>
13
- <csqcAide
14
- v-if="props.aide && !libelleInterieur"
15
- :aide="props.aide"
16
- hover
17
- :style-css="'padding-bottom:6px;padding-left:8px;'"
18
- />
19
- <v-textarea
20
- v-if="textarea"
21
- :id="`saisieChampFr-${cleTradFr}`"
22
- v-model="model[champs.Francais]"
23
- density="comfortable"
24
- v-bind="$attrs"
25
- rows="1"
26
- :label="libelleInterieur ? $t(cleTradFr) : ''"
27
- :rules="reglesInterne"
28
- :autofocus="autofocus && afficherChampFr"
29
- />
30
- <v-text-field
31
- v-else
32
- :id="`saisieChampFr-${cleTradFr}`"
33
- v-model="model[champs.Francais]"
34
- density="comfortable"
35
- v-bind="$attrs"
36
- :label="libelleInterieur ? $t(cleTradFr) : ''"
37
- :rules="reglesInterne"
38
- :autofocus="autofocus && afficherChampFr"
39
- />
40
- </v-col>
41
- <v-col
42
- v-if="afficherChampEn"
43
- cols="12"
44
- >
45
- <label
46
- v-if="!libelleInterieur"
47
- :for="`saisieChampEn-${cleTradEn}`"
48
- :class="{ libelle: true, required: estRequis }"
49
- >{{ $t(cleTradEn) }}</label
50
- ><csqcAide
51
- v-if="props.aide && !libelleInterieur"
52
- :aide="props.aide"
53
- hover
54
- :style-css="'padding-bottom:6px;padding-left:8px;'"
55
- />
56
- <v-textarea
57
- v-if="textarea"
58
- :id="`saisieChampEn-${cleTradEn}`"
59
- v-model="model[champs.Anglais]"
60
- rows="1"
61
- v-bind="$attrs"
62
- density="comfortable"
63
- :label="libelleInterieur ? $t(cleTradEn) : ''"
64
- :rules="reglesInterne"
65
- :autofocus="autofocus && !afficherChampFr"
66
- />
67
- <v-text-field
68
- v-else
69
- :id="`saisieChampEn-${cleTradEn}`"
70
- v-model="model[champs.Anglais]"
71
- density="comfortable"
72
- v-bind="$attrs"
73
- :label="libelleInterieur ? $t(cleTradEn) : ''"
74
- :rules="reglesInterne"
75
- :autofocus="autofocus && !afficherChampFr"
76
- />
77
- </v-col>
78
- </v-row>
79
- </template>
80
-
81
- <script setup lang="ts" generic="T extends { id: number }">
82
- import { estRequis as estRequisRegle, estUniqueBilingue, estMinimumLongueur, estMaximumLongueur } from './validateurs'
83
- import { ChoixLangue } from '@/enums/choixLangue'
84
- import csqcAide from './csqcAide.vue'
85
- import { computed, type PropType, toRefs } from 'vue'
86
- import { useI18n } from 'vue-i18n'
87
- const { t } = useI18n({ useScope: 'global' })
88
-
89
- const props = defineProps<{
90
- aide?: string
91
- textarea?: boolean
92
- libelleInterieur?: boolean
93
- estRequis?: boolean
94
- autofocus?: boolean
95
- estUniqueValeurs?: T[]
96
- minimumLongueur?: number
97
- maximumLongueur?: number
98
- regles?: ((v: string) => string | true)[]
99
- langue: ChoixLangue
100
- i18nLibelleRacine: string
101
- champs: { ['Francais']: keyof T; ['Anglais']: keyof T }
102
- }>()
103
-
104
- const { textarea, libelleInterieur, autofocus, estUniqueValeurs, regles, langue, i18nLibelleRacine, champs } =
105
- toRefs(props)
106
-
107
- const minimumLongueur = computed(() => props.minimumLongueur)
108
- const maximumLongueur = computed(() => props.maximumLongueur)
109
- const estRequis = computed(() => props.estRequis)
110
-
111
- const model = defineModel({
112
- type: Object as PropType<T>,
113
- required: true,
114
- })
115
-
116
- const reglesInterne = computed(() => {
117
- const _regles: ((v: string) => string | true)[] = regles.value ?? []
118
-
119
- if (minimumLongueur.value && maximumLongueur.value && minimumLongueur.value > maximumLongueur.value) {
120
- console.error(
121
- `CsqcTexteBilingue - Longueur min > max. (Min ${minimumLongueur.value} > Max ${maximumLongueur.value})`,
122
- )
123
- throw Error(
124
- `CsqcTexteBilingue - Longueur min > max. (Min ${minimumLongueur.value} > Max ${maximumLongueur.value})`,
125
- )
126
- }
127
-
128
- if (estRequis.value) _regles.push(v => estRequisRegle(v, t))
129
-
130
- if (estUniqueValeurs.value) {
131
- _regles.push(v =>
132
- estUniqueBilingue(
133
- v,
134
- model.value,
135
- {
136
- champs: { Anglais: champs.value.Anglais, Francais: champs.value.Francais },
137
- valeurs: estUniqueValeurs.value!,
138
- langueCss: langue.value,
139
- },
140
- t,
141
- ),
142
- )
143
- }
144
-
145
- if (minimumLongueur.value !== undefined) _regles.push(v => estMinimumLongueur(v, minimumLongueur.value!, t))
146
-
147
- if (maximumLongueur.value !== undefined) _regles.push(v => estMaximumLongueur(v, maximumLongueur.value!, t))
148
-
149
- return _regles
150
- })
151
-
152
- // Clés i18n
153
- const cleTradEn = computed(() => {
154
- switch (langue.value) {
155
- case ChoixLangue.Bilingue:
156
- case ChoixLangue.Anglais:
157
- return `${i18nLibelleRacine.value}.${String(champs.value.Anglais)}`
158
- default:
159
- return 'cle_manquante'
160
- }
161
- })
162
-
163
- const cleTradFr = computed(() => {
164
- switch (langue.value) {
165
- case ChoixLangue.Bilingue:
166
- case ChoixLangue.Francais:
167
- return `${i18nLibelleRacine.value}.${String(champs.value.Francais)}`
168
- default:
169
- return 'cle_manquante'
170
- }
171
- })
172
-
173
- const afficherChampFr = computed(() => langue.value === ChoixLangue.Francais || langue.value === ChoixLangue.Bilingue)
174
- const afficherChampEn = computed(() => langue.value === ChoixLangue.Anglais || langue.value === ChoixLangue.Bilingue)
175
- </script>
1
+ <template>
2
+ <v-row dense>
3
+ <v-col
4
+ v-if="afficherChampFr"
5
+ cols="12"
6
+ >
7
+ <label
8
+ v-if="!libelleInterieur"
9
+ :for="`saisieChampFr-${cleTradFr}`"
10
+ :class="{ libelle: true, required: estRequis }"
11
+ >{{ $t(cleTradFr) }}
12
+ </label>
13
+ <csqcAide
14
+ v-if="props.aide && !libelleInterieur"
15
+ :aide="props.aide"
16
+ hover
17
+ :style-css="'padding-bottom:6px;padding-left:8px;'"
18
+ />
19
+ <v-textarea
20
+ v-if="textarea"
21
+ :id="`saisieChampFr-${cleTradFr}`"
22
+ v-model="model[champs.Francais]"
23
+ density="comfortable"
24
+ v-bind="$attrs"
25
+ rows="1"
26
+ :label="libelleInterieur ? $t(cleTradFr) : ''"
27
+ :rules="reglesInterne"
28
+ :autofocus="autofocus && afficherChampFr"
29
+ />
30
+ <v-text-field
31
+ v-else
32
+ :id="`saisieChampFr-${cleTradFr}`"
33
+ v-model="model[champs.Francais]"
34
+ density="comfortable"
35
+ v-bind="$attrs"
36
+ :label="libelleInterieur ? $t(cleTradFr) : ''"
37
+ :rules="reglesInterne"
38
+ :autofocus="autofocus && afficherChampFr"
39
+ />
40
+ </v-col>
41
+ <v-col
42
+ v-if="afficherChampEn"
43
+ cols="12"
44
+ >
45
+ <label
46
+ v-if="!libelleInterieur"
47
+ :for="`saisieChampEn-${cleTradEn}`"
48
+ :class="{ libelle: true, required: estRequis }"
49
+ >{{ $t(cleTradEn) }}</label
50
+ ><csqcAide
51
+ v-if="props.aide && !libelleInterieur"
52
+ :aide="props.aide"
53
+ hover
54
+ :style-css="'padding-bottom:6px;padding-left:8px;'"
55
+ />
56
+ <v-textarea
57
+ v-if="textarea"
58
+ :id="`saisieChampEn-${cleTradEn}`"
59
+ v-model="model[champs.Anglais]"
60
+ rows="1"
61
+ v-bind="$attrs"
62
+ density="comfortable"
63
+ :label="libelleInterieur ? $t(cleTradEn) : ''"
64
+ :rules="reglesInterne"
65
+ :autofocus="autofocus && !afficherChampFr"
66
+ />
67
+ <v-text-field
68
+ v-else
69
+ :id="`saisieChampEn-${cleTradEn}`"
70
+ v-model="model[champs.Anglais]"
71
+ density="comfortable"
72
+ v-bind="$attrs"
73
+ :label="libelleInterieur ? $t(cleTradEn) : ''"
74
+ :rules="reglesInterne"
75
+ :autofocus="autofocus && !afficherChampFr"
76
+ />
77
+ </v-col>
78
+ </v-row>
79
+ </template>
80
+
81
+ <script setup lang="ts" generic="T extends { id: number }">
82
+ import { estRequis as estRequisRegle, estUniqueBilingue, estMinimumLongueur, estMaximumLongueur } from './validateurs'
83
+ import { ChoixLangue } from '@/enums/choixLangue'
84
+ import csqcAide from './csqcAide.vue'
85
+ import { computed, type PropType, toRefs } from 'vue'
86
+ import { useI18n } from 'vue-i18n'
87
+ const { t } = useI18n({ useScope: 'global' })
88
+
89
+ const props = defineProps<{
90
+ aide?: string
91
+ textarea?: boolean
92
+ libelleInterieur?: boolean
93
+ estRequis?: boolean
94
+ autofocus?: boolean
95
+ estUniqueValeurs?: T[]
96
+ minimumLongueur?: number
97
+ maximumLongueur?: number
98
+ regles?: ((v: string) => string | true)[]
99
+ langue: ChoixLangue
100
+ i18nLibelleRacine: string
101
+ champs: { ['Francais']: keyof T; ['Anglais']: keyof T }
102
+ }>()
103
+
104
+ const { textarea, libelleInterieur, autofocus, estUniqueValeurs, regles, langue, i18nLibelleRacine, champs } =
105
+ toRefs(props)
106
+
107
+ const minimumLongueur = computed(() => props.minimumLongueur)
108
+ const maximumLongueur = computed(() => props.maximumLongueur)
109
+ const estRequis = computed(() => props.estRequis)
110
+
111
+ const model = defineModel({
112
+ type: Object as PropType<T>,
113
+ required: true,
114
+ })
115
+
116
+ const reglesInterne = computed(() => {
117
+ const _regles: ((v: string) => string | true)[] = regles.value ?? []
118
+
119
+ if (minimumLongueur.value && maximumLongueur.value && minimumLongueur.value > maximumLongueur.value) {
120
+ console.error(
121
+ `CsqcTexteBilingue - Longueur min > max. (Min ${minimumLongueur.value} > Max ${maximumLongueur.value})`,
122
+ )
123
+ throw Error(
124
+ `CsqcTexteBilingue - Longueur min > max. (Min ${minimumLongueur.value} > Max ${maximumLongueur.value})`,
125
+ )
126
+ }
127
+
128
+ if (estRequis.value) _regles.push(v => estRequisRegle(v, t))
129
+
130
+ if (estUniqueValeurs.value) {
131
+ _regles.push(v =>
132
+ estUniqueBilingue(
133
+ v,
134
+ model.value,
135
+ {
136
+ champs: { Anglais: champs.value.Anglais, Francais: champs.value.Francais },
137
+ valeurs: estUniqueValeurs.value!,
138
+ langueCss: langue.value,
139
+ },
140
+ t,
141
+ ),
142
+ )
143
+ }
144
+
145
+ if (minimumLongueur.value !== undefined) _regles.push(v => estMinimumLongueur(v, minimumLongueur.value!, t))
146
+
147
+ if (maximumLongueur.value !== undefined) _regles.push(v => estMaximumLongueur(v, maximumLongueur.value!, t))
148
+
149
+ return _regles
150
+ })
151
+
152
+ // Clés i18n
153
+ const cleTradEn = computed(() => {
154
+ switch (langue.value) {
155
+ case ChoixLangue.Bilingue:
156
+ case ChoixLangue.Anglais:
157
+ return `${i18nLibelleRacine.value}.${String(champs.value.Anglais)}`
158
+ default:
159
+ return 'cle_manquante'
160
+ }
161
+ })
162
+
163
+ const cleTradFr = computed(() => {
164
+ switch (langue.value) {
165
+ case ChoixLangue.Bilingue:
166
+ case ChoixLangue.Francais:
167
+ return `${i18nLibelleRacine.value}.${String(champs.value.Francais)}`
168
+ default:
169
+ return 'cle_manquante'
170
+ }
171
+ })
172
+
173
+ const afficherChampFr = computed(() => langue.value === ChoixLangue.Francais || langue.value === ChoixLangue.Bilingue)
174
+ const afficherChampEn = computed(() => langue.value === ChoixLangue.Anglais || langue.value === ChoixLangue.Bilingue)
175
+ </script>
@@ -3,10 +3,10 @@
3
3
  v-model="visible"
4
4
  location="right"
5
5
  temporary
6
- v-bind="$attrs"
7
- :width="grosseurTiroir"
8
6
  class="pa-0 elevation-2 csqc-ligneBleue"
9
7
  :persistent="persistant"
8
+ v-bind="$attrs"
9
+ :width="grosseurTiroir"
10
10
  @keydown.esc="!persistant ? fermeture : ''"
11
11
  @click:outside="!persistant ? fermeture : ''"
12
12
  >
@@ -16,7 +16,7 @@
16
16
  icon="mdi-close"
17
17
  variant="text"
18
18
  class="position-absolute iconeHover"
19
- style="top: 5px; right: 5px"
19
+ style="right: 5px; top: 5px"
20
20
  @click="fermeture"
21
21
  ></v-btn>
22
22
 
@@ -63,7 +63,7 @@
63
63
  <Teleport to="body">
64
64
  <v-fab
65
65
  v-if="retourEnHaut && afficherBoutonHaut"
66
- style="position: fixed; bottom: 24px; right: 24px; z-index: 2000"
66
+ style="bottom: 24px; position: fixed; right: 24px; z-index: 2000"
67
67
  elevation="8"
68
68
  color="primary"
69
69
  icon="mdi-arrow-up"
@@ -72,11 +72,12 @@
72
72
  </Teleport>
73
73
  </template>
74
74
  <script lang="ts" setup>
75
- import { ref, computed, watch, nextTick } from 'vue'
75
+ import { ref, computed, watch, nextTick, useAttrs } from 'vue'
76
76
  import { useDisplay } from 'vuetify'
77
77
 
78
78
  const visible = ref(false)
79
79
  const display = useDisplay()
80
+ const attrs = useAttrs()
80
81
 
81
82
  // Déclaration des props
82
83
  const props = defineProps({
@@ -167,6 +168,7 @@
167
168
 
168
169
  // Calcul des tailles du tiroir en fonction du breakpoint
169
170
  const grosseurTiroir = computed(() => {
171
+ if (attrs.width !== undefined && attrs.width !== null) return attrs.width as string | number
170
172
  switch (display.name.value) {
171
173
  case 'xs':
172
174
  return ''
@@ -238,9 +238,9 @@
238
238
  }
239
239
  /* desktop */
240
240
  .params_item {
241
- font-weight: 400;
242
- color: white !important;
243
241
  background-color: #223654 !important;
242
+ color: white !important;
243
+ font-weight: 400;
244
244
  }
245
245
  /* desktop */
246
246
  .params_item.v-btn--active {
@@ -249,8 +249,8 @@
249
249
  }
250
250
  /* desktop */
251
251
  .params_item.v-btn--active:hover {
252
- color: white !important;
253
252
  background-color: #223654 !important;
253
+ color: white !important;
254
254
  }
255
255
  /* desktop */
256
256
  .params_item.v-btn--active:hover::before {
@@ -258,10 +258,10 @@
258
258
  }
259
259
  /* desktop */
260
260
  .params_item.v-btn--active::before {
261
- opacity: 0.24;
262
261
  border-radius: 0;
263
262
  color: #ffffff80 !important;
264
263
  margin-top: 1px !important;
264
+ opacity: 0.24;
265
265
  }
266
266
 
267
267
  /* mobile couleur du texte de la barre, marge du haut, padding */
@@ -24,8 +24,8 @@
24
24
  <!-- On ne rend l'image qu'une fois la source choisie -->
25
25
  <img
26
26
  v-else
27
- class="logo-img"
28
27
  id="pivImage"
28
+ class="logo-img"
29
29
  :src="currentSrc!"
30
30
  :alt="$t('csqc.pivFooter.logoAlt')"
31
31
  decoding="async"
@@ -52,6 +52,7 @@
52
52
  <v-col class="d-none d-flex justify-end">
53
53
  <!-- langue -->
54
54
  <v-btn
55
+ v-if="props.estVisibleLangue"
55
56
  variant="text"
56
57
  @click="enregistrerLangue()"
57
58
  >{{ $t('csqc.pivEntete.langue') }}
@@ -92,6 +93,7 @@
92
93
  const { current } = useLocale()
93
94
  const props = defineProps({
94
95
  estMobile: { type: Boolean, default: false },
96
+ estVisibleLangue: { type: Boolean, default: true },
95
97
  urlBase: { type: String, required: true },
96
98
  aideUrl: { type: String, default: '' },
97
99
  cssUrl: { type: String, default: '' },
@@ -197,9 +199,9 @@
197
199
  width: 180px;
198
200
  }
199
201
  .logo-img {
202
+ display: block;
200
203
  height: 72px;
201
- transition: opacity 0.15s;
202
204
  opacity: 1;
203
- display: block;
205
+ transition: opacity 0.15s;
204
206
  }
205
207
  </style>
@@ -1,33 +1,48 @@
1
1
  <template>
2
2
  <footer>
3
- <div class="footer-content">
4
- <a href="https://quebec.ca">
5
- <img
6
- id="logoFooter"
7
- alt="Gouvernement du Québec."
8
- src="/images/QUEBEC_couleur.svg"
9
- width="117"
10
- height="35"
11
- />
12
- </a>
13
- <div>
14
- <small>
15
- <a
16
- href="http://www.droitauteur.gouv.qc.ca/copyright.php"
17
- target="_blank"
18
- >© Gouvernement du Québec {{ anneeEnCours }}
3
+ <v-row>
4
+ <!-- slot gauche -->
5
+ <v-col cols="3">
6
+ <slot name="gauche" />
7
+ </v-col>
8
+
9
+ <!-- colonne centrale pour logo Quebec et versions -->
10
+ <v-col cols="6">
11
+ <div class="footer-content">
12
+ <a href="https://quebec.ca">
13
+ <img
14
+ id="logoFooter"
15
+ alt="Gouvernement du Québec."
16
+ src="/images/QUEBEC_couleur.svg"
17
+ width="117"
18
+ height="35"
19
+ />
19
20
  </a>
21
+ <div>
22
+ <small>
23
+ <a
24
+ href="http://www.droitauteur.gouv.qc.ca/copyright.php"
25
+ target="_blank"
26
+ >© Gouvernement du Québec {{ anneeEnCours }}
27
+ </a>
28
+
29
+ <a
30
+ v-if="props.version"
31
+ :href="props.lien"
32
+ target="_blank"
33
+ ><br />
34
+ version <span v-html="props.version"
35
+ /></a>
36
+ </small>
37
+ </div>
38
+ </div>
39
+ </v-col>
20
40
 
21
- <a
22
- v-if="props.version"
23
- :href="props.lien"
24
- target="_blank"
25
- ><br />
26
- version <span v-html="props.version"
27
- /></a>
28
- </small>
29
- </div>
30
- </div>
41
+ <!-- slot droite -->
42
+ <v-col cols="3">
43
+ <slot name="droite" />
44
+ </v-col>
45
+ </v-row>
31
46
  </footer>
32
47
  </template>
33
48
 
@@ -46,18 +61,18 @@
46
61
 
47
62
  <style scoped>
48
63
  footer {
64
+ align-items: center; /* Centrer verticalement */
49
65
  display: flex;
66
+ height: 100px; /* Ajuster la hauteur du footer */
50
67
  justify-content: center; /* Centrer horizontalement */
51
- align-items: center; /* Centrer verticalement */
52
68
  text-align: center; /* Centrer le texte à l'intérieur des éléments */
53
- height: 100px; /* Ajuster la hauteur du footer */
54
69
  }
55
70
 
56
71
  .footer-content {
72
+ align-items: center; /* Centrer horizontalement à l'intérieur de .footer-content */
57
73
  display: flex;
58
74
  flex-direction: column; /* Disposer les éléments les uns sous les autres */
59
75
  justify-content: center; /* Centrer verticalement à l'intérieur de .footer-content */
60
- align-items: center; /* Centrer horizontalement à l'intérieur de .footer-content */
61
76
  }
62
77
 
63
78
  footer a {
@@ -35,7 +35,10 @@ export function estMinimumLongueur(valeur: string, min: number, t: (key: string,
35
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
36
  )
37
37
  }
38
- return (valeur && valeur.trim().length >= min) || t('csqc.validateurs.estMinimumLongueur', { count: min, nbCaracteres: min })
38
+ return (
39
+ (valeur && valeur.trim().length >= min) ||
40
+ t('csqc.validateurs.estMinimumLongueur', { count: min, nbCaracteres: min })
41
+ )
39
42
  }
40
43
 
41
44
  /**
@@ -52,7 +55,10 @@ export function estMaximumLongueur(valeur: string, max: number, t: (key: string,
52
55
  )
53
56
  }
54
57
 
55
- return (valeur && valeur.trim().length <= max) || t('csqc.validateurs.estMaximumLongueur', { count: max, nbCaracteres: max })
58
+ return (
59
+ (valeur && valeur.trim().length <= max) ||
60
+ t('csqc.validateurs.estMaximumLongueur', { count: max, nbCaracteres: max })
61
+ )
56
62
  }
57
63
 
58
64
  /**
package/editeur.ts CHANGED
@@ -1 +1 @@
1
- export { default as csqcEditeurTexteRiche } from './composants/csqcEditeurTexteRiche.vue'
1
+ export { default as csqcEditeurTexteRiche } from './composants/csqcEditeurTexteRiche.vue'
package/importCSV.ts CHANGED
@@ -1 +1 @@
1
- export { default as csqcImportCSV } from './composants/csqcImportCSV.vue'
1
+ export { default as csqcImportCSV } from './composants/csqcImportCSV.vue'