Skip to content

Commit f1ea929

Browse files
authored
Merge branch 'master' into bpachilova/icon-aria-hidden-16008-master
2 parents 8b24c93 + 6d36570 commit f1ea929

19 files changed

+231
-29
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,17 @@
33
All notable changes for each version of this project will be documented in this file.
44

55
## 20.1.0
6+
### New Features
7+
- `IgxCarousel`
8+
- Added `select` method overload accepting index.
9+
```ts
10+
this.carousel.select(2, Direction.NEXT);
11+
```
12+
613
### General
714
- `IgxDropDown` now exposes a `role` input property, allowing users to customize the role attribute based on the use case. The default is `listbox`.
815

16+
917
## 20.0.6
1018
### General
1119
- `IgxSimpleCombo`

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ and refer to the purchasing options in the pricing section on the product page.
1111
This repository includes code originally copied from https://github.com/zloirock/core-js
1212
in the projects/igniteui-angular/src/lib/core/setImmediate.ts file. The original version of the code is MIT licensed. See the file header for details.
1313

14-
© Copyright 2020 INFRAGISTICS. All Rights Reserved.
14+
© Copyright 2025 INFRAGISTICS. All Rights Reserved.
1515
The Infragistics Ultimate license & copyright applies to this distribution.
1616
For information on that license, please go to our website https://www.infragistics.com/legal/license.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ In order for us to verify your eligibility for free usage, please [register for
337337

