You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
47 KiB

{"ast":null,"code":"'use strict';\n\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\nvar isActiveSignal = function isActiveSignal(signal) {\n return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\nvar isButtonRole = function isButtonRole(element) {\n return element.getAttribute('role') === 'button';\n};\nvar isPressStartSignal = function isPressStartSignal(signal) {\n return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\nvar isTerminalSignal = function isTerminalSignal(signal) {\n return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n};\nvar isValidKeyPress = function isValidKeyPress(event) {\n var key = event.key,\n target = event.target;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return key === 'Enter' || isSpacebar && role === 'button';\n};\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450;\nvar DEFAULT_PRESS_DELAY_MS = 50;\nvar PressResponder = function () {\n function PressResponder(config) {\n _classCallCheck(this, PressResponder);\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n _createClass(PressResponder, [{\n key: \"configure\",\n value: function configure(config) {\n this._config = config;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n }\n }, {\n key: \"getEventHandlers\",\n value: function getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n }, {\n key: \"_createEventHandlers\",\n value: function _createEventHandlers() {\n var _this = this;\n var start = function start(event, shouldDelay) {\n event.persist();\n _this._cancelPressOutDelayTimeout();\n _this._longPressDispatched = false;\n _this._selectionTerminated = false;\n _this._touchState = NOT_RESPONDER;\n _this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n _this._receiveSignal(RESPONDER_GRANT, event);\n var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n if (shouldDelay !== false && delayPressStart > 0) {\n _this._pressDelayTimeout = setTimeout(function () {\n _this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n _this._receiveSignal(DELAY, event);\n }\n var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n _this._longPressDelayTimeout = setTimeout(function () {\n _this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n var end = function end(event) {\n _this._receiveSignal(RESPONDER_RELEASE, event);\n };\n var keyupHandler = function keyupHandler(event) {\n var onPress = _this._config.onPress;\n var target = event.target;\n if (_this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = target.tagName.toLowerCase();\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n return {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n var disabled = _this._config.disabled;\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n if (disabled == null) {\n return true;\n }\n return !disabled;\n },\n onKeyDown: function onKeyDown(event) {\n var disabled = _this._config.disabled;\n var key = event.key,\n target = event.target;\n if (!disabled && isValidKeyPress(event)) {\n if (_this._touchState === NOT_RESPONDER) {\n start(event, false);\n document.addEventListener('keyup', keyupHandler);\n }\n var role = target.getAttribute('role');\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n var _isButtonRole = role === 'button' || role === 'menuitem';\n if (isSpacebarKey && _isButtonRole) {\n event.preventDefault();\n }\n event.stopPropagation();\n }\n },\n onResponderGrant: function onResponderGrant(event) {\n return start(event);\n },\n onResponderMove: function onResponderMove(event) {\n if (_this._config.onPressMove != null) {\n _this._config.onPressMove(event);\n }\n var touch = getTouchFromResponderEvent(event);\n if (_this._touchActivatePosition != null) {\n var deltaX = _this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = _this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > 10) {\n _this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: function onResponderRelease(event) {\n return end(event);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n if (event.nativeEvent.type === 'selectionchange') {\n _this._selectionTerminated = true;\n }\n _this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n var _this$_config = _this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress;\n if (!disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n if (cancelable == null) {\n return true;\n }\n return cancelable;\n },\n onClick: function onClick(event) {\n var _this$_config2 = _this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n if (!disabled) {\n event.stopPropagation();\n if (_this._longPressDispatched || _this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n onContextMenu: function onContextMenu(event) {\n var _this$_config3 = _this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n if (!disabled) {\n if (onLongPress != null && _this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n }, {\n key: \"_receiveSignal\",\n value: function _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n this._touchState = nextState;\n }\n }\n }, {\n key: \"_performTransitionSideEffects\",\n value: function _performTransitionSideEffects(prevState, nextState, signal, event) {\n var _this2 = this;\n if (isTerminalSignal(signal)) {\n setTimeout(function () {\n _this2._isPointerTouch = false;\n }, 0);\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress;\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n if (!isPressCanceledByLongPress) {\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n }\n }\n }\n this._cancelPressDelayTimeout();\n }\n }, {\n key: \"_activate\",\n value: function _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n if (onPressStart != null) {\n onPressStart(event);\n }\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n }, {\n key: \"_deactivate\",\n value: function _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(function () {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n }, {\n key: \"_handleLongPress\",\n value: function _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n }\n }, {\n key: \"_cancelLongPressDelayTimeout\",\n value: function _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n }, {\n key: \"_cancelPressDelayTimeout\",\n value: function _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n }, {\n key: \"_cancelPressOutDelayTimeout\",\n value: function _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n }]);\n return PressResponder;\n}();\nexport { PressResponder as default };\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n if (fallback === void 0) {\n fallback = 0;\n }\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n}","map":{"version":3,"names":["DELAY","ERROR","LONG_PRESS_DETECTED","NOT_RESPONDER","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","Transitions","Object","freeze","isActiveSignal","signal","isButtonRole","element","getAttribute","isPressStartSignal","isTerminalSignal","isValidKeyPress","event","key","target","role","isSpacebar","DEFAULT_LONG_PRESS_DELAY_MS","DEFAULT_PRESS_DELAY_MS","PressResponder","config","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","configure","_config","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","_createEventHandlers","start","shouldDelay","persist","_selectionTerminated","nativeEvent","type","_receiveSignal","delayPressStart","normalizeDelay","setTimeout","delayLongPress","_handleLongPress","end","keyupHandler","onPress","document","removeEventListener","elementType","tagName","toLowerCase","isNativeInteractiveElement","onStartShouldSetResponder","disabled","currentTarget","stopPropagation","onKeyDown","addEventListener","isSpacebarKey","_isButtonRole","preventDefault","onResponderGrant","onResponderMove","onPressMove","touch","getTouchFromResponderEvent","_touchActivatePosition","deltaX","pageX","deltaY","pageY","Math","hypot","onResponderRelease","onResponderTerminate","onResponderTerminationRequest","_this$_config","cancelable","onLongPress","onClick","_this$_config2","altKey","onContextMenu","_this$_config3","defaultPrevented","prevState","nextState","console","error","_performTransitionSideEffects","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","isPressCanceledByLongPress","_this$_config5","onPressChange","onPressStart","_this$_config6","onPressEnd","delayPressEnd","clearTimeout","delay","min","fallback","max","_event$nativeEvent","changedTouches","touches","length"],"sources":["/Users/thomaschazot/Documents/But2A/LaSuperMeteo/iut-expo-starter/node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isButtonRole = element => element.getAttribute('role') === 'button';\n\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n\nvar isValidKeyPress = event => {\n var key = event.key,\n target = event.target;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return key === 'Enter' || isSpacebar && role === 'button';\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * <View {...this.state.pressResponder.getEventHandlers()} />\n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nexport default class PressResponder {\n constructor(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n\n\n reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n\n\n getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n }\n\n _createEventHandlers() {\n var start = (event, shouldDelay) => {\n event.persist();\n\n this._cancelPressOutDelayTimeout();\n\n this._longPressDispatched = false;\n this._selectionTerminated = false;\n this._touchState = NOT_RESPONDER;\n this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = event => {\n var onPress = this._config.onPress;\n var target = event.target;\n\n if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = target.tagName.toLowerCase();\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n\n return {\n onStartShouldSetResponder: event => {\n var disabled = this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: event => {\n var disabled = this._config.disabled;\n var key = event.key,\n target = event.target;\n\n if (!disabled && isValidKeyPress(event)) {\n if (this._touchState === NOT_RESPONDER) {\n start(event, false); // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n\n document.addEventListener('keyup', keyupHandler);\n }\n\n var role = target.getAttribute('role');\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n\n var _isButtonRole = role === 'button' || role === 'menuitem';\n\n if (isSpacebarKey && _isButtonRole) {\n // Prevent spacebar scrolling the window\n event.preventDefault();\n }\n\n event.stopPropagation();\n }\n },\n onResponderGrant: event => start(event),\n onResponderMove: event => {\n if (this._config.onPressMove != null) {\n this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (this._touchActivatePosition != null) {\n var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: event => end(event),\n onResponderTerminate: event => {\n if (event.nativeEvent.type === 'selectionchange') {\n this._selectionTerminated = true;\n }\n\n this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: event => {\n var _this$_config = this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: event => {\n var _this$_config2 = this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (this._longPressDispatched || this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: event => {\n var _this$_config3 = this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n\n\n _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n\n\n _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n // Pressable suppression of contextmenu on windows.\n // On Windows, the contextmenu is displayed after pointerup.\n // https://github.com/necolas/react-native-web/issues/2296\n setTimeout(() => {\n this._isPointerTouch = false;\n }, 0);\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n }\n\n _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n\n _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n\n _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n }\n\n _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n\n}\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\n}"],"mappings":"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"},"metadata":{},"sourceType":"module"}