@@ -37,6 +37,10 @@ export default {
3737 control : 'object' ,
3838 description : 'Tableau des valeurs sélectionnées (cochées) du groupe de checkboxes' ,
3939 } ,
40+ required : {
41+ control : 'boolean' ,
42+ description : 'Permet de spécifier que cet ensemble de champs doit être renseigné' ,
43+ } ,
4044 onChange : {
4145 action : 'changed' ,
4246 } ,
@@ -55,6 +59,7 @@ export const CheckboxSet = (args) => ({
5559 :options="options"
5660 :inline="inline"
5761 :disabled="disabled"
62+ :required="required"
5863 :errorMessage="errorMessage"
5964 :validMessage="validMessage"
6065 />
@@ -73,6 +78,7 @@ CheckboxSet.args = {
7378 legend : 'Légende des champs' ,
7479 disabled : false ,
7580 inline : false ,
81+ required : false ,
7682 errorMessage : '' ,
7783 validMessage : '' ,
7884 modelValue : [ 'name1' ] ,
@@ -97,7 +103,7 @@ CheckboxSet.args = {
97103 ] ,
98104}
99105
100- export const CheckboxSetAvecErreur = ( args ) => ( {
106+ export const CheckboxSetRequis = ( args ) => ( {
101107 components : { DsfrCheckboxSet } ,
102108 data ( ) {
103109 return args
@@ -106,6 +112,123 @@ export const CheckboxSetAvecErreur = (args) => ({
106112 <DsfrCheckboxSet
107113 :legend="legend"
108114 v-model="modelValue"
115+ :options="options"
116+ :inline="inline"
117+ :disabled="disabled"
118+ :required="required"
119+ :errorMessage="errorMessage"
120+ :validMessage="validMessage"
121+ />
122+ ` ,
123+ watch : {
124+ modelValue ( val ) {
125+ this . onChange ( val )
126+ } ,
127+ } ,
128+ mounted ( ) {
129+ document . body . parentElement . setAttribute ( 'data-fr-theme' , this . dark ? 'dark' : 'light' )
130+ } ,
131+ } )
132+ CheckboxSetRequis . args = {
133+ dark : false ,
134+ legend : 'Veuillez choisir au moins une des propositions suivantes' ,
135+ disabled : false ,
136+ inline : false ,
137+ required : true ,
138+ errorMessage : '' ,
139+ validMessage : '' ,
140+ modelValue : [ 'name1' ] ,
141+ options : [
142+ {
143+ label : 'Valeur 1' ,
144+ id : 'name1' ,
145+ name : 'name1' ,
146+ hint : 'Description 1' ,
147+ } ,
148+ {
149+ label : 'Valeur 2' ,
150+ id : 'name2' ,
151+ name : 'name2' ,
152+ hint : 'Description 2' ,
153+ } ,
154+ {
155+ label : 'Valeur 3' ,
156+ id : 'name3' ,
157+ name : 'name3' ,
158+ } ,
159+ ] ,
160+ }
161+
162+ export const CheckboxSetRequisPersonnalise = ( args ) => ( {
163+ components : { DsfrCheckboxSet } ,
164+ data ( ) {
165+ return args
166+ } ,
167+ template : `
168+ <DsfrCheckboxSet
169+ :legend="legend"
170+ v-model="modelValue"
171+ :options="options"
172+ :inline="inline"
173+ :disabled="disabled"
174+ :required="required"
175+ :errorMessage="errorMessage"
176+ :validMessage="validMessage"
177+ >
178+ <template #required-tip>
179+ <em> (en choisir au moins un)</em>
180+ </template>
181+ </DsfrCheckboxSet>
182+ ` ,
183+ watch : {
184+ modelValue ( val ) {
185+ this . onChange ( val )
186+ } ,
187+ } ,
188+ mounted ( ) {
189+ document . body . parentElement . setAttribute ( 'data-fr-theme' , this . dark ? 'dark' : 'light' )
190+ } ,
191+ } )
192+ CheckboxSetRequisPersonnalise . args = {
193+ dark : false ,
194+ legend : 'Label de l’ensemble des champs' ,
195+ disabled : false ,
196+ inline : false ,
197+ required : true ,
198+ errorMessage : '' ,
199+ validMessage : '' ,
200+ modelValue : [ 'name1' ] ,
201+ options : [
202+ {
203+ label : 'Valeur 1' ,
204+ id : 'name1' ,
205+ name : 'name1' ,
206+ hint : 'Description 1' ,
207+ } ,
208+ {
209+ label : 'Valeur 2' ,
210+ id : 'name2' ,
211+ name : 'name2' ,
212+ hint : 'Description 2' ,
213+ } ,
214+ {
215+ label : 'Valeur 3' ,
216+ id : 'name3' ,
217+ name : 'name3' ,
218+ } ,
219+ ] ,
220+ }
221+
222+ export const CheckboxSetAvecErreur = ( args ) => ( {
223+ components : { DsfrCheckboxSet } ,
224+ data ( ) {
225+ return args
226+ } ,
227+ template : `
228+ <DsfrCheckboxSet
229+ v-model="modelValue"
230+ :legend="legend"
231+ :required="required"
109232 :error-message="errorMessage"
110233 :options="options"
111234 :inline="inline"
@@ -125,6 +248,7 @@ CheckboxSetAvecErreur.args = {
125248 legend : 'Légende des champs' ,
126249 disabled : false ,
127250 inline : false ,
251+ required : false ,
128252 errorMessage : 'Message d\'erreur' ,
129253 modelValue : [ 'name1' ] ,
130254 options : [
0 commit comments