fix(ui-input-controls): Fix iOS Dropdown Scrolling

Ref: #5505
This commit is contained in:
Nino
2025-11-25 10:26:34 +01:00
parent 5054dd5492
commit 2c39ca05a9
2 changed files with 11 additions and 1 deletions

View File

@@ -11,6 +11,7 @@
cdkConnectedOverlayBackdropClass="cdk-overlay-transparent-backdrop"
[cdkConnectedOverlayMinWidth]="overlayMinWidth"
[cdkConnectedOverlayLockPosition]="true"
[cdkConnectedOverlayScrollStrategy]="blockScrollStrategy"
(backdropClick)="close()"
(detach)="isOpen.set(false)"
>

View File

@@ -17,7 +17,11 @@ import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { NgIconComponent, provideIcons } from '@ng-icons/core';
import { isaActionChevronUp, isaActionChevronDown } from '@isa/icons';
import { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';
import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
import {
CdkConnectedOverlay,
CdkOverlayOrigin,
ScrollStrategyOptions,
} from '@angular/cdk/overlay';
import { isEqual } from 'lodash';
import { DropdownAppearance } from './dropdown.types';
import { DropdownService } from './dropdown.service';
@@ -119,6 +123,7 @@ export class DropdownButtonComponent<T>
implements ControlValueAccessor, AfterViewInit
{
#dropdownService = inject(DropdownService);
#scrollStrategy = inject(ScrollStrategyOptions);
readonly init = signal(false);
private elementRef = inject(ElementRef);
@@ -127,6 +132,10 @@ export class DropdownButtonComponent<T>
return this.elementRef.nativeElement.offsetWidth;
}
get blockScrollStrategy() {
return this.#scrollStrategy.block();
}
appearance = input<DropdownAppearance>(DropdownAppearance.AccentOutline);
appearanceClass = computed(() => `ui-dropdown__${this.appearance()}`);