MCPcopy Index your code
hub / github.com/ionic-team/ionic-framework / registerInput

Function registerInput

core/src/utils/input-shims/input-shims.ts:61–104  ·  view source on GitHub ↗
(componentEl: HTMLElement)

Source from the content-addressed store, hash-verified

59 const keyboardResizeMode = await Keyboard.getResizeMode();
60
61 const registerInput = async (componentEl: HTMLElement) => {
62 await new Promise((resolve) => componentOnReady(componentEl, resolve));
63
64 const inputRoot = componentEl.shadowRoot || componentEl;
65 const inputEl = inputRoot.querySelector('input') || inputRoot.querySelector('textarea');
66 const scrollEl = findClosestIonContent(componentEl);
67 const footerEl = !scrollEl ? (componentEl.closest('ion-footer') as HTMLIonFooterElement | null) : null;
68
69 if (!inputEl) {
70 return;
71 }
72
73 if (HIDE_CARET && !!scrollEl && hideCaret && !hideCaretMap.has(componentEl)) {
74 const rmFn = enableHideCaretOnScroll(componentEl, inputEl, scrollEl);
75 hideCaretMap.set(componentEl, rmFn);
76 }
77
78 /**
79 * date/datetime-locale inputs on mobile devices show date picker
80 * overlays instead of keyboards. As a result, scroll assist is
81 * not needed. This also works around a bug in iOS <16 where
82 * scroll assist causes the browser to lock up. See FW-1997.
83 */
84 const isDateInput = inputEl.type === 'date' || inputEl.type === 'datetime-local';
85 if (
86 SCROLL_ASSIST &&
87 !isDateInput &&
88 (!!scrollEl || !!footerEl) &&
89 scrollAssist &&
90 !scrollAssistMap.has(componentEl)
91 ) {
92 const rmFn = enableScrollAssist(
93 componentEl,
94 inputEl,
95 scrollEl,
96 footerEl,
97 keyboardHeight,
98 scrollPadding,
99 keyboardResizeMode,
100 isAndroid
101 );
102 scrollAssistMap.set(componentEl, rmFn);
103 }
104 };
105
106 const unregisterInput = (componentEl: HTMLElement) => {
107 if (HIDE_CARET && hideCaret) {

Callers 1

startInputShimsFunction · 0.85

Calls 5

componentOnReadyFunction · 0.90
findClosestIonContentFunction · 0.90
enableHideCaretOnScrollFunction · 0.90
enableScrollAssistFunction · 0.90
setMethod · 0.80

Tested by

no test coverage detected