codevdesign 1.0.5 → 1.0.6

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,88 +1,88 @@
1
- <template>
2
- <v-snackbar
3
- v-model="snackbar"
4
- v-bind="$attrs"
5
- :timeout="tempsFinal"
6
- :style="styleCss"
7
- color="success"
8
- multi-line
9
- @update:model-value="fermer"
10
- >
11
- <template v-if="props.titre || props.message">
12
- <b style="font-size: 12pt">{{ props.titre }}</b>
13
- <br v-if="props.titre" />
14
- <b>{{ props.message }}</b>
15
- </template>
16
-
17
- <template #actions>
18
- <!-- on affiche tjrs si c'est -1 car on ne pourra pas fermer le snack -->
19
- <v-icon
20
- v-if="props.btnFermer || props.temps === -1"
21
- color="white"
22
- style="cursor: pointer"
23
- @click.stop="fermer"
24
- >
25
- mdi-close
26
- </v-icon>
27
- </template>
28
- </v-snackbar>
29
- </template>
30
- <script lang="ts" setup>
31
- import { computed, ref, watch, type PropType } from 'vue'
32
-
33
- // Définir les props avec les types
34
- const props = defineProps({
35
- styleCss: {
36
- type: String,
37
- required: false,
38
- },
39
- temps: {
40
- type: Number,
41
- required: false,
42
- default: 4000,
43
- validator(value: number) {
44
- // Si la valeur est inférieure à -1, on la remplace par -1
45
- if (value < -1) {
46
- return false // Laisser échouer la validation pour gérer ça dans une logique personnalisée
47
- }
48
- // Validation que la valeur soit comprise entre -1 et Number.MAX_VALUE
49
- return value <= Number.MAX_VALUE
50
- },
51
- },
52
- message: {
53
- type: String,
54
- required: true,
55
- },
56
- titre: {
57
- type: String,
58
- required: false,
59
- },
60
- btnFermer: {
61
- type: Boolean,
62
- required: false,
63
- default: true,
64
- },
65
- })
66
- const emit = defineEmits(['fermer:snackbar'])
67
- const fermer = (): void => {
68
- snackbar.value = false
69
- emit('fermer:snackbar')
70
- }
71
- // Déclarer l'état réactif pour snackbar
72
- const snackbar = ref(false)
73
- const message = computed(() => props.message)
74
- const tempsFinal = computed(() => {
75
- if (props.temps < -1) {
76
- return -1 // Si la valeur est inférieure à -1, on la met à -1
77
- }
78
- if (props.temps >= 0 && props.temps < 1000) return 1000 // on met 1 seconde minimum sinon one ne la voit pas
79
-
80
- return props.temps // Sinon, on retourne la valeur de la prop
81
- })
82
-
83
- watch(message, nouveau => {
84
- if (nouveau != null && nouveau !== '') {
85
- snackbar.value = true
86
- }
87
- })
88
- </script>
1
+ <template>
2
+ <v-snackbar
3
+ v-model="snackbar"
4
+ v-bind="$attrs"
5
+ :timeout="tempsFinal"
6
+ :style="styleCss"
7
+ color="success"
8
+ multi-line
9
+ @update:model-value="fermer"
10
+ >
11
+ <template v-if="props.titre || props.message">
12
+ <b style="font-size: 12pt">{{ props.titre }}</b>
13
+ <br v-if="props.titre" />
14
+ <b>{{ props.message }}</b>
15
+ </template>
16
+
17
+ <template #actions>
18
+ <!-- on affiche tjrs si c'est -1 car on ne pourra pas fermer le snack -->
19
+ <v-icon
20
+ v-if="props.btnFermer || props.temps === -1"
21
+ color="white"
22
+ style="cursor: pointer"
23
+ @click.stop="fermer"
24
+ >
25
+ mdi-close
26
+ </v-icon>
27
+ </template>
28
+ </v-snackbar>
29
+ </template>
30
+ <script lang="ts" setup>
31
+ import { computed, ref, watch, type PropType } from 'vue'
32
+
33
+ // Définir les props avec les types
34
+ const props = defineProps({
35
+ styleCss: {
36
+ type: String,
37
+ required: false,
38
+ },
39
+ temps: {
40
+ type: Number,
41
+ required: false,
42
+ default: 4000,
43
+ validator(value: number) {
44
+ // Si la valeur est inférieure à -1, on la remplace par -1
45
+ if (value < -1) {
46
+ return false // Laisser échouer la validation pour gérer ça dans une logique personnalisée
47
+ }
48
+ // Validation que la valeur soit comprise entre -1 et Number.MAX_VALUE
49
+ return value <= Number.MAX_VALUE
50
+ },
51
+ },
52
+ message: {
53
+ type: String,
54
+ required: true,
55
+ },
56
+ titre: {
57
+ type: String,
58
+ required: false,
59
+ },
60
+ btnFermer: {
61
+ type: Boolean,
62
+ required: false,
63
+ default: true,
64
+ },
65
+ })
66
+ const emit = defineEmits(['fermer:snackbar'])
67
+ const fermer = (): void => {
68
+ snackbar.value = false
69
+ emit('fermer:snackbar')
70
+ }
71
+ // Déclarer l'état réactif pour snackbar
72
+ const snackbar = ref(false)
73
+ const message = computed(() => props.message)
74
+ const tempsFinal = computed(() => {
75
+ if (props.temps < -1) {
76
+ return -1 // Si la valeur est inférieure à -1, on la met à -1
77
+ }
78
+ if (props.temps >= 0 && props.temps < 1000) return 1000 // on met 1 seconde minimum sinon one ne la voit pas
79
+
80
+ return props.temps // Sinon, on retourne la valeur de la prop
81
+ })
82
+
83
+ watch(message, nouveau => {
84
+ if (nouveau != null && nouveau !== '') {
85
+ snackbar.value = true
86
+ }
87
+ })
88
+ </script>