@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
47 lines (46 loc) • 1.73 kB
TypeScript
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<HTMLElement>, 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;
}