Skip to content

Commit 4c74b65

Browse files
committed
feat(*): Finish pivot cell formatting
1 parent d85a37e commit 4c74b65

File tree

5 files changed

+31
-20
lines changed

5 files changed

+31
-20
lines changed

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

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,6 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
263263
ref.instance.header = parent != null ? key.split(parent.header + '-')[1] : key;
264264
ref.instance.field = key;
265265
ref.instance.parent = parent;
266-
ref.instance.dataType = this.extractDataType();
267-
ref.instance.formatter = this.pivotConfiguration.values[0].formatter;
268266
ref.changeDetectorRef.detectChanges();
269267

270268
const measureChildren = this.getMeasureChildren(factoryColumn, data , ref.instance, false);
@@ -296,18 +294,6 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
296294
return columns;
297295
}
298296

299-
private extractDataType(): GridColumnDataType {
300-
switch(this.pivotConfiguration.values[0].dataType) {
301-
case 'number': return GridColumnDataType.Number;
302-
case 'currency': return GridColumnDataType.Currency;
303-
case 'boolean': return GridColumnDataType.Boolean;
304-
case 'date': return GridColumnDataType.Date;
305-
case 'dateTime': return GridColumnDataType.DateTime;
306-
case 'percent': return GridColumnDataType.Percent;
307-
case 'time': return GridColumnDataType.Time;
308-
default: return GridColumnDataType.String;
309-
}
310-
}
311297
protected getMeasureChildren(colFactory, data, parent, hidden) {
312298
const cols = [];
313299
this.pivotConfiguration.values.forEach(val => {
@@ -316,12 +302,11 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
316302
ref.instance.field = parent.field + '-' + val.member;
317303
ref.instance.parent = parent;
318304
ref.instance.hidden = hidden;
319-
ref.instance.dataType = this.resolveDataTypes(data[0][val.member]);
305+
ref.instance.dataType = val.dataType || this.resolveDataTypes(data[0][val.member]);
306+
ref.instance.formatter = val.formatter;
320307
ref.changeDetectorRef.detectChanges();
321308
cols.push(ref.instance);
322309
});
323310
return cols;
324311
}
325-
326-
327312
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
2626
[class.igx-grid__td--number]="col.dataType === 'number' || col.dataType === 'percent' || col.dataType === 'currency'"
2727
[class.igx-grid__td--bool]="col.dataType === 'boolean'"
28-
[ngClass]="this.grid.pivotConfiguration.values[0].styles | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
28+
[ngClass]="this.getCellClass(col) | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
2929
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
3030
[editMode]="col.editable && this.grid.crudService.targetInEdit(index, col.index)"
3131
[column]="col"

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,16 @@ export class IgxPivotRowComponent extends IgxRowDirective<IgxPivotGridComponent>
6666
return this.grid.gridAPI.get_row_expansion_state(this.rowDimensionKey);
6767
}
6868

69+
/**
70+
* @hidden
71+
* @internal
72+
*/
73+
public getCellClass(col: any) {
74+
const colName = col.field.split('-');
75+
const measureName = colName[colName.length - 1];
76+
return this.grid.pivotConfiguration.values.find(v => v.member === measureName)?.styles;
77+
}
78+
6979
public ngOnInit() {
7080
// generate rowDimension
7181
const rowDimConfig = this.grid.pivotConfiguration.rows;

src/app/pivot-grid/pivot-grid.sample.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@
1010
color:red;
1111
}
1212

13+
.upFont1 {
14+
color: blue;
15+
}
16+
17+
.downFont1 {
18+
color:yellow;
19+
}
20+
1321
.sample-column {
1422
max-width: 900px;
1523
}

src/app/pivot-grid/pivot-grid.sample.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ export class PivotGridSampleComponent {
5959
]
6060
}]
6161
},
62-
6362
{
6463
member: 'ProductCategory',
6564
enabled: true,
@@ -98,7 +97,16 @@ export class PivotGridSampleComponent {
9897
{
9998
member: 'UnitPrice',
10099
aggregate: IgxNumberSummaryOperand.sum,
101-
enabled: true
100+
enabled: true,
101+
dataType: 'currency',
102+
styles: {
103+
upFont1: (rowData:any, columnKey:any): boolean => {
104+
return rowData[columnKey] > 150;
105+
},
106+
downFont1: (rowData:any, columnKey:any): boolean => {
107+
return rowData[columnKey] <= 150;
108+
}
109+
},
102110
}
103111
],
104112
filters: null

0 commit comments

Comments
 (0)