Skip to content

Commit 1de0788

Browse files
Merge pull request #7964 from IgniteUI/astaev/issue7569-master
fix(grid): Handle onclosing for hiding/pin #7569
2 parents c858c28 + db34c65 commit 1de0788

File tree

4 files changed

+31
-6
lines changed

4 files changed

+31
-6
lines changed

projects/igniteui-angular/src/lib/core/styles/components/column-actions/_column-actions-theme.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@
112112
display: flex;
113113
flex-flow: column nowrap;
114114
overflow-y: auto;
115+
outline-style: none;
115116
}
116117

117118
%column-actions-item {

projects/igniteui-angular/src/lib/grids/column-actions/column-actions.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ <h4 [attr.id]='titleID' class="igx-column-actions__header-title" *ngIf="title">{
1111
</igx-input-group>
1212
</div>
1313

14-
<div class="igx-column-actions__columns"
14+
<div class="igx-column-actions__columns" tabindex="0"
1515
[style.max-height]="columnsAreaMaxHeight">
1616
<igx-checkbox
1717
*ngFor="let column of columns
1818
| columnActionEnabled:actionsDirective.actionEnabledColumnsFilter:pipeTrigger
1919
| filterActionColumns:filterCriteria:pipeTrigger
2020
| sortActionColumns:columnDisplayOrder:pipeTrigger;"
2121
class="igx-column-actions__columns-item"
22-
22+
2323
(change)="toggleColumn($event, column)"
2424
[checked]="actionsDirective.columnChecked(column)"
2525
[style.margin-left.px]="column.level * indentation">

projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<span>{{ grid.hiddenColumnsText }}</span>
3232
</div>
3333
</button>
34-
<igx-drop-down #columnHidingDropdown>
34+
<igx-drop-down #columnHidingDropdown (onClosing)="onClosingColumnHiding($event)">
3535
<igx-column-actions
3636
igxColumnHiding
3737
[columns]="grid.columns"
@@ -52,7 +52,7 @@
5252
<span></span>
5353
</div>
5454
</button>
55-
<igx-drop-down #columnPinningDropdown>
55+
<igx-drop-down #columnPinningDropdown (onClosing)="onClosingColumnPinning($event)">
5656
<igx-column-actions
5757
igxColumnPinning
5858
[columns]="grid.columns"

projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.component.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { OverlaySettings, PositionSettings, HorizontalAlignment, VerticalAlignme
3030
import { ConnectedPositioningStrategy } from '../../services/overlay/position';
3131
import { GridType } from '../common/grid.interface';
3232
import { IgxGridIconService } from '../common/grid-icon.service';
33-
import { PINNING_ICONS_FONT_SET, PINNING_ICONS} from '../pinning/pinning-icons';
33+
import { PINNING_ICONS_FONT_SET, PINNING_ICONS } from '../pinning/pinning-icons';
3434
import { GridIconsFeature } from '../common/enums';
3535
import { IgxColumnActionsComponent } from '../column-actions/column-actions.component';
3636
import { IgxColumnHidingDirective } from '../column-actions/column-hiding.directive';
@@ -238,7 +238,7 @@ export class IgxGridToolbarComponent extends DisplayDensityBase implements After
238238
@Optional() public csvExporter: IgxCsvExporterService,
239239
@Optional() @Inject(DisplayDensityToken) protected _displayDensityOptions: IDisplayDensityOptions,
240240
private iconService: IgxGridIconService) {
241-
super(_displayDensityOptions);
241+
super(_displayDensityOptions);
242242
}
243243

244244
private _positionSettings: PositionSettings = {
@@ -407,4 +407,28 @@ export class IgxGridToolbarComponent extends DisplayDensityBase implements After
407407
ngAfterViewInit() {
408408
this.iconService.registerSVGIcons(GridIconsFeature.RowPinning, PINNING_ICONS, PINNING_ICONS_FONT_SET);
409409
}
410+
411+
/**
412+
* @hidden @internal
413+
*/
414+
public onClosingColumnHiding(args) {
415+
const activeElem = document.activeElement;
416+
417+
if (!args.event && activeElem !== this.grid.nativeElement &&
418+
!this.columnHidingButton.nativeElement.contains(activeElem)) {
419+
args.cancel = true;
420+
}
421+
}
422+
423+
/**
424+
* @hidden @internal
425+
*/
426+
public onClosingColumnPinning(args) {
427+
const activeElem = document.activeElement;
428+
429+
if (!args.event && activeElem !== this.grid.nativeElement &&
430+
!this.columnPinningButton.nativeElement.contains(activeElem)) {
431+
args.cancel = true;
432+
}
433+
}
410434
}

0 commit comments

Comments
 (0)