Skip to content

Commit ac9cce4

Browse files
MKirovaMKirova
authored andcommitted
Simplify event handling.
1 parent 8ff06b7 commit ac9cce4

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-header-row.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
(dragLeave)="onDimDragLeave($event)"
5656
(dragOver)="onDimDragOver($event)"
5757
(dragDrop)="onValueDrop($event, valueArea)">
58-
<div igxPrefix (mousedown)='onSummaryClick($event, value, dropdown)' (pointerdown)='$event.stopPropagation()'
58+
<div igxPrefix (click)='onSummaryClick($event, value, dropdown)' (pointerdown)='$event.stopPropagation()'
5959
[igxDropDownItemNavigation]="dropdown">
6060
<igx-icon>functions</igx-icon>
6161
<igx-icon>arrow_drop_down</igx-icon>
@@ -137,7 +137,7 @@
137137
<div *ngIf="!row" class="igx-grid-thead__thumb" [hidden]="!grid.hasVerticalScroll()" [style.width.px]="grid.scrollSize">
138138
</div>
139139

140-
<igx-drop-down #dropdown (selectionChanging)='onAggregationChange($event)' (closing)="onClosing($event)">
140+
<igx-drop-down #dropdown (selectionChanging)='onAggregationChange($event)'>
141141
<igx-drop-down-item *ngFor="let item of aggregateList" [selected] ='isSelected(item)' [value]='item'>
142142
{{ item.label }}
143143
</igx-drop-down-item>

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-header-row.component.ts

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ import {
88
Renderer2,
99
ViewChild
1010
} from '@angular/core';
11+
import { first } from 'rxjs/operators';
1112
import { IBaseChipEventArgs } from '../../chips/chip.component';
1213
import { GridColumnDataType } from '../../data-operations/data-util';
1314
import { ISelectionEventArgs } from '../../drop-down/drop-down.common';
1415
import { 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';
1617
import { IgxGridHeaderRowComponent } from '../headers/grid-header-row.component';
1718
import { DropPosition } from '../moving/moving.service';
1819
import { 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

Comments
 (0)