@@ -8,11 +8,12 @@ import {
88 Renderer2 ,
99 ViewChild
1010} from '@angular/core' ;
11+ import { first } from 'rxjs/operators' ;
1112import { IBaseChipEventArgs } from '../../chips/chip.component' ;
1213import { GridColumnDataType } from '../../data-operations/data-util' ;
1314import { ISelectionEventArgs } from '../../drop-down/drop-down.common' ;
1415import { IgxDropDownComponent } from '../../drop-down/drop-down.component' ;
15- import { AbsoluteScrollStrategy , AutoPositionStrategy , OverlaySettings , VerticalAlignment } from '../../services/public_api' ;
16+ import { AbsoluteScrollStrategy , AutoPositionStrategy , OverlaySettings , PositionSettings , VerticalAlignment } from '../../services/public_api' ;
1617import { IgxGridHeaderRowComponent } from '../headers/grid-header-row.component' ;
1718import { DropPosition } from '../moving/moving.service' ;
1819import { IgxPivotAggregate , IgxPivotDateAggregate , IgxPivotNumericAggregate , IgxPivotTimeAggregate } from './pivot-grid-aggregate' ;
@@ -53,8 +54,9 @@ export class IgxPivotHeaderRowComponent extends IgxGridHeaderRowComponent implem
5354 private _dropLeftIndicatorClass = 'igx-pivot-grid__drop-indicator--left' ;
5455 private _dropRightIndicatorClass = 'igx-pivot-grid__drop-indicator--right' ;
5556 private valueData : Map < string , IPivotAggregator [ ] > ;
56- private _subMenuPositionSettings = {
57- verticalStartPoint : VerticalAlignment . Bottom
57+ private _subMenuPositionSettings : PositionSettings = {
58+ verticalStartPoint : VerticalAlignment . Bottom ,
59+ closeAnimation : undefined
5860 } ;
5961 private _subMenuOverlaySettings : OverlaySettings = {
6062 closeOnOutsideClick : true ,
@@ -125,24 +127,15 @@ export class IgxPivotHeaderRowComponent extends IgxGridHeaderRowComponent implem
125127 }
126128
127129 public onSummaryClick ( eventArgs , value : IPivotValue , dropdown : IgxDropDownComponent ) {
128- this . value = value ;
129- this . aggregateList = this . valueData . get ( value . member ) ;
130130 this . _subMenuOverlaySettings . target = eventArgs . currentTarget ;
131131 if ( dropdown . collapsed ) {
132- dropdown . open ( this . _subMenuOverlaySettings ) ;
132+ this . updateDropDown ( value , dropdown ) ;
133133 } else {
134- this . _subMenuOverlaySettings . positionStrategy . position (
135- ( dropdown as any ) . toggleDirective . elementRef . nativeElement . parentElement ,
136- undefined ,
137- undefined ,
138- false ,
139- eventArgs . currentTarget ) ;
140- }
141- }
142-
143- public onClosing ( evt ) {
144- if ( evt . event && ( this . _subMenuOverlaySettings . target as HTMLElement ) . contains ( evt . event . target ) ) {
145- evt . cancel = true ;
134+ // close for previous chip
135+ dropdown . close ( ) ;
136+ dropdown . closed . pipe ( first ( ) ) . subscribe ( ( ) => {
137+ this . updateDropDown ( value , dropdown ) ;
138+ } ) ;
146139 }
147140 }
148141
@@ -324,4 +317,10 @@ export class IgxPivotHeaderRowComponent extends IgxGridHeaderRowComponent implem
324317 return new IgxPivotAggregate ( ) . aggregators ;
325318 }
326319 }
320+
321+ protected updateDropDown ( value : IPivotValue , dropdown ) {
322+ this . value = value ;
323+ this . aggregateList = this . valueData . get ( value . member ) ;
324+ dropdown . open ( this . _subMenuOverlaySettings ) ;
325+ }
327326}
0 commit comments