1- import Checkbox from "./field/checkbox" ;
2- import NullField from "./field/nullField" ;
1+ import Checkbox from "./field/checkbox/checkbox" ;
2+ import CheckboxConditionsHandler from "./field/checkbox/checkboxConditionsHandler" ;
3+ import NullFieldConditionsHandler from "./field/nullField/nullFieldConditionsHandler" ;
4+ import NullField from "./field/nullField/nullField" ;
5+ import CheckboxValidator from "../conditions/validate/checkboxValidator" ;
36
47class FieldBuilder implements FieldBuilderInterface {
58 private name : string = 'data-js-field-name' ;
69 private condition : string = 'data-js-conditional-logic' ;
710
8- constructor ( private conditionBuilder : ConditionBuilderInterface ) {
9- }
10-
1111 public build ( field : HTMLElement , type : string ) : FieldInterface {
1212 if ( ! this . validateRequiredAttributes ( field ) ) {
1313 console . error ( 'Field name and conditional is required' ) ;
@@ -27,36 +27,38 @@ class FieldBuilder implements FieldBuilderInterface {
2727 field ,
2828 type ,
2929 this . getFieldName ( field ) ,
30- this . getFieldCondition ( field )
30+ new NullFieldConditionsHandler ( field , this . getFieldCondition ( field ) )
3131 ) ;
3232 }
3333
3434 public buildCheckbox ( field : HTMLElement ) : FieldInterface {
35- const choices = field . querySelectorAll ( 'input[type="checkbox"]' ) ;
36-
35+ const choices = field . querySelectorAll ( 'input[type="checkbox"]' ) as NodeListOf < HTMLInputElement > ;
3736
3837 return new Checkbox (
3938 field ,
40- choices as NodeListOf < HTMLInputElement > ,
39+ choices ,
4140 this . getFieldName ( field ) ,
42- this . getFieldCondition ( field )
41+ new CheckboxValidator ( ) ,
42+ new CheckboxConditionsHandler ( this . getFieldCondition ( field ) )
4343 ) ;
4444 }
4545
4646 private getFieldName ( field : HTMLElement ) : string {
4747 return field . getAttribute ( 'data-js-field-name' ) as string ;
4848 }
4949
50- private getFieldCondition ( field : HTMLElement ) : ConditionInterface [ ] {
50+ private getFieldCondition ( field : HTMLElement ) : any {
5151 let condition = 0 ;
5252
53+
5354 try {
5455 condition = JSON . parse ( field . getAttribute ( 'data-js-conditional-logic' ) as string ) ;
5556 } catch ( error ) {
5657 condition = 0 ;
5758 }
5859
59- return this . conditionBuilder . build ( condition ) ;
60+ // return this.conditionBuilder.build(condition);
61+ return condition ;
6062 }
6163
6264 private validateRequiredAttributes ( field : HTMLElement ) : boolean {
0 commit comments