Skip to content

Commit f8cdc44

Browse files
Aleksandyrdidimmovasimeonoffzdrawku
authored
feat(grid): expose bool default template (#7823)
* feat(grid): expose bool default template Closes #7224 * feat(grid-cell): exposing default template tick class * style(grid): add styles for boolean column * fix(grid-cell): change bool icon class * fix(grid): move bool icon template otside the text wrapper * fix(grid): move default template class on the host * feat(grid): add missed underscore * style(grid): add styles for the new template * style(grid): move placeholder selector separately * fix(grid): remove cell value interpolation space * feat(grid): expose bool default template in hgrid cell * chore(*): Changelog update Co-authored-by: didimmova <[email protected]> Co-authored-by: Simeon Simeonoff <[email protected]> Co-authored-by: Zdravko Kolev <[email protected]>
1 parent 49dfadd commit f8cdc44

File tree

9 files changed

+52
-2
lines changed

9 files changed

+52
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ All notable changes for each version of this project will be documented in this
1717
- **Breaking Changes** - The `igx-action-icon` has been renamed to `igx-navbar-action`. It should get renamed in your components via `ng update`;
1818
- `igxGrid`
1919
- Added `onScroll` event, which is emitted when the grid is scrolled vertically or horizontally.
20+
- Each grid now expose a default handling for boolean column types. The column will display `check` or `close` icon, instead of true/false by default.
2021
- `igxTreeGrid`
2122
- Removed `onDataPreLoad` event as it is specific for remote virtualization implementation, which is not supported for the `igxTreeGrid`. A more generic `onScroll` event is exposed and can be used instead.
2223
- `IgxTimePicker`

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-component.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,14 @@
325325
@extend %grid-cell--cross-selected !optional;
326326
}
327327

328+
@include e(td, $m: bool) {
329+
@extend %igx-grid__td--bool !optional;
330+
}
331+
332+
@include e(td, $m: bool-true) {
333+
@extend %igx-grid__td--bool-true !optional;
334+
}
335+
328336
@include e(tr, $mods: (selected, filtered)) {
329337
@extend %grid-row--selected--filtered !optional;
330338
}

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-theme.scss

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1139,6 +1139,23 @@
11391139
bottom: 0;
11401140
}
11411141

1142+
%igx-grid__td--bool {
1143+
justify-content: center;
1144+
1145+
igx-icon {
1146+
height: rem(18px);
1147+
width: rem(18px);
1148+
font-size: rem(18px);
1149+
color: igx-color($palette, 'grays', 500);
1150+
}
1151+
}
1152+
1153+
%igx-grid__td--bool-true {
1154+
igx-icon {
1155+
color: igx-color($palette, 'grays', 700);
1156+
}
1157+
}
1158+
11421159
%igx-grid__tr--edit {
11431160
border-bottom: 1px solid --var($theme, 'edit-mode-color');
11441161
position: relative;

projects/igniteui-angular/src/lib/grids/cell.component.html

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@
1010
[row]="rowData"
1111
[column]="this.column.field"
1212
[containerClass]="'igx-grid__td-text'"
13-
[metadata]="searchMetadata">{{ formatter ? (value | columnFormatter:formatter) : column.dataType === 'number' ? (value | igxdecimal:grid.locale) : column.dataType === 'date' ? (value | igxdate: grid.locale) : value }}</div>
13+
[metadata]="searchMetadata">{{ formatter ? (value | columnFormatter:formatter) :
14+
column.dataType === 'number' ?
15+
(value | igxdecimal:grid.locale) :
16+
column.dataType === 'date' ?
17+
(value | igxdate: grid.locale) :
18+
column.dataType === 'boolean' ? "" :
19+
value
20+
}}</div>
21+
<igx-icon *ngIf="column.dataType === 'boolean'">{{value ? 'check' : 'close'}}</igx-icon>
1422
</ng-template>
1523
<ng-template #inlineEditor let-cell="cell">
1624
<ng-container *ngIf="column.dataType === 'string'">

projects/igniteui-angular/src/lib/grids/cell.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,11 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy {
287287
return this.editMode || this.cellTemplate ? '' : this.value;
288288
}
289289

290+
@HostBinding('class.igx-grid__td--bool-true')
291+
public get booleanClass() {
292+
return this.column.dataType === 'boolean' && this.value;
293+
}
294+
290295
/**
291296
* Returns a reference to the nativeElement of the cell.
292297
* ```typescript

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@
9292
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
9393
[class.igx-grid__td--pinned]="col.pinned"
9494
[class.igx-grid__td--number]="col.dataType === 'number'"
95+
[class.igx-grid__td--bool]="col.dataType === 'boolean'"
9596
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
9697
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
9798
[editMode]="col.editable && crudService.isInEditMode(index, col.index)"

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger"
4444
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
4545
[class.igx-grid__td--number]="col.dataType === 'number'"
46+
[class.igx-grid__td--bool]="col.dataType === 'boolean'"
4647
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
4748
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
4849
[editMode]="col.editable && crudService.isInEditMode(index, col.index)"

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@
1010
[row]="rowData"
1111
[column]="this.column.field"
1212
[containerClass]="'igx-grid__td-text'"
13-
[metadata]="searchMetadata">{{ formatter ? (value | columnFormatter:formatter) : column.dataType === 'number' ? (value | igxdecimal:grid.locale) : column.dataType === 'date' ? (value | igxdate: grid.locale) : value }}</div>
13+
[metadata]="searchMetadata">{{ formatter ? (value | columnFormatter:formatter) :
14+
column.dataType === 'number' ?
15+
(value | igxdecimal:grid.locale) :
16+
column.dataType === 'date' ?
17+
(value | igxdate: grid.locale) :
18+
column.dataType === 'boolean' ? "" :
19+
value
20+
}}</div>
21+
<igx-icon *ngIf="column.dataType === 'boolean'">{{value ? 'check' : 'close'}}</igx-icon>
1422
</ng-template>
1523
<ng-template #inlineEditor let-cell="cell">
1624
<ng-container *ngIf="column.dataType === 'string'">

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger"
2222
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
2323
[class.igx-grid__td--number]="col.dataType === 'number'"
24+
[class.igx-grid__td--bool]="col.dataType === 'boolean'"
2425
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
2526
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
2627
[editMode]="col.editable && crudService.isInEditMode(index, col.index)"

0 commit comments

Comments
 (0)