Skip to content

Commit 08d9546

Browse files
MKirovaMKirova
authored andcommitted
Merge from base.
2 parents 890c6bb + cf14977 commit 08d9546

File tree

11 files changed

+6623
-4
lines changed

11 files changed

+6623
-4
lines changed

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {
22
AfterContentInit,
3+
AfterViewInit,
34
ChangeDetectionStrategy,
45
Component,
56
forwardRef,
@@ -45,7 +46,7 @@ const MINIMUM_COLUMN_WIDTH = 200;
4546
]
4647
})
4748
export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnInit, AfterContentInit,
48-
GridType {
49+
GridType, AfterViewInit {
4950

5051
/** @hidden @internal */
5152
@ViewChild(IgxPivotHeaderRowComponent, { static: true })
@@ -109,6 +110,12 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
109110
});
110111
}
111112

113+
public ngAfterViewInit() {
114+
Promise.resolve().then(() => {
115+
super.ngAfterViewInit();
116+
});
117+
}
118+
112119
/** @hidden */
113120
public featureColumnsWidth() {
114121
return this.pivotRowWidths;
@@ -344,6 +351,8 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
344351
ref.instance.header = parent != null ? key.split(parent.header + '-')[1] : key;
345352
ref.instance.field = key;
346353
ref.instance.parent = parent;
354+
ref.instance.dataType = this.pivotConfiguration.values[0]?.dataType || this.resolveDataTypes(data[0][key]);
355+
ref.instance.formatter = this.pivotConfiguration.values[0]?.formatter;
347356
ref.changeDetectorRef.detectChanges();
348357
columns.push(ref.instance);
349358
if (this.hasMultipleValues) {
@@ -364,9 +373,10 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
364373
const refSibling = factoryColumn.create(this.viewRef.injector);
365374
refSibling.instance.header = parent != null ? key.split(parent.header + '-')[1] : key;
366375
refSibling.instance.field = key;
367-
refSibling.instance.dataType = this.resolveDataTypes(data[0][key]);
368376
refSibling.instance.parent = parent;
369377
refSibling.instance.hidden = true;
378+
refSibling.instance.dataType = this.pivotConfiguration.values[0]?.dataType || this.resolveDataTypes(data[0][key]);
379+
refSibling.instance.formatter = this.pivotConfiguration.values[0]?.formatter;
370380
columns.push(refSibling.instance);
371381
}
372382
const children = this.generateColumnHierarchy(value.children, data, ref.instance);

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { GridColumnDataType } from '../../data-operations/data-util';
12
import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
23
import { IPivotDimensionStrategy } from '../../data-operations/pivot-strategy';
34

@@ -42,7 +43,7 @@ export interface IPivotValue {
4243
// Allow conditionally styling of the IgxPivotGrid cells
4344
styles?: any;
4445
// Enables a data type specific template of the cells
45-
dataType?: string;
46+
dataType?: GridColumnDataType;
4647
// Applies display format to cell values.
4748
formatter?: (value: any, rowData?: any) => any;
4849
}

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ export class IgxPivotRowComponent extends IgxRowDirective<IgxPivotGridComponent>
8989
}
9090

