Skip to content

Commit 76ccda1

Browse files
MKirovaMKirova
authored andcommitted
chore(*): additional fixes for expand/collapse.
1 parent dd69794 commit 76ccda1

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,16 +115,19 @@ export class IgxPivotCellMergingPipe implements PipeTransform {
115115
): any[] {
116116
if (collection.length === 0 || config.rows.length === 0) return collection;
117117
const data = collection ? cloneArray(collection, true) : [];
118-
let groupData = [];
119-
let prev;
120-
let prevDim;
121-
let prevDimRoot;
118+
122119
const enabledRows = config.rows.filter(x => x.enabled);
120+
let prev;
123121
for (let dim of enabledRows) {
122+
let groupData = [];
123+
let prevValue;
124+
let prevDim;
125+
let prevDimRoot;
124126
for (let rec of data) {
125127
const dimData = PivotUtil.getDimensionLevel(dim, rec, pivotKeys);
126128
const val = rec[dimData.dimension.memberName];
127-
if (prev !== val && groupData.length > 0) {
129+
const sameSiblingDim = prev ? rec[prev.memberName] : true;
130+
if (prevValue !== val && groupData.length > 0 && sameSiblingDim) {
128131
groupData.forEach((gr, ind) => {
129132
if (ind === 0) {
130133
gr[prevDim.dimension.memberName + pivotKeys.rowDimensionSeparator + 'first'] = true;
@@ -134,13 +137,15 @@ export class IgxPivotCellMergingPipe implements PipeTransform {
134137
}
135138
gr[prevDim.dimension.memberName + pivotKeys.rowDimensionSeparator + 'rowSpan'] = groupData.length;
136139
});
140+
groupData[groupData.length - 1][prevDim.dimension.memberName + pivotKeys.rowDimensionSeparator + 'last'] = true;
137141
groupData = [];
138142
}
139143
groupData.push(rec);
140-
prev = val;
144+
prevValue = val;
141145
prevDim = dimData;
142146
prevDimRoot = dim;
143147
}
148+
prev = dim;
144149
}
145150
return data;
146151
}

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,12 @@ export class IgxPivotRowDimensionContentComponent extends IgxGridHeaderRowCompon
145145

146146
protected extractFromDimensions() {
147147
const dimData = PivotUtil.getDimensionLevel(this.dimension, this.rowData, this.grid.pivotKeys);
148-
const col = this.extractFromDimension(dimData, this.rowData);
149148
const prevDims = this.getPrevDims(this.dimension);
149+
let lvl = 0;
150+
prevDims.forEach(prev => {
151+
lvl += prev.level;
152+
});
153+
const col = this.extractFromDimension(dimData, this.rowData, lvl);
150154
this.rowDimensionData = {
151155
column: col,
152156
dimension: dimData.dimension,
@@ -157,18 +161,18 @@ export class IgxPivotRowDimensionContentComponent extends IgxGridHeaderRowCompon
157161
protected getPrevDims(currDim) {
158162
const ind = this.grid.rowDimensions.indexOf(currDim);
159163
const prevDims = [];
160-
for (let i = 0; i < ind - 1; i++) {
164+
for (let i = 0; i < ind; i++) {
161165
const prevDim = this.grid.rowDimensions[i];
162166
const dimData = PivotUtil.getDimensionLevel(prevDim, this.rowData, this.grid.pivotKeys);
163167
prevDims.push(dimData.dimension);
164168
}
165169
return prevDims;
166170
}
167171

168-
protected extractFromDimension(dimData, rowData: any[]) {
172+
protected extractFromDimension(dimData, rowData: any[], lvl) {
169173
const field = dimData.dimension.memberName;
170174
const header = rowData[field];
171-
const col = this._createColComponent(field, header, dimData.dimension, dimData.level);
175+
const col = this._createColComponent(field, header, dimData.dimension, lvl);
172176
return col;
173177
}
174178

0 commit comments

Comments
 (0)