import { type ElementRef, type NgZone, type Renderer2 } from '@angular/core'; import { type TuiAutofocusOptions } from '../autofocus.options'; import { AbstractTuiAutofocusHandler } from './abstract.handler'; export declare class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler { private readonly renderer; private readonly zone; private readonly win; constructor(el: ElementRef, renderer: Renderer2, zone: NgZone, win: Window, options: TuiAutofocusOptions); setFocus(): void; private iosWebkitAutofocus; /** * @note: * emulate textfield position in layout with cursor * before focus to real textfield element * * required note: * [fakeInput.readOnly = true] ~ * don't use {readOnly: true} value, it's doesn't work for emulate autofill * * [fakeInput.style.opacity = 0] ~ * don't use {opacity: 0}, sometimes it's doesn't work for emulate real input * * [fakeInput.style.fontSize = 16px] ~ * disable possible auto zoom * * [fakeInput.style.top/left] ~ * emulate position cursor before focus to real textfield element */ private makeFakeInput; private getDurationTimeBeforeFocus; /** * @note: * unfortunately, in older versions of iOS * there is a bug that the fake input cursor * will move along with the dialog animation * and then that dialog will be shaking */ private insideDialog; /** * @note: * inherit basic attributes values from real input * for help iOS detect what do you want see on keyboard, * for example [inputMode=numeric, autocomplete=cc-number] */ private patchFakeInputFromFocusableElement; }