9191
public getCellClass(col: any) {
92+
const configuration = this.grid.pivotConfiguration;
93+
if (configuration.values.length === 1) {
94+
return configuration.values[0].styles;
95+
}
9296
const colName = col.field.split('-');
9397
const measureName = colName[colName.length - 1];
9498
return this.grid.pivotConfiguration.values.find(v => v.member === measureName)?.styles;
@@ -112,7 +116,9 @@ export class IgxPivotRowComponent extends IgxRowDirective<IgxPivotGridComponent>
112116
let header = null;
113117
if (typeof dim.member === 'string') {
114118
header = this.rowData[dim.member];
115-
} else if (typeof dim.member === 'function'){
119+
} else if (typeof dim.member === 'function' && dim.fieldName) {
120+
header = this.rowData[dim.fieldName];
121+
} else {
116122
header = dim.member.call(this, this.rowData);
117123
}
118124
const col = this._createColComponent(field, header, index, dim, lvl);

src/app/app.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,11 @@ export class AppComponent implements OnInit {
540540
icon: 'view_column',
541541
name: 'Pivot Grid'
542542
},
543+
{
544+
link: '/pivot-hierarchy',
545+
icon: 'view_column',
546+
name: 'Pivot Grid Hierarchy'
547+
},
543548
{
544549
link: '/pivot-noop',
545550
icon: 'view_column',

src/app/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ import { TreeGridGroupBySampleComponent } from './tree-grid-groupby/tree-grid-gr
156156
import { PaginationSampleComponent } from './pagination/pagination.component';
157157
import { GridCellAPISampleComponent } from './grid-cell-api/grid-cell-api.sample';
158158
import { PivotGridSampleComponent } from './pivot-grid/pivot-grid.sample';
159+
import { PivotGridHierarchySampleComponent } from './pivot-grid-hierarchy/pivot-grid-hierarchy.sample';
159160
import { PivotGridNoopSampleComponent } from './pivot-grid-noop/pivot-grid-noop.sample';
160161
import { IgxStepperSampleComponent } from './stepper/stepper.sample';
161162

@@ -294,6 +295,7 @@ const components = [
294295
GridColumnTypesSampleComponent,
295296
GridLocalizationSampleComponent,
296297
PivotGridSampleComponent,
298+
PivotGridHierarchySampleComponent,
297299
PivotGridNoopSampleComponent,
298300
IgxStepperSampleComponent
299301
];

src/app/app.routing.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ import { TreeGridGroupBySampleComponent } from './tree-grid-groupby/tree-grid-gr
9696
import { PaginationSampleComponent } from './pagination/pagination.component';
9797
import { GridCellAPISampleComponent } from './grid-cell-api/grid-cell-api.sample';
9898
import { PivotGridSampleComponent } from './pivot-grid/pivot-grid.sample';
99+
import { PivotGridHierarchySampleComponent } from './pivot-grid-hierarchy/pivot-grid-hierarchy.sample';
99100
import { PivotGridNoopSampleComponent } from './pivot-grid-noop/pivot-grid-noop.sample';
100101
import { IgxStepperSampleComponent } from './stepper/stepper.sample';
101102

@@ -454,6 +455,10 @@ const appRoutes = [
454455
path: 'pivot',
455456
component: PivotGridSampleComponent
456457
},
458+
{
459+
path: 'pivotHierarchy',
460+
component: PivotGridHierarchySampleComponent
461+
},
457462
{
458463
path: 'pivot-noop',
459464
component: PivotGridNoopSampleComponent
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<div class="sample-column">
2+
<igx-pivot-grid #grid1 [data]="origData" [pivotConfiguration]="pivotConfigHierarchy">
3+
</igx-pivot-grid>
4+
</div>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
:host ::ng-deep {
2+
.upFont {
3+
color: green;
4+
}
5+
6+
.downFont {
7+
color:red;
8+
}
9+
10+
.upFont1 {
11+
color: blue;
12+
}
13+
14+
.downFont1 {
15+
color:yellow;
16+
}
17+
18+
.sample-column {
19+
max-width: 900px;
20+
}
21+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { Component, ViewChild } from '@angular/core';
2+
import { IgxNumberSummaryOperand, IgxPivotGridComponent, IPivotConfiguration } from 'igniteui-angular';
3+
import { DATA } from '../shared/pivot-data';
4+
5+
@Component({
6+
providers: [],
7+
selector: 'app-pivot-grid-hierarchy-sample',
8+
styleUrls: ['pivot-grid-hierarchy.sample.scss'],
9+
templateUrl: 'pivot-grid-hierarchy.sample.html'
10+
})
11+
12+
export class PivotGridHierarchySampleComponent {
13+
@ViewChild('grid1', { static: true }) public grid1: IgxPivotGridComponent;
14+
15+
public pivotConfigHierarchy: IPivotConfiguration = {
16+
columns: [{
17+
member: () => 'All',
18+
enabled: true,
19+
childLevel:
20+
{
21+
22+
member: (data) => data.Product.Name,
23+
enabled: true,
24+
childLevel:
25+
{
26+
member: (data) => data.Seller.City,
27+
enabled: true,
28+
}
29+
30+
}
31+
},
32+
],
33+
rows: [{
34+
member: () => 'All',
35+
enabled: true,
36+
childLevel:
37+
{
38+
member: (data) => data.Seller.Name,
39+
enabled: true,
40+
}
41+
}],
42+
values: [
43+
{
44+
member: 'NumberOfUnits',
45+
aggregate: IgxNumberSummaryOperand.sum,
46+
enabled: true
47+
48+
}, {
49+
member: 'Value',
50+
aggregate: IgxNumberSummaryOperand.sum,
51+
enabled: true,
52+
formatter: (val) => val ? parseFloat(val).toFixed(2) : undefined
53+
}
54+
],
55+
filters: null
56+
};
57+
58+
public origData = DATA;
59+
}

src/app/routing.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ import { TreeGridGroupBySampleComponent } from './tree-grid-groupby/tree-grid-gr
126126
import { PaginationSampleComponent } from './pagination/pagination.component';
127127
import { GridCellAPISampleComponent } from './grid-cell-api/grid-cell-api.sample';
128128
import { PivotGridSampleComponent } from './pivot-grid/pivot-grid.sample';
129+
import { PivotGridHierarchySampleComponent } from './pivot-grid-hierarchy/pivot-grid-hierarchy.sample';
129130
import { PivotGridNoopSampleComponent } from './pivot-grid-noop/pivot-grid-noop.sample';
130131
import { IgxStepperSampleComponent as StepperSampleComponent } from './stepper/stepper.sample';
131132

@@ -608,6 +609,9 @@ const appRoutes = [
608609
component: PivotGridSampleComponent
609610
},
610611
{
612+
path: 'pivot-hierarchy',
613+
component: PivotGridHierarchySampleComponent
614+
}, {
611615
path: 'pivot-noop',
612616
component: PivotGridNoopSampleComponent
613617
},

0 commit comments

Comments
 (0)