@cnamts/synapse 1.0.22 → 1.0.23
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/dist/{DateFilter-B5n-ZkLi.js → DateFilter-Dc-gSGwk.js} +1 -1
- package/dist/{NumberFilter-CtiZ9uj8.js → NumberFilter-vP38Wp6j.js} +1 -1
- package/dist/{PeriodFilter-DzqiMb-b.js → PeriodFilter-Ba1uYUnT.js} +1 -1
- package/dist/{SelectFilter-BOYlF7rX.js → SelectFilter-BioGT6Nn.js} +1 -1
- package/dist/{TextFilter-BOFRNfcX.js → TextFilter-B84dpnoq.js} +1 -1
- package/dist/components/Accordion/Accordion.d.ts +13 -2
- package/dist/components/Accordion/composables/useAccordionState.d.ts +2 -1
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +7 -7
- package/dist/components/Amelipro/AmeliproCheckbox/AmeliproCheckbox.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproCustomSelector/AmeliproCustomSelector.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproPostalAddressField/AmeliproPostalAddressField.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +7 -7
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +16 -16
- package/dist/components/Amelipro/AmeliproTextArea/AmeliproTextArea.d.ts +1 -1
- package/dist/components/Amelipro/AmeliproTextField/AmeliproTextField.d.ts +1 -1
- package/dist/components/Customs/Selects/SyAutocomplete/SyAutocomplete.d.ts +22 -1
- package/dist/components/Customs/Selects/SyAutocomplete/locales.d.ts +5 -0
- package/dist/components/Customs/Selects/SyInputSelect/SyInputSelect.d.ts +1 -1
- package/dist/components/Customs/Selects/SySelect/SySelect.d.ts +1 -1
- package/dist/components/Customs/Selects/SySelect/locales.d.ts +1 -0
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +1 -1
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +1 -1
- package/dist/components/Customs/SyRadioGroup/SyRadioGroup.d.ts +1 -1
- package/dist/components/Customs/SyTextField/SyTextField.d.ts +5 -2
- package/dist/components/DatePicker/CalendarMode/DatePicker.d.ts +13 -9
- package/dist/components/DatePicker/ComplexDatePicker/ComplexDatePicker.d.ts +7 -5
- package/dist/components/DatePicker/DateTextInput/DateTextInput.d.ts +2 -1
- package/dist/components/ErrorPage/ErrorPage.d.ts +3 -1
- package/dist/components/FileList/UploadItem/UploadItem.d.ts +6 -0
- package/dist/components/FileList/UploadItem/locales.d.ts +1 -4
- package/dist/components/FileUpload/FileUploadContent.d.ts +2 -0
- package/dist/components/FileUpload/validateFiles.d.ts +2 -1
- package/dist/components/HeaderBar/HeaderBar.d.ts +2 -1
- package/dist/components/HeaderBar/HeaderLogo/HeaderLogo.d.ts +2 -1
- package/dist/components/HeaderNavigationBar/HeaderNavigationBar.d.ts +2 -1
- package/dist/components/MonthPicker/MonthPicker.d.ts +1939 -0
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +1899 -0
- package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +21 -0
- package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.d.ts +21 -0
- package/dist/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.d.ts +12 -0
- package/dist/components/MonthPicker/MonthPickerVisual/MonthSelector.d.ts +11 -0
- package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.d.ts +6 -0
- package/dist/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.d.ts +14 -0
- package/dist/components/MonthPicker/MonthPickerVisual/YearSelector.d.ts +14 -0
- package/dist/components/MonthPicker/MonthPickerVisual/useMonthGrid.d.ts +9 -0
- package/dist/components/MonthPicker/MonthPickerVisual/useYearGrid.d.ts +8 -0
- package/dist/components/MonthPicker/MonthPickerVisual/utils.d.ts +8 -0
- package/dist/components/MonthPicker/locales.d.ts +12 -0
- package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +25 -0
- package/dist/components/NirField/NirField.d.ts +3 -1
- package/dist/components/NotificationBar/Notification/Notification.d.ts +3 -0
- package/dist/components/PasswordField/PasswordField.d.ts +1 -1
- package/dist/components/PeriodField/PeriodField.d.ts +29 -21
- package/dist/components/PhoneField/PhoneField.d.ts +2 -1
- package/dist/components/SyBtnMenu/SyBtnMenu.d.ts +1 -1
- package/dist/components/SyHeading/SyHeading.a11y.test.d.ts +1 -0
- package/dist/components/SyHeading/SyHeading.d.ts +4 -2
- package/dist/components/SyHeading/SyHeading.test.d.ts +1 -0
- package/dist/components/SyTextArea/SyTextArea.d.ts +1 -1
- package/dist/components/Tables/SyServerTable/SyServerTable.d.ts +4 -4
- package/dist/components/Tables/SyTable/SyTable.d.ts +4 -4
- package/dist/components/Tables/common/SyTablePagination.d.ts +6 -6
- package/dist/components/index.d.ts +1 -0
- package/dist/design-system-v3.js +102 -99
- package/dist/design-system-v3.umd.cjs +126 -126
- package/dist/designTokens/tokens/cnam/cnamContextual.d.ts +5 -0
- package/dist/{main-CEl4J8_T.js → main-aLKwdMi1.js} +11167 -10522
- package/dist/main.d.ts +1 -0
- package/dist/style.css +1 -1
- package/package.json +10 -4
- package/src/assets/apTokens.scss +2 -2
- package/src/assets/overrides/_btns.scss +8 -0
- package/src/assets/overrides/_forms.scss +9 -0
- package/src/assets/overrides/_icons.scss +38 -9
- package/src/assets/overrides/_tables.scss +19 -0
- package/src/components/Accordion/Accordion.mdx +23 -9
- package/src/components/Accordion/Accordion.stories.ts +153 -3
- package/src/components/Accordion/Accordion.vue +7 -6
- package/src/components/Accordion/composables/__tests__/useAccordionState.spec.ts +40 -12
- package/src/components/Accordion/composables/useAccordionState.ts +3 -4
- package/src/components/Accordion/tests/accordion.spec.ts +131 -19
- package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.mdx +3 -1
- package/src/components/Amelipro/AmeliproPagination/AmeliproPagination.stories.ts +8 -0
- package/src/components/BackBtn/accessibilite/Accessibility.mdx +62 -10
- package/src/components/BackToTopBtn/BackToTopBtn.stories.ts +9 -3
- package/src/components/BackToTopBtn/accessibilite/Accessibility.mdx +86 -6
- package/src/components/Captcha/tests/Captcha.spec.ts +0 -29
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +2 -110
- package/src/components/Customs/Selects/SelectBtnField/accessibilite/Accessibility.mdx +133 -10
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.stories.ts +379 -93
- package/src/components/Customs/Selects/SyAutocomplete/SyAutocomplete.vue +144 -83
- package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibilite.stories.ts +40 -1
- package/src/components/Customs/Selects/SyAutocomplete/accessibilite/Accessibility.mdx +7 -1
- package/src/components/Customs/Selects/SyAutocomplete/locales.ts +5 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.a11y.spec.ts +96 -0
- package/src/components/Customs/Selects/SyAutocomplete/tests/SyAutocomplete.spec.ts +234 -9
- package/src/components/Customs/Selects/SyAutocomplete/utils/ariaManager.ts +13 -3
- package/src/components/Customs/Selects/SyAutocomplete/utils/useSelectionLogic.ts +9 -10
- package/src/components/Customs/Selects/SySelect/SySelect.vue +46 -3
- package/src/components/Customs/Selects/SySelect/locales.ts +1 -0
- package/src/components/Customs/SyIcon/SyIcon.vue +1 -1
- package/src/components/Customs/SyIcon/tests/SyIcon.a11y.spec.ts +20 -0
- package/src/components/Customs/SyIconButton/SyIconButton.mdx +46 -0
- package/src/components/Customs/SyIconButton/SyIconButton.stories.ts +184 -0
- package/src/components/Customs/SyIconButton/SyIconButton.vue +38 -0
- package/src/components/Customs/SyIconButton/accessibilite/Accessibility.mdx +64 -0
- package/src/components/Customs/SyIconButton/tests/SyIconButton.a11y.spec.ts +87 -0
- package/src/components/Customs/SyIconButton/tests/SyIconButton.spec.ts +152 -0
- package/src/components/Customs/SyIconButton/tests/__snapshots__/SyIconButton.spec.ts.snap +61 -0
- package/src/components/Customs/SyPagination/SyPagination.vue +5 -5
- package/src/components/Customs/SyTextField/SyTextField.vue +20 -2
- package/src/components/Customs/SyTextField/accessibilite/Accessibility.mdx +67 -9
- package/src/components/Customs/SyTextField/tests/SyTextField.a11y.spec.ts +15 -0
- package/src/components/Customs/SyTextField/tests/SyTextField.spec.ts +36 -0
- package/src/components/DataList/accessibilite/Accessibility.mdx +79 -11
- package/src/components/DataListGroup/accessibilite/Accessibility.mdx +80 -11
- package/src/components/DownloadBtn/tests/DownloadBtn.a11y.spec.ts +25 -0
- package/src/components/ErrorPage/ErrorPage.stories.ts +113 -19
- package/src/components/ErrorPage/ErrorPage.vue +17 -2
- package/src/components/ErrorPage/tests/ErrorPage.a11y.spec.ts +17 -0
- package/src/components/ErrorPage/tests/ErrorPage.spec.ts +21 -1
- package/src/components/ErrorPage/tests/__snapshots__/ErrorPage.spec.ts.snap +0 -1
- package/src/components/ExternalLinks/tests/ExternalLinks.a11y.spec.ts +23 -0
- package/src/components/FileList/FileList.stories.ts +51 -1
- package/src/components/FileList/UploadItem/UploadItem.vue +13 -6
- package/src/components/FileList/UploadItem/locales.ts +3 -12
- package/src/components/FileList/accessibilite/Accessibility.mdx +3 -0
- package/src/components/FileUpload/FileUpload.vue +2 -1
- package/src/components/FileUpload/FileUploadContent.vue +2 -1
- package/src/components/FileUpload/tests/FileUpload.spec.ts +47 -0
- package/src/components/FileUpload/validateFiles.ts +5 -2
- package/src/components/FranceConnectBtn/accessibilite/Accessibility.mdx +62 -9
- package/src/components/HeaderBar/HeaderBar.vue +2 -1
- package/src/components/HeaderBar/HeaderLogo/HeaderLogo.vue +2 -1
- package/src/components/HeaderNavigationBar/HeaderNavigationBar.vue +2 -1
- package/src/components/LunarCalendar/accessibilite/Accessibility.mdx +74 -8
- package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +163 -0
- package/src/components/MaintenancePage/MaintenancePage.vue +1 -1
- package/src/components/MaintenancePage/tests/MaintenancePage.spec.ts +4 -5
- package/src/components/MaintenancePage/tests/__snapshots__/MaintenancePage.spec.ts.snap +0 -1
- package/src/components/MonthPicker/MonthPicker.mdx +35 -0
- package/src/components/MonthPicker/MonthPicker.stories.ts +527 -0
- package/src/components/MonthPicker/MonthPicker.vue +79 -0
- package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +89 -0
- package/src/components/MonthPicker/MonthPickerText/useTextField.ts +27 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisual.vue +154 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthPickerVisualProps.ts +13 -0
- package/src/components/MonthPicker/MonthPickerVisual/MonthSelector.vue +137 -0
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerFooter.vue +60 -0
- package/src/components/MonthPicker/MonthPickerVisual/VisualPickerHeader.vue +149 -0
- package/src/components/MonthPicker/MonthPickerVisual/YearSelector.vue +143 -0
- package/src/components/MonthPicker/MonthPickerVisual/useMonthGrid.ts +45 -0
- package/src/components/MonthPicker/MonthPickerVisual/useYearGrid.ts +45 -0
- package/src/components/MonthPicker/MonthPickerVisual/utils.ts +17 -0
- package/src/components/MonthPicker/accessibilite/Accessibility.mdx +59 -0
- package/src/components/MonthPicker/locales.ts +12 -0
- package/src/components/MonthPicker/tests/MonthPicker.a11y.spec.ts +71 -0
- package/src/components/MonthPicker/tests/MonthPicker.spec.ts +1248 -0
- package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +2545 -0
- package/src/components/MonthPicker/useMonthPickerValidation.ts +30 -0
- package/src/components/NirField/NirField.mdx +1 -2
- package/src/components/NirField/NirField.stories.ts +66 -6
- package/src/components/NotFoundPage/tests/NotFoundPage.spec.ts +2 -3
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +22 -14
- package/src/components/NotificationBar/Notification/Notification.vue +3 -1
- package/src/components/NotificationBar/NotificationBar.stories.ts +154 -0
- package/src/components/NotificationBar/tests/NotificationBar.a11y.spec.ts +26 -0
- package/src/components/NotificationBar/tests/NotificationBar.spec.ts +60 -0
- package/src/components/RangeField/accessibilite/Accessibility.mdx +79 -11
- package/src/components/SkipLink/tests/SkipLink.a11y.spec.ts +23 -0
- package/src/components/StatusPage/StatusPage.stories.ts +118 -0
- package/src/components/StatusPage/StatusPage.vue +5 -3
- package/src/components/StatusPage/tests/StatusPage.a11y.spec.ts +22 -0
- package/src/components/StatusPage/tests/StatusPage.spec.ts +22 -0
- package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +22 -14
- package/src/components/SubHeader/tests/SubHeader.a11y.spec.ts +20 -0
- package/src/components/SyAlert/SyAlert.vue +1 -0
- package/src/components/SyAlert/accessibilite/Accessibility.mdx +79 -9
- package/src/components/SyAlert/tests/SyAlert.a11y.spec.ts +23 -0
- package/src/components/SyHeading/SyHeading.a11y.test.ts +149 -0
- package/src/components/SyHeading/SyHeading.test.ts +115 -0
- package/src/components/SyHeading/SyHeading.vue +5 -3
- package/src/components/SyTextArea/accessibilite/Accessibility.mdx +80 -8
- package/src/components/SyTextArea/tests/SyTextArea.a11y.spec.ts +151 -0
- package/src/components/ToolbarContainer/tests/ToolbarContainer.a11y.spec.ts +126 -0
- package/src/components/UploadWorkflow/tests/__snapshots__/UploadWorkflow.spec.ts.snap +2 -2
- package/src/components/index.ts +1 -0
- package/src/composables/useFormFieldErrorHandling.ts +11 -2
- package/src/designTokens/tokens/cnam/cnamContextual.ts +6 -1
- package/src/main.ts +2 -0
|
@@ -14,135 +14,150 @@ const meta: Meta<typeof SyAutocomplete> = {
|
|
|
14
14
|
controls: { exclude: ['selectedValue', 'isOpen', 'closeList'] },
|
|
15
15
|
docs: { page: AccessibilityDocs },
|
|
16
16
|
},
|
|
17
|
+
args: {
|
|
18
|
+
'onUpdate:modelValue': fn(),
|
|
19
|
+
},
|
|
17
20
|
argTypes: {
|
|
18
|
-
bgColor: {
|
|
21
|
+
'bgColor': {
|
|
19
22
|
control: 'text',
|
|
20
23
|
description: 'Couleur de fond du champ',
|
|
21
24
|
},
|
|
22
|
-
chips: {
|
|
25
|
+
'chips': {
|
|
23
26
|
control: 'boolean',
|
|
24
27
|
description: 'Affiche les options sélectionnées sous forme de chips',
|
|
25
28
|
},
|
|
26
|
-
clearable: {
|
|
29
|
+
'clearable': {
|
|
27
30
|
control: 'boolean',
|
|
28
31
|
description: 'Permet de vider la sélection',
|
|
29
32
|
},
|
|
30
|
-
customRules: {
|
|
33
|
+
'customRules': {
|
|
31
34
|
control: 'object',
|
|
32
35
|
description: 'Règles de validation personnalisées',
|
|
33
36
|
},
|
|
34
|
-
customSuccessRules: {
|
|
37
|
+
'customSuccessRules': {
|
|
35
38
|
control: 'object',
|
|
36
39
|
description: 'Règles de succès personnalisées',
|
|
37
40
|
},
|
|
38
|
-
customWarningRules: {
|
|
41
|
+
'customWarningRules': {
|
|
39
42
|
control: 'object',
|
|
40
43
|
description: 'Règles d\'avertissement personnalisées',
|
|
41
44
|
},
|
|
42
|
-
debounce: {
|
|
45
|
+
'debounce': {
|
|
43
46
|
control: 'number',
|
|
44
47
|
description: 'Délai en millisecondes avant le filtrage (défaut: 200)',
|
|
45
48
|
},
|
|
46
|
-
density: {
|
|
49
|
+
'density': {
|
|
47
50
|
control: 'select',
|
|
48
51
|
options: ['default', 'comfortable', 'compact'],
|
|
49
52
|
description: 'Définit la densité du champ',
|
|
50
53
|
},
|
|
51
|
-
disableErrorHandling: {
|
|
54
|
+
'disableErrorHandling': {
|
|
52
55
|
control: 'boolean',
|
|
53
56
|
description: 'Désactive la gestion des erreurs',
|
|
54
57
|
},
|
|
55
|
-
displayAsterisk: {
|
|
58
|
+
'displayAsterisk': {
|
|
56
59
|
control: 'boolean',
|
|
57
60
|
description: 'Affiche un astérisque pour les champs obligatoires',
|
|
58
61
|
},
|
|
59
|
-
errorMessages: {
|
|
62
|
+
'errorMessages': {
|
|
60
63
|
control: 'object',
|
|
61
64
|
description: 'Messages d\'erreur personnalisés',
|
|
62
65
|
},
|
|
63
|
-
filter: {
|
|
66
|
+
'filter': {
|
|
64
67
|
control: 'boolean',
|
|
65
68
|
description: 'Active le filtrage des options basé sur la saisie',
|
|
66
69
|
},
|
|
67
|
-
hasError: {
|
|
70
|
+
'hasError': {
|
|
68
71
|
control: 'boolean',
|
|
69
72
|
description: 'Indique si le champ a une erreur',
|
|
70
73
|
},
|
|
71
|
-
hasSuccess: {
|
|
74
|
+
'hasSuccess': {
|
|
72
75
|
control: 'boolean',
|
|
73
76
|
description: 'Indique si le champ est en succès',
|
|
74
77
|
},
|
|
75
|
-
hasWarning: {
|
|
78
|
+
'hasWarning': {
|
|
76
79
|
control: 'boolean',
|
|
77
80
|
description: 'Indique si le champ a un avertissement',
|
|
78
81
|
},
|
|
79
|
-
hideNoData: {
|
|
82
|
+
'hideNoData': {
|
|
80
83
|
control: 'boolean',
|
|
81
84
|
description: 'Cache le message "aucune option" quand la liste est vide',
|
|
82
85
|
},
|
|
83
|
-
isValidateOnBlur: {
|
|
86
|
+
'isValidateOnBlur': {
|
|
84
87
|
control: 'boolean',
|
|
85
88
|
description: 'Valide le champ à la perte de focus',
|
|
86
89
|
},
|
|
87
|
-
items: { control: 'object' },
|
|
88
|
-
label: {
|
|
90
|
+
'items': { control: 'object' },
|
|
91
|
+
'label': {
|
|
89
92
|
control: 'text',
|
|
90
93
|
description: 'Libellé du champ',
|
|
91
94
|
},
|
|
92
|
-
loading: {
|
|
95
|
+
'loading': {
|
|
93
96
|
control: 'boolean',
|
|
94
97
|
description: 'Affiche un indicateur de chargement',
|
|
95
98
|
},
|
|
96
|
-
menuId: {
|
|
99
|
+
'menuId': {
|
|
97
100
|
control: 'text',
|
|
98
101
|
description: 'ID personnalisé pour le menu',
|
|
99
102
|
},
|
|
100
|
-
modelValue: { control: 'text' },
|
|
101
|
-
multiple: {
|
|
103
|
+
'modelValue': { control: 'text' },
|
|
104
|
+
'multiple': {
|
|
102
105
|
control: 'boolean',
|
|
103
106
|
description: 'Permet la sélection multiple d\'options',
|
|
104
107
|
},
|
|
105
|
-
noDataText: {
|
|
108
|
+
'noDataText': {
|
|
106
109
|
control: 'text',
|
|
107
110
|
description: 'Texte affiché quand aucune option n\'est disponible',
|
|
108
111
|
},
|
|
109
|
-
placeholder: {
|
|
112
|
+
'placeholder': {
|
|
110
113
|
control: 'text',
|
|
111
114
|
description: 'Texte d\'indice affiché quand le champ est vide',
|
|
112
115
|
},
|
|
113
|
-
plainTextKey: {
|
|
116
|
+
'plainTextKey': {
|
|
114
117
|
control: 'text',
|
|
115
118
|
description: 'Nom de la propriété pour le texte brut de filtrage',
|
|
116
119
|
},
|
|
117
|
-
|
|
120
|
+
'onSearch': {
|
|
121
|
+
action: 'search',
|
|
122
|
+
description: 'Émis à chaque frappe dans le champ. Reçoit la valeur saisie en paramètre. Utile pour déclencher des recherches asynchrones.',
|
|
123
|
+
},
|
|
124
|
+
'onUpdate:modelValue': {
|
|
125
|
+
action: 'update:modelValue',
|
|
126
|
+
description: 'Émis lors de la sélection d\'une option. Reçoit la valeur sélectionnée.',
|
|
127
|
+
},
|
|
128
|
+
'readonly': {
|
|
118
129
|
control: 'boolean',
|
|
119
130
|
description: 'Rend le champ en lecture seule',
|
|
120
131
|
},
|
|
121
|
-
required: {
|
|
132
|
+
'required': {
|
|
122
133
|
control: 'boolean',
|
|
123
134
|
description: 'Marque le champ comme obligatoire',
|
|
124
135
|
},
|
|
125
|
-
returnObject: {
|
|
136
|
+
'returnObject': {
|
|
126
137
|
control: 'boolean',
|
|
127
138
|
description: 'Retourne l\'objet complet sélectionné',
|
|
128
139
|
},
|
|
129
|
-
showSuccessMessages: {
|
|
140
|
+
'showSuccessMessages': {
|
|
130
141
|
control: 'boolean',
|
|
131
142
|
description: 'Affiche les messages de succès',
|
|
132
143
|
},
|
|
133
|
-
successMessages: {
|
|
144
|
+
'successMessages': {
|
|
134
145
|
control: 'object',
|
|
135
146
|
description: 'Messages de succès personnalisés',
|
|
136
147
|
},
|
|
137
|
-
textKey: {
|
|
148
|
+
'textKey': {
|
|
138
149
|
control: 'text',
|
|
139
150
|
description: 'Nom de la propriété qui contient le texte à afficher',
|
|
140
151
|
},
|
|
141
|
-
valueKey: {
|
|
152
|
+
'valueKey': {
|
|
142
153
|
control: 'text',
|
|
143
154
|
description: 'Nom de la propriété qui contient la valeur à retourner',
|
|
144
155
|
},
|
|
145
|
-
|
|
156
|
+
'selectionText': {
|
|
157
|
+
control: false,
|
|
158
|
+
description: 'Fonction de personnalisation du texte affiché dans l\'input en mode multiple. Reçoit le tableau des valeurs sélectionnées et retourne une chaîne.',
|
|
159
|
+
},
|
|
160
|
+
'warningMessages': {
|
|
146
161
|
control: 'object',
|
|
147
162
|
description: 'Messages d\'avertissement personnalisés',
|
|
148
163
|
},
|
|
@@ -208,9 +223,8 @@ export const Default: Story = {
|
|
|
208
223
|
],
|
|
209
224
|
},
|
|
210
225
|
args: {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
'onUpdate:modelValue': fn(),
|
|
226
|
+
items: sampleItems,
|
|
227
|
+
label: 'Rechercher un prénom',
|
|
214
228
|
},
|
|
215
229
|
render: (args) => {
|
|
216
230
|
return {
|
|
@@ -285,15 +299,14 @@ const onSubmit = (event) => {
|
|
|
285
299
|
],
|
|
286
300
|
},
|
|
287
301
|
args: {
|
|
288
|
-
|
|
302
|
+
items: [
|
|
289
303
|
{ text: 'Option 1', value: '1' },
|
|
290
304
|
{ text: 'Option 2', value: '2' },
|
|
291
305
|
{ text: 'Option 3', value: '3' },
|
|
292
306
|
],
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
'onUpdate:modelValue': fn(),
|
|
307
|
+
label: 'Recherche obligatoire',
|
|
308
|
+
required: true,
|
|
309
|
+
displayAsterisk: true,
|
|
297
310
|
},
|
|
298
311
|
render: (args) => {
|
|
299
312
|
return {
|
|
@@ -379,12 +392,11 @@ const clearError = () => {
|
|
|
379
392
|
],
|
|
380
393
|
},
|
|
381
394
|
args: {
|
|
382
|
-
|
|
395
|
+
items: [
|
|
383
396
|
{ text: 'Option 1', value: '1' },
|
|
384
397
|
{ text: 'Option 2', value: '2' },
|
|
385
398
|
],
|
|
386
|
-
|
|
387
|
-
'onUpdate:modelValue': fn(),
|
|
399
|
+
label: 'Erreur serveur',
|
|
388
400
|
},
|
|
389
401
|
render: (args) => {
|
|
390
402
|
return {
|
|
@@ -426,12 +438,11 @@ export const WarningSuccessMessages: Story = {
|
|
|
426
438
|
},
|
|
427
439
|
},
|
|
428
440
|
args: {
|
|
429
|
-
|
|
441
|
+
items: [
|
|
430
442
|
{ text: 'Option 1', value: '1' },
|
|
431
443
|
{ text: 'Option 2', value: '2' },
|
|
432
444
|
],
|
|
433
|
-
|
|
434
|
-
'onUpdate:modelValue': fn(),
|
|
445
|
+
label: 'Avec warning & succès',
|
|
435
446
|
},
|
|
436
447
|
render: (args) => {
|
|
437
448
|
return {
|
|
@@ -520,18 +531,17 @@ const onSubmit = (event) => {
|
|
|
520
531
|
],
|
|
521
532
|
},
|
|
522
533
|
args: {
|
|
523
|
-
|
|
534
|
+
items: [
|
|
524
535
|
{ label: 'Premier choix', id: '1' },
|
|
525
536
|
{ label: 'Deuxième choix', id: '2' },
|
|
526
537
|
{ label: 'Troisième choix', id: '3' },
|
|
527
538
|
],
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
'onUpdate:modelValue': fn(),
|
|
539
|
+
label: 'Objet complet',
|
|
540
|
+
textKey: 'label',
|
|
541
|
+
valueKey: 'id',
|
|
542
|
+
returnObject: true,
|
|
543
|
+
required: true,
|
|
544
|
+
displayAsterisk: true,
|
|
535
545
|
},
|
|
536
546
|
render: (args) => {
|
|
537
547
|
return {
|
|
@@ -618,11 +628,10 @@ const items = [
|
|
|
618
628
|
],
|
|
619
629
|
},
|
|
620
630
|
args: {
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
'onUpdate:modelValue': fn(),
|
|
631
|
+
items: sampleItems,
|
|
632
|
+
label: 'Sélectionner plusieurs prénoms',
|
|
633
|
+
multiple: true,
|
|
634
|
+
clearable: true,
|
|
626
635
|
},
|
|
627
636
|
render: (args) => {
|
|
628
637
|
return {
|
|
@@ -690,12 +699,11 @@ const items = [
|
|
|
690
699
|
],
|
|
691
700
|
},
|
|
692
701
|
args: {
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
'onUpdate:modelValue': fn(),
|
|
702
|
+
items: sampleItems.slice(0, 4),
|
|
703
|
+
label: 'Prénoms sélectionnés',
|
|
704
|
+
multiple: true,
|
|
705
|
+
chips: true,
|
|
706
|
+
clearable: true,
|
|
699
707
|
},
|
|
700
708
|
render: (args) => {
|
|
701
709
|
return {
|
|
@@ -716,12 +724,88 @@ const items = [
|
|
|
716
724
|
},
|
|
717
725
|
}
|
|
718
726
|
|
|
719
|
-
export const
|
|
727
|
+
export const ChipsWithCustomSelectionText: Story = {
|
|
720
728
|
parameters: {
|
|
729
|
+
docs: {
|
|
730
|
+
description: {
|
|
731
|
+
story: 'En mode multiple, `selectionText` permet d\'afficher un texte personnalisé dans l\'input à la place de la liste des éléments sélectionnés. Utile pour indiquer un nombre de sélections (ex : "3 colonnes sélectionnées") plutôt que d\'énumérer chaque valeur.',
|
|
732
|
+
},
|
|
733
|
+
},
|
|
734
|
+
sourceCode: [
|
|
735
|
+
{
|
|
736
|
+
name: 'Template',
|
|
737
|
+
code: `
|
|
738
|
+
<template>
|
|
739
|
+
<SyAutocomplete
|
|
740
|
+
v-model="selectedColumns"
|
|
741
|
+
:items="columns"
|
|
742
|
+
label="Colonnes affichées"
|
|
743
|
+
multiple
|
|
744
|
+
clearable
|
|
745
|
+
:selection-text="(selected) => \`\${selected.length} colonne\${selected.length > 1 ? 's' : ''} sélectionnée\${selected.length > 1 ? 's' : ''}\`"
|
|
746
|
+
/>
|
|
747
|
+
<div class="mt-4">Valeurs : {{ selectedColumns }}</div>
|
|
748
|
+
</template>
|
|
749
|
+
`,
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
name: 'Script',
|
|
753
|
+
code: `
|
|
754
|
+
<script setup lang="ts">
|
|
755
|
+
import { ref } from 'vue'
|
|
756
|
+
import { SyAutocomplete } from '@cnamts/synapse'
|
|
757
|
+
|
|
758
|
+
const selectedColumns = ref([])
|
|
759
|
+
const columns = [
|
|
760
|
+
{ text: 'Nom', value: 'name' },
|
|
761
|
+
{ text: 'Prénom', value: 'firstname' },
|
|
762
|
+
{ text: 'Date de naissance', value: 'birthdate' },
|
|
763
|
+
{ text: 'Numéro de sécurité sociale', value: 'nss' },
|
|
764
|
+
{ text: 'Adresse', value: 'address' },
|
|
765
|
+
]
|
|
766
|
+
</script>
|
|
767
|
+
`,
|
|
768
|
+
},
|
|
769
|
+
],
|
|
770
|
+
},
|
|
771
|
+
args: {
|
|
772
|
+
items: [
|
|
773
|
+
{ text: 'Nom', value: 'name' },
|
|
774
|
+
{ text: 'Prénom', value: 'firstname' },
|
|
775
|
+
{ text: 'Date de naissance', value: 'birthdate' },
|
|
776
|
+
{ text: 'Numéro de sécurité sociale', value: 'nss' },
|
|
777
|
+
{ text: 'Adresse', value: 'address' },
|
|
778
|
+
],
|
|
779
|
+
label: 'Colonnes affichées',
|
|
780
|
+
multiple: true,
|
|
781
|
+
clearable: true,
|
|
782
|
+
selectionText: (selected: unknown[]) => `${selected.length} colonne${selected.length > 1 ? 's' : ''} sélectionnée${selected.length > 1 ? 's' : ''}`,
|
|
783
|
+
},
|
|
784
|
+
render: (args) => {
|
|
785
|
+
return {
|
|
786
|
+
components: { SyAutocomplete },
|
|
787
|
+
setup() {
|
|
788
|
+
const selectedColumns = ref([])
|
|
789
|
+
return { args, selectedColumns }
|
|
790
|
+
},
|
|
791
|
+
template: `
|
|
792
|
+
<div class="pa-4">
|
|
793
|
+
<SyAutocomplete
|
|
794
|
+
v-model="selectedColumns"
|
|
795
|
+
v-bind="args"
|
|
796
|
+
/>
|
|
797
|
+
<div class="mt-4">Valeurs : {{ selectedColumns }}</div>
|
|
798
|
+
</div>
|
|
799
|
+
`,
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
}
|
|
721
803
|
|
|
804
|
+
export const LoadingState: Story = {
|
|
805
|
+
parameters: {
|
|
722
806
|
docs: {
|
|
723
807
|
description: {
|
|
724
|
-
story: '
|
|
808
|
+
story: 'Simule un chargement asynchrone : au clic le dropdown s\'ouvre, le loader s\'active puis les résultats apparaissent.',
|
|
725
809
|
},
|
|
726
810
|
},
|
|
727
811
|
sourceCode: [
|
|
@@ -734,6 +818,7 @@ export const LoadingState: Story = {
|
|
|
734
818
|
:items="items"
|
|
735
819
|
label="Recherche avec chargement"
|
|
736
820
|
:loading="isLoading"
|
|
821
|
+
@click="loadOnClick"
|
|
737
822
|
/>
|
|
738
823
|
</template>
|
|
739
824
|
`,
|
|
@@ -746,37 +831,72 @@ import { ref } from 'vue'
|
|
|
746
831
|
import { SyAutocomplete } from '@cnamts/synapse'
|
|
747
832
|
|
|
748
833
|
const selectedValue = ref('')
|
|
749
|
-
const isLoading = ref(
|
|
750
|
-
const items = [
|
|
834
|
+
const isLoading = ref(false)
|
|
835
|
+
const items = ref([])
|
|
836
|
+
let timeout = null
|
|
837
|
+
|
|
838
|
+
const allItems = [
|
|
751
839
|
{ text: 'Option 1', value: '1' },
|
|
752
840
|
{ text: 'Option 2', value: '2' },
|
|
841
|
+
{ text: 'Option 3', value: '3' },
|
|
842
|
+
{ text: 'Option 4', value: '4' },
|
|
843
|
+
{ text: 'Option 5', value: '5' },
|
|
753
844
|
]
|
|
845
|
+
|
|
846
|
+
const loadOnClick = () => {
|
|
847
|
+
isLoading.value = true
|
|
848
|
+
items.value = []
|
|
849
|
+
if (timeout) clearTimeout(timeout)
|
|
850
|
+
timeout = setTimeout(() => {
|
|
851
|
+
items.value = allItems
|
|
852
|
+
isLoading.value = false
|
|
853
|
+
}, 1000)
|
|
854
|
+
}
|
|
754
855
|
</script>
|
|
755
856
|
`,
|
|
756
857
|
},
|
|
757
858
|
],
|
|
758
859
|
},
|
|
759
860
|
args: {
|
|
760
|
-
'
|
|
761
|
-
{ text: 'Option 1', value: '1' },
|
|
762
|
-
{ text: 'Option 2', value: '2' },
|
|
763
|
-
],
|
|
764
|
-
'label': 'Recherche avec chargement',
|
|
765
|
-
'loading': true,
|
|
766
|
-
'onUpdate:modelValue': fn(),
|
|
861
|
+
label: 'Recherche avec chargement',
|
|
767
862
|
},
|
|
768
863
|
render: (args) => {
|
|
769
864
|
return {
|
|
770
865
|
components: { SyAutocomplete },
|
|
771
866
|
setup() {
|
|
772
867
|
const selectedValue = ref('')
|
|
773
|
-
|
|
868
|
+
const isLoading = ref(false)
|
|
869
|
+
const items = ref<{ text: string, value: string }[]>([])
|
|
870
|
+
let timeout: ReturnType<typeof setTimeout> | null = null
|
|
871
|
+
|
|
872
|
+
const allItems = [
|
|
873
|
+
{ text: 'Option 1', value: '1' },
|
|
874
|
+
{ text: 'Option 2', value: '2' },
|
|
875
|
+
{ text: 'Option 3', value: '3' },
|
|
876
|
+
{ text: 'Option 4', value: '4' },
|
|
877
|
+
{ text: 'Option 5', value: '5' },
|
|
878
|
+
]
|
|
879
|
+
|
|
880
|
+
const loadOnClick = () => {
|
|
881
|
+
isLoading.value = true
|
|
882
|
+
items.value = []
|
|
883
|
+
if (timeout) clearTimeout(timeout)
|
|
884
|
+
timeout = setTimeout(() => {
|
|
885
|
+
items.value = allItems
|
|
886
|
+
isLoading.value = false
|
|
887
|
+
}, 1000)
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
return { args, selectedValue, isLoading, items, loadOnClick }
|
|
774
891
|
},
|
|
775
892
|
template: `
|
|
776
893
|
<div class="pa-4">
|
|
777
894
|
<SyAutocomplete
|
|
778
895
|
v-model="selectedValue"
|
|
779
896
|
v-bind="args"
|
|
897
|
+
:items="items"
|
|
898
|
+
:loading="isLoading"
|
|
899
|
+
@click="loadOnClick"
|
|
780
900
|
/>
|
|
781
901
|
</div>
|
|
782
902
|
`,
|
|
@@ -820,14 +940,13 @@ const items = [
|
|
|
820
940
|
],
|
|
821
941
|
},
|
|
822
942
|
args: {
|
|
823
|
-
|
|
943
|
+
items: [
|
|
824
944
|
{ text: 'Option 1', value: '1' },
|
|
825
945
|
{ text: 'Option 2', value: '2' },
|
|
826
946
|
],
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
'onUpdate:modelValue': fn(),
|
|
947
|
+
label: 'Champ obligatoire',
|
|
948
|
+
required: true,
|
|
949
|
+
displayAsterisk: true,
|
|
831
950
|
},
|
|
832
951
|
render: (args) => {
|
|
833
952
|
return {
|
|
@@ -848,6 +967,175 @@ const items = [
|
|
|
848
967
|
},
|
|
849
968
|
}
|
|
850
969
|
|
|
970
|
+
export const HideDetails: Story = {
|
|
971
|
+
parameters: {
|
|
972
|
+
sourceCode: [
|
|
973
|
+
{
|
|
974
|
+
name: 'Template',
|
|
975
|
+
code: `
|
|
976
|
+
<template>
|
|
977
|
+
<div class="d-flex flex-column gap-4">
|
|
978
|
+
<!-- Sans hide-details : la zone de messages est réservée (espace visible) -->
|
|
979
|
+
<SyAutocomplete
|
|
980
|
+
v-model="value1"
|
|
981
|
+
:items="items"
|
|
982
|
+
label="Avec zone de messages (défaut)"
|
|
983
|
+
has-success
|
|
984
|
+
:success-messages="['Sélection valide']"
|
|
985
|
+
/>
|
|
986
|
+
|
|
987
|
+
<!-- Avec hide-details : la zone est masquée, même en état success -->
|
|
988
|
+
<SyAutocomplete
|
|
989
|
+
v-model="value2"
|
|
990
|
+
:items="items"
|
|
991
|
+
label="Sans zone de messages (hide-details)"
|
|
992
|
+
has-success
|
|
993
|
+
:success-messages="['Sélection valide']"
|
|
994
|
+
hide-details
|
|
995
|
+
/>
|
|
996
|
+
</div>
|
|
997
|
+
</template>
|
|
998
|
+
`,
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
name: 'Script',
|
|
1002
|
+
code: `
|
|
1003
|
+
<script setup lang="ts">
|
|
1004
|
+
import { ref } from 'vue'
|
|
1005
|
+
import { SyAutocomplete } from '@cnamts/synapse'
|
|
1006
|
+
|
|
1007
|
+
const items = [
|
|
1008
|
+
{ text: 'Option 1', value: '1' },
|
|
1009
|
+
{ text: 'Option 2', value: '2' },
|
|
1010
|
+
{ text: 'Option 3', value: '3' },
|
|
1011
|
+
]
|
|
1012
|
+
const value1 = ref('1')
|
|
1013
|
+
const value2 = ref('1')
|
|
1014
|
+
</script>
|
|
1015
|
+
`,
|
|
1016
|
+
},
|
|
1017
|
+
],
|
|
1018
|
+
},
|
|
1019
|
+
args: {
|
|
1020
|
+
items: [
|
|
1021
|
+
{ text: 'Option 1', value: '1' },
|
|
1022
|
+
{ text: 'Option 2', value: '2' },
|
|
1023
|
+
{ text: 'Option 3', value: '3' },
|
|
1024
|
+
],
|
|
1025
|
+
},
|
|
1026
|
+
render: (args) => {
|
|
1027
|
+
return {
|
|
1028
|
+
components: { SyAutocomplete },
|
|
1029
|
+
setup() {
|
|
1030
|
+
const value1 = ref('1')
|
|
1031
|
+
const value2 = ref('1')
|
|
1032
|
+
return { args, value1, value2 }
|
|
1033
|
+
},
|
|
1034
|
+
template: `
|
|
1035
|
+
<div class="pa-4 d-flex flex-column" style="gap: 16px;">
|
|
1036
|
+
<SyAutocomplete
|
|
1037
|
+
v-model="value1"
|
|
1038
|
+
v-bind="args"
|
|
1039
|
+
label="Avec zone de messages (défaut)"
|
|
1040
|
+
:has-success="true"
|
|
1041
|
+
:success-messages="['Sélection valide']"
|
|
1042
|
+
/>
|
|
1043
|
+
<SyAutocomplete
|
|
1044
|
+
v-model="value2"
|
|
1045
|
+
v-bind="args"
|
|
1046
|
+
label="Sans zone de messages (hide-details)"
|
|
1047
|
+
:has-success="true"
|
|
1048
|
+
:success-messages="['Sélection valide']"
|
|
1049
|
+
:hide-details="true"
|
|
1050
|
+
/>
|
|
1051
|
+
</div>
|
|
1052
|
+
`,
|
|
1053
|
+
}
|
|
1054
|
+
},
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
export const DisableErrorHandling: Story = {
|
|
1058
|
+
parameters: {
|
|
1059
|
+
sourceCode: [
|
|
1060
|
+
{
|
|
1061
|
+
name: 'Template',
|
|
1062
|
+
code: `
|
|
1063
|
+
<template>
|
|
1064
|
+
<div class="d-flex flex-column gap-4">
|
|
1065
|
+
<SyAutocomplete
|
|
1066
|
+
v-model="value1"
|
|
1067
|
+
:items="items"
|
|
1068
|
+
label="Avec validation interne (défaut)"
|
|
1069
|
+
required
|
|
1070
|
+
/>
|
|
1071
|
+
|
|
1072
|
+
<SyAutocomplete
|
|
1073
|
+
v-model="value2"
|
|
1074
|
+
:items="items"
|
|
1075
|
+
label="Validation interne désactivée"
|
|
1076
|
+
required
|
|
1077
|
+
disable-error-handling
|
|
1078
|
+
/>
|
|
1079
|
+
</div>
|
|
1080
|
+
</template>
|
|
1081
|
+
`,
|
|
1082
|
+
},
|
|
1083
|
+
{
|
|
1084
|
+
name: 'Script',
|
|
1085
|
+
code: `
|
|
1086
|
+
<script setup lang="ts">
|
|
1087
|
+
import { ref } from 'vue'
|
|
1088
|
+
import { SyAutocomplete } from '@cnamts/synapse'
|
|
1089
|
+
|
|
1090
|
+
const items = [
|
|
1091
|
+
{ text: 'Option 1', value: '1' },
|
|
1092
|
+
{ text: 'Option 2', value: '2' },
|
|
1093
|
+
{ text: 'Option 3', value: '3' },
|
|
1094
|
+
]
|
|
1095
|
+
|
|
1096
|
+
const value1 = ref(null)
|
|
1097
|
+
const value2 = ref(null)
|
|
1098
|
+
</script>
|
|
1099
|
+
`,
|
|
1100
|
+
},
|
|
1101
|
+
],
|
|
1102
|
+
},
|
|
1103
|
+
args: {
|
|
1104
|
+
items: [
|
|
1105
|
+
{ text: 'Option 1', value: '1' },
|
|
1106
|
+
{ text: 'Option 2', value: '2' },
|
|
1107
|
+
{ text: 'Option 3', value: '3' },
|
|
1108
|
+
],
|
|
1109
|
+
},
|
|
1110
|
+
render: (args) => {
|
|
1111
|
+
return {
|
|
1112
|
+
components: { SyAutocomplete },
|
|
1113
|
+
setup() {
|
|
1114
|
+
const value1 = ref(null)
|
|
1115
|
+
const value2 = ref(null)
|
|
1116
|
+
return { args, value1, value2 }
|
|
1117
|
+
},
|
|
1118
|
+
template: `
|
|
1119
|
+
<div class="pa-4 d-flex flex-column" style="gap: 16px;">
|
|
1120
|
+
<SyAutocomplete
|
|
1121
|
+
v-model="value1"
|
|
1122
|
+
v-bind="args"
|
|
1123
|
+
label="Avec validation interne (défaut)"
|
|
1124
|
+
required
|
|
1125
|
+
/>
|
|
1126
|
+
<SyAutocomplete
|
|
1127
|
+
v-model="value2"
|
|
1128
|
+
v-bind="args"
|
|
1129
|
+
label="Validation interne désactivée"
|
|
1130
|
+
required
|
|
1131
|
+
disable-error-handling
|
|
1132
|
+
/>
|
|
1133
|
+
</div>
|
|
1134
|
+
`,
|
|
1135
|
+
}
|
|
1136
|
+
},
|
|
1137
|
+
}
|
|
1138
|
+
|
|
851
1139
|
export const ReadonlyField: Story = {
|
|
852
1140
|
parameters: {
|
|
853
1141
|
|
|
@@ -884,14 +1172,13 @@ const items = [
|
|
|
884
1172
|
],
|
|
885
1173
|
},
|
|
886
1174
|
args: {
|
|
887
|
-
|
|
1175
|
+
items: [
|
|
888
1176
|
{ text: 'Adrien', value: 'Adrien' },
|
|
889
1177
|
{ text: 'Axel', value: 'Axel' },
|
|
890
1178
|
{ text: 'Baptiste', value: 'Baptiste' },
|
|
891
1179
|
],
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
'onUpdate:modelValue': fn(),
|
|
1180
|
+
label: 'Champ en lecture seule',
|
|
1181
|
+
readonly: true,
|
|
895
1182
|
},
|
|
896
1183
|
render: (args) => {
|
|
897
1184
|
return {
|
|
@@ -949,15 +1236,14 @@ const items = [
|
|
|
949
1236
|
],
|
|
950
1237
|
},
|
|
951
1238
|
args: {
|
|
952
|
-
|
|
1239
|
+
items: [
|
|
953
1240
|
{ label: 'Premier choix', id: '1' },
|
|
954
1241
|
{ label: 'Deuxième choix', id: '2' },
|
|
955
1242
|
{ label: 'Troisième choix', id: '3' },
|
|
956
1243
|
],
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
'onUpdate:modelValue': fn(),
|
|
1244
|
+
label: 'Recherche avec clés personnalisées',
|
|
1245
|
+
textKey: 'label',
|
|
1246
|
+
valueKey: 'id',
|
|
961
1247
|
},
|
|
962
1248
|
render: (args) => {
|
|
963
1249
|
return {
|