@@ -286,7 +286,7 @@ export default {
286
286
] ,
287
287
widgetProps : {
288
288
} ,
289
- }
289
+ } ,
290
290
} ,
291
291
} ,
292
292
multiselect : {
@@ -306,6 +306,7 @@ export default {
306
306
"equal" ,
307
307
] ,
308
308
widgetProps : {
309
+ //you can enable this if you don't use fields as value sources
309
310
//hideOperator: true,
310
311
//operatorInlineLabel: "is",
311
312
}
@@ -355,7 +356,7 @@ export default {
355
356
label : 'Between' ,
356
357
labelForFormat : 'BETWEEN' ,
357
358
cardinality : 2 ,
358
- formatOp : ( field , op , values , opDef , operatorOptions , isForDisplay ) => {
359
+ formatOp : ( field , op , values , valueSrcs , opDef , operatorOptions , isForDisplay ) => {
359
360
let valFrom = values . first ( ) ;
360
361
let valTo = values . get ( 1 ) ;
361
362
if ( isForDisplay )
@@ -395,7 +396,7 @@ export default {
395
396
labelForFormat : 'IS EMPTY' ,
396
397
cardinality : 0 ,
397
398
reversedOp : 'is_not_empty' ,
398
- formatOp : ( field , op , value , opDef , operatorOptions , isForDisplay ) => {
399
+ formatOp : ( field , op , value , valueSrc , opDef , operatorOptions , isForDisplay , ) => {
399
400
return isForDisplay ? `${ field } IS EMPTY` : `!${ field } ` ;
400
401
} ,
401
402
} ,
@@ -405,55 +406,67 @@ export default {
405
406
labelForFormat : 'IS NOT EMPTY' ,
406
407
cardinality : 0 ,
407
408
reversedOp : 'is_empty' ,
408
- formatOp : ( field , op , value , opDef , operatorOptions , isForDisplay ) => {
409
+ formatOp : ( field , op , value , valueSrc , opDef , operatorOptions , isForDisplay ) => {
409
410
return isForDisplay ? `${ field } IS NOT EMPTY` : `!!${ field } ` ;
410
411
} ,
411
412
} ,
412
413
select_equals : {
413
414
label : '==' ,
414
415
labelForFormat : '==' ,
415
- formatOp : ( field , op , value , opDef , operatorOptions , isForDisplay ) => {
416
+ formatOp : ( field , op , value , valueSrc , opDef , operatorOptions , isForDisplay ) => {
416
417
return `${ field } == ${ value } ` ;
417
418
} ,
418
419
reversedOp : 'select_not_equals' ,
419
420
} ,
420
421
select_not_equals : {
421
422
label : '!=' ,
422
423
labelForFormat : '!=' ,
423
- formatOp : ( field , op , value , opDef , operatorOptions , isForDisplay ) => {
424
+ formatOp : ( field , op , value , valueSrc , opDef , operatorOptions , isForDisplay ) => {
424
425
return `${ field } != ${ value } ` ;
425
426
} ,
426
427
reversedOp : 'select_equals' ,
427
428
} ,
428
429
select_any_in : {
429
430
label : 'Any in' ,
430
431
labelForFormat : 'IN' ,
431
- formatOp : ( field , op , values , opDef , operatorOptions , isForDisplay ) => {
432
- return `${ field } IN (${ values . join ( ', ' ) } )` ;
432
+ formatOp : ( field , op , values , valueSrc , opDef , operatorOptions , isForDisplay ) => {
433
+ if ( valueSrc == 'value' )
434
+ return `${ field } IN (${ values . join ( ', ' ) } )` ;
435
+ else
436
+ return `${ field } IN (${ values } )` ;
433
437
} ,
434
438
reversedOp : 'select_not_any_in' ,
435
439
} ,
436
440
select_not_any_in : {
437
441
label : 'Not in' ,
438
442
labelForFormat : 'NOT IN' ,
439
- formatOp : ( field , op , values , opDef , operatorOptions , isForDisplay ) => {
440
- return `${ field } NOT IN (${ values . join ( ', ' ) } )` ;
443
+ formatOp : ( field , op , values , valueSrc , opDef , operatorOptions , isForDisplay ) => {
444
+ if ( valueSrc == 'value' )
445
+ return `${ field } NOT IN (${ values . join ( ', ' ) } )` ;
446
+ else
447
+ return `${ field } NOT IN (${ values } )` ;
441
448
} ,
442
449
reversedOp : 'select_any_in' ,
443
450
} ,
444
451
multiselect_equals : {
445
452
label : 'Equals' ,
446
453
labelForFormat : '==' ,
447
- formatOp : ( field , op , values , opDef , operatorOptions , isForDisplay ) => {
448
- return `${ field } == (${ values . join ( ', ' ) } )` ;
454
+ formatOp : ( field , op , values , valueSrc , opDef , operatorOptions , isForDisplay ) => {
455
+ if ( valueSrc == 'value' )
456
+ return `${ field } == [${ values . join ( ', ' ) } ]` ;
457
+ else
458
+ return `${ field } == ${ values } ` ;
449
459
} ,
450
460
reversedOp : 'multiselect_not_equals' ,
451
461
} ,
452
462
multiselect_not_equals : {
453
463
label : 'Not equals' ,
454
464
labelForFormat : '!=' ,
455
- formatOp : ( field , op , values , opDef , operatorOptions , isForDisplay ) => {
456
- return `${ field } != (${ values . join ( ', ' ) } )` ;
465
+ formatOp : ( field , op , values , valueSrc , opDef , operatorOptions , isForDisplay ) => {
466
+ if ( valueSrc == 'value' )
467
+ return `${ field } != [${ values . join ( ', ' ) } ]` ;
468
+ else
469
+ return `${ field } != ${ values } ` ;
457
470
} ,
458
471
reversedOp : 'multiselect_equals' ,
459
472
} ,
@@ -465,7 +478,7 @@ export default {
465
478
{ label : 'Word 1' , placeholder : 'Enter first word' } ,
466
479
'Word 2'
467
480
] ,
468
- formatOp : ( field , op , values , opDef , operatorOptions , isForDisplay ) => {
481
+ formatOp : ( field , op , values , valueSrc , opDef , operatorOptions , isForDisplay ) => {
469
482
let val1 = values . first ( ) ;
470
483
let val2 = values . get ( 1 ) ;
471
484
return `${ field } ${ val1 } NEAR/${ operatorOptions . get ( 'proximity' ) } ${ val2 } ` ;
@@ -482,13 +495,15 @@ export default {
482
495
} ,
483
496
widgets : {
484
497
text : {
498
+ type : "text" ,
485
499
valueSrc : 'value' ,
486
500
factory : ( props ) => < TextWidget { ...props } /> ,
487
501
formatValue : ( val , fieldDef , wgtDef , isForDisplay ) => {
488
502
return isForDisplay ? '"' + val + '"' : JSON . stringify ( val ) ;
489
503
} ,
490
504
} ,
491
505
number : {
506
+ type : "number" ,
492
507
valueSrc : 'value' ,
493
508
factory : ( props ) => < NumberWidget { ...props } /> ,
494
509
valueLabel : "Number" ,
@@ -498,6 +513,7 @@ export default {
498
513
} ,
499
514
} ,
500
515
select : {
516
+ type : "select" ,
501
517
valueSrc : 'value' ,
502
518
factory : ( props ) => < SelectWidget { ...props } /> ,
503
519
formatValue : ( val , fieldDef , wgtDef , isForDisplay ) => {
@@ -506,6 +522,7 @@ export default {
506
522
} ,
507
523
} ,
508
524
multiselect : {
525
+ type : "multiselect" ,
509
526
valueSrc : 'value' ,
510
527
factory : ( props ) => < MultiSelectWidget { ...props } /> ,
511
528
formatValue : ( vals , fieldDef , wgtDef , isForDisplay ) => {
@@ -514,6 +531,7 @@ export default {
514
531
} ,
515
532
} ,
516
533
date : {
534
+ type : "date" ,
517
535
valueSrc : 'value' ,
518
536
factory : ( props ) => < DateWidget { ...props } /> ,
519
537
dateFormat : 'DD.MM.YYYY' ,
@@ -524,6 +542,7 @@ export default {
524
542
} ,
525
543
} ,
526
544
time : {
545
+ type : "time" ,
527
546
valueSrc : 'value' ,
528
547
factory : ( props ) => < TimeWidget { ...props } /> ,
529
548
timeFormat : 'HH:mm' ,
@@ -534,6 +553,7 @@ export default {
534
553
} ,
535
554
} ,
536
555
datetime : {
556
+ type : "datetime" ,
537
557
valueSrc : 'value' ,
538
558
factory : ( props ) => < DateTimeWidget { ...props } /> ,
539
559
timeFormat : 'HH:mm' ,
@@ -545,6 +565,7 @@ export default {
545
565
} ,
546
566
} ,
547
567
boolean : {
568
+ type : "boolean" ,
548
569
valueSrc : 'value' ,
549
570
factory : ( props ) => < BooleanWidget { ...props } /> ,
550
571
labelYes : "Yes" ,
@@ -615,5 +636,9 @@ export default {
615
636
} ,
616
637
valueSourcesPopupTitle : "Select value source" ,
617
638
canReorder : false ,
639
+ canCompareFieldWithField : ( leftField , leftFieldConfig , rightField , rightFieldConfig ) => {
640
+ //for type == 'select'/'multiselect' you can check listValues
641
+ return true ;
642
+ } ,
618
643
}
619
644
} ;
0 commit comments