@@ -172,17 +172,12 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
172
172
@Input ( )
173
173
public set fields ( fields : FieldType [ ] ) {
174
174
this . _fields = fields ;
175
-
175
+
176
+ this . _fields = this . _fields ?. map ( f => ( { ...f , filters : this . getFilters ( f ) , pipeArgs : this . getPipeArgs ( f ) } ) ) ;
177
+
176
178
if ( ! this . _fields && this . isAdvancedFiltering ( ) ) {
177
179
this . _fields = this . entities [ 0 ] . fields ;
178
180
}
179
-
180
- if ( this . _fields ) {
181
- this . _fields . forEach ( field => {
182
- this . setFilters ( field ) ;
183
- this . setFormat ( field ) ;
184
- } ) ;
185
- }
186
181
}
187
182
188
183
/**
@@ -1180,7 +1175,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
1180
1175
if ( ! this . selectedField ) {
1181
1176
this . fieldSelect . input . nativeElement . focus ( ) ;
1182
1177
} else if ( this . selectedField . filters . condition ( this . selectedCondition ) ?. isUnary ) {
1183
- this . conditionSelect . input . nativeElement . focus ( ) ;
1178
+ this . conditionSelect ? .input . nativeElement . focus ( ) ;
1184
1179
} else {
1185
1180
const input = this . searchValueInput ?. nativeElement || this . picker ?. getEditElement ( ) ;
1186
1181
input ?. focus ( ) ;
@@ -1483,16 +1478,19 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
1483
1478
return ctx ;
1484
1479
}
1485
1480
1486
- private setFormat ( field : FieldType ) {
1487
- if ( ! field . pipeArgs ) {
1488
- field . pipeArgs = { digitsInfo : DEFAULT_PIPE_DIGITS_INFO } ;
1481
+ private getPipeArgs ( field : FieldType ) {
1482
+ let pipeArgs = { ...field . pipeArgs } ;
1483
+ if ( ! pipeArgs ) {
1484
+ pipeArgs = { digitsInfo : DEFAULT_PIPE_DIGITS_INFO } ;
1489
1485
}
1490
1486
1491
- if ( ! field . pipeArgs . format ) {
1492
- field . pipeArgs . format = field . dataType === DataType . Time ?
1487
+ if ( ! pipeArgs . format ) {
1488
+ pipeArgs . format = field . dataType === DataType . Time ?
1493
1489
DEFAULT_PIPE_TIME_FORMAT : field . dataType === DataType . DateTime ?
1494
1490
DEFAULT_PIPE_DATE_TIME_FORMAT : DEFAULT_PIPE_DATE_FORMAT ;
1495
1491
}
1492
+
1493
+ return pipeArgs ;
1496
1494
}
1497
1495
1498
1496
private selectDefaultCondition ( ) {
@@ -1501,30 +1499,24 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
1501
1499
}
1502
1500
}
1503
1501
1504
- private setFilters ( field : FieldType ) {
1502
+ private getFilters ( field : FieldType ) {
1505
1503
if ( ! field . filters ) {
1506
1504
switch ( field . dataType ) {
1507
1505
case DataType . Boolean :
1508
- field . filters = IgxBooleanFilteringOperand . instance ( ) ;
1509
- break ;
1506
+ return IgxBooleanFilteringOperand . instance ( ) ;
1510
1507
case DataType . Number :
1511
1508
case DataType . Currency :
1512
1509
case DataType . Percent :
1513
- field . filters = IgxNumberFilteringOperand . instance ( ) ;
1514
- break ;
1510
+ return IgxNumberFilteringOperand . instance ( ) ;
1515
1511
case DataType . Date :
1516
- field . filters = IgxDateFilteringOperand . instance ( ) ;
1517
- break ;
1512
+ return IgxDateFilteringOperand . instance ( ) ;
1518
1513
case DataType . Time :
1519
- field . filters = IgxTimeFilteringOperand . instance ( ) ;
1520
- break ;
1514
+ return IgxTimeFilteringOperand . instance ( ) ;
1521
1515
case DataType . DateTime :
1522
- field . filters = IgxDateTimeFilteringOperand . instance ( ) ;
1523
- break ;
1516
+ return IgxDateTimeFilteringOperand . instance ( ) ;
1524
1517
case DataType . String :
1525
1518
default :
1526
- field . filters = IgxStringFilteringOperand . instance ( ) ;
1527
- break ;
1519
+ return IgxStringFilteringOperand . instance ( ) ;
1528
1520
}
1529
1521
}
1530
1522
}
0 commit comments