@cnamts/synapse 1.0.1 → 1.0.2
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.
- package/README.md +1 -1
- package/dist/{DateFilter-BmRuzQ9Z.js → DateFilter-YWOTbfeL.js} +1 -1
- package/dist/{NumberFilter-CnIPDHqx.js → NumberFilter-DMmMgALM.js} +1 -1
- package/dist/{PeriodFilter-CZwZ8CnQ.js → PeriodFilter-Bok5BHcn.js} +1 -1
- package/dist/SelectFilter-BKud2WhN.js +136 -0
- package/dist/{TextFilter-DTxZHJwX.js → TextFilter-DvMf2thH.js} +1 -1
- package/dist/components/Accordion/Accordion.d.ts +2 -1
- package/dist/components/Accordion/composables/useAccordionGroupCommunication.d.ts +5 -0
- package/dist/components/Accordion/composables/useAccordionKeyboardNavigation.d.ts +12 -0
- package/dist/components/Accordion/composables/useAccordionState.d.ts +13 -0
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +85 -0
- package/dist/components/Customs/SyInputSelect/SyInputSelect.d.ts +2 -0
- package/dist/components/Customs/SySelect/SySelect.d.ts +33 -13
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +2 -2
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +1585 -1452
- package/dist/components/DatePicker/DatePicker/DatePicker.d.ts +16 -2
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +3 -1
- package/dist/components/DatePicker/composables/index.d.ts +2 -0
- package/dist/components/DatePicker/composables/useAsteriskDisplay.d.ts +14 -0
- package/dist/components/DatePicker/composables/useDateAutoClamp.d.ts +16 -0
- package/dist/components/DatePicker/composables/useDateRangeInput.d.ts +1 -1
- package/dist/components/DatePicker/composables/useDisplayedDateString.d.ts +3 -0
- package/dist/components/DatePicker/composables/useInputBlurHandler.d.ts +1 -0
- package/dist/components/DatePicker/composables/useMonthButtonCustomization.d.ts +5 -2
- package/dist/components/NirField/NirField.d.ts +7 -3
- package/dist/components/NirField/nirValidation.d.ts +1 -1
- package/dist/components/PasswordField/PasswordField.d.ts +2 -0
- package/dist/components/PeriodField/PeriodField.d.ts +52 -8
- package/dist/components/PhoneField/PhoneField.d.ts +2 -2
- package/dist/components/RangeField/RangeField.d.ts +2 -0
- package/dist/components/SearchListField/SearchListField.d.ts +9 -0
- package/dist/components/SyTextArea/SyTextArea.d.ts +2 -0
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +14 -9
- package/dist/components/Tables/SyTable/SyTable.d.ts +12 -7
- package/dist/components/Tables/common/SyTablePagination.d.ts +1636 -0
- package/dist/components/Tables/common/TableHeader.d.ts +2 -20
- package/dist/components/Tables/common/filters/SelectFilter.d.ts +5 -5
- package/dist/components/Tables/common/filters/getFilterComponent.d.ts +1 -0
- package/dist/components/Tables/common/filters/locales.d.ts +4 -0
- package/dist/components/Tables/common/filters/logics/date.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/number.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/period.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/select.d.ts +1 -0
- package/dist/components/Tables/common/filters/logics/text.d.ts +1 -0
- package/dist/components/Tables/common/locales.d.ts +21 -0
- package/dist/components/Tables/common/organizeColumns/OrganizeColumns.d.ts +267 -0
- package/dist/components/Tables/common/organizeColumns/sortHeaders.d.ts +2 -0
- package/dist/components/Tables/common/tableFilterUtils.d.ts +1 -0
- package/dist/components/Tables/common/tableStorageUtils.d.ts +41 -1
- package/dist/components/Tables/common/tableUtils.d.ts +42 -5
- package/dist/components/Tables/common/types.d.ts +19 -8
- package/dist/components/Tables/common/usePagination.d.ts +22 -0
- package/dist/components/Tables/common/useTableCheckbox.d.ts +20 -0
- package/dist/components/Tables/common/useTableHeaders.d.ts +76 -0
- package/dist/components/Tables/common/useTableItems.d.ts +24 -0
- package/dist/components/Tables/common/useTableOptions.d.ts +18 -0
- package/dist/components/ToolbarContainer/ToolbarContainer.d.ts +11 -0
- package/dist/components/UserMenuBtn/UserMenuBtn.d.ts +9 -2
- package/dist/components/index.d.ts +8 -6
- package/dist/design-system-v3.js +58 -56
- package/dist/design-system-v3.umd.cjs +22 -22
- package/dist/main-Cx8qG7YR.js +16344 -0
- package/dist/stories/Accessibilite/Vuetify/VuetifyItems.d.ts +14 -2
- package/dist/stories/DesignTokens/StylesTypographiques.stories.new.d.ts +8 -0
- package/dist/stories/DesignTokens/TypographyDisplay.d.ts +28 -0
- package/dist/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/common/imgs/accessibility-svgrepo-com.svg +4 -0
- package/src/components/Accordion/Accessibilite/AccessibilityGuide.mdx +249 -0
- package/src/components/Accordion/Accordion.vue +48 -76
- package/src/components/Accordion/composables/__tests__/useAccordionGroupCommunication.spec.ts +146 -0
- package/src/components/Accordion/composables/__tests__/useAccordionKeyboardNavigation.spec.ts +209 -0
- package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +144 -0
- package/src/components/Accordion/composables/useAccordionGroupCommunication.ts +52 -0
- package/src/components/Accordion/composables/useAccordionKeyboardNavigation.ts +111 -0
- package/src/components/Accordion/composables/useAccordionState.ts +59 -0
- package/src/components/Accordion/tests/__snapshots__/accordion.spec.ts.snap +3 -0
- package/src/components/Customs/SyCheckbox/Accessibilite.mdx +303 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.mdx +50 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +630 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +326 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +201 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.stories.ts +1 -0
- package/src/components/Customs/SyInputSelect/SyInputSelect.vue +8 -1
- package/src/components/Customs/SySelect/SySelect.stories.ts +160 -0
- package/src/components/Customs/SySelect/SySelect.vue +291 -32
- package/src/components/Customs/SySelect/tests/SySelect.spec.ts +230 -0
- package/src/components/Customs/SyTextField/SyTextField.stories.ts +3 -2
- package/src/components/Customs/SyTextField/SyTextField.vue +19 -8
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.stories.ts +241 -31
- package/src/components/DatePicker/ComplexDatePicker/ComplexDatePicker.vue +305 -57
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.events.spec.ts +161 -0
- package/src/components/DatePicker/ComplexDatePicker/tests/ComplexDatePicker.spec.ts +4 -2
- package/src/components/DatePicker/DatePicker/DatePicker.stories.ts +259 -137
- package/src/components/DatePicker/DatePicker/DatePicker.vue +153 -25
- package/src/components/DatePicker/DatePicker/tests/DatePicker.events.spec.ts +189 -0
- package/src/components/DatePicker/DatePicker/{DatePicker.spec.ts → tests/DatePicker.spec.ts} +1 -15
- package/src/components/DatePicker/DateTextInput/DateRange.stories.ts +24 -14
- package/src/components/DatePicker/DateTextInput/DateTextInput.events.spec.ts +148 -0
- package/src/components/DatePicker/DateTextInput/DateTextInput.spec.ts +3 -1
- package/src/components/DatePicker/DateTextInput/DateTextInput.vue +200 -5
- package/src/components/DatePicker/DateTextInput/NoCalendar.stories.ts +241 -31
- package/src/components/DatePicker/composables/index.ts +2 -0
- package/src/components/DatePicker/composables/tests/useDateAutoClamp.spec.ts +190 -0
- package/src/components/DatePicker/composables/tests/useInputBlurHandler.spec.ts +182 -4
- package/src/components/DatePicker/composables/tests/useMonthButtonCustomization.spec.ts +105 -80
- package/src/components/DatePicker/composables/useAsteriskDisplay.ts +31 -0
- package/src/components/DatePicker/composables/useDateAutoClamp.ts +136 -0
- package/src/components/DatePicker/composables/useDateRangeInput.ts +21 -18
- package/src/components/DatePicker/composables/useDisplayedDateString.ts +13 -1
- package/src/components/DatePicker/composables/useInputBlurHandler.ts +84 -20
- package/src/components/DatePicker/composables/useMonthButtonCustomization.ts +149 -51
- package/src/components/DiacriticPicker/DiacriticPicker.stories.ts +10 -0
- package/src/components/ErrorPage/Accessibilite.stories.ts +8 -0
- package/src/components/ErrorPage/ErrorPage.vue +12 -6
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +4 -4
- package/src/components/NirField/NirField.mdx +22 -9
- package/src/components/NirField/NirField.stories.ts +26 -2
- package/src/components/NirField/NirField.vue +209 -22
- package/src/components/NirField/nirValidation.ts +17 -3
- package/src/components/NirField/tests/NirField.spec.ts +2 -2
- package/src/components/NotFoundPage/Accessibilite.stories.ts +8 -0
- package/src/components/NotFoundPage/NotFoundPage.vue +2 -1
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +8 -6
- package/src/components/PaginatedTable/PaginatedTable.mdx +2 -0
- package/src/components/PasswordField/PasswordField.stories.ts +4 -0
- package/src/components/PasswordField/PasswordField.vue +3 -0
- package/src/components/PeriodField/PeriodField.vue +2 -0
- package/src/components/PhoneField/PhoneField.stories.ts +15 -15
- package/src/components/PhoneField/PhoneField.vue +1 -1
- package/src/components/RangeField/RangeField.stories.ts +9 -0
- package/src/components/RangeField/RangeField.vue +4 -0
- package/src/components/RangeField/tests/__snapshots__/RangeField.spec.ts.snap +12 -0
- package/src/components/SearchListField/SearchListField.vue +5 -0
- package/src/components/SyTextArea/SyTextArea.vue +3 -0
- package/src/components/SyTextArea/tests/SyTextArea.spec.ts +0 -1
- package/src/components/Tables/SyServerTable/FilterRules.stories.ts +632 -15
- package/src/components/Tables/SyServerTable/SyServerTable.mdx +15 -5
- package/src/components/Tables/SyServerTable/SyServerTable.stories.ts +2844 -1377
- package/src/components/Tables/SyServerTable/SyServerTable.vue +155 -66
- package/src/components/Tables/SyServerTable/tests/SyServerTable.spec.ts +256 -4
- package/src/components/Tables/SyTable/FilterRules.stories.ts +183 -0
- package/src/components/Tables/SyTable/SyTable.mdx +14 -4
- package/src/components/Tables/SyTable/SyTable.stories.ts +1265 -477
- package/src/components/Tables/SyTable/SyTable.vue +152 -72
- package/src/components/Tables/SyTable/tests/SyTable.spec.ts +366 -4
- package/src/components/Tables/common/SyTableFilter.vue +3 -56
- package/src/components/Tables/common/SyTablePagination.vue +375 -0
- package/src/components/Tables/common/TableHeader.vue +10 -26
- package/src/components/Tables/common/filters/SelectFilter.vue +131 -22
- package/src/components/Tables/common/filters/getFilterComponent.ts +54 -0
- package/src/components/Tables/common/filters/locales.ts +4 -0
- package/src/components/Tables/common/filters/logics/date.ts +12 -0
- package/src/components/Tables/common/filters/logics/number.ts +48 -0
- package/src/components/Tables/common/filters/logics/period.ts +25 -0
- package/src/components/Tables/common/filters/logics/select.ts +27 -0
- package/src/components/Tables/common/filters/logics/tests/TextFilterLogic.spec.ts +177 -0
- package/src/components/Tables/common/filters/logics/text.ts +62 -0
- package/src/components/Tables/common/filters/tests/TextFilter.spec.ts +11 -11
- package/src/components/Tables/common/locales.ts +24 -0
- package/src/components/Tables/common/organizeColumns/OrganizeColumns.vue +269 -0
- package/src/components/Tables/common/organizeColumns/sortHeaders.ts +9 -0
- package/src/components/Tables/common/tableFilterUtils.ts +43 -295
- package/src/components/Tables/common/tableStorageUtils.ts +27 -2
- package/src/components/Tables/common/tableStyles.scss +26 -0
- package/src/components/Tables/common/tableUtils.ts +3 -16
- package/src/components/Tables/common/tests/SyTablePagination.spec.ts +170 -0
- package/src/components/Tables/common/tests/filterByRange.spec.ts +215 -0
- package/src/components/Tables/common/tests/tableFilterUtils.spec.ts +0 -14
- package/src/components/Tables/common/tests/tableUtils.spec.ts +7 -51
- package/src/components/Tables/common/types.ts +17 -6
- package/src/components/Tables/common/usePagination.ts +83 -0
- package/src/components/Tables/common/useTableCheckbox.ts +58 -0
- package/src/components/Tables/common/useTableHeaders.ts +88 -0
- package/src/components/Tables/common/useTableItems.ts +87 -0
- package/src/components/Tables/common/useTableOptions.ts +93 -0
- package/src/components/ToolbarContainer/ToolbarContainer.mdx +16 -0
- package/src/components/ToolbarContainer/ToolbarContainer.stories.ts +675 -0
- package/src/components/ToolbarContainer/ToolbarContainer.vue +128 -0
- package/src/components/ToolbarContainer/tests/ToolbarContainer.spec.ts +156 -0
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +74 -0
- package/src/components/UserMenuBtn/UserMenuBtn.vue +19 -17
- package/src/components/index.ts +8 -6
- package/src/stories/Accessibilite/Aculturation/AuditDesignSystem.mdx +293 -20
- package/src/stories/Accessibilite/Aculturation/SensibilisationAccessibilite.mdx +448 -54
- package/src/stories/Accessibilite/Audit/RGAA.mdx +231 -23
- package/src/stories/Accessibilite/Avancement/Avancement.mdx +591 -7
- package/src/stories/Accessibilite/Avancement/Avancement.stories.ts +139 -38
- package/src/stories/Accessibilite/Introduction.mdx +258 -18
- package/src/stories/Accessibilite/KitDePreAudit/Echantillonnage.mdx +221 -31
- package/src/stories/Accessibilite/KitDePreAudit/Introduction.mdx +204 -22
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Introduction.mdx +537 -24
- package/src/stories/Accessibilite/KitDePreAudit/Outils/LecteursDEcran.mdx +577 -70
- package/src/stories/Accessibilite/KitDePreAudit/Outils/Tanaguru.mdx +382 -31
- package/src/stories/Accessibilite/KitDePreAudit/Preaudit.mdx +419 -81
- package/src/stories/Accessibilite/Vuetify/Vuetify.mdx +132 -6
- package/src/stories/Accessibilite/Vuetify/Vuetify.stories.ts +370 -146
- package/src/stories/Accessibilite/Vuetify/VuetifyItems.ts +35 -57
- package/src/stories/Demarrer/Accueil.stories.ts +20 -5
- package/src/stories/DesignTokens/StylesTypographiques.mdx +10 -9
- package/src/stories/DesignTokens/StylesTypographiques.stories.new.ts +397 -0
- package/src/stories/DesignTokens/StylesTypographiques.stories.ts +397 -0
- package/src/stories/DesignTokens/TypographyDisplay.vue +155 -0
- package/src/stories/DesignTokens/vue-shims.d.ts +6 -0
- package/src/stories/GuideDuDev/LesBreackingChanges.mdx +0 -2
- package/src/stories/GuideDuDev/MigrationDepuisBridge.mdx +1 -1
- package/src/stories/GuideDuDev/MigrationDepuisVue2.mdx +1 -1
- package/src/stories/GuideDuDev/PortailAgent.mdx +10 -0
- package/src/stories/GuideDuDev/PortailAgent.stories.ts +506 -0
- package/src/stories/GuideDuDev/Theme.mdx +41 -0
- package/dist/SelectFilter-Cj-GW2Cc.js +0 -97
- package/dist/main-WDqeoGM-.js +0 -14788
- package/src/components/PaginatedTable/tests/__snapshots__/PaginatedTable.spec.ts.snap +0 -886
- package/src/components/Tables/SyServerTable/tests/__snapshots__/SyServerTable.spec.ts.snap +0 -521
- package/src/components/Tables/SyTable/tests/__snapshots__/SyTable.spec.ts.snap +0 -521
- package/src/stories/DesignTokens/ThemePA.mdx +0 -35
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { mount } from '@vue/test-utils'
|
|
2
|
+
import { describe, it, expect, beforeEach } from 'vitest'
|
|
3
|
+
import { vuetify } from '@tests/unit/setup'
|
|
4
|
+
import { nextTick } from 'vue'
|
|
5
|
+
import ComplexDatePicker from '../ComplexDatePicker.vue'
|
|
6
|
+
|
|
7
|
+
describe('ComplexDatePicker.vue - Events', () => {
|
|
8
|
+
let wrapper
|
|
9
|
+
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
wrapper = mount(ComplexDatePicker, {
|
|
12
|
+
global: {
|
|
13
|
+
plugins: [vuetify],
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
modelValue: '',
|
|
17
|
+
format: 'DD/MM/YYYY',
|
|
18
|
+
},
|
|
19
|
+
})
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
it('émet update:modelValue lors de la saisie d\'une date valide', async () => {
|
|
23
|
+
const input = wrapper.find('input')
|
|
24
|
+
await input.setValue('01/01/2023')
|
|
25
|
+
await input.trigger('blur')
|
|
26
|
+
|
|
27
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
28
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual(['01/01/2023'])
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
it('met à jour la valeur interne lors de la sélection d\'une date', async () => {
|
|
32
|
+
// Ouvrir le calendrier
|
|
33
|
+
wrapper.vm.isDatePickerVisible = true
|
|
34
|
+
await nextTick()
|
|
35
|
+
|
|
36
|
+
// Simuler une saisie directe dans l'input
|
|
37
|
+
const input = wrapper.find('input')
|
|
38
|
+
await input.setValue('01/01/2023')
|
|
39
|
+
await input.trigger('blur')
|
|
40
|
+
await nextTick()
|
|
41
|
+
|
|
42
|
+
// Vérifier que l'événement update:modelValue est émis
|
|
43
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
it('émet focus lors du focus sur l\'input', async () => {
|
|
47
|
+
const input = wrapper.find('input')
|
|
48
|
+
await input.trigger('focus')
|
|
49
|
+
|
|
50
|
+
expect(wrapper.emitted('focus')).toBeTruthy()
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
it('émet blur lors de la perte de focus', async () => {
|
|
54
|
+
const input = wrapper.find('input')
|
|
55
|
+
await input.trigger('focus')
|
|
56
|
+
await input.trigger('blur')
|
|
57
|
+
|
|
58
|
+
expect(wrapper.emitted('blur')).toBeTruthy()
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
it('met à jour la valeur de l\'input lors de la saisie', async () => {
|
|
62
|
+
const input = wrapper.find('input')
|
|
63
|
+
await input.setValue('01/01')
|
|
64
|
+
await nextTick()
|
|
65
|
+
|
|
66
|
+
// Vérifier que la valeur est mise à jour dans l'input
|
|
67
|
+
expect(input.element.value).toContain('01/01')
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
it('gère la visibilité du calendrier', async () => {
|
|
71
|
+
// Ouvrir le calendrier
|
|
72
|
+
wrapper.vm.isDatePickerVisible = true
|
|
73
|
+
await nextTick()
|
|
74
|
+
|
|
75
|
+
// Vérifier que le calendrier est visible
|
|
76
|
+
expect(wrapper.vm.isDatePickerVisible).toBe(true)
|
|
77
|
+
|
|
78
|
+
// Fermer le calendrier
|
|
79
|
+
wrapper.vm.isDatePickerVisible = false
|
|
80
|
+
await nextTick()
|
|
81
|
+
|
|
82
|
+
// Vérifier que le calendrier est fermé
|
|
83
|
+
expect(wrapper.vm.isDatePickerVisible).toBe(false)
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
it('met à jour la valeur interne lors de la sélection d\'une date', async () => {
|
|
87
|
+
// Simuler une saisie directe dans l'input
|
|
88
|
+
const input = wrapper.find('input')
|
|
89
|
+
await input.setValue('01/01/2023')
|
|
90
|
+
await input.trigger('blur')
|
|
91
|
+
await nextTick()
|
|
92
|
+
|
|
93
|
+
// Vérifier que la valeur interne est mise à jour
|
|
94
|
+
expect(input.element.value).toContain('01/01/2023')
|
|
95
|
+
|
|
96
|
+
// Vérifier que l'événement update:modelValue est émis
|
|
97
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
it('synchronise textInputValue et selectedDates', async () => {
|
|
101
|
+
const input = wrapper.find('input')
|
|
102
|
+
await input.setValue('01/01/2023')
|
|
103
|
+
await input.trigger('blur')
|
|
104
|
+
await nextTick()
|
|
105
|
+
|
|
106
|
+
// Vérifier que selectedDates est mis à jour
|
|
107
|
+
expect(wrapper.vm.selectedDates).not.toBeNull()
|
|
108
|
+
const selectedDate = wrapper.vm.selectedDates
|
|
109
|
+
expect(selectedDate instanceof Date).toBe(true)
|
|
110
|
+
expect(selectedDate.getFullYear()).toBe(2023)
|
|
111
|
+
expect(selectedDate.getMonth()).toBe(0) // Janvier (0-indexed)
|
|
112
|
+
expect(selectedDate.getDate()).toBe(1)
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
it('accepte une plage de dates en entrée', async () => {
|
|
116
|
+
const wrapperWithRange = mount(ComplexDatePicker, {
|
|
117
|
+
global: {
|
|
118
|
+
plugins: [vuetify],
|
|
119
|
+
},
|
|
120
|
+
props: {
|
|
121
|
+
modelValue: ['01/01/2023', '05/01/2023'],
|
|
122
|
+
format: 'DD/MM/YYYY',
|
|
123
|
+
displayRange: true,
|
|
124
|
+
},
|
|
125
|
+
})
|
|
126
|
+
await nextTick()
|
|
127
|
+
|
|
128
|
+
// Vérifier que l'input affiche au moins la première date
|
|
129
|
+
const input = wrapperWithRange.find('input')
|
|
130
|
+
expect(input.element.value).toContain('01/01/2023')
|
|
131
|
+
|
|
132
|
+
// Vérifier que la propriété displayRange est bien prise en compte
|
|
133
|
+
expect(wrapperWithRange.props('displayRange')).toBe(true)
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
it('valide les dates selon les règles personnalisées', async () => {
|
|
137
|
+
const customRule = {
|
|
138
|
+
type: 'isDateValid',
|
|
139
|
+
options: {},
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const wrapperWithRules = mount(ComplexDatePicker, {
|
|
143
|
+
global: {
|
|
144
|
+
plugins: [vuetify],
|
|
145
|
+
},
|
|
146
|
+
props: {
|
|
147
|
+
modelValue: '',
|
|
148
|
+
format: 'DD/MM/YYYY',
|
|
149
|
+
customRules: [customRule],
|
|
150
|
+
required: true,
|
|
151
|
+
},
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
// Valider sans sélectionner de date
|
|
155
|
+
await wrapperWithRules.vm.validateOnSubmit()
|
|
156
|
+
await nextTick()
|
|
157
|
+
|
|
158
|
+
// Vérifier qu'une erreur de validation est affichée
|
|
159
|
+
expect(wrapperWithRules.vm.errorMessages.length).toBeGreaterThan(0)
|
|
160
|
+
})
|
|
161
|
+
})
|
|
@@ -242,8 +242,10 @@ describe('ComplexDatePicker', () => {
|
|
|
242
242
|
await wrapper.vm.updateDisplayFormattedDate()
|
|
243
243
|
await flushPromises()
|
|
244
244
|
|
|
245
|
-
// Vérifier que
|
|
246
|
-
|
|
245
|
+
// Vérifier que displayFormattedDate est mis à jour
|
|
246
|
+
// Note: L'événement date-selected n'est émis que dans certaines conditions
|
|
247
|
+
// qui ne sont pas remplies dans ce test
|
|
248
|
+
expect(wrapper.vm.displayFormattedDate).not.toBe('')
|
|
247
249
|
})
|
|
248
250
|
|
|
249
251
|
it('devrait exposer les méthodes nécessaires via defineExpose', () => {
|
|
@@ -3,6 +3,7 @@ import DatePicker from './DatePicker.vue'
|
|
|
3
3
|
import SyAlert from '@/components/SyAlert/SyAlert.vue'
|
|
4
4
|
import { ref, watch, computed } from 'vue'
|
|
5
5
|
import { useDateFormat } from '@/composables/date/useDateFormatDayjs'
|
|
6
|
+
import { fn } from '@storybook/test'
|
|
6
7
|
|
|
7
8
|
const meta = {
|
|
8
9
|
title: 'Composants/Formulaires/DatePicker/DatePicker',
|
|
@@ -15,6 +16,7 @@ const meta = {
|
|
|
15
16
|
parameters: {
|
|
16
17
|
layout: 'fullscreen',
|
|
17
18
|
controls: { exclude: ['modelValue'] },
|
|
19
|
+
actions: { argTypesRegex: '^on.*' },
|
|
18
20
|
},
|
|
19
21
|
argTypes: {
|
|
20
22
|
modelValue: {
|
|
@@ -94,6 +96,14 @@ const meta = {
|
|
|
94
96
|
control: 'object',
|
|
95
97
|
description: 'Période pendant laquelle les dates peuvent être sélectionnées (au format: MM/DD/YYYY)',
|
|
96
98
|
},
|
|
99
|
+
autoClamp: {
|
|
100
|
+
control: 'boolean',
|
|
101
|
+
description: 'Active le clamping automatique des dates',
|
|
102
|
+
},
|
|
103
|
+
displayHolidayDays: {
|
|
104
|
+
control: 'boolean',
|
|
105
|
+
description: 'Affiche les jours fériés',
|
|
106
|
+
},
|
|
97
107
|
},
|
|
98
108
|
} as Meta<typeof DatePicker>
|
|
99
109
|
|
|
@@ -127,19 +137,93 @@ export const Default: Story = {
|
|
|
127
137
|
],
|
|
128
138
|
},
|
|
129
139
|
args: {
|
|
130
|
-
placeholder: 'Sélectionner une date',
|
|
131
|
-
format: 'DD/MM/YYYY',
|
|
132
|
-
isBirthDate: false,
|
|
133
|
-
showWeekNumber: false,
|
|
134
|
-
required: false,
|
|
135
|
-
displayRange: false,
|
|
136
|
-
displayIcon: true,
|
|
137
|
-
displayAppendIcon: false,
|
|
138
|
-
disabled: false,
|
|
139
|
-
noIcon: false,
|
|
140
|
-
noCalendar: false,
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
'placeholder': 'Sélectionner une date',
|
|
141
|
+
'format': 'DD/MM/YYYY',
|
|
142
|
+
'isBirthDate': false,
|
|
143
|
+
'showWeekNumber': false,
|
|
144
|
+
'required': false,
|
|
145
|
+
'displayRange': false,
|
|
146
|
+
'displayIcon': true,
|
|
147
|
+
'displayAppendIcon': false,
|
|
148
|
+
'disabled': false,
|
|
149
|
+
'noIcon': false,
|
|
150
|
+
'noCalendar': false,
|
|
151
|
+
'displayHolidayDays': true,
|
|
152
|
+
'modelValue': '',
|
|
153
|
+
'displayTodayButton': true,
|
|
154
|
+
'onUpdate:modelValue': fn(),
|
|
155
|
+
'onFocus': fn(),
|
|
156
|
+
'onBlur': fn(),
|
|
157
|
+
'onClosed': fn(),
|
|
158
|
+
},
|
|
159
|
+
render: (args) => {
|
|
160
|
+
return {
|
|
161
|
+
components: { DatePicker: DatePicker },
|
|
162
|
+
setup() {
|
|
163
|
+
const value = ref('')
|
|
164
|
+
return { args, value }
|
|
165
|
+
},
|
|
166
|
+
template: `
|
|
167
|
+
<div class="d-flex flex-wrap align-center pa-4">
|
|
168
|
+
<DatePicker v-bind="args" v-model="value"/>
|
|
169
|
+
</div>
|
|
170
|
+
`,
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export const Required: Story = {
|
|
176
|
+
parameters: {
|
|
177
|
+
sourceCode: [
|
|
178
|
+
{
|
|
179
|
+
name: 'Template',
|
|
180
|
+
code: `
|
|
181
|
+
<template>
|
|
182
|
+
<DatePicker
|
|
183
|
+
v-model="date"
|
|
184
|
+
placeholder="Sélectionner une date"
|
|
185
|
+
required
|
|
186
|
+
format="DD/MM/YYYY"
|
|
187
|
+
/>
|
|
188
|
+
<DatePicker
|
|
189
|
+
v-model="date"
|
|
190
|
+
placeholder="Sélectionner une date"
|
|
191
|
+
required
|
|
192
|
+
displayAsterisk
|
|
193
|
+
format="DD/MM/YYYY"
|
|
194
|
+
/>
|
|
195
|
+
</template>
|
|
196
|
+
`,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
name: 'Script',
|
|
200
|
+
code: `
|
|
201
|
+
<script setup lang="ts">
|
|
202
|
+
import { DatePicker } from '@cnamts/synapse'
|
|
203
|
+
</script>
|
|
204
|
+
`,
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
args: {
|
|
209
|
+
'placeholder': 'Sélectionner une date',
|
|
210
|
+
'format': 'DD/MM/YYYY',
|
|
211
|
+
'isBirthDate': false,
|
|
212
|
+
'showWeekNumber': false,
|
|
213
|
+
'required': true,
|
|
214
|
+
'displayRange': false,
|
|
215
|
+
'displayIcon': true,
|
|
216
|
+
'displayAppendIcon': false,
|
|
217
|
+
'disabled': false,
|
|
218
|
+
'noIcon': false,
|
|
219
|
+
'noCalendar': false,
|
|
220
|
+
'displayHolidayDays': true,
|
|
221
|
+
'modelValue': '',
|
|
222
|
+
'displayTodayButton': true,
|
|
223
|
+
'onUpdate:modelValue': fn(),
|
|
224
|
+
'onFocus': fn(),
|
|
225
|
+
'onBlur': fn(),
|
|
226
|
+
'onClosed': fn(),
|
|
143
227
|
},
|
|
144
228
|
render: (args) => {
|
|
145
229
|
return {
|
|
@@ -150,7 +234,10 @@ export const Default: Story = {
|
|
|
150
234
|
},
|
|
151
235
|
template: `
|
|
152
236
|
<div class="d-flex flex-wrap align-center pa-4">
|
|
237
|
+
<h4 class="mb-4">Sans astérisque :</h4>
|
|
153
238
|
<DatePicker v-bind="args" v-model="value"/>
|
|
239
|
+
<h4 class="mb-4">Avec astérisque :</h4>
|
|
240
|
+
<DatePicker v-bind="args" v-model="value" displayAsterisk/>
|
|
154
241
|
</div>
|
|
155
242
|
`,
|
|
156
243
|
}
|
|
@@ -187,19 +274,23 @@ export const DateRange: Story = {
|
|
|
187
274
|
],
|
|
188
275
|
},
|
|
189
276
|
args: {
|
|
190
|
-
placeholder: 'Sélectionner une période',
|
|
191
|
-
format: 'DD/MM/YYYY',
|
|
192
|
-
dateFormatReturn: '',
|
|
193
|
-
isBirthDate: false,
|
|
194
|
-
showWeekNumber: false,
|
|
195
|
-
required: false,
|
|
196
|
-
displayRange: true,
|
|
197
|
-
displayIcon: true,
|
|
198
|
-
displayAppendIcon: false,
|
|
199
|
-
disabled: false,
|
|
200
|
-
noIcon: false,
|
|
201
|
-
noCalendar: false,
|
|
202
|
-
modelValue: ['', ''],
|
|
277
|
+
'placeholder': 'Sélectionner une période',
|
|
278
|
+
'format': 'DD/MM/YYYY',
|
|
279
|
+
'dateFormatReturn': '',
|
|
280
|
+
'isBirthDate': false,
|
|
281
|
+
'showWeekNumber': false,
|
|
282
|
+
'required': false,
|
|
283
|
+
'displayRange': true,
|
|
284
|
+
'displayIcon': true,
|
|
285
|
+
'displayAppendIcon': false,
|
|
286
|
+
'disabled': false,
|
|
287
|
+
'noIcon': false,
|
|
288
|
+
'noCalendar': false,
|
|
289
|
+
'modelValue': ['', ''],
|
|
290
|
+
'onUpdate:modelValue': fn(),
|
|
291
|
+
'onFocus': fn(),
|
|
292
|
+
'onBlur': fn(),
|
|
293
|
+
'onClosed': fn(),
|
|
203
294
|
},
|
|
204
295
|
render: (args) => {
|
|
205
296
|
return {
|
|
@@ -265,23 +356,27 @@ export const WithCustomPeriod: Story = {
|
|
|
265
356
|
],
|
|
266
357
|
},
|
|
267
358
|
args: {
|
|
268
|
-
placeholder: 'Sélectionner une date',
|
|
269
|
-
format: 'DD/MM/YYYY',
|
|
270
|
-
isBirthDate: false,
|
|
271
|
-
showWeekNumber: false,
|
|
272
|
-
required: false,
|
|
273
|
-
displayRange: false,
|
|
274
|
-
displayIcon: true,
|
|
275
|
-
displayAppendIcon: false,
|
|
276
|
-
disabled: false,
|
|
277
|
-
noIcon: false,
|
|
278
|
-
noCalendar: false,
|
|
279
|
-
modelValue: '',
|
|
280
|
-
|
|
359
|
+
'placeholder': 'Sélectionner une date',
|
|
360
|
+
'format': 'DD/MM/YYYY',
|
|
361
|
+
'isBirthDate': false,
|
|
362
|
+
'showWeekNumber': false,
|
|
363
|
+
'required': false,
|
|
364
|
+
'displayRange': false,
|
|
365
|
+
'displayIcon': true,
|
|
366
|
+
'displayAppendIcon': false,
|
|
367
|
+
'disabled': false,
|
|
368
|
+
'noIcon': false,
|
|
369
|
+
'noCalendar': false,
|
|
370
|
+
'modelValue': '',
|
|
371
|
+
'onUpdate:modelValue': fn(),
|
|
372
|
+
'onFocus': fn(),
|
|
373
|
+
'onBlur': fn(),
|
|
374
|
+
'onClosed': fn(),
|
|
375
|
+
'period': {
|
|
281
376
|
min: '01/01/1995',
|
|
282
377
|
max: '12/31/2005',
|
|
283
378
|
},
|
|
284
|
-
customRules: [
|
|
379
|
+
'customRules': [
|
|
285
380
|
{
|
|
286
381
|
type: 'notBeforeDate',
|
|
287
382
|
options: {
|
|
@@ -311,9 +406,8 @@ export const WithCustomPeriod: Story = {
|
|
|
311
406
|
<div style="margin-bottom: 20px; padding: 15px;">
|
|
312
407
|
<SyAlert variant="tonal" :closable="false">
|
|
313
408
|
<template #default>
|
|
314
|
-
<
|
|
315
|
-
<p>
|
|
316
|
-
<p>La propriété <strong>period</strong> limite les dates sélectionnables dans le calendrier, mais les règles personnalisées sont nécessaires pour la validation des saisies manuelles.</p>
|
|
409
|
+
<p>La propriété <strong>period</strong> limite les dates sélectionnables dans le calendrier</p>
|
|
410
|
+
<p>Ouvrez les années dans le calendrier pour voir les dates limites</p>
|
|
317
411
|
</template>
|
|
318
412
|
</SyAlert>
|
|
319
413
|
</div>
|
|
@@ -355,19 +449,23 @@ export const WithAppendIcon: Story = {
|
|
|
355
449
|
],
|
|
356
450
|
},
|
|
357
451
|
args: {
|
|
358
|
-
placeholder: 'Sélectionner une date',
|
|
359
|
-
format: 'DD/MM/YYYY',
|
|
360
|
-
dateFormatReturn: '',
|
|
361
|
-
isBirthDate: false,
|
|
362
|
-
showWeekNumber: false,
|
|
363
|
-
required: false,
|
|
364
|
-
displayRange: false,
|
|
365
|
-
displayIcon: true,
|
|
366
|
-
displayAppendIcon: true,
|
|
367
|
-
disabled: false,
|
|
368
|
-
noIcon: false,
|
|
369
|
-
noCalendar: false,
|
|
370
|
-
modelValue: '',
|
|
452
|
+
'placeholder': 'Sélectionner une date',
|
|
453
|
+
'format': 'DD/MM/YYYY',
|
|
454
|
+
'dateFormatReturn': '',
|
|
455
|
+
'isBirthDate': false,
|
|
456
|
+
'showWeekNumber': false,
|
|
457
|
+
'required': false,
|
|
458
|
+
'displayRange': false,
|
|
459
|
+
'displayIcon': true,
|
|
460
|
+
'displayAppendIcon': true,
|
|
461
|
+
'disabled': false,
|
|
462
|
+
'noIcon': false,
|
|
463
|
+
'noCalendar': false,
|
|
464
|
+
'modelValue': '',
|
|
465
|
+
'onUpdate:modelValue': fn(),
|
|
466
|
+
'onFocus': fn(),
|
|
467
|
+
'onBlur': fn(),
|
|
468
|
+
'onClosed': fn(),
|
|
371
469
|
},
|
|
372
470
|
render: (args) => {
|
|
373
471
|
return {
|
|
@@ -415,19 +513,23 @@ export const WithoutIcon: Story = {
|
|
|
415
513
|
],
|
|
416
514
|
},
|
|
417
515
|
args: {
|
|
418
|
-
placeholder: 'Sélectionner une date',
|
|
419
|
-
format: 'DD/MM/YYYY',
|
|
420
|
-
dateFormatReturn: '',
|
|
421
|
-
isBirthDate: false,
|
|
422
|
-
showWeekNumber: false,
|
|
423
|
-
required: false,
|
|
424
|
-
displayRange: false,
|
|
425
|
-
displayIcon: false,
|
|
426
|
-
displayAppendIcon: false,
|
|
427
|
-
disabled: false,
|
|
428
|
-
noIcon: false,
|
|
429
|
-
noCalendar: false,
|
|
430
|
-
modelValue: '',
|
|
516
|
+
'placeholder': 'Sélectionner une date',
|
|
517
|
+
'format': 'DD/MM/YYYY',
|
|
518
|
+
'dateFormatReturn': '',
|
|
519
|
+
'isBirthDate': false,
|
|
520
|
+
'showWeekNumber': false,
|
|
521
|
+
'required': false,
|
|
522
|
+
'displayRange': false,
|
|
523
|
+
'displayIcon': false,
|
|
524
|
+
'displayAppendIcon': false,
|
|
525
|
+
'disabled': false,
|
|
526
|
+
'noIcon': false,
|
|
527
|
+
'noCalendar': false,
|
|
528
|
+
'modelValue': '',
|
|
529
|
+
'onUpdate:modelValue': fn(),
|
|
530
|
+
'onFocus': fn(),
|
|
531
|
+
'onBlur': fn(),
|
|
532
|
+
'onClosed': fn(),
|
|
431
533
|
},
|
|
432
534
|
render: (args) => {
|
|
433
535
|
return {
|
|
@@ -475,19 +577,23 @@ export const BirthDate: Story = {
|
|
|
475
577
|
],
|
|
476
578
|
},
|
|
477
579
|
args: {
|
|
478
|
-
placeholder: 'Date de naissance',
|
|
479
|
-
format: 'DD/MM/YYYY',
|
|
480
|
-
dateFormatReturn: '',
|
|
481
|
-
isBirthDate: true,
|
|
482
|
-
showWeekNumber: false,
|
|
483
|
-
required: false,
|
|
484
|
-
displayRange: false,
|
|
485
|
-
displayIcon: true,
|
|
486
|
-
displayAppendIcon: false,
|
|
487
|
-
disabled: false,
|
|
488
|
-
noIcon: false,
|
|
489
|
-
noCalendar: false,
|
|
490
|
-
modelValue: '',
|
|
580
|
+
'placeholder': 'Date de naissance',
|
|
581
|
+
'format': 'DD/MM/YYYY',
|
|
582
|
+
'dateFormatReturn': '',
|
|
583
|
+
'isBirthDate': true,
|
|
584
|
+
'showWeekNumber': false,
|
|
585
|
+
'required': false,
|
|
586
|
+
'displayRange': false,
|
|
587
|
+
'displayIcon': true,
|
|
588
|
+
'displayAppendIcon': false,
|
|
589
|
+
'disabled': false,
|
|
590
|
+
'noIcon': false,
|
|
591
|
+
'noCalendar': false,
|
|
592
|
+
'modelValue': '',
|
|
593
|
+
'onUpdate:modelValue': fn(),
|
|
594
|
+
'onFocus': fn(),
|
|
595
|
+
'onBlur': fn(),
|
|
596
|
+
'onClosed': fn(),
|
|
491
597
|
},
|
|
492
598
|
render: (args) => {
|
|
493
599
|
return {
|
|
@@ -536,22 +642,26 @@ export const WithError: Story = {
|
|
|
536
642
|
],
|
|
537
643
|
},
|
|
538
644
|
args: {
|
|
539
|
-
placeholder: 'Sélectionner une date',
|
|
540
|
-
format: 'DD/MM/YYYY',
|
|
541
|
-
dateFormatReturn: '',
|
|
542
|
-
isBirthDate: false,
|
|
543
|
-
showWeekNumber: false,
|
|
544
|
-
required: false,
|
|
545
|
-
displayRange: false,
|
|
546
|
-
displayIcon: true,
|
|
547
|
-
displayAppendIcon: false,
|
|
548
|
-
disabled: false,
|
|
549
|
-
noIcon: false,
|
|
550
|
-
noCalendar: false,
|
|
551
|
-
modelValue: '01/01/2100',
|
|
552
|
-
customRules: [
|
|
645
|
+
'placeholder': 'Sélectionner une date',
|
|
646
|
+
'format': 'DD/MM/YYYY',
|
|
647
|
+
'dateFormatReturn': '',
|
|
648
|
+
'isBirthDate': false,
|
|
649
|
+
'showWeekNumber': false,
|
|
650
|
+
'required': false,
|
|
651
|
+
'displayRange': false,
|
|
652
|
+
'displayIcon': true,
|
|
653
|
+
'displayAppendIcon': false,
|
|
654
|
+
'disabled': false,
|
|
655
|
+
'noIcon': false,
|
|
656
|
+
'noCalendar': false,
|
|
657
|
+
'modelValue': '01/01/2100',
|
|
658
|
+
'customRules': [
|
|
553
659
|
{ type: 'notAfterToday', options: { message: 'La date ne peut pas être après aujourd\'hui' } },
|
|
554
660
|
],
|
|
661
|
+
'onUpdate:modelValue': fn(),
|
|
662
|
+
'onFocus': fn(),
|
|
663
|
+
'onBlur': fn(),
|
|
664
|
+
'onClosed': fn(),
|
|
555
665
|
},
|
|
556
666
|
render: (args) => {
|
|
557
667
|
return {
|
|
@@ -604,20 +714,20 @@ export const WithWarning: Story = {
|
|
|
604
714
|
],
|
|
605
715
|
},
|
|
606
716
|
args: {
|
|
607
|
-
placeholder: 'Date avec avertissement',
|
|
608
|
-
format: 'DD/MM/YYYY',
|
|
609
|
-
dateFormatReturn: '',
|
|
610
|
-
isBirthDate: false,
|
|
611
|
-
showWeekNumber: false,
|
|
612
|
-
required: false,
|
|
613
|
-
displayRange: false,
|
|
614
|
-
displayIcon: true,
|
|
615
|
-
displayAppendIcon: false,
|
|
616
|
-
disabled: false,
|
|
617
|
-
noIcon: false,
|
|
618
|
-
noCalendar: false,
|
|
619
|
-
modelValue: '20/12/2023',
|
|
620
|
-
customWarningRules: [
|
|
717
|
+
'placeholder': 'Date avec avertissement',
|
|
718
|
+
'format': 'DD/MM/YYYY',
|
|
719
|
+
'dateFormatReturn': '',
|
|
720
|
+
'isBirthDate': false,
|
|
721
|
+
'showWeekNumber': false,
|
|
722
|
+
'required': false,
|
|
723
|
+
'displayRange': false,
|
|
724
|
+
'displayIcon': true,
|
|
725
|
+
'displayAppendIcon': false,
|
|
726
|
+
'disabled': false,
|
|
727
|
+
'noIcon': false,
|
|
728
|
+
'noCalendar': false,
|
|
729
|
+
'modelValue': '20/12/2023',
|
|
730
|
+
'customWarningRules': [
|
|
621
731
|
{
|
|
622
732
|
type: 'notBeforeDate', options: {
|
|
623
733
|
warningMessage: 'Attention : la date est antérieure à la date de référence',
|
|
@@ -626,6 +736,10 @@ export const WithWarning: Story = {
|
|
|
626
736
|
},
|
|
627
737
|
},
|
|
628
738
|
],
|
|
739
|
+
'onUpdate:modelValue': fn(),
|
|
740
|
+
'onFocus': fn(),
|
|
741
|
+
'onBlur': fn(),
|
|
742
|
+
'onClosed': fn(),
|
|
629
743
|
},
|
|
630
744
|
render: (args) => {
|
|
631
745
|
return {
|
|
@@ -675,22 +789,26 @@ export const WithSuccess: Story = {
|
|
|
675
789
|
],
|
|
676
790
|
},
|
|
677
791
|
args: {
|
|
678
|
-
placeholder: 'Date valide',
|
|
679
|
-
format: 'DD/MM/YYYY',
|
|
680
|
-
dateFormatReturn: '',
|
|
681
|
-
isBirthDate: false,
|
|
682
|
-
showWeekNumber: false,
|
|
683
|
-
required: true,
|
|
684
|
-
displayRange: false,
|
|
685
|
-
displayIcon: true,
|
|
686
|
-
displayAppendIcon: false,
|
|
687
|
-
disabled: false,
|
|
688
|
-
noIcon: false,
|
|
689
|
-
noCalendar: false,
|
|
690
|
-
modelValue: '22/01/2024',
|
|
691
|
-
customRules: [
|
|
792
|
+
'placeholder': 'Date valide',
|
|
793
|
+
'format': 'DD/MM/YYYY',
|
|
794
|
+
'dateFormatReturn': '',
|
|
795
|
+
'isBirthDate': false,
|
|
796
|
+
'showWeekNumber': false,
|
|
797
|
+
'required': true,
|
|
798
|
+
'displayRange': false,
|
|
799
|
+
'displayIcon': true,
|
|
800
|
+
'displayAppendIcon': false,
|
|
801
|
+
'disabled': false,
|
|
802
|
+
'noIcon': false,
|
|
803
|
+
'noCalendar': false,
|
|
804
|
+
'modelValue': '22/01/2024',
|
|
805
|
+
'customRules': [
|
|
692
806
|
{ type: 'notWeekend', options: { message: 'La date ne peut pas être un weekend' } },
|
|
693
807
|
],
|
|
808
|
+
'onUpdate:modelValue': fn(),
|
|
809
|
+
'onFocus': fn(),
|
|
810
|
+
'onBlur': fn(),
|
|
811
|
+
'onClosed': fn(),
|
|
694
812
|
},
|
|
695
813
|
render: (args) => {
|
|
696
814
|
return {
|
|
@@ -861,19 +979,23 @@ export const WithDateFormatReturn: Story = {
|
|
|
861
979
|
],
|
|
862
980
|
},
|
|
863
981
|
args: {
|
|
864
|
-
placeholder: 'Sélectionner une date',
|
|
865
|
-
format: 'DD/MM/YYYY',
|
|
866
|
-
dateFormatReturn: '',
|
|
867
|
-
isBirthDate: false,
|
|
868
|
-
showWeekNumber: false,
|
|
869
|
-
required: false,
|
|
870
|
-
displayRange: false,
|
|
871
|
-
displayIcon: true,
|
|
872
|
-
displayAppendIcon: false,
|
|
873
|
-
disabled: false,
|
|
874
|
-
noIcon: false,
|
|
875
|
-
noCalendar: false,
|
|
876
|
-
modelValue: '24/12/2025',
|
|
982
|
+
'placeholder': 'Sélectionner une date',
|
|
983
|
+
'format': 'DD/MM/YYYY',
|
|
984
|
+
'dateFormatReturn': '',
|
|
985
|
+
'isBirthDate': false,
|
|
986
|
+
'showWeekNumber': false,
|
|
987
|
+
'required': false,
|
|
988
|
+
'displayRange': false,
|
|
989
|
+
'displayIcon': true,
|
|
990
|
+
'displayAppendIcon': false,
|
|
991
|
+
'disabled': false,
|
|
992
|
+
'noIcon': false,
|
|
993
|
+
'noCalendar': false,
|
|
994
|
+
'modelValue': '24/12/2025',
|
|
995
|
+
'onUpdate:modelValue': fn(),
|
|
996
|
+
'onFocus': fn(),
|
|
997
|
+
'onBlur': fn(),
|
|
998
|
+
'onClosed': fn(),
|
|
877
999
|
},
|
|
878
1000
|
render: () => {
|
|
879
1001
|
return {
|