Skip to content

Commit aba14a8

Browse files
committed
fix(toolbar): Update pinning icon #7043
1 parent 5cc772c commit aba14a8

File tree

5 files changed

+41
-92
lines changed

5 files changed

+41
-92
lines changed

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

Lines changed: 0 additions & 83 deletions
This file was deleted.

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
@@ -45,8 +45,8 @@
4545
<button igxButton="outlined" [displayDensity]="grid.displayDensity" #columnPinningButton name="btnColumnPinning" igxRipple
4646
(click)="toggleColumnPinningUI()">
4747
<div class="igx-grid-toolbar__button-space">
48-
<igx-icon *ngIf="pinnedColumnsCount > 0">lock</igx-icon>
49-
<igx-icon *ngIf="pinnedColumnsCount === 0">lock_open</igx-icon>
48+
<igx-icon *ngIf="pinnedColumnsCount > 0" fontSet="filtering-icons" name="pin"></igx-icon>
49+
<igx-icon *ngIf="pinnedColumnsCount === 0" fontSet="filtering-icons" name="unpin"></igx-icon>
5050
<span>{{ pinnedColumnsCount }}</span>
5151
<span>{{ grid.pinnedColumnsText }}</span>
5252
<span></span>

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

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import {
66
Optional,
77
ViewChild,
88
Inject,
9-
TemplateRef
9+
TemplateRef,
10+
AfterViewInit
1011
} from '@angular/core';
1112

1213
import { IDisplayDensityOptions, DisplayDensityToken, DisplayDensityBase } from '../../core/displayDensity';
@@ -28,6 +29,10 @@ import { IgxColumnPinningComponent } from '../pinning/column-pinning.component';
2829
import { OverlaySettings, PositionSettings, HorizontalAlignment, VerticalAlignment } from '../../services/overlay/utilities';
2930
import { ConnectedPositioningStrategy } from '../../services/overlay/position';
3031
import { GridType } from '../common/grid.interface';
32+
import { IgxIconService } from '../../icon/icon.service';
33+
import icons from './../filtering/svgIcons';
34+
35+
const FILTERING_ICONS_FONT_SET = 'filtering-icons';
3136

3237
/**
3338
* This class encapsulates the Toolbar's logic and is internally used by
@@ -37,7 +42,7 @@ import { GridType } from '../common/grid.interface';
3742
selector: 'igx-grid-toolbar',
3843
templateUrl: './grid-toolbar.component.html'
3944
})
40-
export class IgxGridToolbarComponent extends DisplayDensityBase {
45+
export class IgxGridToolbarComponent extends DisplayDensityBase implements AfterViewInit {
4146
/**
4247
* @hidden
4348
*/
@@ -229,7 +234,8 @@ export class IgxGridToolbarComponent extends DisplayDensityBase {
229234
public cdr: ChangeDetectorRef,
230235
@Optional() public excelExporter: IgxExcelExporterService,
231236
@Optional() public csvExporter: IgxCsvExporterService,
232-
@Optional() @Inject(DisplayDensityToken) protected _displayDensityOptions: IDisplayDensityOptions) {
237+
@Optional() @Inject(DisplayDensityToken) protected _displayDensityOptions: IDisplayDensityOptions,
238+
private iconService: IgxIconService) {
233239
super(_displayDensityOptions);
234240
}
235241

@@ -391,4 +397,17 @@ export class IgxGridToolbarComponent extends DisplayDensityBase {
391397
return null;
392398
}
393399
}
400+
401+
/**
402+
* @hidden
403+
* @internal
404+
*/
405+
ngAfterViewInit() {
406+
const pinnedIcons = icons.filter(icon => icon.name === 'pin' || icon.name === 'unpin');
407+
for (const icon of pinnedIcons) {
408+
if (!this.iconService.isSvgIconCached(icon.name, FILTERING_ICONS_FONT_SET)) {
409+
this.iconService.addSvgIconFromText(icon.name, icon.value, FILTERING_ICONS_FONT_SET);
410+
}
411+
}
412+
}
394413
}

src/app/grid-row-pinning/grid-row-pinning.sample.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div class="wrapper">
2-
<app-page-header title="Grid Column Pinning">
2+
<app-page-header title="Grid Row Pinning">
33
Allows rows to be pinned to the beginning/end of the grid.
44
</app-page-header>
55
<button (click)="grid1.addRow({'ID': 'TEST', 'CompanyName': 'Test'})">Add Row</button>
@@ -19,8 +19,8 @@
1919
[height]="'500px'" [rowSelectable]="false">
2020
<igx-column width='70px' [filterable]='false'>
2121
<ng-template igxCell let-cell="cell" let-val>
22-
<igx-icon class="pin-icon" (mousedown)="togglePining(cell.row, $event)">
23-
{{cell.row.pinned ? 'lock' : 'lock_open'}}
22+
<igx-icon class="pin-icon" (mousedown)="togglePining(cell.row, $event)"
23+
fontSet="filtering-icons" name="{{cell.row.pinned ? 'unpin' : 'pin'}}">
2424
</igx-icon>
2525
</ng-template>
2626
</igx-column>

src/app/grid-row-pinning/grid-row-pinning.sample.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ import {
1010
IgxExcelExporterOptions
1111
} from 'igniteui-angular';
1212
import { IPinningConfig } from 'projects/igniteui-angular/src/lib/grids/common/grid.interface';
13+
import { IgxIconService } from 'projects/igniteui-angular/src/lib/icon/icon.service';
14+
import icons from 'projects/igniteui-angular/src/lib/grids/filtering/svgIcons';
15+
16+
const FILTERING_ICONS_FONT_SET = 'filtering-icons';
1317

1418
@Component({
1519
providers: [{ provide: IgxGridTransaction, useClass: IgxTransactionService }],
@@ -39,7 +43,7 @@ export class GridRowPinningSampleComponent implements OnInit {
3943

4044
@ViewChild(IgxGridStateDirective, { static: true }) public state: IgxGridStateDirective;
4145

42-
constructor(private excelExportService: IgxExcelExporterService) {
46+
constructor(private excelExportService: IgxExcelExporterService, private iconService: IgxIconService) {
4347
}
4448

4549
onRowChange() {
@@ -108,6 +112,15 @@ export class GridRowPinningSampleComponent implements OnInit {
108112
// tslint:enable:max-line-length
109113
}
110114

115+
ngAfterViewInit() {
116+
const pinnedIcons = icons.filter(icon => icon.name === 'pin' || icon.name === 'unpin');
117+
for (const icon of pinnedIcons) {
118+
if (!this.iconService.isSvgIconCached(icon.name, FILTERING_ICONS_FONT_SET)) {
119+
this.iconService.addSvgIconFromText(icon.name, icon.value, FILTERING_ICONS_FONT_SET);
120+
}
121+
}
122+
}
123+
111124
togglePinRow(index) {
112125
const rec = this.data[index];
113126
this.grid1.isRecordPinned(rec) ?

0 commit comments

Comments
 (0)