{"version":3,"file":"static/js/272.fc222ae9.chunk.js","mappings":"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","sources":["../node_modules/@ionic/core/components/index10.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { u as now, p as pointerCoord } from './helpers.js';\n\nconst startTapClick = (config) => {\n let lastTouch = -MOUSE_WAIT * 10;\n let lastActivated = 0;\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 // 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 // Ignore right clicks\n if (ev.button === 2) {\n return;\n }\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 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) {\n return;\n }\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 if (!useRippleEffect)\n return;\n const rippleEffect = getRippleEffect(el);\n if (rippleEffect !== null) {\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('ionGestureCaptured', cancelActive);\n doc.addEventListener('touchstart', onTouchStart, true);\n doc.addEventListener('touchcancel', onTouchEnd, true);\n doc.addEventListener('touchend', onTouchEnd, true);\n /**\n * Tap click effects such as the ripple effect should\n * not happen when scrolling. For example, if a user scrolls\n * the page but also happens to do a touchstart on a button\n * as part of the scroll, the ripple effect should not\n * be dispatched. The ripple effect should only happen\n * if the button is activated and the page is not scrolling.\n *\n * pointercancel is dispatched on a gesture when scrolling\n * starts, so this lets us avoid having to listen for\n * ion-content's scroll events.\n */\n doc.addEventListener('pointercancel', cancelActive, true);\n doc.addEventListener('mousedown', onMouseDown, true);\n doc.addEventListener('mouseup', onMouseUp, true);\n};\nconst getActivatableTarget = (ev) => {\n if (ev.composedPath !== undefined) {\n /**\n * composedPath returns EventTarget[]. However,\n * objects other than Element can be targets too.\n * For example, AudioContext can be a target. In this\n * case, we know that the event is a UIEvent so we\n * can assume that the path will contain either Element\n * or ShadowRoot.\n */\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"],"names":["startTapClick","config","activatableEle","activeRipple","activeDefer","lastTouch","MOUSE_WAIT","lastActivated","useRippleEffect","getBoolean","clearDefers","WeakMap","onTouchEnd","ev","now","pointerUp","cancelActive","clearTimeout","undefined","removeActivated","pointerDown","setActivatedElement","getActivatableTarget","el","pointerCoord","x","y","has","Error","classList","contains","ACTIVATED","addActivated","deferId","get","delete","delay","isInstant","ADD_ACTIVATED_DEFERS","remove","setTimeout","Date","add","rippleEffect","getRippleEffect","removeRipple","addRipple","then","smooth","active","time","CLEAR_STATE_DEFERS","set","doc","document","addEventListener","button","t","composedPath","target","closest","path","i","length","ShadowRoot","shadowRoot","ripple","querySelector"],"sourceRoot":""}