@@ -176,13 +176,8 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
176176 if ( ! this . _fields && this . isAdvancedFiltering ( ) ) {
177177 this . _fields = this . entities [ 0 ] . fields ;
178178 }
179-
180- if ( this . _fields ) {
181- this . _fields . forEach ( field => {
182- this . setFilters ( field ) ;
183- this . setFormat ( field ) ;
184- } ) ;
185- }
179+
180+ this . _fields = this . _fields . map ( f => ( { ...f , filters : this . getFilters ( f ) , pipeArgs : this . getPipeArgs ( f ) } ) ) ;
186181 }
187182
188183 /**
@@ -1180,7 +1175,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
11801175 if ( ! this . selectedField ) {
11811176 this . fieldSelect . input . nativeElement . focus ( ) ;
11821177 } else if ( this . selectedField . filters . condition ( this . selectedCondition ) ?. isUnary ) {
1183- this . conditionSelect . input . nativeElement . focus ( ) ;
1178+ this . conditionSelect ? .input . nativeElement . focus ( ) ;
11841179 } else {
11851180 const input = this . searchValueInput ?. nativeElement || this . picker ?. getEditElement ( ) ;
11861181 input ?. focus ( ) ;
@@ -1483,16 +1478,19 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
14831478 return ctx ;
14841479 }
14851480
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 } ;
14891485 }
14901486
1491- if ( ! field . pipeArgs . format ) {
1492- field . pipeArgs . format = field . dataType === DataType . Time ?
1487+ if ( ! pipeArgs . format ) {
1488+ pipeArgs . format = field . dataType === DataType . Time ?
14931489 DEFAULT_PIPE_TIME_FORMAT : field . dataType === DataType . DateTime ?
14941490 DEFAULT_PIPE_DATE_TIME_FORMAT : DEFAULT_PIPE_DATE_FORMAT ;
14951491 }
1492+
1493+ return pipeArgs ;
14961494 }
14971495
14981496 private selectDefaultCondition ( ) {
@@ -1501,30 +1499,24 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
15011499 }
15021500 }
15031501
1504- private setFilters ( field : FieldType ) {
1502+ private getFilters ( field : FieldType ) {
15051503 if ( ! field . filters ) {
15061504 switch ( field . dataType ) {
15071505 case DataType . Boolean :
1508- field . filters = IgxBooleanFilteringOperand . instance ( ) ;
1509- break ;
1506+ return IgxBooleanFilteringOperand . instance ( ) ;
15101507 case DataType . Number :
15111508 case DataType . Currency :
15121509 case DataType . Percent :
1513- field . filters = IgxNumberFilteringOperand . instance ( ) ;
1514- break ;
1510+ return IgxNumberFilteringOperand . instance ( ) ;
15151511 case DataType . Date :
1516- field . filters = IgxDateFilteringOperand . instance ( ) ;
1517- break ;
1512+ return IgxDateFilteringOperand . instance ( ) ;
15181513 case DataType . Time :
1519- field . filters = IgxTimeFilteringOperand . instance ( ) ;
1520- break ;
1514+ return IgxTimeFilteringOperand . instance ( ) ;
15211515 case DataType . DateTime :
1522- field . filters = IgxDateTimeFilteringOperand . instance ( ) ;
1523- break ;
1516+ return IgxDateTimeFilteringOperand . instance ( ) ;
15241517 case DataType . String :
15251518 default :
1526- field . filters = IgxStringFilteringOperand . instance ( ) ;
1527- break ;
1519+ return IgxStringFilteringOperand . instance ( ) ;
15281520 }
15291521 }
15301522 }
0 commit comments