@@ -68,40 +68,53 @@ const DEFAULT_CHIP_FOCUS_DELAY = 50;
6868 templateUrl : './query-builder-tree.component.html' ,
6969 host : { 'class' : 'igx-query-builder-tree' } ,
7070 imports : [
71- DatePipe ,
72- FormsModule ,
73- IgxButtonDirective ,
74- IgxCheckboxComponent ,
75- IgxChipComponent ,
76- IgxComboComponent ,
77- IgxComboHeaderDirective ,
78- IgxDatePickerComponent ,
79- IgxDateTimeEditorDirective ,
80- IgxDialogComponent ,
81- IgxDragIgnoreDirective ,
82- IgxDropDirective ,
83- IgxDropDownComponent ,
84- IgxDropDownItemComponent ,
85- IgxDropDownItemNavigationDirective ,
86- IgxFieldFormatterPipe ,
87- IgxIconButtonDirective ,
88- IgxIconComponent ,
89- IgxInputDirective ,
90- IgxInputGroupComponent ,
91- IgxOverlayOutletDirective ,
92- IgxPickerClearComponent ,
93- IgxPickerToggleComponent ,
94- IgxPrefixDirective ,
95- IgxSelectComponent ,
96- IgxSelectItemComponent ,
97- IgxTimePickerComponent ,
98- IgxTooltipDirective ,
99- IgxTooltipTargetDirective ,
100- NgClass ,
101- NgTemplateOutlet
102- ]
71+ DatePipe ,
72+ FormsModule ,
73+ IgxButtonDirective ,
74+ IgxCheckboxComponent ,
75+ IgxChipComponent ,
76+ IgxComboComponent ,
77+ IgxComboHeaderDirective ,
78+ IgxDatePickerComponent ,
79+ IgxDateTimeEditorDirective ,
80+ IgxDialogComponent ,
81+ IgxDragIgnoreDirective ,
82+ IgxDropDirective ,
83+ IgxDropDownComponent ,
84+ IgxDropDownItemComponent ,
85+ IgxDropDownItemNavigationDirective ,
86+ IgxFieldFormatterPipe ,
87+ IgxIconButtonDirective ,
88+ IgxIconComponent ,
89+ IgxInputDirective ,
90+ IgxInputGroupComponent ,
91+ IgxOverlayOutletDirective ,
92+ IgxPickerClearComponent ,
93+ IgxPickerToggleComponent ,
94+ IgxPrefixDirective ,
95+ IgxSelectComponent ,
96+ IgxSelectItemComponent ,
97+ IgxTimePickerComponent ,
98+ IgxTooltipDirective ,
99+ IgxTooltipTargetDirective ,
100+ NgClass ,
101+ NgTemplateOutlet
102+ ] ,
103+ providers : [
104+ IgxQueryBuilderDragService
105+ ] ,
103106} )
104107export class IgxQueryBuilderTreeComponent implements AfterViewInit , OnDestroy {
108+ /**
109+ * @hidden @internal
110+ */
111+ public _expressionTree : IExpressionTree ;
112+
113+ /**
114+ * @hidden @internal
115+ */
116+ public _expressionTreeCopy : IExpressionTree ;
117+
105118 /**
106119 * @hidden @internal
107120 */
@@ -285,8 +298,11 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
285298 @ViewChild ( 'groupContextMenuDropDown' , { read : IgxDropDownComponent } )
286299 private groupContextMenuDropDown : IgxDropDownComponent ;
287300
301+ /**
302+ * @hidden @internal
303+ */
288304 @ViewChildren ( IgxChipComponent , { read : IgxChipComponent } )
289- private expressionsChips : QueryList < IgxChipComponent > ;
305+ public expressionsChips : QueryList < IgxChipComponent > ;
290306
291307 @ViewChild ( 'editingInputsContainer' , { read : ElementRef } )
292308 protected set editingInputsContainer ( value : ElementRef ) {
@@ -456,7 +472,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
456472 private _prevFocusedContainer : ElementRef ;
457473 private _expandedExpressions : IFilteringExpression [ ] = [ ] ;
458474 private _fields : FieldType [ ] ;
459- private _expressionTree : IExpressionTree ;
460475 private _locale ;
461476 private _entityNewValue : EntityType ;
462477 private _resourceStrings = getCurrentResourceStrings ( QueryBuilderResourceStringsEN ) ;
@@ -472,7 +487,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
472487 /**
473488 * Returns if the fields combo at the root level is disabled.
474489 */
475- public get disableReturnFieldsChange ( ) : boolean {
490+ public get disableReturnFieldsChange ( ) : boolean {
476491
477492 return ! this . selectedEntity || this . queryBuilder . disableReturnFieldsChange ;
478493 }
@@ -519,11 +534,12 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
519534 }
520535
521536 constructor ( public cdr : ChangeDetectorRef ,
537+ public dragService : IgxQueryBuilderDragService ,
522538 protected platform : PlatformUtil ,
523- protected el : ElementRef ,
524539 private elRef : ElementRef ,
525540 @Inject ( LOCALE_ID ) protected _localeId : string ) {
526541 this . locale = this . locale || this . _localeId ;
542+ this . dragService . register ( this , elRef ) ;
527543 }
528544
529545 /**
@@ -842,7 +858,10 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
842858 }
843859 }
844860
845- private deleteItem = ( expressionItem : ExpressionItem , skipEmit : boolean = false ) => {
861+ /**
862+ * @hidden @internal
863+ */
864+ public deleteItem = ( expressionItem : ExpressionItem , skipEmit : boolean = false ) => {
846865 if ( ! expressionItem . parent ) {
847866 this . rootGroup = null ;
848867 this . currentGroup = null ;
@@ -1025,16 +1044,13 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
10251044 this . deleteItem ( expressionItem ) ;
10261045 }
10271046
1028- private focusChipAfterDrag = ( index : number ) => {
1029- this . _lastFocusedChipIndex = index ;
1030- this . focusEditedExpressionChip ( ) ;
1031- }
1032-
10331047 /**
10341048 * @hidden @internal
10351049 */
1036- public dragService : IgxQueryBuilderDragService = new IgxQueryBuilderDragService ( this , this . el , this . deleteItem , this . focusChipAfterDrag ) ;
1037-
1050+ public focusChipAfterDrag = ( index : number ) => {
1051+ this . _lastFocusedChipIndex = index ;
1052+ this . focusEditedExpressionChip ( ) ;
1053+ }
10381054 /**
10391055 * @hidden @internal
10401056 */
@@ -1136,8 +1152,8 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
11361152 expressionItem . expression . condition . name :
11371153 null ;
11381154 this . searchValue . value = expressionItem . expression . searchVal instanceof Set ?
1139- Array . from ( expressionItem . expression . searchVal ) :
1140- expressionItem . expression . searchVal ;
1155+ Array . from ( expressionItem . expression . searchVal ) :
1156+ expressionItem . expression . searchVal ;
11411157
11421158 expressionItem . inEditMode = true ;
11431159 this . _editedExpression = expressionItem ;
@@ -1172,7 +1188,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
11721188 input ?. focus ( ) ;
11731189 }
11741190
1175- ( this . editingInputs ?. nativeElement . parentElement as HTMLElement ) ?. scrollIntoView ( { block : "nearest" , inline : "nearest" } ) ;
1191+ ( this . editingInputs ?. nativeElement . parentElement as HTMLElement ) ?. scrollIntoView ( { block : "nearest" , inline : "nearest" } ) ;
11761192 }
11771193
11781194 /**
@@ -1312,7 +1328,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
13121328 * @hidden @internal
13131329 */
13141330 public invokeClick ( eventArgs : KeyboardEvent ) {
1315- if ( ! this . dragService . dropGhostChipNode && this . platform . isActivationKey ( eventArgs ) ) {
1331+ if ( ! this . dragService . dropGhostExpression && this . platform . isActivationKey ( eventArgs ) ) {
13161332 eventArgs . preventDefault ( ) ;
13171333 ( eventArgs . currentTarget as HTMLElement ) . click ( ) ;
13181334 }
@@ -1544,7 +1560,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
15441560 return groupItem ;
15451561 }
15461562
1547- for ( let i = 0 ; i < expressionTree . filteringOperands . length ; i ++ ) {
1563+ for ( let i = 0 ; i < expressionTree . filteringOperands . length ; i ++ ) {
15481564 const expr = expressionTree . filteringOperands [ i ] ;
15491565
15501566 if ( isTree ( expr ) ) {
0 commit comments