Skip to content

Commit 2b25e6e

Browse files
Merge pull request #5638 from IgniteUI/rkolev/fix-5232-7.3.x
Fixing grid toolbar buttons type - 7.3.x
2 parents 95125aa + 13fb7c2 commit 2b25e6e

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
AbsoluteScrollStrategy
2222
} from '../services/index';
2323
import { GridBaseAPIService } from './api.service';
24+
import { IgxButtonDirective } from '../directives/button/button.directive';
2425
import { IgxGridBaseComponent, IGridDataBindable } from './grid-base.component';
2526
import { IgxDropDownComponent } from '../drop-down/drop-down.component';
2627
import { IgxColumnHidingComponent } from './column-hiding.component';
@@ -104,8 +105,8 @@ export class IgxGridToolbarComponent extends DisplayDensityBase {
104105
* const hidingButton = this.grid.toolbar.columnHidingButton;
105106
* ```
106107
*/
107-
@ViewChild('columnHidingButton')
108-
public columnHidingButton;
108+
@ViewChild('columnHidingButton', { read: IgxButtonDirective })
109+
public columnHidingButton: IgxButtonDirective;
109110

110111
/**
111112
* Provides a reference to the `IgxDropDownComponent` of the Export button.
@@ -122,8 +123,8 @@ export class IgxGridToolbarComponent extends DisplayDensityBase {
122123
* const exportBtn = this.grid.toolbar.exportButton;
123124
* ```
124125
*/
125-
@ViewChild('btnExport')
126-
public exportButton;
126+
@ViewChild('btnExport', { read: IgxButtonDirective })
127+
public exportButton: IgxButtonDirective;
127128

128129
/**
129130
* Provides a reference to the `IgxDropDownComponent` of the Column Pinning UI.
@@ -149,8 +150,8 @@ export class IgxGridToolbarComponent extends DisplayDensityBase {
149150
* const pinningButton = this.grid.toolbar.columnPinningButton;
150151
* ```
151152
*/
152-
@ViewChild('columnPinningButton')
153-
public columnPinningButton;
153+
@ViewChild('columnPinningButton', { read: IgxButtonDirective })
154+
public columnPinningButton: IgxButtonDirective;
154155

155156
/**
156157
* Returns a reference to the `IgxGridComponent` component, hosting the `IgxGridToolbarComponent`.

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { By } from '@angular/platform-browser';
44
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
55
import { first } from 'rxjs/operators';
66
import { IgxCsvExporterOptions, IgxCsvExporterService, IgxExcelExporterOptions, IgxExcelExporterService } from '../../services/index';
7+
import { IgxButtonDirective } from '../../directives/button/button.directive';
78
import { IgxGridComponent } from './grid.component';
89
import { IgxGridModule } from './index';
910
import { DisplayDensity } from '../../core/displayDensity';
@@ -578,6 +579,28 @@ describe('IgxGrid - Grid Toolbar Custom Content', () => {
578579
expect(customContainer).not.toBe(null);
579580
});
580581

582+
it('should expose the toolbar buttons with their correct type', () => {
583+
fixture = TestBed.createComponent(GridToolbarTestPage1Component);
584+
fixture.detectChanges();
585+
grid = fixture.componentInstance.grid1;
586+
587+
grid.showToolbar = true;
588+
grid.columnHiding = true;
589+
grid.columnPinning = true;
590+
grid.exportExcel = true;
591+
grid.exportCsv = true;
592+
fixture.detectChanges();
593+
594+
let aButton = grid.toolbar.columnHidingButton;
595+
expect(aButton instanceof IgxButtonDirective).toBe(true, 'column hiding button has wrong type');
596+
597+
aButton = grid.toolbar.columnPinningButton;
598+
expect(aButton instanceof IgxButtonDirective).toBe(true, 'column pinning button has wrong type');
599+
600+
aButton = grid.toolbar.exportButton;
601+
expect(aButton instanceof IgxButtonDirective).toBe(true, 'export button has wrong type');
602+
});
603+
581604
});
582605

583606
function getToolbar(fixture) {

0 commit comments

Comments
 (0)