Skip to content

Commit 2c8372e

Browse files
committed
chore(pivot): Change childLevels to childLevel
1 parent 72bae81 commit 2c8372e

File tree

7 files changed

+67
-84
lines changed

7 files changed

+67
-84
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export interface IPivotConfiguration {
1414

1515
export interface IPivotDimension {
1616
// allow defining a hierarchy when multiple sub groups need to be extracted from single member.
17-
childLevels?: IPivotDimension[];
17+
childLevel?: IPivotDimension;
1818
// field name which to use to extract value or function that extract the value.
1919
member: string | ((data: any) => any);
2020
// Enables/Disables a particular dimension from pivot structure.

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

Lines changed: 23 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,18 @@ describe('Pivot pipes', () => {
2323
columns: [{
2424
member: () => 'All',
2525
enabled: true,
26-
childLevels: [{
26+
childLevel: {
2727
member: 'Country',
28-
enabled: true,
29-
childLevels: []
30-
}]
28+
enabled: true
29+
}
3130
}],
3231
rows: [{
3332
member: () => 'All',
3433
enabled: true,
35-
childLevels: [
36-
{
37-
member: (d) => d.ProductCategory,
38-
enabled: true,
39-
childLevels: []
40-
}
41-
]
34+
childLevel: {
35+
member: (d) => d.ProductCategory,
36+
enabled: true
37+
}
4238
}],
4339
values: [
4440
{
@@ -67,8 +63,7 @@ describe('Pivot pipes', () => {
6763
const config = Object.assign({}, pivotConfigHierarchy);
6864
config.rows = [{
6965
member: 'ProductCategory',
70-
enabled: true,
71-
childLevels: []
66+
enabled: true
7267
}];
7368
const rowPipeResult = rowPipe.transform(data, config , expansionStates);
7469
expect(rowPipeResult).toEqual([
@@ -222,13 +217,11 @@ describe('Pivot pipes', () => {
222217
const config = Object.assign({}, pivotConfigHierarchy);
223218
config.rows = [{
224219
member: 'ProductCategory',
225-
enabled: true,
226-
childLevels: []
220+
enabled: true
227221
},
228222
{
229223
member: 'Date',
230-
enabled: true,
231-
childLevels: []
224+
enabled: true
232225
}];
233226
const rowPipeResult = rowPipe.transform(data, config, expansionStates);
234227
const rowStatePipeResult = rowStatePipe.transform(rowPipeResult, config, expansionStates);
@@ -299,20 +292,18 @@ describe('Pivot pipes', () => {
299292
config.rows = [{
300293
member: () => 'AllProd',
301294
enabled: true,
302-
childLevels: [{
303-
member: 'ProductCategory',
304-
enabled: true,
305-
childLevels: []
306-
}]
295+
childLevel: {
296+
member: 'ProductCategory',
297+
enabled: true
298+
}
307299
},
308300
{
309301
member: () => 'AllDate',
310302
enabled: true,
311-
childLevels: [{
312-
member: 'Date',
313-
enabled: true,
314-
childLevels: []
315-
}]
303+
childLevel: {
304+
member: 'Date',
305+
enabled: true
306+
}
316307
}];
317308
const rowPipeResult = rowPipe.transform(data, config, expansionStates);
318309
const rowStatePipeResult = rowStatePipe.transform(rowPipeResult, config, expansionStates);
@@ -339,13 +330,11 @@ describe('Pivot pipes', () => {
339330
const config = Object.assign({}, pivotConfigHierarchy);
340331
config.columns = [{
341332
member: 'Country',
342-
enabled: true,
343-
childLevels:[]
333+
enabled: true
344334
},
345335
{
346336
member: 'Date',
347-
enabled: true,
348-
childLevels: []
337+
enabled: true
349338
}];
350339
const rowPipeResult = rowPipe.transform(data, config, new Map<any, boolean>());
351340
const rowStatePipeResult = rowStatePipe.transform(rowPipeResult, pivotConfigHierarchy, new Map<any, boolean>());
@@ -365,18 +354,15 @@ describe('Pivot pipes', () => {
365354
const config = Object.assign({}, pivotConfigHierarchy);
366355
config.columns = [{
367356
member: 'Country',
368-
enabled: true,
369-
childLevels:[]
357+
enabled: true
370358
},
371359
{
372360
member: 'SellerName',
373-
enabled: true,
374-
childLevels:[]
361+
enabled: true
375362
},
376363
{
377364
member: 'Date',
378-
enabled: true,
379-
childLevels: []
365+
enabled: true
380366
}];
381367
const rowPipeResult = rowPipe.transform(data, config, new Map<any, boolean>());
382368
const rowStateResult = rowStatePipe.transform(rowPipeResult, config, new Map<any, boolean>());

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

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,21 +94,17 @@ export class IgxPivotGridTestBaseComponent {
9494
this.pivotConfigHierarchy = {
9595
columns: [{
9696
member: 'Country',
97-
enabled: true,
98-
childLevels: []
97+
enabled: true
9998
},
10099
],
101100
rows: [{
102101
member: () => 'All',
103102
enabled: true,
104-
childLevels: [
105-
{
106-
fieldName: 'ProductCategory',
107-
member: (data) => data.ProductCategory,
108-
enabled: true,
109-
childLevels: []
110-
}
111-
]
103+
childLevel: {
104+
fieldName: 'ProductCategory',
105+
member: (data) => data.ProductCategory,
106+
enabled: true
107+
}
112108
}],
113109
values: [
114110
{

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ export class IgxPivotRowComponent extends IgxRowDirective<IgxPivotGridComponent>
126126
ref.instance.header = header;
127127
ref.instance.width = MINIMUM_COLUMN_WIDTH + 'px';
128128
(ref as any).instance._vIndex = this.grid.columns.length + index + this.index * this.grid.pivotConfiguration.rows.length;
129-
if (dim.childLevels && dim.childLevels.length > 0 && lvl >= PivotUtil.getTotalLvl(this.rowData)) {
129+
if (dim.childLevel && lvl >= PivotUtil.getTotalLvl(this.rowData)) {
130130
ref.instance.headerTemplate = this.headerTemplate;
131131
} else if (lvl < PivotUtil.getTotalLvl(this.rowData)) {
132132
ref.instance.headerTemplate = this.headerTemplateGray;

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

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11

2+
import { IPivotConfiguration } from 'igniteui-angular';
23
import { cloneValue } from '../../core/utils';
34
import { IPivotDimension, IPivotKeys, IPivotValue, PivotDimensionType } from './pivot-grid.interface';
45

@@ -26,25 +27,32 @@ export class PivotUtil {
2627
return typeof dim.member === 'string' ? recData[dim.member] : dim.member.call(null, recData);
2728
}
2829

29-
public static getDimensionDepth(dim) {
30+
public static getDimensionDepth(dim: IPivotDimension): number {
3031
let lvl = 0;
31-
while(dim.childLevels && dim.childLevels.length > 0) {
32+
while(dim.childLevel) {
3233
lvl++;
33-
dim = dim.childLevels[0];
34+
dim = dim.childLevel;
3435
}
3536
return lvl;
3637
}
3738

38-
public static getDimensionLevel(dim, rec, pivotKeys) {
39+
public static getDimensionLevel(dim: IPivotDimension, rec: any, pivotKeys: IPivotKeys) {
3940
let level = rec[dim.fieldName + '_' + pivotKeys.level];
40-
while(dim.childLevels && dim.childLevels.length > 0 && level === undefined) {
41-
dim = dim.childLevels[0];
41+
while(dim.childLevel && level === undefined) {
42+
dim = dim.childLevel;
4243
level = rec[dim.fieldName + '_' + pivotKeys.level];
4344
}
4445
return { level, fieldName: dim.fieldName, dimension: dim };
4546
}
4647

47-
public static flattenHierarchy(records, config, dim, expansionStates, pivotKeys, lvl, prevDims, currDimLvl) {
48+
public static flattenHierarchy(records: any[],
49+
config: IPivotConfiguration,
50+
dim: IPivotDimension,
51+
expansionStates: any,
52+
pivotKeys: IPivotKeys,
53+
lvl: number,
54+
prevDims: IPivotDimension[],
55+
currDimLvl: number) {
4856
const data = records;
4957
const defaultExpandState = true;
5058
for (let i = 0; i < data.length; i++) {
@@ -62,13 +70,13 @@ export class PivotUtil {
6270
rec[field + '_' + pivotKeys.records].length > 0 &&
6371
isExpanded && lvl > 0) {
6472
let dimData = rec[field + '_' + pivotKeys.records];
65-
if (dim.childLevels && dim.childLevels.length > 0 ) {
73+
if (dim.childLevel) {
6674
if (PivotUtil.getDimensionDepth(dim) > 1) {
67-
dimData = this.flattenHierarchy(dimData, config, dim.childLevels[0],
75+
dimData = this.flattenHierarchy(dimData, config, dim.childLevel,
6876
expansionStates, pivotKeys, lvl - 1, prevDims, currDimLvl + 1);
6977
} else {
7078
dimData.forEach(d => {
71-
d[dim.childLevels[0].fieldName + '_' + pivotKeys.level] = currDimLvl + 1;
79+
d[dim.childLevel.fieldName + '_' + pivotKeys.level] = currDimLvl + 1;
7280
});
7381
}
7482
}
@@ -82,7 +90,7 @@ export class PivotUtil {
8290
let prevDimName = prevDim.fieldName;
8391
prevDimRecs = rec[prevDimName + '_' + pivotKeys.records];
8492
if(!prevDimRecs) {
85-
prevDimName = prevDim.childLevels[0].fieldName;
93+
prevDimName = prevDim.childLevel.fieldName;
8694
prevDimRecs = rec[prevDimName + '_' + pivotKeys.records];
8795
}
8896
prevDimLevel = rec[prevDimName + '_' + pivotKeys.level];
@@ -122,8 +130,8 @@ export class PivotUtil {
122130
objValue['value'] = value;
123131
objValue['dimension'] = col;
124132
values.push(objValue);
125-
if (col.childLevels != null && col.childLevels.length > 0) {
126-
const childValues = this.extractValuesForRow(col.childLevels, recData, pivotKeys);
133+
if (col.childLevel) {
134+
const childValues = this.extractValuesForRow([col.childLevel], recData, pivotKeys);
127135
values[i].children = childValues;
128136
}
129137
if (recData.level && recData.level > 0) {
@@ -164,9 +172,9 @@ export class PivotUtil {
164172
const newArr = arr.reduce((acc, item) => {
165173
item.level = lvl;
166174
acc.push(item);
167-
if (Array.isArray(item.childLevels) && item.childLevels.length > 0) {
175+
if (item.childLevel) {
168176
item.expandable = true;
169-
acc = acc.concat(this.flatten(item.childLevels, lvl + 1));
177+
acc = acc.concat(this.flatten(item.childLevel, lvl + 1));
170178
}
171179
return acc;
172180
}, []);

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ export class PivotGridNoopSampleComponent {
3434

3535
{
3636
member: 'Country',
37-
enabled: true,
38-
childLevels: []
37+
enabled: true
3938
}
4039
]
4140
,
@@ -44,12 +43,11 @@ export class PivotGridNoopSampleComponent {
4443
fieldName: 'All',
4544
member: () => 'AllProd',
4645
enabled: true,
47-
childLevels: [{
46+
childLevel: {
4847
fieldName: 'ProductCategory',
4948
member: 'ProductCategory',
50-
enabled: true,
51-
childLevels: []
52-
}]
49+
enabled: true
50+
}
5351
}
5452
],
5553
values: [

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

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,34 @@ export class PivotGridSampleComponent {
1717

1818
{
1919
member: 'Country',
20-
enabled: true,
21-
childLevels: []
20+
enabled: true
2221
}
2322
]
2423
,
2524
rows: [
2625
{
2726
member: () => 'AllProd',
2827
enabled: true,
29-
childLevels: [{
28+
childLevel: {
3029
member: 'ProductCategory',
31-
enabled: true,
32-
childLevels: []
33-
}]
30+
enabled: true
31+
}
3432
},
3533
{
3634
member: () => 'AllDate',
3735
enabled: true,
38-
childLevels: [{
36+
childLevel: {
3937
member: 'Date',
40-
enabled: true,
41-
childLevels: []
42-
}]
38+
enabled: true
39+
}
4340
},
4441
{
4542
member: () => 'AllSel',
4643
enabled: true,
47-
childLevels: [{
44+
childLevel: {
4845
member: 'SellerName',
49-
enabled: true,
50-
childLevels: []
46+
enabled: true
5147
}
52-
]
5348
}
5449
],
5550
values: [

0 commit comments

Comments
 (0)