{"version":3,"sources":["../node_modules/@ionic/core/components/tap-click.js"],"names":["startTapClick","config","scrollingEl","activatableEle","activeRipple","activeDefer","lastTouch","MOUSE_WAIT","lastActivated","useRippleEffect","getBoolean","clearDefers","WeakMap","onTouchEnd","ev","now","pointerUp","cancelActive","clearTimeout","undefined","removeActivated","pointerDown","parentElement","setActivatedElement","getActivatableTarget","el","_pointerCoord","pointerCoord","x","y","has","Error","classList","contains","ACTIVATED","addActivated","deferId","get","delete","delay","isInstant","ADD_ACTIVATED_DEFERS","remove","setTimeout","Date","add","rippleEffect","getRippleEffect","addRipple","removeRipple","then","smooth","active","time","CLEAR_STATE_DEFERS","set","doc","document","addEventListener","target","t","composedPath","closest","path","i","length","ShadowRoot","shadowRoot","ripple","querySelector"],"mappings":"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","file":"static/js/16.0a657b63.chunk.js","sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { q as now, p as pointerCoord } from './helpers.js';\n\nconst startTapClick = (config) => {\n let lastTouch = -MOUSE_WAIT * 10;\n let lastActivated = 0;\n let scrollingEl;\n let activatableEle;\n let activeRipple;\n let activeDefer;\n const useRippleEffect = config.getBoolean('animated', true) && config.getBoolean('rippleEffect', true);\n const clearDefers = new WeakMap();\n const isScrolling = () => {\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n return scrollingEl !== undefined && scrollingEl.parentElement !== null;\n };\n // Touch Events\n const onTouchStart = (ev) => {\n lastTouch = now(ev);\n pointerDown(ev);\n };\n const onTouchEnd = (ev) => {\n lastTouch = now(ev);\n pointerUp(ev);\n };\n const onMouseDown = (ev) => {\n const t = now(ev) - MOUSE_WAIT;\n if (lastTouch < t) {\n pointerDown(ev);\n }\n };\n const onMouseUp = (ev) => {\n const t = now(ev) - MOUSE_WAIT;\n if (lastTouch < t) {\n pointerUp(ev);\n }\n };\n const onContextMenu = (ev) => {\n pointerUp(ev);\n };\n const cancelActive = () => {\n clearTimeout(activeDefer);\n activeDefer = undefined;\n if (activatableEle) {\n removeActivated(false);\n activatableEle = undefined;\n }\n };\n const pointerDown = (ev) => {\n if (activatableEle || isScrolling()) {\n return;\n }\n scrollingEl = undefined;\n setActivatedElement(getActivatableTarget(ev), ev);\n };\n const pointerUp = (ev) => {\n setActivatedElement(undefined, ev);\n };\n const setActivatedElement = (el, ev) => {\n // do nothing\n if (el && el === activatableEle) {\n return;\n }\n clearTimeout(activeDefer);\n activeDefer = undefined;\n const { x, y } = pointerCoord(ev);\n // deactivate selected\n if (activatableEle) {\n if (clearDefers.has(activatableEle)) {\n throw new Error('internal error');\n }\n if (!activatableEle.classList.contains(ACTIVATED)) {\n addActivated(activatableEle, x, y);\n }\n removeActivated(true);\n }\n // activate\n if (el) {\n const deferId = clearDefers.get(el);\n if (deferId) {\n clearTimeout(deferId);\n clearDefers.delete(el);\n }\n const delay = isInstant(el) ? 0 : ADD_ACTIVATED_DEFERS;\n el.classList.remove(ACTIVATED);\n activeDefer = setTimeout(() => {\n addActivated(el, x, y);\n activeDefer = undefined;\n }, delay);\n }\n activatableEle = el;\n };\n const addActivated = (el, x, y) => {\n lastActivated = Date.now();\n el.classList.add(ACTIVATED);\n const rippleEffect = useRippleEffect && getRippleEffect(el);\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (rippleEffect && rippleEffect.addRipple) {\n removeRipple();\n activeRipple = rippleEffect.addRipple(x, y);\n }\n };\n const removeRipple = () => {\n if (activeRipple !== undefined) {\n activeRipple.then((remove) => remove());\n activeRipple = undefined;\n }\n };\n const removeActivated = (smooth) => {\n removeRipple();\n const active = activatableEle;\n if (!active) {\n return;\n }\n const time = CLEAR_STATE_DEFERS - Date.now() + lastActivated;\n if (smooth && time > 0 && !isInstant(active)) {\n const deferId = setTimeout(() => {\n active.classList.remove(ACTIVATED);\n clearDefers.delete(active);\n }, CLEAR_STATE_DEFERS);\n clearDefers.set(active, deferId);\n }\n else {\n active.classList.remove(ACTIVATED);\n }\n };\n const doc = document;\n doc.addEventListener('ionScrollStart', (ev) => {\n scrollingEl = ev.target;\n cancelActive();\n });\n doc.addEventListener('ionScrollEnd', () => {\n scrollingEl = undefined;\n });\n doc.addEventListener('ionGestureCaptured', cancelActive);\n doc.addEventListener('touchstart', onTouchStart, true);\n doc.addEventListener('touchcancel', onTouchEnd, true);\n doc.addEventListener('touchend', onTouchEnd, true);\n doc.addEventListener('mousedown', onMouseDown, true);\n doc.addEventListener('mouseup', onMouseUp, true);\n doc.addEventListener('contextmenu', onContextMenu, true);\n};\nconst getActivatableTarget = (ev) => {\n if (ev.composedPath) {\n const path = ev.composedPath();\n for (let i = 0; i < path.length - 2; i++) {\n const el = path[i];\n if (!(el instanceof ShadowRoot) && el.classList.contains('ion-activatable')) {\n return el;\n }\n }\n }\n else {\n return ev.target.closest('.ion-activatable');\n }\n};\nconst isInstant = (el) => {\n return el.classList.contains('ion-activatable-instant');\n};\nconst getRippleEffect = (el) => {\n if (el.shadowRoot) {\n const ripple = el.shadowRoot.querySelector('ion-ripple-effect');\n if (ripple) {\n return ripple;\n }\n }\n return el.querySelector('ion-ripple-effect');\n};\nconst ACTIVATED = 'ion-activated';\nconst ADD_ACTIVATED_DEFERS = 200;\nconst CLEAR_STATE_DEFERS = 200;\nconst MOUSE_WAIT = 2500;\n\nexport { startTapClick };\n"],"sourceRoot":""}