diff --git a/projects/igniteui-angular/src/lib/core/styles/components/tooltip/_tooltip-theme.scss b/projects/igniteui-angular/src/lib/core/styles/components/tooltip/_tooltip-theme.scss index 7d8d0705dad..1e7410a2109 100644 --- a/projects/igniteui-angular/src/lib/core/styles/components/tooltip/_tooltip-theme.scss +++ b/projects/igniteui-angular/src/lib/core/styles/components/tooltip/_tooltip-theme.scss @@ -23,7 +23,7 @@ gap: rem(8px); min-height: rem(24px); min-width: rem(24px); - max-width: 200px; + max-width: rem(200px); width: fit-content; igx-icon { @@ -34,6 +34,10 @@ display: flex; cursor: default; } + + &:not([data-default]) { + max-width: initial; + } } %arrow--top { diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.html b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.html index 4dd74656536..d1e984f1251 100644 --- a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.html +++ b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.component.html @@ -1 +1 @@ -{{content}} \ No newline at end of file +{{content}} diff --git a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts index e9f39d07c02..1cd84369e48 100644 --- a/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts +++ b/projects/igniteui-angular/src/lib/directives/tooltip/tooltip.directive.spec.ts @@ -2,7 +2,7 @@ import { DebugElement } from '@angular/core'; import { fakeAsync, TestBed, tick, flush, waitForAsync, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { IgxTooltipSingleTargetComponent, IgxTooltipMultipleTargetsComponent, IgxTooltipPlainStringComponent, IgxTooltipWithToggleActionComponent, IgxTooltipMultipleTooltipsComponent, IgxTooltipWithCloseButtonComponent } from '../../test-utils/tooltip-components.spec'; +import { IgxTooltipSingleTargetComponent, IgxTooltipMultipleTargetsComponent, IgxTooltipPlainStringComponent, IgxTooltipWithToggleActionComponent, IgxTooltipMultipleTooltipsComponent, IgxTooltipWithCloseButtonComponent, IgxTooltipWithNestedContentComponent } from '../../test-utils/tooltip-components.spec'; import { UIInteractions } from '../../test-utils/ui-interactions.spec'; import { HorizontalAlignment, VerticalAlignment, AutoPositionStrategy } from '../../services/public_api'; import { IgxTooltipDirective } from './tooltip.directive'; @@ -28,7 +28,8 @@ describe('IgxTooltip', () => { IgxTooltipMultipleTargetsComponent, IgxTooltipPlainStringComponent, IgxTooltipWithToggleActionComponent, - IgxTooltipWithCloseButtonComponent + IgxTooltipWithCloseButtonComponent, + IgxTooltipWithNestedContentComponent ] }).compileComponents(); UIInteractions.clearOverlay(); @@ -500,6 +501,36 @@ describe('IgxTooltip', () => { verifyTooltipVisibility(tooltipNativeElement, tooltipTarget, false); })); + + it('Should respect default max-width constraint for plain string tooltip', fakeAsync(() => { + hoverElement(button); + flush(); + + verifyTooltipVisibility(tooltipNativeElement, tooltipTarget, true); + + const maxWidth = getComputedStyle(tooltipNativeElement).maxWidth; + expect(maxWidth).toBe('200px'); + })); + }); + + describe('Custom content tooltip', () => { + beforeEach(waitForAsync(() => { + fix = TestBed.createComponent(IgxTooltipWithNestedContentComponent); + fix.detectChanges(); + button = fix.debugElement.query(By.directive(IgxTooltipTargetDirective)); + tooltipTarget = fix.componentInstance.tooltipTarget; + tooltipNativeElement = fix.debugElement.query(By.directive(IgxTooltipDirective)).nativeElement; + })); + + it('Should not have max-width constraint for custom content tooltip', fakeAsync(() => { + hoverElement(button); + flush(); + + verifyTooltipVisibility(tooltipNativeElement, tooltipTarget, true); + + const maxWidth = getComputedStyle(tooltipNativeElement).maxWidth; + expect(maxWidth).toBe('none'); + })); }); describe('Multiple targets with single tooltip', () => { diff --git a/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts b/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts index 89254e52c70..0f8e8cb4265 100644 --- a/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts +++ b/projects/igniteui-angular/src/lib/test-utils/tooltip-components.spec.ts @@ -149,3 +149,23 @@ export class IgxTooltipWithCloseButtonComponent { @ViewChild(IgxTooltipDirective, { static: true }) public tooltip: IgxTooltipDirective; @ViewChild(IgxTooltipTargetDirective, { static: true }) public tooltipTarget: IgxTooltipTargetDirective; } + +@Component({ + template: ` + + +
+
+ Nested content +
+
+ `, + imports: [IgxTooltipDirective, IgxTooltipTargetDirective], + standalone: true +}) +export class IgxTooltipWithNestedContentComponent { + @ViewChild(IgxTooltipDirective, { static: true }) public tooltip!: IgxTooltipDirective; + @ViewChild(IgxTooltipTargetDirective, { static: true }) public tooltipTarget!: IgxTooltipTargetDirective; +}