Skip to content

Commit 0c1d0e5

Browse files
authored
Merge branch 'master' into mdragnev/filtering-optimizations
2 parents a53f6f3 + 4601665 commit 0c1d0e5

37 files changed

+200
-163
lines changed

ROADMAP.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,21 @@
22

33
# Current Milestone
44

5-
## Milestone 38, version 20.1 (Due by Sep, 2025)
6-
1. Grid cell merging feature [#3514](https://github.com/IgniteUI/igniteui-angular/issues/3514)
7-
2. “Clear Selection” button in Combo component is keyboard accessible [#15841](https://github.com/IgniteUI/igniteui-angular/issues/15841)
8-
3. Selecting a slide by index in the Carousel component [#16046](https://github.com/IgniteUI/igniteui-angular/issues/16046)
5+
## Milestone 40, version 20.1 (Due by Nov, 2025)
6+
1. Support for Angular 21
7+
2. AI Chat UI component [#16094](https://github.com/IgniteUI/igniteui-angular/issues/16094)
98

109
## Going down the road
1110

12-
1. AI Chat UI component [#16094](https://github.com/IgniteUI/igniteui-angular/issues/16094)
11+
1. Grids performance
1312

1413
# Previous Milestone
1514

15+
## Milestone 39, version 20.1 (Released Sep 25th, 2025)
16+
1. **[DONE]** Grid cell merging feature [#3514](https://github.com/IgniteUI/igniteui-angular/issues/3514)
17+
2. **[DONE]** “Clear Selection” button in Combo component is keyboard accessible [#15841](https://github.com/IgniteUI/igniteui-angular/issues/15841)
18+
3. **[DONE]** Selecting a slide by index in the Carousel component [#16046](https://github.com/IgniteUI/igniteui-angular/issues/16046)
19+
1620
## Milestone 38, version 20.0 (Released Jun 09th, 2025)
1721
1. **[DONE]** Support of Angular 20.0
1822

projects/igniteui-angular-elements/src/analyzer/elements.config.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ export var registerConfig = [
274274
{ name: "virtualizationState" },
275275
{ name: "nativeElement" },
276276
{ name: "defaultRowHeight" },
277-
{ name: "defaultHeaderGroupMinWidth" },
278277
{ name: "columns" },
279278
{ name: "pinnedColumns" },
280279
{ name: "pinnedStartColumns" },
@@ -571,7 +570,6 @@ export var registerConfig = [
571570
{ name: "virtualizationState" },
572571
{ name: "nativeElement" },
573572
{ name: "defaultRowHeight" },
574-
{ name: "defaultHeaderGroupMinWidth" },
575573
{ name: "columns" },
576574
{ name: "pinnedColumns" },
577575
{ name: "pinnedStartColumns" },
@@ -755,7 +753,6 @@ export var registerConfig = [
755753
{ name: "virtualizationState" },
756754
{ name: "nativeElement" },
757755
{ name: "defaultRowHeight" },
758-
{ name: "defaultHeaderGroupMinWidth" },
759756
{ name: "columns" },
760757
{ name: "pinnedStartColumns" },
761758
{ name: "pinnedEndColumns" },
@@ -882,7 +879,6 @@ export var registerConfig = [
882879
{ name: "cdr" },
883880
{ name: "nativeElement" },
884881
{ name: "defaultRowHeight" },
885-
{ name: "defaultHeaderGroupMinWidth" },
886882
{ name: "columns" },
887883
{ name: "pinnedStartColumns" },
888884
{ name: "pinnedEndColumns" },
@@ -1034,7 +1030,6 @@ export var registerConfig = [
10341030
{ name: "virtualizationState" },
10351031
{ name: "nativeElement" },
10361032
{ name: "defaultRowHeight" },
1037-
{ name: "defaultHeaderGroupMinWidth" },
10381033
{ name: "columns" },
10391034
{ name: "pinnedColumns" },
10401035
{ name: "pinnedStartColumns" },

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-theme.scss

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,9 @@
719719
%grid-display-container-tr {
720720
width: 100%;
721721
overflow: visible;
722+
flex: 1;
723+
// needed to override the min-width of the column headers
724+
min-width: 0;
722725
}
723726

724727
%grid-mrl-block {
@@ -927,7 +930,7 @@
927930
}
928931

929932
padding-block: 0;
930-
flex: 1 0 auto;
933+
flex: 0 0 auto;
931934
background: inherit;
932935
z-index: 4;
933936
cursor: move;

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1668,13 +1668,6 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy
16681668
return this.pinningPosition === ColumnPinningPosition.End && pinnedCols[0] === this;
16691669
}
16701670

1671-
/** @hidden @internal **/
1672-
public get rightPinnedOffset(): string {
1673-
return this.pinned && this.pinningPosition === ColumnPinningPosition.End ?
1674-
- this.grid.pinnedEndWidth - this.grid.pinnedStartWidth + 'px' :
1675-
null;
1676-
}
1677-
16781671
/** @hidden @internal **/
16791672
public get gridRowSpan(): number {
16801673
return this.rowEnd && this.rowStart ? this.rowEnd - this.rowStart : 1;

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,8 +939,6 @@ export interface GridType extends IGridDataBindable {
939939
/** The height of each row in the grid. Setting a constant height can solve problems with not showing all elements when scrolling */
940940
rowHeight: number;
941941
multiRowLayoutRowSize: number;
942-
/** Minimal width for headers */
943-
defaultHeaderGroupMinWidth: any;
944942
maxLevelHeaderDepth: number;
945943
defaultRowHeight: number;
946944
/** The default font size, calculated for each element */

projects/igniteui-angular/src/lib/grids/filtering/base/grid-filtering-cell.component.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,21 @@ export class IgxGridFilteringCellComponent implements AfterViewInit, OnInit, DoC
7676
public expressionsList: ExpressionUI[];
7777
public moreFiltersCount = 0;
7878

79+
@HostBinding('class.igx-grid-th--pinned')
80+
public get pinnedCss() {
81+
return this.column.pinned;
82+
}
83+
84+
@HostBinding('class.igx-grid-th--pinned-last')
85+
public get pinnedLastCss() {
86+
return !this.column.grid.hasColumnLayouts ? this.column.isLastPinned : false;
87+
}
88+
89+
@HostBinding('class.igx-grid-th--pinned-first')
90+
public get pinnedFirstCSS() {
91+
return !this.column.grid.hasColumnLayouts ? this.column.isFirstPinned : false;;
92+
}
93+
7994
private baseClass = 'igx-grid__filtering-cell-indicator';
8095

8196
constructor(

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -327,10 +327,10 @@ export class IgxFilteringService implements OnDestroy {
327327
public registerSVGIcons(): void {
328328
const editorIcons = editor as any[];
329329
editorIcons.forEach(icon => {
330-
this.iconService.addSvgIconFromText(icon.name, icon.value, 'imx-icons');
330+
this.iconService.addSvgIconFromText(icon.name, icon.value, 'imx-icons', true);
331331
});
332-
this.iconService.addSvgIconFromText(pinLeft.name, pinLeft.value, 'imx-icons');
333-
this.iconService.addSvgIconFromText(unpinLeft.name, unpinLeft.value, 'imx-icons');
332+
this.iconService.addSvgIconFromText(pinLeft.name, pinLeft.value, 'imx-icons', true);
333+
this.iconService.addSvgIconFromText(unpinLeft.name, unpinLeft.value, 'imx-icons', true);
334334
}
335335

336336
/**

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4561,24 +4561,6 @@ export abstract class IgxGridBaseDirective implements GridType,
45614561
}
45624562
}
45634563

4564-
/**
4565-
* Returns the `IgxGridHeaderGroupComponent`'s minimum allowed width.
4566-
*
4567-
* @remarks
4568-
* Used internally for restricting header group component width.
4569-
* The values below depend on the header cell default right/left padding values.
4570-
*/
4571-
public get defaultHeaderGroupMinWidth(): number {
4572-
switch (this.gridSize) {
4573-
case Size.Medium:
4574-
return 32;
4575-
case Size.Small:
4576-
return 24;
4577-
default:
4578-
return 48;
4579-
}
4580-
}
4581-
45824564
/** @hidden @internal */
45834565
public get pinnedStartWidth() {
45844566
if (!isNaN(this._pinnedStartWidth)) {
@@ -4618,17 +4600,13 @@ export abstract class IgxGridBaseDirective implements GridType,
46184600
public getHeaderCellWidth(element: HTMLElement): ISizeInfo {
46194601
const range = this.document.createRange();
46204602
const headerWidth = this.platform.getNodeSizeViaRange(range,
4621-
element,
4622-
element.parentElement);
4603+
element, element);
46234604

46244605
const headerStyle = this.document.defaultView.getComputedStyle(element);
46254606
const headerPadding = parseFloat(headerStyle.paddingLeft) + parseFloat(headerStyle.paddingRight) +
46264607
parseFloat(headerStyle.borderRightWidth);
46274608

4628-
// Take into consideration the header group element, since column pinning applies borders to it if its not a columnGroup.
4629-
const headerGroupStyle = this.document.defaultView.getComputedStyle(element.parentElement);
4630-
const borderSize = parseFloat(headerGroupStyle.borderRightWidth) + parseFloat(headerGroupStyle.borderLeftWidth);
4631-
return { width: Math.ceil(headerWidth), padding: Math.ceil(headerPadding + borderSize) };
4609+
return { width: Math.ceil(headerWidth), padding: Math.ceil(headerPadding) };
46324610
}
46334611

46344612
/**
@@ -4744,7 +4722,7 @@ export abstract class IgxGridBaseDirective implements GridType,
47444722
public getHeaderGroupWidth(column: IgxColumnComponent): string {
47454723
return this.hasColumnLayouts
47464724
? ''
4747-
: `${Math.max(parseFloat(column.calcWidth), this.defaultHeaderGroupMinWidth)}px`;
4725+
: `${parseFloat(column.calcWidth)}px`;
47484726
}
47494727

47504728
/**

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,9 +861,9 @@ describe('IgxGrid - Deferred Column Resizing #grid', () => {
861861
expect(filteringCells[1].nativeElement.getBoundingClientRect().width).toBe(50);
862862
expect(filteringCells[2].nativeElement.getBoundingClientRect().width).toBe(49);
863863

864-
expect(headerGroups[0].nativeElement.getBoundingClientRect().width).toBe(48);
864+
expect(headerGroups[0].nativeElement.getBoundingClientRect().width).toBe(49);
865865
expect(headerGroups[1].nativeElement.getBoundingClientRect().width).toBe(50);
866-
expect(headerGroups[2].nativeElement.getBoundingClientRect().width).toBe(48);
866+
expect(headerGroups[2].nativeElement.getBoundingClientRect().width).toBe(49);
867867
});
868868

869869
it('should size headers correctly when column width is in %.', () => {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ describe('IgxGrid - Column properties #grid', () => {
259259
expect(item.width).toEqual('200px');
260260
});
261261
const headers = fix.debugElement.queryAll(By.css(COLUMN_HEADER_GROUP_CLASS));
262-
expect(headers[0].nativeElement.style['min-width']).toEqual('200px');
262+
expect(headers[0].nativeElement.clientWidth).toEqual(200);
263263
});
264264

265265
it('headers and cells classes should be correct after scroll horizontal', async () => {

0 commit comments

Comments
 (0)