Skip to content

Commit 3fbc157

Browse files
authored
Merge branch '7.3.x' into dkamburov/fix-5598-7.3.x
2 parents 8592a72 + d432555 commit 3fbc157

File tree

7 files changed

+83
-8
lines changed

7 files changed

+83
-8
lines changed

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ steps:
4040
testResultsFiles: '**/TESTS-*.xml'
4141

4242
- task: PublishCodeCoverageResults@1
43-
inputs:
43+
inputs:
4444
codeCoverageTool: Cobertura
4545
summaryFileLocation: '$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml'
4646
reportDirectory: '$(System.DefaultWorkingDirectory)/coverage'

projects/igniteui-angular/src/lib/directives/dragdrop/dragdrop.directive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,8 @@ export class IgxDragDirective implements OnInit, OnDestroy {
856856
const viewPortY = pageY - window.pageYOffset;
857857
if (document['msElementsFromPoint']) {
858858
// Edge and IE special snowflakes
859-
return document['msElementsFromPoint'](viewPortX, viewPortY);
859+
const elements = document['msElementsFromPoint'](viewPortX, viewPortY);
860+
return elements === null ? [] : elements;
860861
} else {
861862
// Other browsers like Chrome, Firefox, Opera
862863
return document.elementsFromPoint(viewPortX, viewPortY);

projects/igniteui-angular/src/lib/grids/api.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ export class GridBaseAPIService <T extends IgxGridBaseComponent & IGridDataBinda
214214

215215
update_row(row: IgxRow, value: any) {
216216
const grid = this.grid;
217-
const selected = grid.selection.is_item_selected(grid.id, row.id);
218217
const rowInEditMode = grid.crudService.row;
219218
const data = this.get_all_data(grid.transactions.enabled);
220219
const index = this.get_row_index_in_data(row.id);
@@ -249,6 +248,7 @@ export class GridBaseAPIService <T extends IgxGridBaseComponent & IGridDataBinda
249248

250249
this.updateData(grid, row.id, data[index], args.oldValue, args.newValue);
251250
const newId = grid.primaryKey ? args.newValue[grid.primaryKey] : args.newValue;
251+
const selected = grid.selection.is_item_selected(grid.id, row.id);
252252
if (selected) {
253253
grid.selection.deselect_item(grid.id, row.id);
254254
grid.selection.select_item(grid.id, newId);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1653,8 +1653,8 @@ export class IgxColumnComponent implements AfterContentInit {
16531653
*/
16541654
public get pinnable() {
16551655
const gridUnpinnedWidth = (this.grid as any).getUnpinnedWidth(true);
1656-
const columnWidth = parseInt(this.width, 10);
1657-
return !((gridUnpinnedWidth - columnWidth) < this.grid.unpinnedAreaMinWidth);
1656+
const elementWidth = this.parent ? parseInt(this.topLevelParent.width, 10) : parseInt(this.width, 10);
1657+
return !((gridUnpinnedWidth - elementWidth) < this.grid.unpinnedAreaMinWidth);
16581658
}
16591659

16601660
/**

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-column-moving.component.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ export class IgxExcelStyleColumnMovingComponent {
5555
}
5656
} else if (this.grid.unpinnedColumns.indexOf(this.column) === 0 && moveDirection === 0) {
5757
targetColumn = this.grid.pinnedColumns[this.grid.pinnedColumns.length - 1];
58+
if (targetColumn.parent) {
59+
targetColumn = targetColumn.topLevelParent;
60+
}
5861
moveDirection = 1;
5962
} else {
6063
targetColumn = this.findColumn(moveDirection, this.grid.unpinnedColumns);

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

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3497,7 +3497,8 @@ describe('IgxGrid - Filtering actions - Excel style filtering', () => {
34973497
declarations: [
34983498
IgxGridFilteringComponent,
34993499
IgxTestExcelFilteringDatePickerComponent,
3500-
IgxGridFilteringESFTemplatesComponent
3500+
IgxGridFilteringESFTemplatesComponent,
3501+
IgxGridFilteringMCHComponent
35013502
],
35023503
imports: [
35033504
NoopAnimationsModule,
@@ -5628,6 +5629,75 @@ describe('IgxGrid - Filtering actions - Excel style filtering', () => {
56285629
// expect(datePicker.componentInstance.templateDropDownTarget).toBeTruthy();
56295630
}));
56305631
});
5632+
5633+
describe(null, () => {
5634+
let fix, grid;
5635+
beforeEach(fakeAsync(() => {
5636+
fix = TestBed.createComponent(IgxGridFilteringMCHComponent);
5637+
grid = fix.componentInstance.grid;
5638+
grid.filterMode = FilterMode.excelStyleFilter;
5639+
fix.detectChanges();
5640+
}));
5641+
5642+
it('Should not pin column when its parent group cannot be pinned.', fakeAsync(() => {
5643+
// Test prerequisites
5644+
grid.width = '1000px';
5645+
fix.detectChanges();
5646+
tick(100);
5647+
5648+
// Pin the 'AnotherField' column.
5649+
GridFunctions.clickExcelFilterIcon(fix, 'AnotherField');
5650+
fix.detectChanges();
5651+
GridFunctions.clickPinIconInExcelStyleFiltering(fix, false);
5652+
tick(200);
5653+
fix.detectChanges();
5654+
5655+
// Verify that the 'ProductName' pin button is disabled, because its parent column cannot be pinned.
5656+
GridFunctions.clickExcelFilterIcon(fix, 'ProductName');
5657+
fix.detectChanges();
5658+
const pinButton = GridFunctions.getExcelFilteringPinContainer(fix);
5659+
expect(pinButton.classList.contains('igx-excel-filter__actions-pin--disabled')).toBe(true,
5660+
'pinButton should be disabled');
5661+
}));
5662+
5663+
it('Should pin column next to already pinned group by moving it to the left.', fakeAsync(() => {
5664+
// Test prerequisites
5665+
grid.width = '1000px';
5666+
fix.detectChanges();
5667+
tick(100);
5668+
// Adjust column widths, so their group can be pinned.
5669+
const columnFields = ['ID', 'ProductName', 'Downloads', 'Released', 'ReleaseDate', 'AnotherField'];
5670+
columnFields.forEach((columnField) => {
5671+
const col = grid.columns.find((c) => c.field === columnField);
5672+
col.width = '100px';
5673+
});
5674+
fix.detectChanges();
5675+
// Make 'AnotherField' column movable.
5676+
const column = grid.columns.find((c) => c.field === 'AnotherField');
5677+
column.movable = true;
5678+
fix.detectChanges();
5679+
5680+
// Pin the 'General Information' group by pinning its child 'ProductName' column.
5681+
GridFunctions.clickExcelFilterIcon(fix, 'ProductName');
5682+
fix.detectChanges();
5683+
GridFunctions.clickPinIconInExcelStyleFiltering(fix, false);
5684+
tick(200);
5685+
fix.detectChanges();
5686+
5687+
// Verify 'AnotherField' column is not pinned.
5688+
GridFunctions.verifyColumnIsPinned(column, false, 7);
5689+
5690+
// Try to pin the 'AnotherField' column by moving it to the left.
5691+
GridFunctions.clickExcelFilterIcon(fix, 'AnotherField');
5692+
fix.detectChanges();
5693+
GridFunctions.clickMoveLeftInExcelStyleFiltering(fix);
5694+
tick(200);
5695+
fix.detectChanges();
5696+
5697+
// Verify 'AnotherField' column is successfully pinned next to the column group.
5698+
GridFunctions.verifyColumnIsPinned(column, true, 8);
5699+
}));
5700+
});
56315701
});
56325702

56335703
const expectedResults = [];

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@
2525
<div class="igx-grid__tr" role="row" [style.width.px]='calcWidth + 1'>
2626
<span *ngIf="hasMovableColumns && draggedColumn && pinnedColumns.length <= 0" [igxColumnMovingDrop]="parentVirtDir" [attr.droppable]="true" id="left" class="igx-grid__scroll-on-drag-left"></span>
2727
<span *ngIf="hasMovableColumns && draggedColumn && pinnedColumns.length > 0" [igxColumnMovingDrop]="parentVirtDir" [attr.droppable]="true" id="left" class="igx-grid__scroll-on-drag-pinned" [style.left.px]="pinnedWidth"></span>
28-
<div class="igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header" #headerHierarchyExpander [hidden]='!hasExpandableChildren || !hasVisibleColumns'[ngClass]="{
28+
<div #headerHierarchyExpander [hidden]='!hasExpandableChildren || !hasVisibleColumns' [ngClass]="{
29+
'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header': hasExpandableChildren,
2930
'igx-grid__hierarchical-expander--push': filteringService.isFilterRowVisible,
3031
'igx-grid__hierarchical-expander--no-border': rowSelectable || rowDraggable
31-
}">
32+
}">
3233
<igx-icon role="button" fontSet="material" [isActive]='hierarchicalState.length > 0 && hasExpandableChildren' (click)="collapseAllRows()">unfold_less</igx-icon>
3334
</div>
3435
<ng-container *ngIf="rowDraggable">

0 commit comments

Comments
 (0)