@@ -47,6 +47,7 @@ export default class Widget extends Component {
47
47
// for func in func
48
48
parentFuncs : PropTypes . array ,
49
49
isLHS : PropTypes . bool ,
50
+ parentDelta : PropTypes . number ,
50
51
// for case_value
51
52
isCaseValue : PropTypes . bool ,
52
53
} ;
@@ -64,7 +65,7 @@ export default class Widget extends Component {
64
65
const keysForMeta = [
65
66
"config" , "id" , "parentFuncs" ,
66
67
"field" , "fieldId" , "fieldSrc" , "fieldType" , "fieldFunc" , "fieldArg" , "leftField" , "operator" , "valueSrc" , "asyncListValues" ,
67
- "isLHS" , "isFuncArg" , "isForRuleGroup" , "isCaseValue" , "value" ,
68
+ "isLHS" , "isFuncArg" , "isForRuleGroup" , "isCaseValue" , "value" , "parentDelta" ,
68
69
] ;
69
70
const changedKeys = keysForMeta
70
71
. filter ( k => {
@@ -124,7 +125,7 @@ export default class Widget extends Component {
124
125
125
126
getMeta ( {
126
127
config, field : simpleField , fieldSrc, fieldType, fieldFunc, fieldArg, operator, valueSrc : valueSrcs , value : values ,
127
- isForRuleGroup, isCaseValue, isFuncArg, leftField, asyncListValues, parentFuncs, isLHS, id,
128
+ isForRuleGroup, isCaseValue, isFuncArg, leftField, asyncListValues, parentFuncs, isLHS, id, parentDelta ,
128
129
} , changedKeys = [ ] ) {
129
130
const { valueSourcesInfo} = config . settings ;
130
131
const field = isFuncArg ? { func : fieldFunc , arg : fieldArg } : simpleField ;
@@ -178,7 +179,7 @@ export default class Widget extends Component {
178
179
label : valueSourcesInfo [ srcKey ] ?. label ?? defaultValueSourcesLabels [ srcKey ] ?? srcKey ,
179
180
} ] ) ;
180
181
}
181
- const widgets = range ( 0 , cardinality ) . map ( delta => {
182
+ const widgets = ( isFuncArg ? [ 0 ] : range ( 0 , cardinality ) ) . map ( delta => {
182
183
const oldWidgetMeta = this . meta ?. widgets ?. [ delta ] ;
183
184
const valueSrc = iValueSrcs ?. get ( delta ) || null ;
184
185
let widget = getWidgetForFieldOp ( config , field , operator , valueSrc ) ;
@@ -210,7 +211,7 @@ export default class Widget extends Component {
210
211
textSeparators = operatorDefinition ?. textSeparators ;
211
212
}
212
213
213
- const widgetId = getWidgetId ( { id, isLHS, delta, parentFuncs } ) ;
214
+ const widgetId = getWidgetId ( { id, isLHS, delta : parentDelta ?? delta , parentFuncs } ) ;
214
215
const vsId = widgetId + ":" + "VS" ;
215
216
216
217
let setValueSrc = oldWidgetMeta ?. setValueSrc ;
@@ -260,7 +261,7 @@ export default class Widget extends Component {
260
261
renderWidget = ( delta , meta , props ) => {
261
262
const {
262
263
config, isFuncArg, leftField, operator, value : values , valueError, fieldError,
263
- readonly, parentField, parentFuncs, id, groupId, fieldSrc, fieldType, isLHS, setFuncValue,
264
+ readonly, parentField, parentFuncs, id, groupId, fieldSrc, fieldType, isLHS, setFuncValue, parentDelta ,
264
265
} = props ;
265
266
const { settings} = config ;
266
267
const { widgets, iValues, aField, valueSources } = meta ;
@@ -301,6 +302,7 @@ export default class Widget extends Component {
301
302
fieldType = { fieldType }
302
303
parentField = { parentField }
303
304
parentFuncs = { parentFuncs }
305
+ parentDelta = { parentDelta ?? delta }
304
306
operator = { operator }
305
307
readonly = { readonly }
306
308
/>
@@ -373,6 +375,7 @@ export default class Widget extends Component {
373
375
render ( ) {
374
376
if ( ! this . meta ) return null ;
375
377
const { defaultWidget, cardinality } = this . meta ;
378
+ const { isFuncArg } = this . meta ;
376
379
if ( ! defaultWidget ) return null ;
377
380
const name = defaultWidget ;
378
381
@@ -381,7 +384,7 @@ export default class Widget extends Component {
381
384
className = { `rule--widget rule--widget--${ name . toUpperCase ( ) } ` }
382
385
key = { "widget-col-" + name }
383
386
>
384
- { range ( 0 , cardinality ) . map ( this . renderWidgetDelta ) }
387
+ { ( isFuncArg ? [ 0 ] : range ( 0 , cardinality ) ) . map ( this . renderWidgetDelta ) }
385
388
</ Col >
386
389
) ;
387
390
}
0 commit comments