338338
To acquire a license for commercial usage, please [register for trial](https://Infragistics.com/Angular) and refer to the purchasing options in the pricing section on the product page.
339339

340-
© Copyright 2020 INFRAGISTICS. All Rights Reserved.
340+
© Copyright 2025 INFRAGISTICS. All Rights Reserved.
341341
The Infragistics Ultimate license & copyright applies to this distribution.
342342
For information on that license, please go to our website [https://www.infragistics.com/legal/license](https://www.infragistics.com/legal/license).
343343

ROADMAP.md

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

33
# Current Milestone
44

5-
## Milestone 38, version 20.0 (Due by Jun, 2025)
6-
1. Support of Angular 20.0
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)
79

810
## Going down the road
911

10-
1. Provide an option to modify the default enter edit mode conditions, to e.g. allow edit mode start on a single click [#14658](https://github.com/IgniteUI/igniteui-angular/issues/14658)
11-
2. Provide an excel-like navigation mode for editing where all arrow keys navigate the cell in edit mode. [#14659](https://github.com/IgniteUI/igniteui-angular/issues/14659)
12-
3. Extend the 18.2 editorOptions property to allow modifying numeric editors to not change the value on up/down arrow press [#14660](https://github.com/IgniteUI/igniteui-angular/issues/14660)
12+
1. AI Chat UI component [#16094](https://github.com/IgniteUI/igniteui-angular/issues/16094)
1313

1414
# Previous Milestone
1515

16+
## Milestone 38, version 20.0 (Released Jun 09th, 2025)
17+
1. **[DONE]** Support of Angular 20.0
18+
1619
## Milestone 37, version 19.2 (Released Apr 16th, 2025), [Release Blog 19.2](https://www.infragistics.com/blogs/ignite-ui-for-angular-19-2/)
1720

18-
1. Tile Manager - layout component [#239](https://github.com/IgniteUI/igniteui-angular/issues/239)
19-
2. SSR Grid Improvements - [15202](https://github.com/IgniteUI/igniteui-angular/issues/15202)
21+
1. **[DONE]** Tile Manager - layout component [#239](https://github.com/IgniteUI/igniteui-angular/issues/239)
22+
2. **[DONE]** SSR Grid Improvements - [15202](https://github.com/IgniteUI/igniteui-angular/issues/15202)
2023

2124
## Milestone 36, version 19.1 (Released Feb 27th, 2025), [Release Blog 19.1](https://www.infragistics.com/blogs/ignite-ui-for-angular-19-1/)
2225

@@ -26,8 +29,8 @@
2629

2730
## Milestone 35, version 19.0 (Released Nov 25th, 2024)
2831

29-
1. Angular 19 support
30-
2. Simplify hiding Grid summary results through API [#14905](https://github.com/IgniteUI/igniteui-angular/issues/14905)
32+
1. **[DONE]** Angular 19 support
33+
2. **[DONE]** Simplify hiding Grid summary results through API [#14905](https://github.com/IgniteUI/igniteui-angular/issues/14905)
3134

3235
## Milestone 34, version 18.2 (Released Oct 25th, 2024)
3336

projects/igniteui-angular/src/lib/carousel/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ A walkthrough of how to get started can be found [here](https://www.infragistics
3434
| `next()` | void | Switches to the next slide. Emits `slideChanged` event. |
3535
| `add(slide: IgxSlide)` | void | Adds a slide to the carousel. Emits `slideAdded` event. |
3636
| `remove(slide: IgxSlide)` | void | Removes an existing slide from the carousel. Emits `slideRemoved` event. |
37-
| `get(index: Number)` | IgxSlide or void | Returns the slide with the given index or null. |
38-
| `select(slide: IgxSlide, direction: Direction)`| void | Selects the slide and the direction to transition to. Emits `slideChanged` event. |
37+
| `get(index: number)` | IgxSlide or void | Returns the slide with the given index or null. |
38+
| `select(slide: IgxSlide, direction: Direction)`| void | Switches to the passed-in slide with a given direction. Emits `slideChanged` event. |
39+
| `select(index: number, direction: Direction)`| void | Switches to slide by index with a given direction. Emits `slideChanged` event. |
3940

4041
### Keyboard navigation
4142

projects/igniteui-angular/src/lib/carousel/carousel.component.spec.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,27 @@ describe('Carousel', () => {
143143

144144
carousel.next();
145145
let currentSlide = carousel.get(carousel.current);
146-
147146
fixture.detectChanges();
148147
expect(carousel.get(1)).toBe(currentSlide);
149148

150149
currentSlide = carousel.get(0);
151150
carousel.prev();
152-
153151
fixture.detectChanges();
154152
expect(carousel.get(0)).toBe(currentSlide);
153+
154+
carousel.select(1);
155+
fixture.detectChanges();
156+
expect(carousel.get(1)).toBe(carousel.get(carousel.current));
157+
158+
// select a negative index -> active slide remains the same
159+
carousel.select(-1);
160+
fixture.detectChanges();
161+
expect(carousel.get(1)).toBe(carousel.get(carousel.current));
162+
163+
// select a non-existent index -> active slide remains the same
164+
carousel.select(carousel.slides.length);
165+
fixture.detectChanges();
166+
expect(carousel.get(1)).toBe(carousel.get(carousel.current));
155167
});
156168

157169
it('emit events', () => {

projects/igniteui-angular/src/lib/carousel/carousel.component.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -816,14 +816,29 @@ export class IgxCarouselComponent extends IgxCarouselComponentBase implements On
816816
}
817817

818818
/**
819-
* Kicks in a transition for a given slide with a given `direction`.
819+
* Switches to the passed-in slide with a given `direction`.
820820
* ```typescript
821-
* this.carousel.select(this.carousel.get(2), Direction.NEXT);
821+
* const slide = this.carousel.get(2);
822+
* this.carousel.select(slide, Direction.NEXT);
822823
* ```
823824
*
824825
* @memberOf IgxCarouselComponent
825826
*/
826-
public select(slide: IgxSlideComponent, direction: Direction = Direction.NONE) {
827+
public select(slide: IgxSlideComponent, direction?: Direction): void;
828+
/**
829+
* Switches to slide by index with a given `direction`.
830+
* ```typescript
831+
* this.carousel.select(2, Direction.NEXT);
832+
* ```
833+
*
834+
* @memberOf IgxCarouselComponent
835+
*/
836+
public select(index: number, direction?: Direction): void;
837+
public select(slideOrIndex: IgxSlideComponent | number, direction: Direction = Direction.NONE): void {
838+
const slide = typeof slideOrIndex === 'number'
839+
? this.get(slideOrIndex)
840+
: slideOrIndex;
841+
827842
if (slide && slide !== this.currentItem) {
828843
slide.direction = direction;
829844
slide.active = true;

projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { DebugElement } from '@angular/core';
22
import { fakeAsync, TestBed, tick, flush, waitForAsync, ComponentFixture } from '@angular/core/testing';
33
import { By } from '@angular/platform-browser';
44
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
5-
import { IgxTooltipSingleTargetComponent, IgxTooltipMultipleTargetsComponent, IgxTooltipPlainStringComponent, IgxTooltipWithToggleActionComponent } from '../../test-utils/tooltip-components.spec';
5+
import { IgxTooltipSingleTargetComponent, IgxTooltipMultipleTargetsComponent, IgxTooltipPlainStringComponent, IgxTooltipWithToggleActionComponent, IgxTooltipMultipleTooltipsComponent } from '../../test-utils/tooltip-components.spec';
66
import { UIInteractions } from '../../test-utils/ui-interactions.spec';
77
import { HorizontalAlignment, VerticalAlignment, AutoPositionStrategy } from '../../services/public_api';
88
import { IgxTooltipDirective } from './tooltip.directive';
@@ -621,6 +621,36 @@ describe('IgxTooltip', () => {
621621
}));
622622
});
623623

624+
describe('Multiple tooltips', () => {
625+
let targetOne: IgxTooltipTargetDirective;
626+
627+
let tooltipOne: IgxTooltipDirective;
628+
let tooltipTwo: IgxTooltipDirective;
629+
630+
beforeEach(waitForAsync(() => {
631+
fix = TestBed.createComponent(IgxTooltipMultipleTooltipsComponent);
632+
fix.detectChanges();
633+
targetOne = fix.componentInstance.targetOne;
634+
tooltipOne = fix.componentInstance.tooltipOne;
635+
tooltipTwo = fix.componentInstance.tooltipTwo;
636+
}));
637+
638+
it('should not add multiple document:touchstart event listeners when having multiple igxTooltip instances - #16100', fakeAsync(() => {
639+
spyOn<any>(tooltipOne, 'onDocumentTouchStart').and.callThrough();
640+
spyOn<any>(tooltipTwo, 'onDocumentTouchStart').and.callThrough();
641+
642+
touchElement(targetOne);
643+
tick(500);
644+
645+
const dummyDiv = fix.debugElement.query(By.css('.dummyDiv'));
646+
touchElement(dummyDiv);
647+
flush();
648+
649+
expect(tooltipOne['onDocumentTouchStart']).toHaveBeenCalledTimes(1);
650+
expect(tooltipTwo['onDocumentTouchStart']).not.toHaveBeenCalled();
651+
}));
652+
});
653+
624654
describe('Tooltip integration', () => {
625655
beforeEach(waitForAsync(() => {
626656
fix = TestBed.createComponent(IgxTooltipWithToggleActionComponent);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,10 @@ export class IgxTooltipDirective extends IgxToggleDirective implements OnDestroy
122122
super(elementRef, cdr, overlayService, navigationService);
123123

124124
this.onDocumentTouchStart = this.onDocumentTouchStart.bind(this);
125-
this.overlayService.opening.pipe(takeUntil(this._destroy$)).subscribe(() => {
125+
this.opening.pipe(takeUntil(this._destroy$)).subscribe(() => {
126126
this._document.addEventListener('touchstart', this.onDocumentTouchStart, { passive: true });
127127
});
128-
this.overlayService.closed.pipe(takeUntil(this._destroy$)).subscribe(() => {
128+
this.closed.pipe(takeUntil(this._destroy$)).subscribe(() => {
129129
this._document.removeEventListener('touchstart', this.onDocumentTouchStart);
130130
});
131131
}

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -519,11 +519,7 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy, CellT
519519
/** @hidden @internal */
520520
@HostBinding('attr.aria-describedby')
521521
public get ariaDescribeBy() {
522-
let describeBy = (this.gridID + '_' + this.column.field).replace('.', '_');
523-
if (this.isInvalid) {
524-
describeBy += ' ' + this.ariaErrorMessage;
525-
}
526-
return describeBy;
522+
return this.isInvalid ? this.ariaErrorMessage : null;
527523
}
528524

529525
/** @hidden @internal */

0 commit comments

Comments
 (0)