@@ -5,8 +5,8 @@ function checkboxMulti(ctl) {
55 const field = ctl . fields . find ( f => this . field === f . name ) ;
66 return html `
77 < cork-field-container schema =${ ctl . form ?. name } path =${ field . name } class=${ this . noFieldContainer ? '' : 'field-container' } >
8- < label > ${ field . label } </ label >
9- < div class =' checkbox ' >
8+ < fieldset class =' checkbox ' >
9+ < legend > ${ field . label } </ legend >
1010 ${ ctl . fieldPicklistItems . map ( item => html `
1111 < div class ='checkbox-item '>
1212 < div >
@@ -23,7 +23,7 @@ function checkboxMulti(ctl) {
2323 < div class ='field-description ' ?hidden =${ ! item . description } > ${ item . description } </ div >
2424 </ div >
2525 ` ) }
26- </ div >
26+ </ fieldset >
2727 </ cork-field-container >
2828 ` ;
2929}
@@ -32,16 +32,16 @@ function radio(ctl) {
3232 const field = ctl . fields . find ( f => this . field === f . name ) ;
3333 return html `
3434 < cork-field-container schema =${ ctl . form ?. name } path =${ field . name } class=${ this . noFieldContainer ? '' : 'field-container' } >
35- < label > ${ field . label } </ label >
36- < div class =' radio ' >
35+ < fieldset class =' radio ' >
36+ < legend > ${ field . label } </ legend >
3737 ${ ctl . fieldPicklistItems . map ( item => html `
3838 < div class ='radio-item '>
3939 < div >
4040 < input
4141 type ="radio "
4242 name =${ field . name }
4343 id =${ ctl . idGen . get ( `field-${ field . name } -item-${ item . value } ` ) }
44- .checked=${ ( ctl . payload ?. [ field . name ] || [ ] ) . includes ( item . value ) }
44+ .checked=${ ctl . payload ?. [ field . name ] === item . value }
4545 @input=${ ( ) => ctl . setPayloadField ( field . name , item . value ) } >
4646 < label for =${ ctl . idGen . get ( `field-${ field . name } -item-${ item . value } ` ) } >
4747 ${ item . label }
@@ -50,7 +50,7 @@ function radio(ctl) {
5050 < div class ='field-description ' ?hidden =${ ! item . description } > ${ item . description } </ div >
5151 </ div >
5252 ` ) }
53- </ div >
53+ </ fieldset >
5454 </ cork-field-container >
5555 ` ;
5656}
@@ -156,12 +156,50 @@ function textarea(ctl) {
156156 ` ;
157157}
158158
159+ function date ( ctl ) {
160+ const field = ctl . fields . find ( f => this . field === f . name ) ;
161+ return html `
162+ < cork-field-container schema =${ ctl . form ?. name } path =${ field . name } class=${ this . noFieldContainer ? '' : 'field-container' } >
163+ < label for =${ ctl . idGen . get ( `field-${ field . name } ` ) } > ${ field . label } </ label >
164+ < input
165+ type ="date "
166+ id =${ ctl . idGen . get ( `field-${ field . name } ` ) }
167+ .value =${ ctl . payload ?. [ field . name ] || '' }
168+ placeholder=${ ifDefined ( this . placeholder ) }
169+ min=${ ifDefined ( this . min ) }
170+ max=${ ifDefined ( this . max ) }
171+ @input=${ ( e ) => ctl . setPayloadField ( field . name , e . target . value ) } >
172+ < div class ='field-description ' ?hidden =${ ! field . description } > ${ field . description } </ div >
173+ </ cork-field-container >
174+ ` ;
175+ }
176+
177+ function datetime ( ctl ) {
178+ const field = ctl . fields . find ( f => this . field === f . name ) ;
179+ return html `
180+ < cork-field-container schema =${ ctl . form ?. name } path =${ field . name } class=${ this . noFieldContainer ? '' : 'field-container' } >
181+ < label for =${ ctl . idGen . get ( `field-${ field . name } ` ) } > ${ field . label } </ label >
182+ < input
183+ type ="datetime-local "
184+ id =${ ctl . idGen . get ( `field-${ field . name } ` ) }
185+ .value =${ ctl . payload ?. [ field . name ] || '' }
186+ placeholder=${ ifDefined ( this . placeholder ) }
187+ min=${ ifDefined ( this . min ) }
188+ max=${ ifDefined ( this . max ) }
189+ @input=${ ( e ) => ctl . setPayloadField ( field . name , e . target . value ) } >
190+ < div class ='field-description ' ?hidden =${ ! field . description } > ${ field . description } </ div >
191+ </ cork-field-container >
192+ ` ;
193+ }
194+
159195export default {
160196 'checkbox-multiple' : checkboxMulti ,
161197 'radio' : radio ,
162198 'select' : select ,
163199 'checkbox-single' : checkbox ,
164200 'number' : number ,
165201 'text' : text ,
166- 'textarea' : textarea
202+ 'textarea' : textarea ,
203+ 'date' : date ,
204+ 'datetime' : datetime
167205}
0 commit comments