{"version":3,"sources":["./node_modules/@ionic/core/dist/esm/input-shims-4295668e.js"],"names":["cloneMap","WeakMap","relocateInput","componentEl","inputEl","shouldRelocate","inputRelativeY","has","addClone","removeClone","isFocused","input","getRootNode","activeElement","parentEl","parentNode","clonedEl","cloneNode","classList","add","tabIndex","appendChild","set","doc","ownerDocument","tx","dir","style","pointerEvents","transform","clone","get","delete","remove","enableHideCaretOnScroll","scrollEl","scrollHideCaret","shouldHideCaret","onBlur","hideCaret","showCaret","addEventListener","removeEventListener","SKIP_SELECTOR","enableInputBlurring","focused","didScroll","document","onScroll","onFocusin","onTouchend","ev","active","matches","tapped","target","closest","setTimeout","blur","SCROLL_ASSIST_SPEED","getScrollData","contentEl","keyboardHeight","itemEl","calcScrollData","getBoundingClientRect","defaultView","innerHeight","inputRect","contentRect","platformHeight","inputTop","top","inputBottom","bottom","visibleAreaTop","visibleAreaBottom","Math","min","safeAreaTop","safeAreaBottom","distanceToBottom","distanceToTop","desiredScrollAmount","round","scrollAmount","distance","abs","duration","scrollDuration","max","scrollPadding","inputSafeY","enableScrollAssist","footerEl","coord","touchStart","pointerCoord","touchEnd","endCoord","hasPointerMoved","stopPropagation","jsSetFocus","scrollData","focus","raf","click","window","scrollContentTimeout","scrollContent","undefined","clearTimeout","doubleKeyboardEventListener","scrollByPoint","getScrollElement","totalScrollAmount","scrollHeight","clientHeight","scrollTop","type","threshold","startCoord","deltaX","x","deltaY","y","PADDING_TIMER_KEY","enableScrollPadding","setScrollPadding","onFocusout","_a","_b","tagName","parentElement","el","findClosestIonContent","timer","setProperty","INPUT_BLURRING","SCROLL_PADDING","startInputShims","config","getNumber","scrollAssist","getBoolean","inputBlurring","inputs","Array","from","querySelectorAll","hideCaretMap","scrollAssistMap","registerInput","Promise","resolve","componentOnReady","inputRoot","shadowRoot","querySelector","rmFn","unregisterInput","fn","detail"],"mappings":"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","file":"node_modules_ionic_core_dist_esm_input-shims-4295668e_js.js","sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { g as getScrollElement, b as scrollByPoint, f as findClosestIonContent } from './index-52e04ddf.js';\nimport { a as addEventListener, b as removeEventListener, r as raf, p as pointerCoord, c as componentOnReady } from './helpers-1ec1a6dd.js';\nimport './index-9ac92660.js';\n\nconst cloneMap = new WeakMap();\nconst relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0) => {\n if (cloneMap.has(componentEl) === shouldRelocate) {\n return;\n }\n if (shouldRelocate) {\n addClone(componentEl, inputEl, inputRelativeY);\n }\n else {\n removeClone(componentEl, inputEl);\n }\n};\nconst isFocused = (input) => {\n return input === input.getRootNode().activeElement;\n};\nconst addClone = (componentEl, inputEl, inputRelativeY) => {\n // this allows for the actual input to receive the focus from\n // the user's touch event, but before it receives focus, it\n // moves the actual input to a location that will not screw\n // up the app's layout, and does not allow the native browser\n // to attempt to scroll the input into place (messing up headers/footers)\n // the cloned input fills the area of where native input should be\n // while the native input fakes out the browser by relocating itself\n // before it receives the actual focus event\n // We hide the focused input (with the visible caret) invisible by making it scale(0),\n const parentEl = inputEl.parentNode;\n // DOM WRITES\n const clonedEl = inputEl.cloneNode(false);\n clonedEl.classList.add('cloned-input');\n clonedEl.tabIndex = -1;\n parentEl.appendChild(clonedEl);\n cloneMap.set(componentEl, clonedEl);\n const doc = componentEl.ownerDocument;\n const tx = doc.dir === 'rtl' ? 9999 : -9999;\n componentEl.style.pointerEvents = 'none';\n inputEl.style.transform = `translate3d(${tx}px,${inputRelativeY}px,0) scale(0)`;\n};\nconst removeClone = (componentEl, inputEl) => {\n const clone = cloneMap.get(componentEl);\n if (clone) {\n cloneMap.delete(componentEl);\n clone.remove();\n }\n componentEl.style.pointerEvents = '';\n inputEl.style.transform = '';\n};\n\nconst enableHideCaretOnScroll = (componentEl, inputEl, scrollEl) => {\n if (!scrollEl || !inputEl) {\n return () => {\n return;\n };\n }\n const scrollHideCaret = (shouldHideCaret) => {\n if (isFocused(inputEl)) {\n relocateInput(componentEl, inputEl, shouldHideCaret);\n }\n };\n const onBlur = () => relocateInput(componentEl, inputEl, false);\n const hideCaret = () => scrollHideCaret(true);\n const showCaret = () => scrollHideCaret(false);\n addEventListener(scrollEl, 'ionScrollStart', hideCaret);\n addEventListener(scrollEl, 'ionScrollEnd', showCaret);\n inputEl.addEventListener('blur', onBlur);\n return () => {\n removeEventListener(scrollEl, 'ionScrollStart', hideCaret);\n removeEventListener(scrollEl, 'ionScrollEnd', showCaret);\n inputEl.addEventListener('ionBlur', onBlur);\n };\n};\n\nconst SKIP_SELECTOR = 'input, textarea, [no-blur], [contenteditable]';\nconst enableInputBlurring = () => {\n let focused = true;\n let didScroll = false;\n const doc = document;\n const onScroll = () => {\n didScroll = true;\n };\n const onFocusin = () => {\n focused = true;\n };\n const onTouchend = (ev) => {\n // if app did scroll return early\n if (didScroll) {\n didScroll = false;\n return;\n }\n const active = doc.activeElement;\n if (!active) {\n return;\n }\n // only blur if the active element is a text-input or a textarea\n if (active.matches(SKIP_SELECTOR)) {\n return;\n }\n // if the selected target is the active element, do not blur\n const tapped = ev.target;\n if (tapped === active) {\n return;\n }\n if (tapped.matches(SKIP_SELECTOR) || tapped.closest(SKIP_SELECTOR)) {\n return;\n }\n focused = false;\n // TODO: find a better way, why 50ms?\n setTimeout(() => {\n if (!focused) {\n active.blur();\n }\n }, 50);\n };\n addEventListener(doc, 'ionScrollStart', onScroll);\n doc.addEventListener('focusin', onFocusin, true);\n doc.addEventListener('touchend', onTouchend, false);\n return () => {\n removeEventListener(doc, 'ionScrollStart', onScroll, true);\n doc.removeEventListener('focusin', onFocusin, true);\n doc.removeEventListener('touchend', onTouchend, false);\n };\n};\n\nconst SCROLL_ASSIST_SPEED = 0.3;\nconst getScrollData = (componentEl, contentEl, keyboardHeight) => {\n const itemEl = componentEl.closest('ion-item,[ion-item]') || componentEl;\n return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, componentEl.ownerDocument.defaultView.innerHeight);\n};\nconst calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {\n // compute input's Y values relative to the body\n const inputTop = inputRect.top;\n const inputBottom = inputRect.bottom;\n // compute visible area\n const visibleAreaTop = contentRect.top;\n const visibleAreaBottom = Math.min(contentRect.bottom, platformHeight - keyboardHeight);\n // compute safe area\n const safeAreaTop = visibleAreaTop + 15;\n const safeAreaBottom = visibleAreaBottom * 0.75;\n // figure out if each edge of the input is within the safe area\n const distanceToBottom = safeAreaBottom - inputBottom;\n const distanceToTop = safeAreaTop - inputTop;\n // desiredScrollAmount is the negated distance to the safe area according to our calculations.\n const desiredScrollAmount = Math.round(distanceToBottom < 0 ? -distanceToBottom : distanceToTop > 0 ? -distanceToTop : 0);\n // our calculations make some assumptions that aren't always true, like the keyboard being closed when an input\n // gets focus, so make sure we don't scroll the input above the visible area\n const scrollAmount = Math.min(desiredScrollAmount, inputTop - visibleAreaTop);\n const distance = Math.abs(scrollAmount);\n const duration = distance / SCROLL_ASSIST_SPEED;\n const scrollDuration = Math.min(400, Math.max(150, duration));\n return {\n scrollAmount,\n scrollDuration,\n scrollPadding: keyboardHeight,\n inputSafeY: -(inputTop - safeAreaTop) + 4,\n };\n};\n\nconst enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardHeight) => {\n let coord;\n const touchStart = (ev) => {\n coord = pointerCoord(ev);\n };\n const touchEnd = (ev) => {\n // input cover touchend/mouseup\n if (!coord) {\n return;\n }\n // get where the touchend/mouseup ended\n const endCoord = pointerCoord(ev);\n // focus this input if the pointer hasn't moved XX pixels\n // and the input doesn't already have focus\n if (!hasPointerMoved(6, coord, endCoord) && !isFocused(inputEl)) {\n ev.stopPropagation();\n // begin the input focus process\n jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight);\n }\n };\n componentEl.addEventListener('touchstart', touchStart, true);\n componentEl.addEventListener('touchend', touchEnd, true);\n return () => {\n componentEl.removeEventListener('touchstart', touchStart, true);\n componentEl.removeEventListener('touchend', touchEnd, true);\n };\n};\nconst jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight) => {\n if (!contentEl && !footerEl) {\n return;\n }\n const scrollData = getScrollData(componentEl, (contentEl || footerEl), keyboardHeight);\n if (contentEl && Math.abs(scrollData.scrollAmount) < 4) {\n // the text input is in a safe position that doesn't\n // require it to be scrolled into view, just set focus now\n inputEl.focus();\n return;\n }\n // temporarily move the focus to the focus holder so the browser\n // doesn't freak out while it's trying to get the input in place\n // at this point the native text input still does not have focus\n relocateInput(componentEl, inputEl, true, scrollData.inputSafeY);\n inputEl.focus();\n /**\n * Relocating/Focusing input causes the\n * click event to be cancelled, so\n * manually fire one here.\n */\n raf(() => componentEl.click());\n if (typeof window !== 'undefined') {\n let scrollContentTimeout;\n const scrollContent = async () => {\n // clean up listeners and timeouts\n if (scrollContentTimeout !== undefined) {\n clearTimeout(scrollContentTimeout);\n }\n window.removeEventListener('ionKeyboardDidShow', doubleKeyboardEventListener);\n window.removeEventListener('ionKeyboardDidShow', scrollContent);\n // scroll the input into place\n if (contentEl) {\n await scrollByPoint(contentEl, 0, scrollData.scrollAmount, scrollData.scrollDuration);\n }\n // the scroll view is in the correct position now\n // give the native text input focus\n relocateInput(componentEl, inputEl, false, scrollData.inputSafeY);\n // ensure this is the focused input\n inputEl.focus();\n };\n const doubleKeyboardEventListener = () => {\n window.removeEventListener('ionKeyboardDidShow', doubleKeyboardEventListener);\n window.addEventListener('ionKeyboardDidShow', scrollContent);\n };\n if (contentEl) {\n const scrollEl = await getScrollElement(contentEl);\n /**\n * scrollData will only consider the amount we need\n * to scroll in order to properly bring the input\n * into view. It will not consider the amount\n * we can scroll in the content element.\n * As a result, scrollData may request a greater\n * scroll position than is currently available\n * in the DOM. If this is the case, we need to\n * wait for the webview to resize/the keyboard\n * to show in order for additional scroll\n * bandwidth to become available.\n */\n const totalScrollAmount = scrollEl.scrollHeight - scrollEl.clientHeight;\n if (scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {\n /**\n * On iOS devices, the system will show a \"Passwords\" bar above the keyboard\n * after the initial keyboard is shown. This prevents the webview from resizing\n * until the \"Passwords\" bar is shown, so we need to wait for that to happen first.\n */\n if (inputEl.type === 'password') {\n // Add 50px to account for the \"Passwords\" bar\n scrollData.scrollAmount += 50;\n window.addEventListener('ionKeyboardDidShow', doubleKeyboardEventListener);\n }\n else {\n window.addEventListener('ionKeyboardDidShow', scrollContent);\n }\n /**\n * This should only fire in 2 instances:\n * 1. The app is very slow.\n * 2. The app is running in a browser on an old OS\n * that does not support Ionic Keyboard Events\n */\n scrollContentTimeout = setTimeout(scrollContent, 1000);\n return;\n }\n }\n scrollContent();\n }\n};\nconst hasPointerMoved = (threshold, startCoord, endCoord) => {\n if (startCoord && endCoord) {\n const deltaX = startCoord.x - endCoord.x;\n const deltaY = startCoord.y - endCoord.y;\n const distance = deltaX * deltaX + deltaY * deltaY;\n return distance > threshold * threshold;\n }\n return false;\n};\n\nconst PADDING_TIMER_KEY = '$ionPaddingTimer';\nconst enableScrollPadding = (keyboardHeight) => {\n const doc = document;\n const onFocusin = (ev) => {\n setScrollPadding(ev.target, keyboardHeight);\n };\n const onFocusout = (ev) => {\n setScrollPadding(ev.target, 0);\n };\n doc.addEventListener('focusin', onFocusin);\n doc.addEventListener('focusout', onFocusout);\n return () => {\n doc.removeEventListener('focusin', onFocusin);\n doc.removeEventListener('focusout', onFocusout);\n };\n};\nconst setScrollPadding = (input, keyboardHeight) => {\n var _a, _b;\n if (input.tagName !== 'INPUT') {\n return;\n }\n if (input.parentElement && input.parentElement.tagName === 'ION-INPUT') {\n return;\n }\n if (((_b = (_a = input.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.tagName) === 'ION-SEARCHBAR') {\n return;\n }\n const el = findClosestIonContent(input);\n if (el === null) {\n return;\n }\n const timer = el[PADDING_TIMER_KEY];\n if (timer) {\n clearTimeout(timer);\n }\n if (keyboardHeight > 0) {\n el.style.setProperty('--keyboard-offset', `${keyboardHeight}px`);\n }\n else {\n el[PADDING_TIMER_KEY] = setTimeout(() => {\n el.style.setProperty('--keyboard-offset', '0px');\n }, 120);\n }\n};\n\nconst INPUT_BLURRING = true;\nconst SCROLL_PADDING = true;\nconst startInputShims = (config) => {\n const doc = document;\n const keyboardHeight = config.getNumber('keyboardHeight', 290);\n const scrollAssist = config.getBoolean('scrollAssist', true);\n const hideCaret = config.getBoolean('hideCaretOnScroll', true);\n const inputBlurring = config.getBoolean('inputBlurring', true);\n const scrollPadding = config.getBoolean('scrollPadding', true);\n const inputs = Array.from(doc.querySelectorAll('ion-input, ion-textarea'));\n const hideCaretMap = new WeakMap();\n const scrollAssistMap = new WeakMap();\n const registerInput = async (componentEl) => {\n await new Promise((resolve) => componentOnReady(componentEl, resolve));\n const inputRoot = componentEl.shadowRoot || componentEl;\n const inputEl = inputRoot.querySelector('input') || inputRoot.querySelector('textarea');\n const scrollEl = findClosestIonContent(componentEl);\n const footerEl = !scrollEl ? componentEl.closest('ion-footer') : null;\n if (!inputEl) {\n return;\n }\n if (!!scrollEl && hideCaret && !hideCaretMap.has(componentEl)) {\n const rmFn = enableHideCaretOnScroll(componentEl, inputEl, scrollEl);\n hideCaretMap.set(componentEl, rmFn);\n }\n if ((!!scrollEl || !!footerEl) && scrollAssist && !scrollAssistMap.has(componentEl)) {\n const rmFn = enableScrollAssist(componentEl, inputEl, scrollEl, footerEl, keyboardHeight);\n scrollAssistMap.set(componentEl, rmFn);\n }\n };\n const unregisterInput = (componentEl) => {\n if (hideCaret) {\n const fn = hideCaretMap.get(componentEl);\n if (fn) {\n fn();\n }\n hideCaretMap.delete(componentEl);\n }\n if (scrollAssist) {\n const fn = scrollAssistMap.get(componentEl);\n if (fn) {\n fn();\n }\n scrollAssistMap.delete(componentEl);\n }\n };\n if (inputBlurring && INPUT_BLURRING) {\n enableInputBlurring();\n }\n if (scrollPadding && SCROLL_PADDING) {\n enableScrollPadding(keyboardHeight);\n }\n // Input might be already loaded in the DOM before ion-device-hacks did.\n // At this point we need to look for all of the inputs not registered yet\n // and register them.\n for (const input of inputs) {\n registerInput(input);\n }\n doc.addEventListener('ionInputDidLoad', ((ev) => {\n registerInput(ev.detail);\n }));\n doc.addEventListener('ionInputDidUnload', ((ev) => {\n unregisterInput(ev.detail);\n }));\n};\n\nexport { startInputShims };\n"],"sourceRoot":"webpack:///"}