@@ -67,16 +67,19 @@ const evaluateCondition = (
6767 uischema : UISchemaElement ,
6868 condition : Condition ,
6969 path : string ,
70- ajv : Ajv
70+ ajv : Ajv ,
71+ config : unknown
7172) : boolean => {
7273 if ( isAndCondition ( condition ) ) {
7374 return condition . conditions . reduce (
74- ( acc , cur ) => acc && evaluateCondition ( data , uischema , cur , path , ajv ) ,
75+ ( acc , cur ) =>
76+ acc && evaluateCondition ( data , uischema , cur , path , ajv , config ) ,
7577 true
7678 ) ;
7779 } else if ( isOrCondition ( condition ) ) {
7880 return condition . conditions . reduce (
79- ( acc , cur ) => acc || evaluateCondition ( data , uischema , cur , path , ajv ) ,
81+ ( acc , cur ) =>
82+ acc || evaluateCondition ( data , uischema , cur , path , ajv , config ) ,
8083 false
8184 ) ;
8285 } else if ( isLeafCondition ( condition ) ) {
@@ -95,6 +98,7 @@ const evaluateCondition = (
9598 fullData : data ,
9699 path,
97100 uischemaElement : uischema ,
101+ config,
98102 } ;
99103 return condition . validate ( context ) ;
100104 } else {
@@ -107,19 +111,21 @@ const isRuleFulfilled = (
107111 uischema : UISchemaElement ,
108112 data : any ,
109113 path : string ,
110- ajv : Ajv
114+ ajv : Ajv ,
115+ config : unknown
111116) : boolean => {
112117 const condition = uischema . rule . condition ;
113- return evaluateCondition ( data , uischema , condition , path , ajv ) ;
118+ return evaluateCondition ( data , uischema , condition , path , ajv , config ) ;
114119} ;
115120
116121export const evalVisibility = (
117122 uischema : UISchemaElement ,
118123 data : any ,
119124 path : string = undefined ,
120- ajv : Ajv
125+ ajv : Ajv ,
126+ config : unknown
121127) : boolean => {
122- const fulfilled = isRuleFulfilled ( uischema , data , path , ajv ) ;
128+ const fulfilled = isRuleFulfilled ( uischema , data , path , ajv , config ) ;
123129
124130 switch ( uischema . rule . effect ) {
125131 case RuleEffect . HIDE :
@@ -136,9 +142,10 @@ export const evalEnablement = (
136142 uischema : UISchemaElement ,
137143 data : any ,
138144 path : string = undefined ,
139- ajv : Ajv
145+ ajv : Ajv ,
146+ config : unknown
140147) : boolean => {
141- const fulfilled = isRuleFulfilled ( uischema , data , path , ajv ) ;
148+ const fulfilled = isRuleFulfilled ( uischema , data , path , ajv , config ) ;
142149
143150 switch ( uischema . rule . effect ) {
144151 case RuleEffect . DISABLE :
@@ -177,10 +184,11 @@ export const isVisible = (
177184 uischema : UISchemaElement ,
178185 data : any ,
179186 path : string = undefined ,
180- ajv : Ajv
187+ ajv : Ajv ,
188+ config : unknown
181189) : boolean => {
182190 if ( uischema . rule ) {
183- return evalVisibility ( uischema , data , path , ajv ) ;
191+ return evalVisibility ( uischema , data , path , ajv , config ) ;
184192 }
185193
186194 return true ;
@@ -190,10 +198,11 @@ export const isEnabled = (
190198 uischema : UISchemaElement ,
191199 data : any ,
192200 path : string = undefined ,
193- ajv : Ajv
201+ ajv : Ajv ,
202+ config : unknown
194203) : boolean => {
195204 if ( uischema . rule ) {
196- return evalEnablement ( uischema , data , path , ajv ) ;
205+ return evalEnablement ( uischema , data , path , ajv , config ) ;
197206 }
198207
199208 return true ;
0 commit comments