{"version":3,"sources":["__debugid__","/src/app/_layout.tsx","/src/AppEntry.tsx","/node_modules/react-native-popup-menu/build/rnpm.js","/src/components/ModalProvider.tsx","/src/components/AlertProvider/AlertProvider.tsx","/src/components/Splash.tsx","/src/initialize.tsx","/node_modules/dayjs/plugin/advancedFormat.js","/node_modules/dayjs/plugin/customParseFormat.js","/node_modules/dayjs/plugin/isBetween.js","/node_modules/dayjs/plugin/isToday.js","/node_modules/dayjs/plugin/localizedFormat.js","/node_modules/dayjs/plugin/relativeTime.js","/node_modules/dayjs/plugin/updateLocale.js","/node_modules/dayjs/plugin/utc.js","/initializeSentry.ts","/src/utils/routingInstrumentation.ts","/src/services/createQueryClient.tsx","/src/utils/ignoreLogs.ts","/src/components/Header.tsx","/node_modules/react-native-gesture-handler/lib/module/index.js","/node_modules/react-native-gesture-handler/lib/module/init.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/eventReceiver.js","/node_modules/react-native-gesture-handler/lib/module/State.js","/node_modules/react-native-gesture-handler/lib/module/TouchEventType.js","/node_modules/react-native-gesture-handler/lib/module/handlers/handlersRegistry.js","/node_modules/react-native-gesture-handler/lib/module/utils.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/gestureStateManager.web.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/NodeManager.js","/node_modules/react-native-gesture-handler/lib/module/RNGestureHandlerModule.web.js","/node_modules/react-native-gesture-handler/lib/module/EnableNewWebImplementation.js","/node_modules/react-native-gesture-handler/lib/module/web/Gestures.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/PanGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/constants.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/GestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/interfaces.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/GestureHandlerOrchestrator.js","/node_modules/react-native-gesture-handler/lib/module/PointerType.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/PointerTracker.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/VelocityTracker.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/CircularBuffer.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/LeastSquareSolver.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/InteractionManager.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestureHandlerCommon.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/TapGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/LongPressGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/PinchGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/detectors/ScaleGestureDetector.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/RotationGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/detectors/RotationGestureDetector.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/FlingGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/Directions.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/Vector.js","/node_modules/react-native-gesture-handler/lib/module/web/utils.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/NativeViewGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/ManualGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web/handlers/HoverGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/NativeViewGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/DiscreteGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/GestureHandler.js","/node_modules/@egjs/hammerjs/dist/hammer.esm.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/constants.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/NodeManager.js","/node_modules/react-native-gesture-handler/lib/module/ghQueueMicrotask.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/utils.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/PressGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/PanGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/DraggingGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/TapGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/LongPressGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/PinchGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/IndiscreteGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/RotationGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/FlingGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/web_hammer/Errors.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/GestureHandlerWebDelegate.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/PointerEventManager.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/EventManager.js","/node_modules/react-native-gesture-handler/lib/module/web/tools/KeyboardEventManager.js","/node_modules/react-native-gesture-handler/lib/module/components/gestureHandlerRootHOC.js","/node_modules/react-native-gesture-handler/lib/module/components/GestureHandlerRootView.web.js","/node_modules/react-native-gesture-handler/lib/module/GestureHandlerRootViewContext.js","/node_modules/react-native-gesture-handler/lib/module/handlers/TapGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/createHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/customDirectEventTypes.web.js","/node_modules/react-native-gesture-handler/lib/module/handlers/getNextHandlerTag.js","/node_modules/react-native-gesture-handler/lib/module/handlers/utils.js","/node_modules/react-native-gesture-handler/lib/module/ActionType.js","/node_modules/react-native-gesture-handler/lib/module/handlers/PressabilityDebugView.web.js","/node_modules/react-native-gesture-handler/lib/module/handlers/ForceTouchGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/PlatformConstants.web.js","/node_modules/react-native-gesture-handler/lib/module/handlers/LongPressGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/PanGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/PinchGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/RotationGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/FlingGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/createNativeWrapper.js","/node_modules/react-native-gesture-handler/lib/module/handlers/NativeViewGestureHandler.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/index.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/gesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/reanimatedWrapper.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/attachHandlers.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/utils.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/hoverGesture.js","/node_modules/react-native-gesture-handler/lib/module/getReactNativeVersion.web.js","/node_modules/react-native-gesture-handler/lib/module/RNRenderer.web.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/needsToReattach.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/dropHandlers.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/Wrap.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/updateHandlers.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js","/node_modules/react-native-gesture-handler/lib/module/getShadowNodeFromRef.web.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/gestureObjects.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/flingGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/forceTouchGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/gestureComposition.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/longPressGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/panGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/pinchGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/rotationGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/tapGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/nativeGesture.js","/node_modules/react-native-gesture-handler/lib/module/handlers/gestures/manualGesture.js","/node_modules/react-native-gesture-handler/lib/module/components/GestureButtons.js","/node_modules/react-native-gesture-handler/lib/module/components/GestureHandlerButton.web.js","/node_modules/react-native-gesture-handler/lib/module/components/touchables/index.js","/node_modules/react-native-gesture-handler/lib/module/components/touchables/TouchableNativeFeedback.js","/node_modules/react-native-gesture-handler/lib/module/components/touchables/TouchableWithoutFeedback.js","/node_modules/react-native-gesture-handler/lib/module/components/touchables/GenericTouchable.js","/node_modules/react-native-gesture-handler/lib/module/components/touchables/TouchableOpacity.js","/node_modules/react-native-gesture-handler/lib/module/components/touchables/TouchableHighlight.js","/node_modules/react-native-gesture-handler/lib/module/components/GestureComponents.web.js","/node_modules/react-native-gesture-handler/lib/module/components/Swipeable.js","/node_modules/react-native-gesture-handler/lib/module/components/Pressable/index.js","/node_modules/react-native-gesture-handler/lib/module/components/Pressable/Pressable.js","/node_modules/react-native-gesture-handler/lib/module/components/Pressable/utils.js","/node_modules/react-native-gesture-handler/lib/module/components/DrawerLayout.js"],"sourcesContent":["var _sentryDebugIds,_sentryDebugIdIdentifier;void 0===_sentryDebugIds&&(_sentryDebugIds={});try{var stack=(new Error).stack;stack&&(_sentryDebugIds[stack]=\"0b7be92b-f196-4b80-b368-772b1ea34000\",_sentryDebugIdIdentifier=\"sentry-dbid-0b7be92b-f196-4b80-b368-772b1ea34000\")}catch(e){}","import { Stack } from \"expo-router\";\nimport { Platform } from \"react-native\";\nimport \"react-native-reanimated\";\nimport { AppEntry } from \"~/AppEntry\";\nimport { Header } from \"~/components/Header\";\n\nexport default function RootLayout() {\n return (\n \n
,\n gestureEnabled: false,\n headerShown: Platform.OS === \"web\" ? false : true,\n }}\n >\n \n \n \n \n \n\n {/* Croatian */}\n \n \n \n \n \n );\n}\n","import { QueryClientProvider } from \"@tanstack/react-query\";\nimport { useNavigationContainerRef } from \"expo-router\";\nimport React, { useEffect, useState } from \"react\";\nimport { RawIntlProvider } from \"react-intl\";\nimport { StatusBar } from \"react-native\";\nimport { gestureHandlerRootHOC } from \"react-native-gesture-handler\";\nimport { MenuProvider } from \"react-native-popup-menu\";\nimport { SafeAreaProvider } from \"react-native-safe-area-context\";\nimport { ModalProvider } from \"~/components/ModalProvider\";\nimport { AlertProvider } from \"./components/AlertProvider/AlertProvider\";\nimport { WithSplashScreen } from \"./components/Splash\";\nimport { ErrorAlertProvider } from \"./features/error-alert\";\nimport { ToastProvider } from \"./features/toast\";\nimport { initialize } from \"./initialize\";\nimport { routingInstrumentation } from \"./utils/routingInstrumentation\";\n\nexport const AppEntry = gestureHandlerRootHOC(function AppEntry({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [isReady, setIsReady] = useState<\n | { isReady: false }\n | { isReady: true; context: Awaited> }\n >({ isReady: false });\n\n useEffect(() => {\n initialize().then((ctx) => {\n setIsReady({ isReady: true, context: ctx });\n });\n }, []);\n\n // Capture the NavigationContainer ref and register it with the instrumentation.\n const ref = useNavigationContainerRef();\n\n useEffect(() => {\n if (ref) {\n routingInstrumentation.registerNavigationContainer(ref);\n }\n }, [ref]);\n\n return (\n \n \n {isReady.isReady && (\n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n )}\n \n );\n});\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react-native'), require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react-native', 'react'], factory) :\n (global = global || self, factory(global.ReactNativePopupMenu = {}, global.reactNative, global.React));\n}(this, function (exports, reactNative, React) { 'use strict';\n\n var React__default = 'default' in React ? React['default'] : React;\n\n // platform select polyfil for older RN versions\n\n if (!reactNative.Platform.select) {\n reactNative.Platform.select = function (obj) {\n return obj[reactNative.Platform.OS];\n };\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n /**\n * Promisifies measure's callback function and returns layout object.\n */\n\n var measure = function measure(ref) {\n return new Promise(function (resolve) {\n ref.measure(function (x, y, width, height, pageX, pageY) {\n resolve({\n x: pageX,\n y: pageY,\n width: width,\n height: height\n });\n });\n });\n };\n /**\n * Create unique menu name across all menu instances.\n */\n\n var makeName = function () {\n var nextID = 1;\n return function () {\n return \"menu-\".concat(nextID++);\n };\n }();\n /**\n * Create touchable component based on passed parameter and platform.\n * It also returns default props for specific touchable types.\n */\n\n function makeTouchable(TouchableComponent) {\n var Touchable = TouchableComponent || reactNative.Platform.select({\n android: reactNative.TouchableNativeFeedback,\n ios: reactNative.TouchableHighlight,\n default: reactNative.TouchableHighlight\n });\n var defaultTouchableProps = {};\n\n if (Touchable === reactNative.TouchableHighlight) {\n defaultTouchableProps = {\n underlayColor: 'rgba(0, 0, 0, 0.1)'\n };\n }\n\n return {\n Touchable: Touchable,\n defaultTouchableProps: defaultTouchableProps\n };\n }\n /**\n Converts iterator to array\n */\n\n function iterator2array(it) {\n // workaround around https://github.com/instea/react-native-popup-menu/issues/41#issuecomment-340290127\n var arr = [];\n\n for (var next = it.next(); !next.done; next = it.next()) {\n arr.push(next.value);\n }\n\n return arr;\n }\n /** checks if component is class component */\n\n function isClassComponent(component) {\n return component.prototype && !!component.prototype.render;\n }\n /**\n * Higher order component to deprecate usage of component.\n * message - deprecate warning message\n * methods - array of method names to be delegated to deprecated component\n */\n\n function deprecatedComponent(message) {\n var methods = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return function deprecatedComponentHOC(Component) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(DeprecatedComponent, _React$Component);\n\n var _super = _createSuper(DeprecatedComponent);\n\n function DeprecatedComponent() {\n var _this;\n\n _classCallCheck(this, DeprecatedComponent);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onRef\", function (ref) {\n return _this.ref = ref;\n });\n\n methods.forEach(function (name) {\n // delegate methods to the component\n _this[name] = function () {\n var _this$ref;\n\n return _this.ref && (_this$ref = _this.ref)[name].apply(_this$ref, arguments);\n };\n });\n return _this;\n }\n\n _createClass(DeprecatedComponent, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React__default.createElement(Component, _extends({}, this.props, {\n ref: this.onRef\n }));\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n console.warn(message);\n }\n }]);\n\n return DeprecatedComponent;\n }(React__default.Component);\n };\n }\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n var reactIs_development = createCommonjsModule(function (module, exports) {\n\n\n\n {\n (function() {\n\n // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n // (unstable) APIs that have been removed. Can we remove the symbols?\n\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\n function isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n }\n\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n } // AsyncMode is deprecated along with isAsyncMode\n\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n\n exports.AsyncMode = AsyncMode;\n exports.ConcurrentMode = ConcurrentMode;\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n exports.isValidElementType = isValidElementType;\n exports.typeOf = typeOf;\n })();\n }\n });\n var reactIs_development_1 = reactIs_development.AsyncMode;\n var reactIs_development_2 = reactIs_development.ConcurrentMode;\n var reactIs_development_3 = reactIs_development.ContextConsumer;\n var reactIs_development_4 = reactIs_development.ContextProvider;\n var reactIs_development_5 = reactIs_development.Element;\n var reactIs_development_6 = reactIs_development.ForwardRef;\n var reactIs_development_7 = reactIs_development.Fragment;\n var reactIs_development_8 = reactIs_development.Lazy;\n var reactIs_development_9 = reactIs_development.Memo;\n var reactIs_development_10 = reactIs_development.Portal;\n var reactIs_development_11 = reactIs_development.Profiler;\n var reactIs_development_12 = reactIs_development.StrictMode;\n var reactIs_development_13 = reactIs_development.Suspense;\n var reactIs_development_14 = reactIs_development.isAsyncMode;\n var reactIs_development_15 = reactIs_development.isConcurrentMode;\n var reactIs_development_16 = reactIs_development.isContextConsumer;\n var reactIs_development_17 = reactIs_development.isContextProvider;\n var reactIs_development_18 = reactIs_development.isElement;\n var reactIs_development_19 = reactIs_development.isForwardRef;\n var reactIs_development_20 = reactIs_development.isFragment;\n var reactIs_development_21 = reactIs_development.isLazy;\n var reactIs_development_22 = reactIs_development.isMemo;\n var reactIs_development_23 = reactIs_development.isPortal;\n var reactIs_development_24 = reactIs_development.isProfiler;\n var reactIs_development_25 = reactIs_development.isStrictMode;\n var reactIs_development_26 = reactIs_development.isSuspense;\n var reactIs_development_27 = reactIs_development.isValidElementType;\n var reactIs_development_28 = reactIs_development.typeOf;\n\n var reactIs = createCommonjsModule(function (module) {\n\n {\n module.exports = reactIs_development;\n }\n });\n\n /*\n object-assign\n (c) Sindre Sorhus\n @license MIT\n */\n /* eslint-disable no-unused-vars */\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\n function toObject(val) {\n \tif (val === null || val === undefined) {\n \t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n \t}\n\n \treturn Object(val);\n }\n\n function shouldUseNative() {\n \ttry {\n \t\tif (!Object.assign) {\n \t\t\treturn false;\n \t\t}\n\n \t\t// Detect buggy property enumeration order in older V8 versions.\n\n \t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n \t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n \t\ttest1[5] = 'de';\n \t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n \t\t\treturn false;\n \t\t}\n\n \t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n \t\tvar test2 = {};\n \t\tfor (var i = 0; i < 10; i++) {\n \t\t\ttest2['_' + String.fromCharCode(i)] = i;\n \t\t}\n \t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n \t\t\treturn test2[n];\n \t\t});\n \t\tif (order2.join('') !== '0123456789') {\n \t\t\treturn false;\n \t\t}\n\n \t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n \t\tvar test3 = {};\n \t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n \t\t\ttest3[letter] = letter;\n \t\t});\n \t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n \t\t\t\t'abcdefghijklmnopqrst') {\n \t\t\treturn false;\n \t\t}\n\n \t\treturn true;\n \t} catch (err) {\n \t\t// We don't expect any of the above to throw, but better to be safe.\n \t\treturn false;\n \t}\n }\n\n var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n \tvar from;\n \tvar to = toObject(target);\n \tvar symbols;\n\n \tfor (var s = 1; s < arguments.length; s++) {\n \t\tfrom = Object(arguments[s]);\n\n \t\tfor (var key in from) {\n \t\t\tif (hasOwnProperty.call(from, key)) {\n \t\t\t\tto[key] = from[key];\n \t\t\t}\n \t\t}\n\n \t\tif (getOwnPropertySymbols) {\n \t\t\tsymbols = getOwnPropertySymbols(from);\n \t\t\tfor (var i = 0; i < symbols.length; i++) {\n \t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n \t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t}\n\n \treturn to;\n };\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\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 var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\n var ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n var printWarning = function() {};\n\n {\n var ReactPropTypesSecret$1 = ReactPropTypesSecret_1;\n var loggedTypeFailures = {};\n var has$1 = has;\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n }\n\n /**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n {\n for (var typeSpecName in typeSpecs) {\n if (has$1(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n }\n\n /**\n * Resets warning cache when testing.\n *\n * @private\n */\n checkPropTypes.resetWarningCache = function() {\n {\n loggedTypeFailures = {};\n }\n };\n\n var checkPropTypes_1 = checkPropTypes;\n\n var printWarning$1 = function() {};\n\n {\n printWarning$1 = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n }\n\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n\n var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret_1) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning$1(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!reactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n {\n if (arguments.length > 1) {\n printWarning$1(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning$1('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.');\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning$1(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = objectAssign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes_1;\n ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n };\n\n var propTypes = createCommonjsModule(function (module) {\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\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 {\n var ReactIs = reactIs;\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess);\n }\n });\n\n var _excluded = [\"forwardedRef\"];\n function withContext(Context) {\n var propName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"context\";\n return function wrap(Component) {\n var EnhanceContext = /*#__PURE__*/function (_React$Component) {\n _inherits(EnhanceContext, _React$Component);\n\n var _super = _createSuper(EnhanceContext);\n\n function EnhanceContext() {\n _classCallCheck(this, EnhanceContext);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(EnhanceContext, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n forwardedRef = _this$props.forwardedRef,\n rest = _objectWithoutProperties(_this$props, _excluded);\n\n return /*#__PURE__*/React__default.createElement(Context.Consumer, null, function (value) {\n var _custom;\n\n var custom = (_custom = {}, _defineProperty(_custom, propName, value), _defineProperty(_custom, \"ref\", forwardedRef), _custom);\n return /*#__PURE__*/React__default.createElement(Component, _extends({}, custom, rest));\n });\n }\n }]);\n\n return EnhanceContext;\n }(React__default.Component);\n\n var name = Component.displayName || Component.name || \"Component\";\n var consumerName = Context.Consumer.displayName || Context.Consumer.name || \"Context.Consumer\";\n\n function enhanceForwardRef(props, ref) {\n return /*#__PURE__*/React__default.createElement(EnhanceContext, _extends({}, props, {\n forwardedRef: ref\n }));\n }\n\n enhanceForwardRef.displayName = \"enhanceContext-\".concat(consumerName, \"(\").concat(name, \")\");\n var FC = React__default.forwardRef(enhanceForwardRef);\n FC.defaultProps = Component.defaultProps;\n FC.propTypes = Component.propTypes;\n return FC;\n };\n }\n\n /**\n * Registry to subscribe, unsubscribe and update data of menus.\n *\n * menu data: {\n * instance: react instance\n * triggerLayout: Object - layout of menu trigger if known\n * optionsLayout: Object - layout of menu options if known\n * optionsCustomStyles: Object - custom styles of options\n * }\n */\n\n function makeMenuRegistry() {\n var menus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n /**\n * Subscribes menu instance.\n */\n function subscribe(instance) {\n var name = instance.getName();\n\n if (menus.get(name)) {\n console.warn(\"incorrect usage of popup menu - menu with name \".concat(name, \" already exists\"));\n }\n\n menus.set(name, {\n name: name,\n instance: instance\n });\n }\n /**\n * Unsubscribes menu instance.\n */\n\n\n function unsubscribe(instance) {\n menus.delete(instance.getName());\n }\n /**\n * Updates layout infomration.\n */\n\n\n function updateLayoutInfo(name) {\n var layouts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!menus.has(name)) {\n return;\n }\n\n var menu = Object.assign({}, menus.get(name));\n\n if (layouts.hasOwnProperty('triggerLayout')) {\n menu.triggerLayout = layouts.triggerLayout;\n }\n\n if (layouts.hasOwnProperty('optionsLayout')) {\n menu.optionsLayout = layouts.optionsLayout;\n }\n\n menus.set(name, menu);\n }\n\n function setOptionsCustomStyles(name, optionsCustomStyles) {\n if (!menus.has(name)) {\n return;\n }\n\n var menu = _objectSpread2(_objectSpread2({}, menus.get(name)), {}, {\n optionsCustomStyles: optionsCustomStyles\n });\n\n menus.set(name, menu);\n }\n /**\n * Get `menu data` by name.\n */\n\n\n function getMenu(name) {\n return menus.get(name);\n }\n /**\n * Returns all subscribed menus as array of `menu data`\n */\n\n\n function getAll() {\n return iterator2array(menus.values());\n }\n\n return {\n subscribe: subscribe,\n unsubscribe: unsubscribe,\n updateLayoutInfo: updateLayoutInfo,\n getMenu: getMenu,\n getAll: getAll,\n setOptionsCustomStyles: setOptionsCustomStyles\n };\n }\n\n var OPEN_ANIM_DURATION = 225;\n var CLOSE_ANIM_DURATION = 195;\n var USE_NATIVE_DRIVER = reactNative.Platform.OS !== \"web\";\n\n var Backdrop = /*#__PURE__*/function (_Component) {\n _inherits(Backdrop, _Component);\n\n var _super = _createSuper(Backdrop);\n\n function Backdrop() {\n var _this;\n\n _classCallCheck(this, Backdrop);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.fadeAnim = new reactNative.Animated.Value(0.001);\n return _this;\n }\n\n _createClass(Backdrop, [{\n key: \"open\",\n value: function open() {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n reactNative.Animated.timing(_this2.fadeAnim, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n useNativeDriver: USE_NATIVE_DRIVER\n }).start(resolve);\n });\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this3 = this;\n\n return new Promise(function (resolve) {\n reactNative.Animated.timing(_this3.fadeAnim, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n useNativeDriver: USE_NATIVE_DRIVER\n }).start(resolve);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onPress = _this$props.onPress,\n style = _this$props.style;\n return /*#__PURE__*/React__default.createElement(reactNative.TouchableWithoutFeedback, {\n onPress: onPress\n }, /*#__PURE__*/React__default.createElement(reactNative.Animated.View, {\n style: [styles.fullscreen, {\n opacity: this.fadeAnim\n }]\n }, /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: [styles.fullscreen, style]\n })));\n }\n }]);\n\n return Backdrop;\n }(React.Component);\n\n Backdrop.propTypes = {\n onPress: propTypes.func.isRequired\n };\n var styles = reactNative.StyleSheet.create({\n fullscreen: {\n opacity: 0,\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n }\n });\n\n var CFG = {\n debug: false\n };\n /**\n * Debug logger depending on `Menu.debug` static porperty.\n */\n\n var debug = function debug() {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n CFG.debug && (_console = console).log.apply(_console, ['react-native-popup-menu'].concat(args));\n };\n\n var MenuPlaceholder = /*#__PURE__*/function (_Component) {\n _inherits(MenuPlaceholder, _Component);\n\n var _super = _createSuper(MenuPlaceholder);\n\n function MenuPlaceholder(props) {\n var _this;\n\n _classCallCheck(this, MenuPlaceholder);\n\n _this = _super.call(this, props);\n _this.state = {};\n return _this;\n }\n\n _createClass(MenuPlaceholder, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate() {\n // don't terminate closing animation\n return !this.props.ctx._isMenuClosing;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n ctx = _this$props.ctx,\n backdropStyles = _this$props.backdropStyles;\n\n var shouldRenderMenu = ctx.isMenuOpen() && ctx._isInitialized();\n\n debug('MenuPlaceholder should render', shouldRenderMenu);\n\n if (!shouldRenderMenu) {\n return null;\n }\n\n return /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: styles$1.placeholder\n }, /*#__PURE__*/React__default.createElement(Backdrop, {\n onPress: ctx._onBackdropPress,\n style: backdropStyles,\n ref: ctx.onBackdropRef\n }), ctx._makeOptions());\n }\n }]);\n\n return MenuPlaceholder;\n }(React.Component);\n var styles$1 = reactNative.StyleSheet.create({\n placeholder: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden'\n }\n });\n\n var _excluded$1 = [\"style\", \"children\", \"layouts\"];\n var computePosition = function computePosition(_ref) {\n var windowLayout = _ref.windowLayout;\n return {\n top: windowLayout.height,\n left: windowLayout.width\n };\n };\n\n var MenuOutside = function MenuOutside(props) {\n var style = props.style,\n children = props.children,\n layouts = props.layouts,\n other = _objectWithoutProperties(props, _excluded$1);\n\n var position = computePosition(layouts);\n return /*#__PURE__*/React__default.createElement(reactNative.View, _extends({}, other, {\n style: [styles$2.options, style, position],\n collapsable: false\n }), children);\n };\n\n var styles$2 = reactNative.StyleSheet.create({\n options: {\n position: 'absolute'\n }\n });\n\n var defaultOptionsContainerRenderer = function defaultOptionsContainerRenderer(options) {\n return options;\n };\n\n var layoutsEqual = function layoutsEqual(a, b) {\n return a === b || a && b && a.width === b.width && a.height === b.height;\n };\n\n if (!React__default.forwardRef) {\n throw new Error('This version of popup-menu requires RN 0.55+. Check our compatibility table.');\n }\n\n var PopupMenuContext = React.createContext({});\n var withCtx = withContext(PopupMenuContext, \"ctx\"); // count of MenuProvider instances\n\n var instanceCount = 0;\n\n var MenuProvider = /*#__PURE__*/function (_Component) {\n _inherits(MenuProvider, _Component);\n\n var _super = _createSuper(MenuProvider);\n\n function MenuProvider(props) {\n var _this;\n\n _classCallCheck(this, MenuProvider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"_handleBackButton\", function () {\n var backHandler = _this.props.backHandler;\n debug('_handleBackButton called', backHandler); // Default handler if true is passed\n\n if (backHandler === true) {\n if (_this.isMenuOpen()) {\n _this.closeMenu();\n\n return true;\n }\n } // Custom handler called with MenuProvider instance id function is passed\n\n\n if (typeof backHandler === 'function') {\n return backHandler(_assertThisInitialized(_this));\n }\n\n return false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBackdropRef\", function (r) {\n _this.backdropRef = r;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onOptionsRef\", function (r) {\n _this.optionsRef = r;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onPlaceholderRef\", function (r) {\n return _this._placeholderRef = r;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onBackdropPress\", function () {\n debug('on backdrop press');\n\n var menu = _this._getOpenedMenu();\n\n if (menu) {\n menu.instance.props.onBackdropPress();\n }\n\n _this.closeMenu();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onLayout\", function (_ref) {\n var layout = _ref.nativeEvent.layout;\n\n if (layoutsEqual(_this._ownLayout, layout)) {\n return;\n }\n\n _this._ownLayout = layout;\n debug('context layout has changed', _this._ownLayout);\n\n if (!_this.isMenuOpen()) {\n return;\n }\n\n var _this$_getOpenedMenu = _this._getOpenedMenu(),\n instance = _this$_getOpenedMenu.instance;\n\n var trigger = instance._getTrigger();\n\n measure(trigger).then(function (triggerLayout) {\n debug('got trigger measurements after context layout change', triggerLayout);\n\n _this._menuRegistry.updateLayoutInfo(instance.getName(), {\n triggerLayout: triggerLayout\n }); // force update as own layout has changed\n\n\n _this._notify(true);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onSafeAreaLayout\", function (_ref2) {\n var layout = _ref2.nativeEvent.layout;\n\n if (layoutsEqual(_this._safeAreaLayout, layout)) {\n return;\n }\n\n _this._safeAreaLayout = layout;\n debug('safeArea layout has changed', _this._safeAreaLayout);\n\n if (!_this.isMenuOpen()) {\n return;\n }\n\n _this._notify(true);\n });\n\n _this._menuRegistry = makeMenuRegistry();\n _this._isMenuClosing = false;\n _this._isBackHandlerRegistered = false;\n var menuActions = {\n openMenu: function openMenu(name) {\n return _this.openMenu(name);\n },\n closeMenu: function closeMenu() {\n return _this.closeMenu();\n },\n toggleMenu: function toggleMenu(name) {\n return _this.toggleMenu(name);\n },\n isMenuOpen: function isMenuOpen() {\n return _this.isMenuOpen();\n },\n _getOpenedMenu: function _getOpenedMenu() {\n return _this._getOpenedMenu();\n },\n _notify: function _notify(force) {\n return _this._notify(force);\n }\n };\n _this.menuCtx = {\n menuRegistry: _this._menuRegistry,\n menuActions: menuActions\n };\n return _this;\n }\n\n _createClass(MenuProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n customStyles = _this$props.customStyles,\n skipInstanceCheck = _this$props.skipInstanceCheck;\n\n if (customStyles.menuContextWrapper) {\n console.warn('menuContextWrapper custom style is deprecated and it might be removed in future releases, use menuProviderWrapper instead.');\n }\n\n if (!skipInstanceCheck) {\n instanceCount++;\n }\n\n if (instanceCount > 1) {\n console.warn('In most cases you should not have more MenuProviders in your app (see API documentation). In other cases use skipInstanceCheck prop.');\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n debug('unmounting menu provider');\n\n if (this._isBackHandlerRegistered) {\n reactNative.BackHandler.removeEventListener('hardwareBackPress', this._handleBackButton);\n }\n\n var skipInstanceCheck = this.props.skipInstanceCheck;\n\n if (!skipInstanceCheck) {\n instanceCount--;\n }\n }\n }, {\n key: \"isMenuOpen\",\n value: function isMenuOpen() {\n return !!this._getOpenedMenu();\n }\n }, {\n key: \"openMenu\",\n value: function openMenu(name) {\n var menu = this._menuRegistry.getMenu(name);\n\n if (!menu) {\n console.warn(\"menu with name \".concat(name, \" does not exist\"));\n return Promise.resolve();\n }\n\n debug('open menu', name);\n\n if (!this._isBackHandlerRegistered) {\n // delay menu registration until the menu is really opened (and thus this back handler will be called \"sooner\")\n // too soon registration can cause another back handlers (e.g. react navigation) to be called instead of our back handler\n reactNative.BackHandler.addEventListener('hardwareBackPress', this._handleBackButton);\n this._isBackHandlerRegistered = true;\n }\n\n menu.instance._setOpened(true);\n\n return this._notify();\n }\n }, {\n key: \"closeMenu\",\n value: function closeMenu() {\n // has no effect on controlled menus\n debug('close menu');\n\n this._menuRegistry.getAll().filter(function (menu) {\n return menu.instance._getOpened();\n }).forEach(function (menu) {\n return menu.instance._setOpened(false);\n });\n\n return this._notify();\n }\n }, {\n key: \"_invalidateTriggerLayouts\",\n value: function _invalidateTriggerLayouts() {\n var _this2 = this;\n\n // invalidate layouts for closed menus,\n // both controlled and uncontrolled menus\n this._menuRegistry.getAll().filter(function (menu) {\n return !menu.instance.isOpen();\n }).forEach(function (menu) {\n _this2._menuRegistry.updateLayoutInfo(menu.name, {\n triggerLayout: undefined\n });\n });\n }\n }, {\n key: \"_beforeClose\",\n value: function _beforeClose(menu) {\n var _this3 = this;\n\n debug('before close', menu.name);\n var hideMenu = this.optionsRef && this.optionsRef.close && this.optionsRef.close() || Promise.resolve();\n var hideBackdrop = this.backdropRef && this.backdropRef.close();\n\n this._invalidateTriggerLayouts();\n\n this._isMenuClosing = true;\n return Promise.all([hideMenu, hideBackdrop]).then(function () {\n _this3._isMenuClosing = false;\n }).catch(function (err) {\n _this3._isMenuClosing = false;\n throw err;\n });\n }\n }, {\n key: \"toggleMenu\",\n value: function toggleMenu(name) {\n var menu = this._menuRegistry.getMenu(name);\n\n if (!menu) {\n console.warn(\"menu with name \".concat(name, \" does not exist\"));\n return Promise.resolve();\n }\n\n debug('toggle menu', name);\n\n if (menu.instance._getOpened()) {\n return this.closeMenu();\n } else {\n return this.openMenu(name);\n }\n }\n }, {\n key: \"_notify\",\n value: function _notify(forceUpdate) {\n var _this4 = this;\n\n var NULL = {};\n var prev = this.openedMenu || NULL;\n var next = this._menuRegistry.getAll().find(function (menu) {\n return menu.instance.isOpen();\n }) || NULL; // set newly opened menu before any callbacks are called\n\n this.openedMenu = next === NULL ? undefined : next;\n\n if (!forceUpdate && !this._isRenderNeeded(prev, next)) {\n return Promise.resolve();\n }\n\n debug('notify: next menu:', next.name, ' prev menu:', prev.name);\n var afterSetState = undefined;\n\n var beforeSetState = function beforeSetState() {\n return Promise.resolve();\n };\n\n if (prev.name !== next.name) {\n if (prev !== NULL && !prev.instance.isOpen()) {\n beforeSetState = function beforeSetState() {\n return _this4._beforeClose(prev).then(function () {\n return prev.instance.props.onClose();\n });\n };\n }\n\n if (next !== NULL) {\n next.instance.props.onOpen();\n\n afterSetState = function afterSetState() {\n return _this4._initOpen(next);\n };\n }\n }\n\n return beforeSetState().then(function () {\n if (!_this4._placeholderRef) {\n debug('setState ignored - maybe the context was unmounted');\n return;\n }\n\n _this4._placeholderRef.setState({\n openedMenuName: _this4.openedMenu && _this4.openedMenu.name\n }, afterSetState);\n\n debug('notify ended');\n });\n }\n /**\n Compares states of opened menu to determine if rerender is needed.\n */\n\n }, {\n key: \"_isRenderNeeded\",\n value: function _isRenderNeeded(prev, next) {\n if (prev === next) {\n debug('_isRenderNeeded: skipping - no change');\n return false;\n }\n\n if (prev.name !== next.name) {\n return true;\n }\n\n var triggerLayout = next.triggerLayout,\n optionsLayout = next.optionsLayout;\n\n if (!triggerLayout || !optionsLayout) {\n debug('_isRenderNeeded: skipping - no trigger or options layout');\n return false;\n }\n\n return true;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n style = _this$props2.style,\n customStyles = _this$props2.customStyles;\n debug('render menu', this.isMenuOpen(), this._ownLayout);\n return /*#__PURE__*/React__default.createElement(PopupMenuContext.Provider, {\n value: this.menuCtx\n }, /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: styles$3.flex1,\n onLayout: this._onLayout\n }, /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: [styles$3.flex1, customStyles.menuContextWrapper, customStyles.menuProviderWrapper, style]\n }, this.props.children), /*#__PURE__*/React__default.createElement(reactNative.SafeAreaView, {\n style: styles$3.safeArea,\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: styles$3.flex1,\n collapsable: false,\n pointerEvents: \"box-none\",\n onLayout: this._onSafeAreaLayout\n }), /*#__PURE__*/React__default.createElement(MenuPlaceholder, {\n ctx: this,\n backdropStyles: customStyles.backdrop,\n ref: this._onPlaceholderRef\n }))));\n }\n }, {\n key: \"_getOpenedMenu\",\n value: function _getOpenedMenu() {\n var name = this._placeholderRef && this._placeholderRef.state.openedMenuName;\n var menu = name ? this._menuRegistry.getMenu(name) : undefined;\n debug('_getOpenedMenu', name, !!menu);\n return menu;\n }\n }, {\n key: \"_isInitialized\",\n value: function _isInitialized() {\n return !!this._ownLayout;\n }\n }, {\n key: \"_initOpen\",\n value: function _initOpen(menu) {\n var _this5 = this;\n\n debug('opening', menu.name);\n\n var trigger = menu.instance._getTrigger();\n\n measure(trigger).then(function (triggerLayout) {\n debug('got trigger measurements', triggerLayout);\n\n _this5._menuRegistry.updateLayoutInfo(menu.name, {\n triggerLayout: triggerLayout\n });\n\n _this5.backdropRef && _this5.backdropRef.open();\n\n _this5._notify();\n });\n }\n }, {\n key: \"_onOptionsLayout\",\n value: function _onOptionsLayout(e, name, isOutside) {\n var optionsLayout = e.nativeEvent.layout;\n optionsLayout.isOutside = isOutside;\n debug('got options layout', optionsLayout);\n\n this._menuRegistry.updateLayoutInfo(name, {\n optionsLayout: optionsLayout\n });\n\n this._notify();\n }\n }, {\n key: \"_makeOptions\",\n value: function _makeOptions() {\n var _this6 = this;\n\n var _this$_getOpenedMenu2 = this._getOpenedMenu(),\n instance = _this$_getOpenedMenu2.instance,\n triggerLayout = _this$_getOpenedMenu2.triggerLayout,\n optionsLayout = _this$_getOpenedMenu2.optionsLayout;\n\n var options = instance._getOptions();\n\n var _instance$props = instance.props,\n renderer = _instance$props.renderer,\n rendererProps = _instance$props.rendererProps;\n var windowLayout = this._ownLayout;\n var safeAreaLayout = this._safeAreaLayout;\n var _options$props = options.props,\n optionsContainerStyle = _options$props.optionsContainerStyle,\n renderOptionsContainer = _options$props.renderOptionsContainer,\n customStyles = _options$props.customStyles;\n var optionsRenderer = renderOptionsContainer || defaultOptionsContainerRenderer;\n var isOutside = !triggerLayout || !optionsLayout;\n\n var onLayout = function onLayout(e) {\n return _this6._onOptionsLayout(e, instance.getName(), isOutside);\n };\n\n var style = [optionsContainerStyle, customStyles.optionsContainer];\n var layouts = {\n windowLayout: windowLayout,\n triggerLayout: triggerLayout,\n optionsLayout: optionsLayout,\n safeAreaLayout: safeAreaLayout\n };\n\n var props = _objectSpread2(_objectSpread2({}, rendererProps), {}, {\n style: style,\n onLayout: onLayout,\n layouts: layouts\n });\n\n var optionsType = isOutside ? MenuOutside : renderer;\n\n if (isClassComponent(optionsType)) {\n props.ref = this.onOptionsRef;\n }\n\n return React__default.createElement(optionsType, props, optionsRenderer(options));\n }\n }]);\n\n return MenuProvider;\n }(React.Component);\n MenuProvider.propTypes = {\n customStyles: propTypes.object,\n backHandler: propTypes.oneOfType([propTypes.bool, propTypes.func]),\n skipInstanceCheck: propTypes.bool\n };\n MenuProvider.defaultProps = {\n customStyles: {},\n backHandler: false,\n skipInstanceCheck: false\n };\n var styles$3 = reactNative.StyleSheet.create({\n flex1: {\n flex: 1\n },\n safeArea: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n });\n\n var MenuOptions = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuOptions, _React$Component);\n\n var _super = _createSuper(MenuOptions);\n\n function MenuOptions() {\n _classCallCheck(this, MenuOptions);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(MenuOptions, [{\n key: \"updateCustomStyles\",\n value: function updateCustomStyles(_props) {\n var customStyles = _props.customStyles;\n\n var menu = this.props.ctx.menuActions._getOpenedMenu(); // FIXME react 16.3 workaround for ControlledExample!\n\n\n if (!menu) return;\n var menuName = menu.instance.getName();\n this.props.ctx.menuRegistry.setOptionsCustomStyles(menuName, customStyles);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateCustomStyles(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateCustomStyles(this.props);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n customStyles = _this$props.customStyles,\n style = _this$props.style,\n children = _this$props.children;\n return /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: [customStyles.optionsWrapper, style]\n }, children);\n }\n }]);\n\n return MenuOptions;\n }(React__default.Component);\n MenuOptions.propTypes = {\n customStyles: propTypes.object,\n renderOptionsContainer: propTypes.func,\n optionsContainerStyle: propTypes.oneOfType([propTypes.object, propTypes.number, propTypes.array])\n };\n MenuOptions.defaultProps = {\n customStyles: {}\n };\n var MenuOptions$1 = withCtx(MenuOptions);\n\n var _excluded$2 = [\"disabled\", \"onRef\", \"text\", \"children\", \"style\", \"customStyles\", \"menuName\", \"triggerOnLongPress\", \"onAlternativeAction\", \"testID\"];\n var MenuTrigger = /*#__PURE__*/function (_Component) {\n _inherits(MenuTrigger, _Component);\n\n var _super = _createSuper(MenuTrigger);\n\n function MenuTrigger() {\n _classCallCheck(this, MenuTrigger);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(MenuTrigger, [{\n key: \"_onPress\",\n value: function _onPress() {\n debug('trigger onPress');\n this.props.onPress && this.props.onPress();\n this.props.ctx.menuActions.openMenu(this.props.menuName);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var _this$props = this.props,\n disabled = _this$props.disabled,\n onRef = _this$props.onRef,\n text = _this$props.text,\n children = _this$props.children,\n style = _this$props.style,\n customStyles = _this$props.customStyles,\n menuName = _this$props.menuName,\n triggerOnLongPress = _this$props.triggerOnLongPress,\n onAlternativeAction = _this$props.onAlternativeAction,\n testID = _this$props.testID,\n other = _objectWithoutProperties(_this$props, _excluded$2);\n\n var onPress = function onPress() {\n return !disabled && _this._onPress();\n };\n\n var _makeTouchable = makeTouchable(customStyles.TriggerTouchableComponent),\n Touchable = _makeTouchable.Touchable,\n defaultTouchableProps = _makeTouchable.defaultTouchableProps;\n\n return /*#__PURE__*/React__default.createElement(reactNative.View, {\n ref: onRef,\n collapsable: false,\n style: customStyles.triggerOuterWrapper\n }, /*#__PURE__*/React__default.createElement(Touchable, _extends({\n testID: testID,\n onPress: triggerOnLongPress ? onAlternativeAction : onPress,\n onLongPress: triggerOnLongPress ? onPress : onAlternativeAction\n }, defaultTouchableProps, customStyles.triggerTouchable), /*#__PURE__*/React__default.createElement(reactNative.View, _extends({}, other, {\n style: [customStyles.triggerWrapper, style]\n }), text ? /*#__PURE__*/React__default.createElement(reactNative.Text, {\n style: customStyles.triggerText\n }, text) : children)));\n }\n }]);\n\n return MenuTrigger;\n }(React.Component);\n MenuTrigger.propTypes = {\n disabled: propTypes.bool,\n text: propTypes.string,\n onPress: propTypes.func,\n onAlternativeAction: propTypes.func,\n customStyles: propTypes.object,\n triggerOnLongPress: propTypes.bool,\n testID: propTypes.string\n };\n MenuTrigger.defaultProps = {\n disabled: false,\n customStyles: {},\n testID: undefined\n };\n var MenuTrigger$1 = withCtx(MenuTrigger);\n\n var _excluded$3 = [\"style\", \"children\", \"layouts\"];\n\n var axisPosition = function axisPosition(oDim, wDim, tPos, tDim) {\n // if options are bigger than window dimension, then render at 0\n if (oDim > wDim) {\n return 0;\n } // render at trigger position if possible\n\n\n if (tPos + oDim <= wDim) {\n return tPos;\n } // aligned to the trigger from the bottom (right)\n\n\n if (tPos + tDim - oDim >= 0) {\n return tPos + tDim - oDim;\n } // compute center position\n\n\n var pos = Math.round(tPos + tDim / 2 - oDim / 2); // check top boundary\n\n if (pos < 0) {\n return 0;\n } // check bottom boundary\n\n\n if (pos + oDim > wDim) {\n return wDim - oDim;\n } // if everything ok, render in center position\n\n\n return pos;\n };\n\n function fit(pos, len, minPos, maxPos) {\n if (pos === undefined) {\n return undefined;\n }\n\n if (pos + len > maxPos) {\n pos = maxPos - len;\n }\n\n if (pos < minPos) {\n pos = minPos;\n }\n\n return pos;\n } // fits options (position) into safeArea\n\n\n var fitPositionIntoSafeArea = function fitPositionIntoSafeArea(position, layouts) {\n var windowLayout = layouts.windowLayout,\n safeAreaLayout = layouts.safeAreaLayout,\n optionsLayout = layouts.optionsLayout;\n\n if (!safeAreaLayout) {\n return position;\n }\n\n var saX = safeAreaLayout.x,\n saY = safeAreaLayout.y,\n saHeight = safeAreaLayout.height,\n saWidth = safeAreaLayout.width;\n var oHeight = optionsLayout.height,\n oWidth = optionsLayout.width;\n var wWidth = windowLayout.width;\n var top = position.top,\n left = position.left,\n right = position.right;\n top = fit(top, oHeight, saY, saY + saHeight);\n left = fit(left, oWidth, saX, saX + saWidth);\n right = fit(right, oWidth, wWidth - saX - saWidth, saX);\n return {\n top: top,\n left: left,\n right: right\n };\n };\n var computePosition$1 = function computePosition(layouts, isRTL) {\n var windowLayout = layouts.windowLayout,\n triggerLayout = layouts.triggerLayout,\n optionsLayout = layouts.optionsLayout;\n var wX = windowLayout.x,\n wY = windowLayout.y,\n wWidth = windowLayout.width,\n wHeight = windowLayout.height;\n var tX = triggerLayout.x,\n tY = triggerLayout.y,\n tHeight = triggerLayout.height,\n tWidth = triggerLayout.width;\n var oHeight = optionsLayout.height,\n oWidth = optionsLayout.width;\n var top = axisPosition(oHeight, wHeight, tY - wY, tHeight);\n var left = axisPosition(oWidth, wWidth, tX - wX, tWidth);\n var start = isRTL ? 'right' : 'left';\n\n var position = _defineProperty({\n top: top\n }, start, left);\n\n return fitPositionIntoSafeArea(position, layouts);\n };\n\n var ContextMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(ContextMenu, _React$Component);\n\n var _super = _createSuper(ContextMenu);\n\n function ContextMenu(props) {\n var _this;\n\n _classCallCheck(this, ContextMenu);\n\n _this = _super.call(this, props);\n _this.state = {\n scaleAnim: new reactNative.Animated.Value(0.1)\n };\n return _this;\n }\n\n _createClass(ContextMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n reactNative.Animated.timing(this.state.scaleAnim, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n easing: reactNative.Easing.out(reactNative.Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER\n }).start();\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n reactNative.Animated.timing(_this2.state.scaleAnim, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: reactNative.Easing.in(reactNative.Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER\n }).start(resolve);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n style = _this$props.style,\n children = _this$props.children,\n layouts = _this$props.layouts,\n other = _objectWithoutProperties(_this$props, _excluded$3);\n\n var animation = {\n transform: [{\n scale: this.state.scaleAnim\n }],\n opacity: this.state.scaleAnim\n };\n var position = computePosition$1(layouts, reactNative.I18nManager.isRTL);\n return /*#__PURE__*/React__default.createElement(reactNative.Animated.View, _extends({}, other, {\n style: [styles$4.options, style, animation, position]\n }), children);\n }\n }]);\n\n return ContextMenu;\n }(React__default.Component); // public exports\n ContextMenu.computePosition = computePosition$1;\n ContextMenu.fitPositionIntoSafeArea = fitPositionIntoSafeArea;\n var styles$4 = reactNative.StyleSheet.create({\n options: {\n position: 'absolute',\n borderRadius: 2,\n backgroundColor: 'white',\n width: reactNative.PixelRatio.roundToNearestPixel(200),\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: {\n width: 3,\n height: 3\n },\n shadowRadius: 4,\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5\n }\n });\n\n var isRegularComponent = function isRegularComponent(c) {\n return c.type !== MenuOptions$1 && c.type !== MenuTrigger$1;\n };\n\n var isTrigger = function isTrigger(c) {\n return c.type === MenuTrigger$1;\n };\n\n var isMenuOptions = function isMenuOptions(c) {\n return c.type === MenuOptions$1;\n };\n\n var Menu = /*#__PURE__*/function (_Component) {\n _inherits(Menu, _Component);\n\n var _super = _createSuper(Menu);\n\n function Menu(props) {\n var _this;\n\n _classCallCheck(this, Menu);\n\n _this = _super.call(this, props);\n _this._name = _this.props.name || makeName();\n _this._forceClose = false;\n var ctx = props.ctx;\n\n if (!(ctx && ctx.menuActions)) {\n throw new Error(\"Menu component must be ancestor of MenuProvider\");\n }\n\n return _this;\n }\n\n _createClass(Menu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this._validateChildren()) {\n return;\n }\n\n debug('subscribing menu', this._name);\n this.props.ctx.menuRegistry.subscribe(this);\n\n this.props.ctx.menuActions._notify();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n console.warn('Menu name cannot be changed');\n } // force update if menu is opened as its content might have changed\n\n\n var force = this.isOpen();\n debug('component did update', this._name, force);\n\n this.props.ctx.menuActions._notify(force);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n debug('unsubscribing menu', this._name);\n\n if (this.isOpen()) {\n this._forceClose = true;\n\n this.props.ctx.menuActions._notify();\n }\n\n this.props.ctx.menuRegistry.unsubscribe(this);\n }\n }, {\n key: \"open\",\n value: function open() {\n return this.props.ctx.menuActions.openMenu(this._name);\n }\n }, {\n key: \"close\",\n value: function close() {\n return this.props.ctx.menuActions.closeMenu();\n }\n }, {\n key: \"isOpen\",\n value: function isOpen() {\n if (this._forceClose) {\n return false;\n }\n\n return this.props.hasOwnProperty('opened') ? this.props.opened : this._opened;\n }\n }, {\n key: \"getName\",\n value: function getName() {\n return this._name;\n }\n }, {\n key: \"render\",\n value: function render() {\n var style = this.props.style;\n\n var children = this._reduceChildren();\n\n return /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: style\n }, children);\n }\n }, {\n key: \"_reduceChildren\",\n value: function _reduceChildren() {\n var _this2 = this;\n\n return React__default.Children.toArray(this.props.children).reduce(function (r, child) {\n if (isTrigger(child)) {\n r.push(React__default.cloneElement(child, {\n key: null,\n menuName: _this2._name,\n onRef: function onRef(t) {\n return _this2._trigger = t;\n }\n }));\n }\n\n if (isRegularComponent(child)) {\n r.push(child);\n }\n\n return r;\n }, []);\n }\n }, {\n key: \"_getTrigger\",\n value: function _getTrigger() {\n return this._trigger;\n }\n }, {\n key: \"_getOptions\",\n value: function _getOptions() {\n return React__default.Children.toArray(this.props.children).find(isMenuOptions);\n }\n }, {\n key: \"_getOpened\",\n value: function _getOpened() {\n return this._opened;\n }\n }, {\n key: \"_setOpened\",\n value: function _setOpened(opened) {\n this._opened = opened;\n }\n }, {\n key: \"_validateChildren\",\n value: function _validateChildren() {\n var children = React__default.Children.toArray(this.props.children);\n var options = children.find(isMenuOptions);\n\n if (!options) {\n console.warn('Menu has to contain MenuOptions component');\n }\n\n var trigger = children.find(isTrigger);\n\n if (!trigger) {\n console.warn('Menu has to contain MenuTrigger component');\n }\n\n return options && trigger;\n }\n }]);\n\n return Menu;\n }(React.Component);\n Menu.propTypes = {\n name: propTypes.string,\n renderer: propTypes.func,\n rendererProps: propTypes.object,\n onSelect: propTypes.func,\n onOpen: propTypes.func,\n onClose: propTypes.func,\n opened: propTypes.bool,\n onBackdropPress: propTypes.func\n };\n Menu.defaultProps = {\n renderer: ContextMenu,\n rendererProps: {},\n onSelect: function onSelect() {},\n onOpen: function onOpen() {},\n onClose: function onClose() {},\n onBackdropPress: function onBackdropPress() {}\n };\n var MenuExternal = withCtx(Menu);\n Object.defineProperty(MenuExternal, 'debug', {\n get: function get() {\n return CFG.debug;\n },\n set: function set(val) {\n CFG.debug = val;\n }\n });\n\n MenuExternal.setDefaultRenderer = function (renderer) {\n Menu.defaultProps.renderer = renderer;\n };\n\n MenuExternal.setDefaultRendererProps = function (rendererProps) {\n Menu.defaultProps.rendererProps = rendererProps;\n };\n\n var MenuOption = /*#__PURE__*/function (_Component) {\n _inherits(MenuOption, _Component);\n\n var _super = _createSuper(MenuOption);\n\n function MenuOption() {\n _classCallCheck(this, MenuOption);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(MenuOption, [{\n key: \"_onSelect\",\n value: function _onSelect() {\n var value = this.props.value;\n\n var onSelect = this.props.onSelect || this._getMenusOnSelect();\n\n var shouldClose = onSelect(value) !== false;\n debug('select option', value, shouldClose);\n\n if (shouldClose) {\n this.props.ctx.menuActions.closeMenu();\n }\n }\n }, {\n key: \"_getMenusOnSelect\",\n value: function _getMenusOnSelect() {\n var menu = this.props.ctx.menuActions._getOpenedMenu();\n\n return menu.instance.props.onSelect;\n }\n }, {\n key: \"_getCustomStyles\",\n value: function _getCustomStyles() {\n // FIXME react 16.3 workaround for ControlledExample!\n var menu = this.props.ctx.menuActions._getOpenedMenu() || {};\n var optionsCustomStyles = menu.optionsCustomStyles;\n return _objectSpread2(_objectSpread2({}, optionsCustomStyles), this.props.customStyles);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var _this$props = this.props,\n text = _this$props.text,\n disabled = _this$props.disabled,\n disableTouchable = _this$props.disableTouchable,\n children = _this$props.children,\n style = _this$props.style,\n testID = _this$props.testID;\n\n var customStyles = this._getCustomStyles();\n\n if (text && React__default.Children.count(children) > 0) {\n console.warn(\"MenuOption: Please don't use text property together with explicit children. Children are ignored.\");\n }\n\n if (disabled) {\n var disabledStyles = [defaultStyles.optionTextDisabled, customStyles.optionText];\n return /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: [defaultStyles.option, customStyles.optionWrapper, style]\n }, text ? /*#__PURE__*/React__default.createElement(reactNative.Text, {\n style: disabledStyles\n }, text) : children);\n }\n\n var rendered = /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: [defaultStyles.option, customStyles.optionWrapper, style]\n }, text ? /*#__PURE__*/React__default.createElement(reactNative.Text, {\n style: customStyles.optionText\n }, text) : children);\n\n if (disableTouchable) {\n return rendered;\n } else {\n var _makeTouchable = makeTouchable(customStyles.OptionTouchableComponent),\n Touchable = _makeTouchable.Touchable,\n defaultTouchableProps = _makeTouchable.defaultTouchableProps;\n\n return /*#__PURE__*/React__default.createElement(Touchable, _extends({\n testID: testID,\n onPress: function onPress() {\n return _this._onSelect();\n }\n }, defaultTouchableProps, customStyles.optionTouchable), rendered);\n }\n }\n }]);\n\n return MenuOption;\n }(React.Component);\n MenuOption.propTypes = {\n disabled: propTypes.bool,\n disableTouchable: propTypes.bool,\n onSelect: propTypes.func,\n text: propTypes.string,\n value: propTypes.any,\n customStyles: propTypes.object,\n testID: propTypes.string\n };\n MenuOption.defaultProps = {\n disabled: false,\n disableTouchable: false,\n customStyles: {},\n testID: undefined\n };\n var defaultStyles = reactNative.StyleSheet.create({\n option: {\n padding: 5,\n backgroundColor: 'transparent'\n },\n optionTextDisabled: {\n color: '#ccc'\n }\n });\n var MenuOption$1 = withCtx(MenuOption);\n\n var _excluded$4 = [\"style\", \"children\", \"layouts\"];\n /**\n Simplified version of ContextMenu without animation.\n */\n\n var NotAnimatedContextMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(NotAnimatedContextMenu, _React$Component);\n\n var _super = _createSuper(NotAnimatedContextMenu);\n\n function NotAnimatedContextMenu() {\n _classCallCheck(this, NotAnimatedContextMenu);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NotAnimatedContextMenu, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n style = _this$props.style,\n children = _this$props.children,\n layouts = _this$props.layouts,\n other = _objectWithoutProperties(_this$props, _excluded$4);\n\n var position = computePosition$1(layouts, reactNative.I18nManager.isRTL);\n return /*#__PURE__*/React__default.createElement(reactNative.View, _extends({}, other, {\n style: [styles$4.options, style, position]\n }), children);\n }\n }]);\n\n return NotAnimatedContextMenu;\n }(React__default.Component);\n\n var _excluded$5 = [\"style\", \"children\", \"layouts\"];\n var computePosition$2 = function computePosition(layouts) {\n var windowLayout = layouts.windowLayout,\n optionsLayout = layouts.optionsLayout;\n var wHeight = windowLayout.height;\n var oHeight = optionsLayout.height;\n var top = wHeight - oHeight;\n var left = 0,\n right = 0;\n var position = {\n top: top,\n left: left,\n right: right\n }; // TODO what is the best way to handle safeArea?\n // most likely some extra paddings inside SlideInMenu \n\n return position;\n };\n\n var SlideInMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SlideInMenu, _React$Component);\n\n var _super = _createSuper(SlideInMenu);\n\n function SlideInMenu(props) {\n var _this;\n\n _classCallCheck(this, SlideInMenu);\n\n _this = _super.call(this, props);\n _this.state = {\n slide: new reactNative.Animated.Value(0)\n };\n return _this;\n }\n\n _createClass(SlideInMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n reactNative.Animated.timing(this.state.slide, {\n duration: OPEN_ANIM_DURATION,\n toValue: 1,\n easing: reactNative.Easing.out(reactNative.Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER\n }).start();\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n reactNative.Animated.timing(_this2.state.slide, {\n duration: CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: reactNative.Easing.in(reactNative.Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER\n }).start(resolve);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n style = _this$props.style,\n children = _this$props.children,\n layouts = _this$props.layouts,\n other = _objectWithoutProperties(_this$props, _excluded$5);\n\n var oHeight = layouts.optionsLayout.height;\n var animation = {\n transform: [{\n translateY: this.state.slide.interpolate({\n inputRange: [0, 1],\n outputRange: [oHeight, 0]\n })\n }]\n };\n var position = computePosition$2(layouts);\n return /*#__PURE__*/React__default.createElement(reactNative.Animated.View, _extends({\n style: [styles$5.options, style, animation, position]\n }, other), children);\n }\n }]);\n\n return SlideInMenu;\n }(React__default.Component);\n var styles$5 = reactNative.StyleSheet.create({\n options: {\n position: 'absolute',\n backgroundColor: 'white',\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: {\n width: 3,\n height: 3\n },\n shadowRadius: 4,\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5\n }\n });\n\n var _excluded$6 = [\"style\", \"children\", \"layouts\", \"anchorStyle\", \"preferredPlacement\", \"openAnimationDuration\", \"closeAnimationDuration\", \"placement\"];\n var popoverPadding = 7;\n var anchorSize = 15;\n var anchorHyp = Math.sqrt(anchorSize * anchorSize + anchorSize * anchorSize);\n var anchorOffset = (anchorHyp + anchorSize) / 2 - popoverPadding; // left/top placement\n\n function axisNegativeSideProperties(_ref) {\n var oDim = _ref.oDim,\n tPos = _ref.tPos;\n return {\n position: tPos - oDim\n };\n } // right/bottom placement\n\n\n function axisPositiveSideProperties(_ref2) {\n var tPos = _ref2.tPos,\n tDim = _ref2.tDim;\n // substract also anchor placeholder from the beginning\n return {\n position: tPos + tDim - anchorSize\n };\n } // computes offsets (off screen overlap) of popover when trying to align it to the center\n\n\n function centeringProperties(_ref3) {\n var oDim = _ref3.oDim,\n wDim = _ref3.wDim,\n tPos = _ref3.tPos,\n tDim = _ref3.tDim;\n var center = Math.round(tPos + tDim / 2);\n var leftOffset = oDim / 2 - center;\n var rightOffset = center + oDim / 2 - wDim;\n return {\n center: center,\n leftOffset: leftOffset,\n rightOffset: rightOffset\n };\n }\n /**\n * Computes position and offset of popover when trying to align it to the triger center.\n * It consideres window boundaries.\n * Returns object with keys:\n * - position: Absolute position - top/left,\n * - offset: window overlapping size if window boundaries were not considered\n */\n\n\n function axisCenteredPositionProperties(options) {\n var oDim = options.oDim,\n wDim = options.wDim;\n\n var _centeringProperties = centeringProperties(options),\n center = _centeringProperties.center,\n leftOffset = _centeringProperties.leftOffset,\n rightOffset = _centeringProperties.rightOffset;\n\n if (leftOffset > 0 || rightOffset > 0) {\n // right/bottom position is better\n if (leftOffset < rightOffset) {\n return {\n offset: rightOffset,\n position: wDim - oDim\n };\n } // left/top position is better\n\n\n if (rightOffset < leftOffset) {\n return {\n offset: -leftOffset,\n position: 0\n };\n }\n } // centered position\n\n\n return {\n offset: 0,\n position: center - oDim / 2\n };\n }\n /* Evaluate centering placement */\n\n\n function getCenteringPrice(options) {\n var _centeringProperties2 = centeringProperties(options),\n leftOffset = _centeringProperties2.leftOffset,\n rightOffset = _centeringProperties2.rightOffset; // TODO: currently shifted popovers have higher price,\n // popover shift could be taken into account with the same price\n\n\n return Math.max(0, leftOffset) + Math.max(0, rightOffset);\n }\n /* Evaluate top placement */\n\n\n function getTopPrice(hOptions, vOptions) {\n var centerOffset = getCenteringPrice(vOptions);\n var sideOffset = Math.max(0, hOptions.oDim - hOptions.tPos);\n return centerOffset + sideOffset;\n }\n /* Evaluate bottom placement */\n\n\n function getBottomPrice(hOptions, vOptions) {\n var centerOffset = getCenteringPrice(vOptions);\n var sideOffset = Math.max(0, hOptions.tPos + hOptions.tDim + hOptions.oDim - hOptions.wDim);\n return centerOffset + sideOffset;\n }\n /* Evaluate left placement */\n\n\n function getLeftPrice(hOptions, vOptions) {\n var centerOffset = getCenteringPrice(hOptions);\n var sideOffset = Math.max(0, vOptions.oDim - vOptions.tPos);\n return centerOffset + sideOffset;\n }\n /* Evaluate right placement */\n\n\n function getRightPrice(hOptions, vOptions) {\n var centerOffset = getCenteringPrice(hOptions);\n var sideOffset = Math.max(0, vOptions.tPos + vOptions.tDim + vOptions.oDim - vOptions.wDim);\n return centerOffset + sideOffset;\n }\n\n function getStartPosKey(isRTL) {\n return isRTL ? 'right' : 'left';\n }\n\n function topProperties(hOptions, vOptions, isRTL) {\n var centered = axisCenteredPositionProperties(vOptions);\n var side = axisNegativeSideProperties(hOptions);\n return {\n position: _defineProperty({\n top: side.position\n }, getStartPosKey(isRTL), centered.position),\n offset: centered.offset,\n placement: 'top'\n };\n }\n\n function bottomProperties(hOptions, vOptions, isRTL) {\n var centered = axisCenteredPositionProperties(vOptions);\n var side = axisPositiveSideProperties(hOptions);\n return {\n position: _defineProperty({\n top: side.position\n }, getStartPosKey(isRTL), centered.position),\n offset: centered.offset,\n placement: 'bottom'\n };\n }\n\n function rightProperties(hOptions, vOptions, isRTL) {\n var centered = axisCenteredPositionProperties(hOptions);\n var side = axisPositiveSideProperties(vOptions);\n return {\n position: _defineProperty({\n top: centered.position\n }, getStartPosKey(isRTL), side.position),\n offset: centered.offset,\n placement: 'right'\n };\n }\n\n function leftProperties(hOptions, vOptions, isRTL) {\n var centered = axisCenteredPositionProperties(hOptions);\n var side = axisNegativeSideProperties(vOptions);\n return {\n position: _defineProperty({\n top: centered.position\n }, getStartPosKey(isRTL), side.position),\n offset: centered.offset,\n placement: 'left'\n };\n } // maps placement to function which computes correct properties\n\n\n var propertiesByPlacement = {\n top: topProperties,\n bottom: bottomProperties,\n left: leftProperties,\n right: rightProperties\n };\n /**\n * Computes properties needed for drawing popover.\n * Returns object with keys:\n * - position: { top: Number, left: Number } - popover absolute position\n * - placement: top|left|top|bottom - position to the trigger\n * - offset: value by which must be anchor shifted\n */\n\n function computeProperties(_ref4, placement, preferredPlacement, isRTL) {\n var windowLayout = _ref4.windowLayout,\n triggerLayout = _ref4.triggerLayout,\n optionsLayout = _ref4.optionsLayout;\n var wX = windowLayout.x,\n wY = windowLayout.y,\n wWidth = windowLayout.width,\n wHeight = windowLayout.height;\n var tX = triggerLayout.x,\n tY = triggerLayout.y,\n tHeight = triggerLayout.height,\n tWidth = triggerLayout.width;\n var oHeight = optionsLayout.height,\n oWidth = optionsLayout.width;\n var hOptions = {\n oDim: oHeight + popoverPadding * 2,\n wDim: wHeight,\n tPos: tY - wY,\n tDim: tHeight\n };\n var vOptions = {\n oDim: oWidth + popoverPadding * 2,\n wDim: wWidth,\n tPos: tX - wX,\n tDim: tWidth\n };\n\n if (placement !== 'auto' && propertiesByPlacement[placement]) {\n return propertiesByPlacement[placement](hOptions, vOptions, isRTL);\n }\n\n var prices = {\n top: getTopPrice(hOptions, vOptions),\n bottom: getBottomPrice(hOptions, vOptions),\n right: getRightPrice(hOptions, vOptions),\n left: getLeftPrice(hOptions, vOptions)\n };\n var bestPrice = Object.values(prices).sort(function (a, b) {\n return a - b;\n })[0];\n var bestPlacement = prices[preferredPlacement] === bestPrice ? preferredPlacement : Object.keys(prices).find(function (pl) {\n return prices[pl] === bestPrice;\n });\n return propertiesByPlacement[bestPlacement](hOptions, vOptions, isRTL);\n }\n\n var Popover = /*#__PURE__*/function (_React$Component) {\n _inherits(Popover, _React$Component);\n\n var _super = _createSuper(Popover);\n\n function Popover(props) {\n var _this;\n\n _classCallCheck(this, Popover);\n\n _this = _super.call(this, props);\n _this.state = {\n scaleAnim: new reactNative.Animated.Value(0.1)\n };\n return _this;\n }\n\n _createClass(Popover, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n reactNative.Animated.timing(this.state.scaleAnim, {\n duration: this.props.openAnimationDuration !== undefined ? this.props.openAnimationDuration : OPEN_ANIM_DURATION,\n toValue: 1,\n easing: reactNative.Easing.out(reactNative.Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER\n }).start();\n }\n }, {\n key: \"close\",\n value: function close() {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n reactNative.Animated.timing(_this2.state.scaleAnim, {\n duration: _this2.props.closeAnimationDuration !== undefined ? _this2.props.closeAnimationDuration : CLOSE_ANIM_DURATION,\n toValue: 0,\n easing: reactNative.Easing.in(reactNative.Easing.cubic),\n useNativeDriver: USE_NATIVE_DRIVER\n }).start(resolve);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n style = _this$props.style,\n children = _this$props.children,\n layouts = _this$props.layouts,\n anchorStyle = _this$props.anchorStyle,\n preferredPlacement = _this$props.preferredPlacement,\n openAnimationDuration = _this$props.openAnimationDuration,\n closeAnimationDuration = _this$props.closeAnimationDuration,\n userPlacement = _this$props.placement,\n other = _objectWithoutProperties(_this$props, _excluded$6);\n\n var isRTL = reactNative.I18nManager.isRTL;\n var animation = {\n transform: [{\n scale: this.state.scaleAnim\n }],\n opacity: this.state.scaleAnim\n };\n\n var _computeProperties = computeProperties(layouts, userPlacement, preferredPlacement, isRTL),\n position = _computeProperties.position,\n placement = _computeProperties.placement,\n offset = _computeProperties.offset;\n\n return /*#__PURE__*/React__default.createElement(reactNative.Animated.View, {\n style: [styles$6.animated, animation, position, getContainerStyle({\n placement: placement,\n isRTL: isRTL\n })],\n pointerEvents: \"box-none\"\n }, /*#__PURE__*/React__default.createElement(reactNative.View, {\n style: [styles$6.anchor, dynamicAnchorStyle({\n placement: placement,\n offset: offset,\n isRTL: isRTL\n }), anchorStyle]\n }), /*#__PURE__*/React__default.createElement(reactNative.View, _extends({}, other, {\n style: [styles$6.options, style]\n }), children));\n }\n }]);\n\n return Popover;\n }(React__default.Component);\n Popover.propTypes = {\n anchorStyle: propTypes.oneOfType([propTypes.object, propTypes.number, propTypes.array]),\n placement: propTypes.oneOf(['auto', 'top', 'right', 'bottom', 'left']),\n preferredPlacement: propTypes.oneOf(['top', 'right', 'bottom', 'left']),\n openAnimationDuration: propTypes.number,\n closeAnimationDuration: propTypes.number\n };\n Popover.defaultProps = {\n preferredPlacement: 'top',\n placement: 'auto'\n };\n\n var getContainerStyle = function getContainerStyle(_ref5) {\n var placement = _ref5.placement,\n isRTL = _ref5.isRTL;\n return {\n left: {\n flexDirection: isRTL ? 'row' : 'row-reverse'\n },\n right: {\n flexDirection: isRTL ? 'row-reverse' : 'row'\n },\n top: {\n flexDirection: 'column-reverse'\n },\n bottom: {\n flexDirection: 'column'\n }\n }[placement];\n };\n\n var dynamicAnchorStyle = function dynamicAnchorStyle(_ref6) {\n var _ref7, _ref8;\n\n var offset = _ref6.offset,\n placement = _ref6.placement,\n isRTL = _ref6.isRTL;\n var start = getStartPosKey(isRTL);\n\n switch (placement) {\n case 'right':\n return {\n top: offset,\n transform: [{\n translateX: anchorOffset\n }, {\n rotate: '45deg'\n }]\n };\n\n case 'left':\n return {\n top: offset,\n transform: [{\n translateX: -anchorOffset\n }, {\n rotate: '45deg'\n }]\n };\n\n case 'top':\n return _ref7 = {}, _defineProperty(_ref7, start, offset), _defineProperty(_ref7, \"transform\", [{\n translateY: -anchorOffset\n }, {\n rotate: '45deg'\n }]), _ref7;\n\n case 'bottom':\n return _ref8 = {}, _defineProperty(_ref8, start, offset), _defineProperty(_ref8, \"transform\", [{\n translateY: anchorOffset\n }, {\n rotate: '45deg'\n }]), _ref8;\n }\n };\n\n var styles$6 = reactNative.StyleSheet.create({\n animated: {\n padding: popoverPadding,\n backgroundColor: 'transparent',\n position: 'absolute',\n alignItems: 'center'\n },\n options: {\n borderRadius: 2,\n minWidth: anchorHyp,\n minHeight: anchorHyp,\n backgroundColor: 'white',\n // Shadow only works on iOS.\n shadowColor: 'black',\n shadowOpacity: 0.3,\n shadowOffset: {\n width: 3,\n height: 3\n },\n shadowRadius: 4,\n // This will elevate the view on Android, causing shadow to be drawn.\n elevation: 5\n },\n anchor: {\n width: anchorSize,\n height: anchorSize,\n backgroundColor: 'white',\n elevation: 5\n }\n });\n\n var renderers = {\n ContextMenu: ContextMenu,\n SlideInMenu: SlideInMenu,\n NotAnimatedContextMenu: NotAnimatedContextMenu,\n Popover: Popover\n };\n var MenuContext = deprecatedComponent('MenuContext is deprecated and it might be removed in future releases, use MenuProvider instead.', ['openMenu', 'toggleMenu', 'closeMenu', 'isMenuOpen'])(MenuProvider);\n\n exports.default = MenuExternal;\n exports.Menu = MenuExternal;\n exports.MenuProvider = MenuProvider;\n exports.MenuContext = MenuContext;\n exports.MenuOption = MenuOption$1;\n exports.MenuOptions = MenuOptions$1;\n exports.MenuTrigger = MenuTrigger$1;\n exports.renderers = renderers;\n exports.withMenuContext = withCtx;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=rnpm.js.map\n","import React from \"react\";\nimport { KeyboardAvoidingView, Platform, StyleSheet, View } from \"react-native\";\nimport { ModalContext } from \"./ModalContext\";\nimport type { Content } from \"./ModalContext\";\nimport type { ReactNode } from \"react\";\n\nconst S = StyleSheet.create({\n kav: { position: \"absolute\", width: \"100%\", height: \"100%\" },\n childrenWrap: { position: \"absolute\", width: \"100%\", height: \"100%\" },\n});\n\nexport const ModalProvider = ({ children }: { children: ReactNode }) => {\n const [contentList, setContentList] = React.useState([]);\n\n // Create a value to pass to modal\n const actions = React.useRef({\n addContent({ uniqueId, children }: Content) {\n setContentList((list) => [...list, { uniqueId, children }]);\n },\n removeContent(uniqueId: Content[\"uniqueId\"]) {\n setContentList((list) =>\n list.filter((item) => item.uniqueId !== uniqueId),\n );\n },\n updateContent({ uniqueId, children }: Content) {\n setContentList((list) =>\n list.map((el) => {\n if (el.uniqueId === uniqueId) {\n return { uniqueId, children };\n }\n return el;\n }),\n );\n },\n });\n\n return (\n \n {children}\n 0 ? \"auto\" : \"none\",\n },\n ]}\n >\n {contentList.map(({ children: contentChildren }, index) => {\n return (\n \n {contentChildren}\n \n );\n })}\n \n \n );\n};\n","import React, { useCallback, useState } from \"react\";\nimport { Platform, Pressable, ScrollView, StyleSheet } from \"react-native\";\nimport Animated, {\n FadeIn,\n FadeInDown,\n FadeOut,\n FadeOutDown,\n} from \"react-native-reanimated\";\nimport { Button } from \"~/components/Button\";\nimport { Spacer } from \"~/components/Spacer\";\nimport { Text } from \"~/components/Text\";\nimport { View } from \"~/components/View\";\nimport { styleConstants } from \"~/style/styleConstants\";\nimport { Icon } from \"../Icon\";\nimport { Modal } from \"../Modal\";\nimport { AlertContext } from \"./AlertContext\";\nimport type { ContextType } from \"./AlertContext\";\nimport type { IconProps } from \"../Icon\";\nimport type { AlertButton } from \"react-native\";\n\nconst defaultOptions = {\n cancelable: false,\n onDismiss: () => {},\n buttonsContainerStyle: {},\n};\n\nconst S = StyleSheet.create({\n flex: { flex: 1 },\n backdrop: {\n ...StyleSheet.absoluteFillObject,\n backgroundColor: styleConstants.colorBackgroundBackdrop,\n },\n\n popup: {\n maxHeight: \"85%\",\n width: \"80%\",\n maxWidth: 520,\n borderRadius: 4,\n backgroundColor: styleConstants.colorBackgroundWhite,\n padding: styleConstants.spacingLarge,\n },\n});\n\ninterface AlertProviderProps {\n children: React.ReactNode;\n}\n\nexport function AlertProvider({ children, ...otherProps }: AlertProviderProps) {\n const [alertVisible, setAlertVisible] = useState(false);\n const [alertParams, setAlertParams] = useState({\n title: \"\",\n body: \"\",\n buttons: [] as AlertButton[],\n options: defaultOptions,\n iconName: \"\" as IconProps[\"name\"] | undefined,\n });\n\n const alert: ContextType[\"alert\"] = useCallback(\n (\n title = \"\",\n body = \"\",\n buttons = [],\n iconName,\n options = defaultOptions,\n ) => {\n const preparedOptions = { ...defaultOptions, ...options };\n setAlertParams({\n title,\n body,\n buttons,\n options: preparedOptions,\n iconName,\n });\n setAlertVisible(true);\n },\n [],\n );\n\n const contextValue = { alertVisible, setAlertVisible, alert };\n\n const { title, body, buttons, options, iconName } = alertParams;\n\n const { onDismiss, cancelable, buttonsContainerStyle } = options;\n\n const handleModalPress = () => {\n if (cancelable) {\n onDismiss();\n setAlertVisible(false);\n }\n };\n\n const buttonsRender = buttons.map((button, index) => {\n return (\n \n {index !== 0 && }\n {\n setAlertVisible(false);\n return button.onPress?.();\n }}\n style={{\n minWidth: 100,\n width: \"50%\",\n maxWidth: 400,\n alignSelf: \"center\",\n }}\n colorDanger={button.style === \"destructive\"}\n />\n \n );\n });\n\n return (\n \n {children}\n {alertVisible && (\n \n \n \n \n \n {/* Popup / Modal container */}\n \n {iconName && (\n \n \n \n )}\n \n {!!title && (\n \n \n {title}\n \n \n )}\n\n {!!body && (\n \n {typeof body === \"string\" ? (\n \n {body}\n \n ) : (\n <>{body}\n )}\n \n )}\n \n\n \n\n \n {buttons.length === 0 ? (\n {\n setAlertVisible(false);\n }}\n style={{\n minWidth: 100,\n width: \"50%\",\n maxWidth: 400,\n alignSelf: \"center\",\n }}\n />\n ) : (\n buttonsRender\n )}\n \n \n \n \n )}\n \n );\n}\n","import { observable } from \"mobx\";\nimport { observer } from \"mobx-react-lite\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport {\n Animated,\n Platform,\n StyleSheet,\n useWindowDimensions,\n} from \"react-native\";\nimport { Logo } from \"~/features/logo/Logo\";\nimport { styleConstants } from \"~/style/styleConstants\";\nimport { Collapsible } from \"./Collapsible\";\nimport { Text } from \"./Text\";\nimport { View } from \"./View\";\n\nexport function WithSplashScreen({\n children,\n isAppReady,\n}: {\n isAppReady: boolean;\n children: React.ReactNode;\n}) {\n return (\n <>\n {isAppReady && children}\n\n {Platform.OS !== \"web\" && }\n \n );\n}\n\n// Animation constants\nconst fadeInDuration = __DEV__ ? 1 : 150;\nconst fadeOutDuration = __DEV__ ? 1 : 250;\n\nconst FADE_IN_IMAGE = \"Fade in image\";\nconst WAIT_FOR_APP_TO_BE_READY = \"Wait for app to be ready\";\nconst FADE_OUT = \"Fade out\";\nconst HIDDEN = \"Hidden\";\n\nexport const splashScreenState = observable({\n message: \"\",\n});\n\nexport const Splash = observer(function Splash({\n isAppReady,\n}: {\n isAppReady: boolean;\n}) {\n const window = useWindowDimensions();\n\n const containerOpacity = useRef(new Animated.Value(1)).current;\n const lottieOpacity = useRef(new Animated.Value(0)).current;\n\n const [state, setState] = useState<\n | typeof FADE_IN_IMAGE\n | typeof WAIT_FOR_APP_TO_BE_READY\n | typeof FADE_OUT\n | typeof HIDDEN\n >(FADE_IN_IMAGE);\n\n useEffect(() => {\n if (state === FADE_IN_IMAGE) {\n Animated.timing(lottieOpacity, {\n toValue: 1,\n duration: fadeInDuration, // Fade in duration\n useNativeDriver: true,\n }).start(() => {\n setState(WAIT_FOR_APP_TO_BE_READY);\n });\n }\n }, [lottieOpacity, state]);\n\n useEffect(() => {\n if (state === WAIT_FOR_APP_TO_BE_READY) {\n if (isAppReady) {\n setState(FADE_OUT);\n }\n }\n }, [isAppReady, state]);\n\n useEffect(() => {\n if (state === FADE_OUT) {\n Animated.timing(containerOpacity, {\n toValue: 0,\n duration: fadeOutDuration, // Fade out duration\n delay: 0, // Minimum time the logo will stay visible (0 = only while app is initialized)\n useNativeDriver: true,\n }).start(() => {\n setState(HIDDEN);\n });\n }\n }, [containerOpacity, state]);\n\n if (state === HIDDEN) return null;\n\n return (\n \n \n \n \n \n \n\n \n \n {splashScreenState.message}\n \n \n \n );\n});\n\nconst style = StyleSheet.create({\n container: {\n ...StyleSheet.absoluteFillObject,\n backgroundColor: styleConstants.colorBackgroundTheme,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n lottieWrap: {\n width: 250,\n height: 250,\n },\n iconContainer: {\n width: \"100%\",\n height: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n});\n","import AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport dayjs from \"dayjs\";\nimport \"dayjs/locale/hr\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport isBetween from \"dayjs/plugin/isBetween\";\nimport isToday from \"dayjs/plugin/isToday\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\nimport updateLocale from \"dayjs/plugin/updateLocale\";\nimport utc from \"dayjs/plugin/utc\";\nimport _ from \"lodash\";\nimport { configure } from \"mobx\";\nimport { Platform } from \"react-native\";\nimport { z } from \"zod\";\nimport { initializeSentry } from \"initializeSentry\";\nimport { constants } from \"./constants\";\nimport { environment } from \"./environment\";\nimport { initializeI18n } from \"./features/intl\";\nimport { createQueryClient } from \"./services/createQueryClient\";\nimport { state } from \"./store\";\nimport { ignoreLogs } from \"./utils/ignoreLogs\";\n\nexport async function initialize() {\n // await AsyncStorage.clear();\n // console.log(\"[🤖] Cleared async storage\");\n // throw new Error(\"This is an error\");\n\n // Make sure this is always at the top of the initialize function\n await initializeSentry();\n\n const uniqueUserIdFromStorage = await AsyncStorage.getItem(\n constants.ASYNC_STORAGE_KEYS.UNIQUE_USER_ID,\n );\n\n console.log(\"[🤖] uniqueUserIdFromStorage\", uniqueUserIdFromStorage);\n\n // on iOS we use the email as the unique user id, and on other platforms we use a random 8 character string\n const idSchema = z.string().min(8).or(z.string().email());\n const parseResponse = idSchema.safeParse(uniqueUserIdFromStorage);\n if (parseResponse.success) {\n console.log(\n \"[🤖] Found valid unique user id in storage:\",\n parseResponse.data,\n );\n\n state._uniqueUserId = parseResponse.data;\n } else {\n if (Platform.OS === \"ios\") {\n console.log(\n \"[🤖] No valid unique user id found in storage. But we're on iOS so it will be generated after login\",\n );\n } else {\n console.log(\n \"[🤖] No valid unique user id found in storage, generating a new one\",\n );\n // Generate a new unique user id of exactly 8 characters containing alphanumeric characters\n const uniqueUserId = _.times(8, () => {\n const charList = \"abcdefghijklmnopqrstuvwxyz0123456789\";\n return charList[Math.floor(Math.random() * charList.length)];\n }).join(\"\");\n\n state._uniqueUserId = uniqueUserId;\n await AsyncStorage.setItem(\n constants.ASYNC_STORAGE_KEYS.UNIQUE_USER_ID,\n uniqueUserId,\n );\n }\n }\n\n // We mutate mobx state without actions in a couple of places so\n // this is should be called early in the initialize function\n configure({ enforceActions: \"never\" });\n\n const queryClient = createQueryClient();\n\n await initializeI18n();\n\n if (environment.DISABLE_LOGS) {\n ignoreLogs();\n }\n\n dayjs.extend(customParseFormat);\n dayjs.extend(isToday);\n dayjs.extend(localizedFormat);\n dayjs.extend(relativeTime);\n dayjs.extend(utc);\n dayjs.extend(isBetween);\n dayjs.extend(updateLocale);\n dayjs.extend(advancedFormat);\n\n return {\n queryClient,\n };\n}\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import * as Sentry from \"@sentry/react-native\";\nimport { isRunningInExpoGo } from \"expo\";\nimport { environment } from \"~/environment\";\nimport { routingInstrumentation } from \"~/utils/routingInstrumentation\";\n\nlet isSentryInitialized = false;\n\nexport async function initializeSentry() {\n if (__DEV__) return;\n\n if (!environment.SENTRY_DSN) {\n console.log(\n \"[Warning in initializeSentry] SENTRY_DSN is not set in .env.local file\",\n );\n return;\n }\n\n try {\n if (!isSentryInitialized) {\n Sentry.init({\n dsn: environment.SENTRY_DSN,\n debug: false,\n environment: environment.ENVIRONMENT_NAME,\n sendDefaultPii: false,\n autoSessionTracking: true,\n enableNative: true,\n autoInitializeNativeSdk: true,\n enableNativeCrashHandling: true,\n enableAutoSessionTracking: true,\n enableNativeFramesTracking: !isRunningInExpoGo(),\n integrations: [routingInstrumentation],\n });\n\n isSentryInitialized = true;\n }\n } catch (error) {\n console.log(\"[Error in initializeSentry]\", String(error));\n }\n}\n","import * as Sentry from \"@sentry/react-native\";\n\n// This is needed to communicate between the integration and React\nexport const routingInstrumentation = Sentry.reactNavigationIntegration();\n","import { QueryClient } from \"@tanstack/react-query\";\n\nexport function createQueryClient() {\n const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n gcTime: 60 * 1000,\n structuralSharing: false,\n // getNextPageParam(lastPage: any, allPages) {\n // if (lastPage.data.length === 0) return undefined;\n // return allPages.length;\n // },\n refetchOnWindowFocus: false,\n retry: false,\n throwOnError: false,\n },\n\n mutations: {\n throwOnError: false,\n },\n },\n });\n\n return queryClient;\n}\n","import _ from \"lodash\";\nimport { LogBox, Platform } from \"react-native\";\n\nexport function ignoreLogs() {\n LogBox.ignoreAllLogs();\n\n console.debug = _.noop;\n console.error = _.noop;\n console.group = _.noop;\n console.groupCollapsed = _.noop;\n console.groupEnd = _.noop;\n console.info = _.noop;\n console.log = _.noop;\n console.table = _.noop;\n console.trace = _.noop;\n console.warn = _.noop;\n\n // These are not available in React Native:\n if (Platform.OS === \"web\") {\n console.assert = _.noop;\n console.clear = _.noop;\n console.count = _.noop;\n console.countReset = _.noop;\n console.dir = _.noop;\n console.dirxml = _.noop;\n console.time = _.noop;\n console.timeEnd = _.noop;\n console.timeLog = _.noop;\n console.profile = _.noop;\n console.profileEnd = _.noop;\n console.timeStamp = _.noop;\n }\n}\n","import { observer } from \"mobx-react-lite\";\nimport React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { useSafeAreaInsets } from \"react-native-safe-area-context\";\nimport { styleConstants as C } from \"~/style/styleConstants\";\nimport { shadow } from \"~/utils/shadow\";\nimport { IconButton } from \"./IconButton\";\nimport { Text } from \"./Text\";\nimport { View } from \"./View\";\nimport type { BottomTabHeaderProps } from \"@react-navigation/bottom-tabs\";\nimport type { NativeStackHeaderProps } from \"@react-navigation/native-stack\";\n\nexport const headerHeight = 52;\n\nconst S = StyleSheet.create({\n container: {\n ...shadow(5),\n },\n headerContainer: {\n height: headerHeight,\n backgroundColor: C.colorBackgroundLight,\n justifyContent: \"space-between\",\n },\n backButton: {\n height: headerHeight,\n width: headerHeight,\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n headerLeft: { position: \"absolute\", top: 0, left: 0, bottom: 0 },\n headerRight: { position: \"absolute\", top: 0, right: 0, bottom: 0 },\n titleText: { flex: 1 },\n});\n\ntype HeaderProps = (NativeStackHeaderProps | BottomTabHeaderProps) & {\n options: {\n hideBackButton?: boolean | undefined;\n };\n};\n\nexport const Header = observer(\n ({ options, navigation, ...props }: HeaderProps) => {\n const canGoBack = \"back\" in props && !!props.back;\n const insets = useSafeAreaInsets();\n\n const HeaderRight = options?.headerRight?.({ canGoBack });\n const HeaderLeft = options?.headerLeft?.({ canGoBack });\n\n const { title, hideBackButton = false } = options;\n\n const statusBarBackground = (\n \n );\n\n return (\n \n {statusBarBackground}\n \n \n \n {title}\n \n \n\n \n {canGoBack && !hideBackButton && (\n {\n navigation.goBack();\n }}\n iconName=\"arrow-back\"\n iconSize={28}\n iconColor={C.colorTextDark}\n />\n )}\n\n {HeaderLeft}\n \n\n \n {HeaderRight}\n \n \n \n );\n },\n);\n","import { initialize } from './init';\nexport { Directions } from './Directions';\nexport { State } from './State';\nexport { PointerType } from './PointerType';\nexport { default as gestureHandlerRootHOC } from './components/gestureHandlerRootHOC';\nexport { default as GestureHandlerRootView } from './components/GestureHandlerRootView';\nexport { MouseButton } from './handlers/gestureHandlerCommon';\nexport { TapGestureHandler } from './handlers/TapGestureHandler';\nexport { ForceTouchGestureHandler } from './handlers/ForceTouchGestureHandler';\nexport { LongPressGestureHandler } from './handlers/LongPressGestureHandler';\nexport { PanGestureHandler } from './handlers/PanGestureHandler';\nexport { PinchGestureHandler } from './handlers/PinchGestureHandler';\nexport { RotationGestureHandler } from './handlers/RotationGestureHandler';\nexport { FlingGestureHandler } from './handlers/FlingGestureHandler';\nexport { default as createNativeWrapper } from './handlers/createNativeWrapper';\nexport { GestureDetector } from './handlers/gestures/GestureDetector';\nexport { GestureObjects as Gesture } from './handlers/gestures/gestureObjects';\nexport { NativeViewGestureHandler } from './handlers/NativeViewGestureHandler';\nexport { RawButton, BaseButton, RectButton, BorderlessButton, PureNativeButton } from './components/GestureButtons';\nexport { TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback } from './components/touchables';\nexport { ScrollView, Switch, TextInput, DrawerLayoutAndroid, FlatList, RefreshControl } from './components/GestureComponents';\nexport { HoverEffect } from './handlers/gestures/hoverGesture';\nexport { default as Swipeable } from './components/Swipeable';\nexport { default as Pressable } from './components/Pressable';\nexport { default as DrawerLayout } from './components/DrawerLayout';\nexport { enableExperimentalWebImplementation, enableLegacyWebImplementation } from './EnableNewWebImplementation';\ninitialize();\n//# sourceMappingURL=index.js.map","import { startListening } from './handlers/gestures/eventReceiver';\nimport RNGestureHandlerModule from './RNGestureHandlerModule';\nimport { isFabric } from './utils';\nlet fabricInitialized = false;\nexport function initialize() {\n startListening();\n} // Since isFabric() may give wrong results before the first render, we call this\n// method during render of GestureHandlerRootView\n\nexport function maybeInitializeFabric() {\n if (isFabric() && !fabricInitialized) {\n RNGestureHandlerModule.install();\n fabricInitialized = true;\n }\n}\n//# sourceMappingURL=init.js.map","import { DeviceEventEmitter } from 'react-native';\nimport { State } from '../../State';\nimport { TouchEventType } from '../../TouchEventType';\nimport { findHandler, findOldGestureHandler } from '../handlersRegistry';\nimport { GestureStateManager } from './gestureStateManager';\nlet gestureHandlerEventSubscription = null;\nlet gestureHandlerStateChangeEventSubscription = null;\nconst gestureStateManagers = new Map();\nconst lastUpdateEvent = [];\n\nfunction isStateChangeEvent(event) {\n // @ts-ignore oldState doesn't exist on GestureTouchEvent and that's the point\n return event.oldState != null;\n}\n\nfunction isTouchEvent(event) {\n return event.eventType != null;\n}\n\nexport function onGestureHandlerEvent(event) {\n var _handler$handlers7, _handler$handlers7$on, _handler$handlers8, _handler$handlers8$on, _handler$handlers9, _handler$handlers9$on, _handler$handlers10, _handler$handlers10$o;\n\n const handler = findHandler(event.handlerTag);\n\n if (handler) {\n if (isStateChangeEvent(event)) {\n if (event.oldState === State.UNDETERMINED && event.state === State.BEGAN) {\n var _handler$handlers$onB, _handler$handlers;\n\n (_handler$handlers$onB = (_handler$handlers = handler.handlers).onBegin) === null || _handler$handlers$onB === void 0 ? void 0 : _handler$handlers$onB.call(_handler$handlers, event);\n } else if ((event.oldState === State.BEGAN || event.oldState === State.UNDETERMINED) && event.state === State.ACTIVE) {\n var _handler$handlers$onS, _handler$handlers2;\n\n (_handler$handlers$onS = (_handler$handlers2 = handler.handlers).onStart) === null || _handler$handlers$onS === void 0 ? void 0 : _handler$handlers$onS.call(_handler$handlers2, event);\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n } else if (event.oldState !== event.state && event.state === State.END) {\n var _handler$handlers$onF, _handler$handlers4;\n\n if (event.oldState === State.ACTIVE) {\n var _handler$handlers$onE, _handler$handlers3;\n\n (_handler$handlers$onE = (_handler$handlers3 = handler.handlers).onEnd) === null || _handler$handlers$onE === void 0 ? void 0 : _handler$handlers$onE.call(_handler$handlers3, event, true);\n }\n\n (_handler$handlers$onF = (_handler$handlers4 = handler.handlers).onFinalize) === null || _handler$handlers$onF === void 0 ? void 0 : _handler$handlers$onF.call(_handler$handlers4, event, true);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n } else if ((event.state === State.FAILED || event.state === State.CANCELLED) && event.oldState !== event.state) {\n var _handler$handlers$onF2, _handler$handlers6;\n\n if (event.oldState === State.ACTIVE) {\n var _handler$handlers$onE2, _handler$handlers5;\n\n (_handler$handlers$onE2 = (_handler$handlers5 = handler.handlers).onEnd) === null || _handler$handlers$onE2 === void 0 ? void 0 : _handler$handlers$onE2.call(_handler$handlers5, event, false);\n }\n\n (_handler$handlers$onF2 = (_handler$handlers6 = handler.handlers).onFinalize) === null || _handler$handlers$onF2 === void 0 ? void 0 : _handler$handlers$onF2.call(_handler$handlers6, event, false);\n gestureStateManagers.delete(event.handlerTag);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n }\n } else if (isTouchEvent(event)) {\n if (!gestureStateManagers.has(event.handlerTag)) {\n gestureStateManagers.set(event.handlerTag, GestureStateManager.create(event.handlerTag));\n } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n\n const manager = gestureStateManagers.get(event.handlerTag);\n\n switch (event.eventType) {\n case TouchEventType.TOUCHES_DOWN:\n (_handler$handlers7 = handler.handlers) === null || _handler$handlers7 === void 0 ? void 0 : (_handler$handlers7$on = _handler$handlers7.onTouchesDown) === null || _handler$handlers7$on === void 0 ? void 0 : _handler$handlers7$on.call(_handler$handlers7, event, manager);\n break;\n\n case TouchEventType.TOUCHES_MOVE:\n (_handler$handlers8 = handler.handlers) === null || _handler$handlers8 === void 0 ? void 0 : (_handler$handlers8$on = _handler$handlers8.onTouchesMove) === null || _handler$handlers8$on === void 0 ? void 0 : _handler$handlers8$on.call(_handler$handlers8, event, manager);\n break;\n\n case TouchEventType.TOUCHES_UP:\n (_handler$handlers9 = handler.handlers) === null || _handler$handlers9 === void 0 ? void 0 : (_handler$handlers9$on = _handler$handlers9.onTouchesUp) === null || _handler$handlers9$on === void 0 ? void 0 : _handler$handlers9$on.call(_handler$handlers9, event, manager);\n break;\n\n case TouchEventType.TOUCHES_CANCELLED:\n (_handler$handlers10 = handler.handlers) === null || _handler$handlers10 === void 0 ? void 0 : (_handler$handlers10$o = _handler$handlers10.onTouchesCancelled) === null || _handler$handlers10$o === void 0 ? void 0 : _handler$handlers10$o.call(_handler$handlers10, event, manager);\n break;\n }\n } else {\n var _handler$handlers$onU, _handler$handlers11;\n\n (_handler$handlers$onU = (_handler$handlers11 = handler.handlers).onUpdate) === null || _handler$handlers$onU === void 0 ? void 0 : _handler$handlers$onU.call(_handler$handlers11, event);\n\n if (handler.handlers.onChange && handler.handlers.changeEventCalculator) {\n var _handler$handlers$onC, _handler$handlers12, _handler$handlers$cha, _handler$handlers13;\n\n (_handler$handlers$onC = (_handler$handlers12 = handler.handlers).onChange) === null || _handler$handlers$onC === void 0 ? void 0 : _handler$handlers$onC.call(_handler$handlers12, (_handler$handlers$cha = (_handler$handlers13 = handler.handlers).changeEventCalculator) === null || _handler$handlers$cha === void 0 ? void 0 : _handler$handlers$cha.call(_handler$handlers13, event, lastUpdateEvent[handler.handlers.handlerTag]));\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n }\n }\n } else {\n const oldHandler = findOldGestureHandler(event.handlerTag);\n\n if (oldHandler) {\n const nativeEvent = {\n nativeEvent: event\n };\n\n if (isStateChangeEvent(event)) {\n oldHandler.onGestureStateChange(nativeEvent);\n } else {\n oldHandler.onGestureEvent(nativeEvent);\n }\n\n return;\n }\n }\n}\nexport function startListening() {\n stopListening();\n gestureHandlerEventSubscription = DeviceEventEmitter.addListener('onGestureHandlerEvent', onGestureHandlerEvent);\n gestureHandlerStateChangeEventSubscription = DeviceEventEmitter.addListener('onGestureHandlerStateChange', onGestureHandlerEvent);\n}\nexport function stopListening() {\n if (gestureHandlerEventSubscription) {\n gestureHandlerEventSubscription.remove();\n gestureHandlerEventSubscription = null;\n }\n\n if (gestureHandlerStateChangeEventSubscription) {\n gestureHandlerStateChangeEventSubscription.remove();\n gestureHandlerStateChangeEventSubscription = null;\n }\n}\n//# sourceMappingURL=eventReceiver.js.map","// TODO use State from RNModule\nexport const State = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5\n}; // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\n//# sourceMappingURL=State.js.map","export const TouchEventType = {\n UNDETERMINED: 0,\n TOUCHES_DOWN: 1,\n TOUCHES_MOVE: 2,\n TOUCHES_UP: 3,\n TOUCHES_CANCELLED: 4\n}; // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\n//# sourceMappingURL=TouchEventType.js.map","import { isJestEnv } from '../utils';\nexport const handlerIDToTag = {};\nconst gestures = new Map();\nconst oldHandlers = new Map();\nconst testIDs = new Map();\nexport function registerHandler(handlerTag, handler, testID) {\n gestures.set(handlerTag, handler);\n\n if (isJestEnv() && testID) {\n testIDs.set(testID, handlerTag);\n }\n}\nexport function registerOldGestureHandler(handlerTag, handler) {\n oldHandlers.set(handlerTag, handler);\n}\nexport function unregisterHandler(handlerTag, testID) {\n gestures.delete(handlerTag);\n\n if (isJestEnv() && testID) {\n testIDs.delete(testID);\n }\n}\nexport function findHandler(handlerTag) {\n return gestures.get(handlerTag);\n}\nexport function findOldGestureHandler(handlerTag) {\n return oldHandlers.get(handlerTag);\n}\nexport function findHandlerByTestID(testID) {\n const handlerTag = testIDs.get(testID);\n\n if (handlerTag !== undefined) {\n var _findHandler;\n\n return (_findHandler = findHandler(handlerTag)) !== null && _findHandler !== void 0 ? _findHandler : null;\n }\n\n return null;\n}\n//# sourceMappingURL=handlersRegistry.js.map","export function toArray(object) {\n if (!Array.isArray(object)) {\n return [object];\n }\n\n return object;\n}\nexport function withPrevAndCurrent(array, mapFn) {\n const previousArr = [null];\n const currentArr = [...array];\n const transformedArr = [];\n currentArr.forEach((current, i) => {\n // This type cast is fine and solves problem mentioned in https://github.com/software-mansion/react-native-gesture-handler/pull/2867 (namely that `previous` can be undefined).\n // Unfortunately, linter on our CI does not allow this type of casting as it is unnecessary. To bypass that we use eslint-disable.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const previous = previousArr[i];\n const transformed = mapFn(previous, current);\n previousArr.push(transformed);\n transformedArr.push(transformed);\n });\n return transformedArr;\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nexport function hasProperty(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\nexport function isJestEnv() {\n // @ts-ignore Do not use `@types/node` because it will prioritise Node types over RN types which breaks the types (ex. setTimeout) in React Native projects.\n return hasProperty(global, 'process') && !!process.env.JEST_WORKER_ID;\n}\nexport function tagMessage(msg) {\n return `[react-native-gesture-handler] ${msg}`;\n} // Helper method to check whether Fabric is enabled, however global.nativeFabricUIManager\n// may not be initialized before the first render\n\nexport function isFabric() {\n var _global;\n\n // @ts-expect-error nativeFabricUIManager is not yet included in the RN types\n return !!((_global = global) !== null && _global !== void 0 && _global.nativeFabricUIManager);\n}\nexport function isRemoteDebuggingEnabled() {\n // react-native-reanimated checks if in remote debugging in the same way\n // @ts-ignore global is available but node types are not included\n const localGlobal = global;\n return (!localGlobal.nativeCallSyncHook || !!localGlobal.__REMOTEDEV__) && !localGlobal.RN$Bridgeless;\n}\n/**\n * Recursively compares two objects for deep equality.\n *\n * **Note:** This function does not support cyclic references.\n *\n * @param obj1 - The first object to compare.\n * @param obj2 - The second object to compare.\n * @returns `true` if the objects are deeply equal, `false` otherwise.\n */\n\nexport function deepEqual(obj1, obj2) {\n if (obj1 === obj2) {\n return true;\n }\n\n if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 === null || obj2 === null) {\n return false;\n }\n\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {\n return false;\n }\n }\n\n return true;\n}\nexport const INT32_MAX = 2 ** 31 - 1;\n//# sourceMappingURL=utils.js.map","import NodeManager from '../../web/tools/NodeManager';\nexport const GestureStateManager = {\n create(handlerTag) {\n return {\n begin: () => {\n NodeManager.getHandler(handlerTag).begin();\n },\n activate: () => {\n NodeManager.getHandler(handlerTag).activate(true);\n },\n fail: () => {\n NodeManager.getHandler(handlerTag).fail();\n },\n end: () => {\n NodeManager.getHandler(handlerTag).end();\n }\n };\n }\n\n};\n//# sourceMappingURL=gestureStateManager.web.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport default class NodeManager {\n static getHandler(tag) {\n if (tag in this.gestures) {\n return this.gestures[tag];\n }\n\n throw new Error(`No handler for tag ${tag}`);\n }\n\n static createGestureHandler(handlerTag, handler) {\n if (handlerTag in this.gestures) {\n throw new Error(`Handler with tag ${handlerTag} already exists. Please ensure that no Gesture instance is used across multiple GestureDetectors.`);\n }\n\n this.gestures[handlerTag] = handler;\n this.gestures[handlerTag].setTag(handlerTag);\n }\n\n static dropGestureHandler(handlerTag) {\n if (!(handlerTag in this.gestures)) {\n return;\n }\n\n this.gestures[handlerTag].onDestroy(); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\n delete this.gestures[handlerTag];\n }\n\n static getNodes() {\n return { ...this.gestures\n };\n }\n\n}\n\n_defineProperty(NodeManager, \"gestures\", {});\n//# sourceMappingURL=NodeManager.js.map","import React from 'react';\nimport { isNewWebImplementationEnabled } from './EnableNewWebImplementation';\nimport { Gestures, HammerGestures } from './web/Gestures';\nimport InteractionManager from './web/tools/InteractionManager';\nimport NodeManager from './web/tools/NodeManager';\nimport * as HammerNodeManager from './web_hammer/NodeManager';\nimport { GestureHandlerWebDelegate } from './web/tools/GestureHandlerWebDelegate';\nexport default {\n handleSetJSResponder(tag, blockNativeResponder) {\n console.warn('handleSetJSResponder: ', tag, blockNativeResponder);\n },\n\n handleClearJSResponder() {\n console.warn('handleClearJSResponder: ');\n },\n\n createGestureHandler(handlerName, handlerTag, config) {\n if (isNewWebImplementationEnabled()) {\n if (!(handlerName in Gestures)) {\n throw new Error(`react-native-gesture-handler: ${handlerName} is not supported on web.`);\n }\n\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass(new GestureHandlerWebDelegate()));\n InteractionManager.getInstance().configureInteractions(NodeManager.getHandler(handlerTag), config);\n } else {\n if (!(handlerName in HammerGestures)) {\n throw new Error(`react-native-gesture-handler: ${handlerName} is not supported on web.`);\n } // @ts-ignore If it doesn't exist, the error is thrown\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n\n const GestureClass = HammerGestures[handlerName]; // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\n HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());\n }\n\n this.updateGestureHandler(handlerTag, config);\n },\n\n attachGestureHandler(handlerTag, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newView, _actionType, propsRef) {\n if (!(newView instanceof HTMLElement || newView instanceof React.Component)) {\n return;\n }\n\n if (isNewWebImplementationEnabled()) {\n // @ts-ignore Types should be HTMLElement or React.Component\n NodeManager.getHandler(handlerTag).init(newView, propsRef);\n } else {\n // @ts-ignore Types should be HTMLElement or React.Component\n HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);\n }\n },\n\n updateGestureHandler(handlerTag, newConfig) {\n if (isNewWebImplementationEnabled()) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n InteractionManager.getInstance().configureInteractions(NodeManager.getHandler(handlerTag), newConfig);\n } else {\n HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n }\n },\n\n getGestureHandlerNode(handlerTag) {\n if (isNewWebImplementationEnabled()) {\n return NodeManager.getHandler(handlerTag);\n } else {\n return HammerNodeManager.getHandler(handlerTag);\n }\n },\n\n dropGestureHandler(handlerTag) {\n if (isNewWebImplementationEnabled()) {\n NodeManager.dropGestureHandler(handlerTag);\n } else {\n HammerNodeManager.dropGestureHandler(handlerTag);\n }\n },\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n flushOperations() {}\n\n};\n//# sourceMappingURL=RNGestureHandlerModule.web.js.map","import { Platform } from 'react-native';\nlet useNewWebImplementation = true;\nlet getWasCalled = false;\nexport function enableExperimentalWebImplementation(_shouldEnable = true) {// NO-OP since the new implementation is now the default\n}\nexport function enableLegacyWebImplementation(shouldUseLegacyImplementation = true) {\n if (Platform.OS !== 'web' || useNewWebImplementation === !shouldUseLegacyImplementation) {\n return;\n }\n\n if (getWasCalled) {\n console.error('Some parts of this application have already started using the new gesture handler implementation. No changes will be applied. You can try enabling legacy implementation earlier.');\n return;\n }\n\n useNewWebImplementation = !shouldUseLegacyImplementation;\n}\nexport function isNewWebImplementationEnabled() {\n getWasCalled = true;\n return useNewWebImplementation;\n}\n//# sourceMappingURL=EnableNewWebImplementation.js.map","// Gesture Handlers\nimport PanGestureHandler from './handlers/PanGestureHandler';\nimport TapGestureHandler from './handlers/TapGestureHandler';\nimport LongPressGestureHandler from './handlers/LongPressGestureHandler';\nimport PinchGestureHandler from './handlers/PinchGestureHandler';\nimport RotationGestureHandler from './handlers/RotationGestureHandler';\nimport FlingGestureHandler from './handlers/FlingGestureHandler';\nimport NativeViewGestureHandler from './handlers/NativeViewGestureHandler';\nimport ManualGestureHandler from './handlers/ManualGestureHandler';\nimport HoverGestureHandler from './handlers/HoverGestureHandler'; // Hammer Handlers\n\nimport HammerNativeViewGestureHandler from '../web_hammer/NativeViewGestureHandler';\nimport HammerPanGestureHandler from '../web_hammer/PanGestureHandler';\nimport HammerTapGestureHandler from '../web_hammer/TapGestureHandler';\nimport HammerLongPressGestureHandler from '../web_hammer/LongPressGestureHandler';\nimport HammerPinchGestureHandler from '../web_hammer/PinchGestureHandler';\nimport HammerRotationGestureHandler from '../web_hammer/RotationGestureHandler';\nimport HammerFlingGestureHandler from '../web_hammer/FlingGestureHandler';\nexport const Gestures = {\n NativeViewGestureHandler,\n PanGestureHandler,\n TapGestureHandler,\n LongPressGestureHandler,\n PinchGestureHandler,\n RotationGestureHandler,\n FlingGestureHandler,\n ManualGestureHandler,\n HoverGestureHandler\n};\nexport const HammerGestures = {\n NativeViewGestureHandler: HammerNativeViewGestureHandler,\n PanGestureHandler: HammerPanGestureHandler,\n TapGestureHandler: HammerTapGestureHandler,\n LongPressGestureHandler: HammerLongPressGestureHandler,\n PinchGestureHandler: HammerPinchGestureHandler,\n RotationGestureHandler: HammerRotationGestureHandler,\n FlingGestureHandler: HammerFlingGestureHandler\n};\n//# sourceMappingURL=Gestures.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport GestureHandler from './GestureHandler';\nconst DEFAULT_MIN_POINTERS = 1;\nconst DEFAULT_MAX_POINTERS = 10;\nconst DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\nexport default class PanGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"customActivationProperties\", ['activeOffsetXStart', 'activeOffsetXEnd', 'failOffsetXStart', 'failOffsetXEnd', 'activeOffsetYStart', 'activeOffsetYEnd', 'failOffsetYStart', 'failOffsetYEnd', 'minVelocityX', 'minVelocityY', 'minVelocity']);\n\n _defineProperty(this, \"velocityX\", 0);\n\n _defineProperty(this, \"velocityY\", 0);\n\n _defineProperty(this, \"minDistSq\", DEFAULT_MIN_DIST_SQ);\n\n _defineProperty(this, \"activeOffsetXStart\", -Number.MAX_SAFE_INTEGER);\n\n _defineProperty(this, \"activeOffsetXEnd\", Number.MIN_SAFE_INTEGER);\n\n _defineProperty(this, \"failOffsetXStart\", Number.MIN_SAFE_INTEGER);\n\n _defineProperty(this, \"failOffsetXEnd\", Number.MAX_SAFE_INTEGER);\n\n _defineProperty(this, \"activeOffsetYStart\", Number.MAX_SAFE_INTEGER);\n\n _defineProperty(this, \"activeOffsetYEnd\", Number.MIN_SAFE_INTEGER);\n\n _defineProperty(this, \"failOffsetYStart\", Number.MIN_SAFE_INTEGER);\n\n _defineProperty(this, \"failOffsetYEnd\", Number.MAX_SAFE_INTEGER);\n\n _defineProperty(this, \"minVelocityX\", Number.MAX_SAFE_INTEGER);\n\n _defineProperty(this, \"minVelocityY\", Number.MAX_SAFE_INTEGER);\n\n _defineProperty(this, \"minVelocitySq\", Number.MAX_SAFE_INTEGER);\n\n _defineProperty(this, \"minPointers\", DEFAULT_MIN_POINTERS);\n\n _defineProperty(this, \"maxPointers\", DEFAULT_MAX_POINTERS);\n\n _defineProperty(this, \"startX\", 0);\n\n _defineProperty(this, \"startY\", 0);\n\n _defineProperty(this, \"offsetX\", 0);\n\n _defineProperty(this, \"offsetY\", 0);\n\n _defineProperty(this, \"lastX\", 0);\n\n _defineProperty(this, \"lastY\", 0);\n\n _defineProperty(this, \"stylusData\", void 0);\n\n _defineProperty(this, \"activateAfterLongPress\", 0);\n\n _defineProperty(this, \"activationTimeout\", 0);\n }\n\n init(ref, propsRef) {\n super.init(ref, propsRef);\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n this.resetConfig();\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n this.checkCustomActivationCriteria(this.customActivationProperties);\n\n if (this.config.minDist !== undefined) {\n this.minDistSq = this.config.minDist * this.config.minDist;\n } else if (this.hasCustomActivationCriteria) {\n this.minDistSq = Number.MAX_SAFE_INTEGER;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minPointers = this.config.minPointers;\n }\n\n if (this.config.maxPointers !== undefined) {\n this.maxPointers = this.config.maxPointers;\n }\n\n if (this.config.minVelocity !== undefined) {\n this.minVelocityX = this.config.minVelocity;\n this.minVelocityY = this.config.minVelocity;\n }\n\n if (this.config.minVelocityX !== undefined) {\n this.minVelocityX = this.config.minVelocityX;\n }\n\n if (this.config.minVelocityY !== undefined) {\n this.minVelocityY = this.config.minVelocityY;\n }\n\n if (this.config.activateAfterLongPress !== undefined) {\n this.activateAfterLongPress = this.config.activateAfterLongPress;\n }\n\n if (this.config.activeOffsetXStart !== undefined) {\n this.activeOffsetXStart = this.config.activeOffsetXStart;\n\n if (this.config.activeOffsetXEnd === undefined) {\n this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetXEnd !== undefined) {\n this.activeOffsetXEnd = this.config.activeOffsetXEnd;\n\n if (this.config.activeOffsetXStart === undefined) {\n this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXStart !== undefined) {\n this.failOffsetXStart = this.config.failOffsetXStart;\n\n if (this.config.failOffsetXEnd === undefined) {\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXEnd !== undefined) {\n this.failOffsetXEnd = this.config.failOffsetXEnd;\n\n if (this.config.failOffsetXStart === undefined) {\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYStart !== undefined) {\n this.activeOffsetYStart = this.config.activeOffsetYStart;\n\n if (this.config.activeOffsetYEnd === undefined) {\n this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYEnd !== undefined) {\n this.activeOffsetYEnd = this.config.activeOffsetYEnd;\n\n if (this.config.activeOffsetYStart === undefined) {\n this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYStart !== undefined) {\n this.failOffsetYStart = this.config.failOffsetYStart;\n\n if (this.config.failOffsetYEnd === undefined) {\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYEnd !== undefined) {\n this.failOffsetYEnd = this.config.failOffsetYEnd;\n\n if (this.config.failOffsetYStart === undefined) {\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n }\n\n resetConfig() {\n super.resetConfig();\n this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n this.minVelocityX = Number.MAX_SAFE_INTEGER;\n this.minVelocityY = Number.MAX_SAFE_INTEGER;\n this.minVelocitySq = Number.MAX_SAFE_INTEGER;\n this.minDistSq = DEFAULT_MIN_DIST_SQ;\n this.minPointers = DEFAULT_MIN_POINTERS;\n this.maxPointers = DEFAULT_MAX_POINTERS;\n this.activateAfterLongPress = 0;\n }\n\n transformNativeEvent() {\n const translationX = this.getTranslationX();\n const translationY = this.getTranslationY();\n return { ...super.transformNativeEvent(),\n translationX: isNaN(translationX) ? 0 : translationX,\n translationY: isNaN(translationY) ? 0 : translationY,\n velocityX: this.velocityX,\n velocityY: this.velocityY,\n stylusData: this.stylusData\n };\n }\n\n getTranslationX() {\n return this.lastX - this.startX + this.offsetX;\n }\n\n getTranslationY() {\n return this.lastY - this.startY + this.offsetY;\n }\n\n clearActivationTimeout() {\n clearTimeout(this.activationTimeout);\n } // Events Handling\n\n\n onPointerDown(event) {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n this.stylusData = event.stylusData;\n super.onPointerDown(event);\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.startX = this.lastX;\n this.startY = this.lastY;\n this.tryBegin(event);\n this.checkBegan();\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.tryBegin(event);\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (this.tracker.getTrackedPointersCount() > this.maxPointers) {\n if (this.currentState === State.ACTIVE) {\n this.cancel();\n } else {\n this.fail();\n }\n } else {\n this.checkBegan();\n }\n }\n\n onPointerUp(event) {\n this.stylusData = event.stylusData;\n super.onPointerUp(event);\n\n if (this.currentState === State.ACTIVE) {\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.tracker.getTrackedPointersCount() === 0) {\n this.clearActivationTimeout();\n }\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.resetProgress();\n this.fail();\n }\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (!(this.currentState === State.ACTIVE && this.tracker.getTrackedPointersCount() < this.minPointers)) {\n this.checkBegan();\n }\n }\n\n onPointerMove(event) {\n this.tracker.track(event);\n this.stylusData = event.stylusData;\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n const velocity = this.tracker.getVelocity(event.pointerId);\n this.velocityX = velocity.x;\n this.velocityY = velocity.y;\n this.checkBegan();\n super.onPointerMove(event);\n }\n\n onPointerOutOfBounds(event) {\n if (this.getShouldCancelWhenOutside()) {\n return;\n }\n\n this.tracker.track(event);\n this.stylusData = event.stylusData;\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n const velocity = this.tracker.getVelocity(event.pointerId);\n this.velocityX = velocity.x;\n this.velocityY = velocity.y;\n this.checkBegan();\n\n if (this.currentState === State.ACTIVE) {\n super.onPointerOutOfBounds(event);\n }\n }\n\n shouldActivate() {\n const dx = this.getTranslationX();\n\n if (this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER && dx < this.activeOffsetXStart) {\n return true;\n }\n\n if (this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER && dx > this.activeOffsetXEnd) {\n return true;\n }\n\n const dy = this.getTranslationY();\n\n if (this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER && dy < this.activeOffsetYStart) {\n return true;\n }\n\n if (this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER && dy > this.activeOffsetYEnd) {\n return true;\n }\n\n const distanceSq = dx * dx + dy * dy;\n\n if (this.minDistSq !== Number.MAX_SAFE_INTEGER && distanceSq >= this.minDistSq) {\n return true;\n }\n\n const vx = this.velocityX;\n\n if (this.minVelocityX !== Number.MAX_SAFE_INTEGER && (this.minVelocityX < 0 && vx <= this.minVelocityX || this.minVelocityX >= 0 && this.minVelocityX <= vx)) {\n return true;\n }\n\n const vy = this.velocityY;\n\n if (this.minVelocityY !== Number.MAX_SAFE_INTEGER && (this.minVelocityY < 0 && vy <= this.minVelocityY || this.minVelocityY >= 0 && this.minVelocityY <= vy)) {\n return true;\n }\n\n const velocitySq = vx * vx + vy * vy;\n return this.minVelocitySq !== Number.MAX_SAFE_INTEGER && velocitySq >= this.minVelocitySq;\n }\n\n shouldFail() {\n const dx = this.getTranslationX();\n const dy = this.getTranslationY();\n const distanceSq = dx * dx + dy * dy;\n\n if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {\n this.clearActivationTimeout();\n return true;\n }\n\n if (this.failOffsetXStart !== Number.MIN_SAFE_INTEGER && dx < this.failOffsetXStart) {\n return true;\n }\n\n if (this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER && dx > this.failOffsetXEnd) {\n return true;\n }\n\n if (this.failOffsetYStart !== Number.MIN_SAFE_INTEGER && dy < this.failOffsetYStart) {\n return true;\n }\n\n return this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER && dy > this.failOffsetYEnd;\n }\n\n tryBegin(event) {\n if (this.currentState === State.UNDETERMINED && this.tracker.getTrackedPointersCount() >= this.minPointers) {\n this.resetProgress();\n this.offsetX = 0;\n this.offsetY = 0;\n this.velocityX = 0;\n this.velocityY = 0;\n this.begin();\n\n if (this.activateAfterLongPress > 0) {\n this.activationTimeout = setTimeout(() => {\n this.activate();\n }, this.activateAfterLongPress);\n }\n } else {\n const velocity = this.tracker.getVelocity(event.pointerId);\n this.velocityX = velocity.x;\n this.velocityY = velocity.y;\n }\n }\n\n checkBegan() {\n if (this.currentState === State.BEGAN) {\n if (this.shouldFail()) {\n this.fail();\n } else if (this.shouldActivate()) {\n this.activate();\n }\n }\n }\n\n activate(force = false) {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(force);\n }\n\n onCancel() {\n this.clearActivationTimeout();\n }\n\n onReset() {\n this.clearActivationTimeout();\n }\n\n resetProgress() {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n }\n\n}\n//# sourceMappingURL=PanGestureHandler.js.map","export const DEFAULT_TOUCH_SLOP = 15;\nexport const MINIMAL_RECOGNIZABLE_MAGNITUDE = 0.1;\n//# sourceMappingURL=constants.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { State } from '../../State';\nimport { TouchEventType, EventTypes } from '../interfaces';\nimport GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';\nimport InteractionManager from '../tools/InteractionManager';\nimport PointerTracker from '../tools/PointerTracker';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport { PointerType } from '../../PointerType';\nexport default class GestureHandler {\n // Orchestrator properties\n constructor(delegate) {\n _defineProperty(this, \"lastSentState\", null);\n\n _defineProperty(this, \"currentState\", State.UNDETERMINED);\n\n _defineProperty(this, \"shouldCancelWhenOutside\", false);\n\n _defineProperty(this, \"hasCustomActivationCriteria\", false);\n\n _defineProperty(this, \"enabled\", false);\n\n _defineProperty(this, \"viewRef\", void 0);\n\n _defineProperty(this, \"propsRef\", void 0);\n\n _defineProperty(this, \"handlerTag\", void 0);\n\n _defineProperty(this, \"config\", {\n enabled: false\n });\n\n _defineProperty(this, \"tracker\", new PointerTracker());\n\n _defineProperty(this, \"activationIndex\", 0);\n\n _defineProperty(this, \"awaiting\", false);\n\n _defineProperty(this, \"active\", false);\n\n _defineProperty(this, \"shouldResetProgress\", false);\n\n _defineProperty(this, \"pointerType\", PointerType.MOUSE);\n\n _defineProperty(this, \"delegate\", void 0);\n\n _defineProperty(this, \"sendEvent\", (newState, oldState) => {\n const {\n onGestureHandlerEvent,\n onGestureHandlerStateChange\n } = this.propsRef.current;\n const resultEvent = this.transformEventData(newState, oldState); // In the new API oldState field has to be undefined, unless we send event state changed\n // Here the order is flipped to avoid workarounds such as making backup of the state and setting it to undefined first, then changing it back\n // Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once\n // However, this may cause trouble in the future (but for now we don't know that)\n\n if (this.lastSentState !== newState) {\n this.lastSentState = newState;\n invokeNullableMethod(onGestureHandlerStateChange, resultEvent);\n }\n\n if (this.currentState === State.ACTIVE) {\n resultEvent.nativeEvent.oldState = undefined;\n invokeNullableMethod(onGestureHandlerEvent, resultEvent);\n }\n });\n\n this.delegate = delegate;\n } //\n // Initializing handler\n //\n\n\n init(viewRef, propsRef) {\n this.propsRef = propsRef;\n this.viewRef = viewRef;\n this.currentState = State.UNDETERMINED;\n this.delegate.init(viewRef, this);\n }\n\n attachEventManager(manager) {\n manager.setOnPointerDown(this.onPointerDown.bind(this));\n manager.setOnPointerAdd(this.onPointerAdd.bind(this));\n manager.setOnPointerUp(this.onPointerUp.bind(this));\n manager.setOnPointerRemove(this.onPointerRemove.bind(this));\n manager.setOnPointerMove(this.onPointerMove.bind(this));\n manager.setOnPointerEnter(this.onPointerEnter.bind(this));\n manager.setOnPointerLeave(this.onPointerLeave.bind(this));\n manager.setOnPointerCancel(this.onPointerCancel.bind(this));\n manager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));\n manager.setOnPointerMoveOver(this.onPointerMoveOver.bind(this));\n manager.setOnPointerMoveOut(this.onPointerMoveOut.bind(this));\n manager.registerListeners();\n } //\n // Resetting handler\n //\n\n\n onCancel() {}\n\n onReset() {}\n\n resetProgress() {}\n\n reset() {\n this.tracker.resetTracker();\n this.onReset();\n this.resetProgress();\n this.delegate.reset();\n this.currentState = State.UNDETERMINED;\n } //\n // State logic\n //\n\n\n moveToState(newState, sendIfDisabled) {\n if (this.currentState === newState) {\n return;\n }\n\n const oldState = this.currentState;\n this.currentState = newState;\n\n if (this.tracker.getTrackedPointersCount() > 0 && this.config.needsPointerData && this.isFinished()) {\n this.cancelTouches();\n }\n\n GestureHandlerOrchestrator.getInstance().onHandlerStateChange(this, newState, oldState, sendIfDisabled);\n this.onStateChange(newState, oldState);\n\n if (!this.enabled && this.isFinished()) {\n this.currentState = State.UNDETERMINED;\n }\n }\n\n onStateChange(_newState, _oldState) {}\n\n begin() {\n if (!this.checkHitSlop()) {\n return;\n }\n\n if (this.currentState === State.UNDETERMINED) {\n this.moveToState(State.BEGAN);\n }\n }\n /**\n * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send fail event\n */\n\n\n fail(sendIfDisabled) {\n if (this.currentState === State.ACTIVE || this.currentState === State.BEGAN) {\n // Here the order of calling the delegate and moveToState is important.\n // At this point we can use currentState as previuos state, because immediately after changing cursor we call moveToState method.\n this.delegate.onFail();\n this.moveToState(State.FAILED, sendIfDisabled);\n }\n\n this.resetProgress();\n }\n /**\n * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send cancel event\n */\n\n\n cancel(sendIfDisabled) {\n if (this.currentState === State.ACTIVE || this.currentState === State.UNDETERMINED || this.currentState === State.BEGAN) {\n this.onCancel(); // Same as above - order matters\n\n this.delegate.onCancel();\n this.moveToState(State.CANCELLED, sendIfDisabled);\n }\n }\n\n activate(force = false) {\n if ((this.config.manualActivation !== true || force) && (this.currentState === State.UNDETERMINED || this.currentState === State.BEGAN)) {\n this.delegate.onActivate();\n this.moveToState(State.ACTIVE);\n }\n }\n\n end() {\n if (this.currentState === State.BEGAN || this.currentState === State.ACTIVE) {\n // Same as above - order matters\n this.delegate.onEnd();\n this.moveToState(State.END);\n }\n\n this.resetProgress();\n } //\n // Methods for orchestrator\n //\n\n\n isAwaiting() {\n return this.awaiting;\n }\n\n setAwaiting(value) {\n this.awaiting = value;\n }\n\n isActive() {\n return this.active;\n }\n\n setActive(value) {\n this.active = value;\n }\n\n getShouldResetProgress() {\n return this.shouldResetProgress;\n }\n\n setShouldResetProgress(value) {\n this.shouldResetProgress = value;\n }\n\n getActivationIndex() {\n return this.activationIndex;\n }\n\n setActivationIndex(value) {\n this.activationIndex = value;\n }\n\n shouldWaitForHandlerFailure(handler) {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldWaitForHandlerFailure(this, handler);\n }\n\n shouldRequireToWaitForFailure(handler) {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldRequireHandlerToWaitForFailure(this, handler);\n }\n\n shouldRecognizeSimultaneously(handler) {\n if (handler === this) {\n return true;\n }\n\n return InteractionManager.getInstance().shouldRecognizeSimultaneously(this, handler);\n }\n\n shouldBeCancelledByOther(handler) {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldHandlerBeCancelledBy(this, handler);\n } //\n // Event actions\n //\n\n\n onPointerDown(event) {\n GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);\n this.pointerType = event.pointerType;\n\n if (this.pointerType === PointerType.TOUCH) {\n GestureHandlerOrchestrator.getInstance().cancelMouseAndPenGestures(this);\n } // TODO: Bring back touch events along with introducing `handleDown` method that will handle handler specific stuff\n\n } // Adding another pointer to existing ones\n\n\n onPointerAdd(event) {\n this.tryToSendTouchEvent(event);\n }\n\n onPointerUp(event) {\n this.tryToSendTouchEvent(event);\n } // Removing pointer, when there is more than one pointers\n\n\n onPointerRemove(event) {\n this.tryToSendTouchEvent(event);\n }\n\n onPointerMove(event) {\n this.tryToSendMoveEvent(false, event);\n }\n\n onPointerLeave(event) {\n if (this.shouldCancelWhenOutside) {\n switch (this.currentState) {\n case State.ACTIVE:\n this.cancel();\n break;\n\n case State.BEGAN:\n this.fail();\n break;\n }\n\n return;\n }\n\n this.tryToSendTouchEvent(event);\n }\n\n onPointerEnter(event) {\n this.tryToSendTouchEvent(event);\n }\n\n onPointerCancel(event) {\n this.tryToSendTouchEvent(event);\n this.cancel();\n this.reset();\n }\n\n onPointerOutOfBounds(event) {\n this.tryToSendMoveEvent(true, event);\n }\n\n onPointerMoveOver(_event) {// Used only by hover gesture handler atm\n }\n\n onPointerMoveOut(_event) {// Used only by hover gesture handler atm\n }\n\n tryToSendMoveEvent(out, event) {\n if (out && this.shouldCancelWhenOutside || !this.enabled) {\n return;\n }\n\n if (this.active) {\n this.sendEvent(this.currentState, this.currentState);\n }\n\n this.tryToSendTouchEvent(event);\n }\n\n tryToSendTouchEvent(event) {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n\n sendTouchEvent(event) {\n if (!this.enabled) {\n return;\n }\n\n const {\n onGestureHandlerEvent\n } = this.propsRef.current;\n const touchEvent = this.transformTouchEvent(event);\n\n if (touchEvent) {\n invokeNullableMethod(onGestureHandlerEvent, touchEvent);\n }\n } //\n // Events Sending\n //\n\n\n transformEventData(newState, oldState) {\n return {\n nativeEvent: {\n numberOfPointers: this.tracker.getTrackedPointersCount(),\n state: newState,\n pointerInside: this.delegate.isPointerInBounds(this.tracker.getAbsoluteCoordsAverage()),\n ...this.transformNativeEvent(),\n handlerTag: this.handlerTag,\n target: this.viewRef,\n oldState: newState !== oldState ? oldState : undefined,\n pointerType: this.pointerType\n },\n timeStamp: Date.now()\n };\n }\n\n transformTouchEvent(event) {\n const rect = this.delegate.measureView();\n const all = [];\n const changed = [];\n const trackerData = this.tracker.getData(); // This if handles edge case where all pointers have been cancelled\n // When pointercancel is triggered, reset method is called. This means that tracker will be reset after first pointer being cancelled\n // The problem is, that handler will receive another pointercancel event from the rest of the pointers\n // To avoid crashing, we don't send event if tracker tracks no pointers, i.e. has been reset\n\n if (trackerData.size === 0 || !trackerData.has(event.pointerId)) {\n return;\n }\n\n trackerData.forEach((element, key) => {\n const id = this.tracker.getMappedTouchEventId(key);\n all.push({\n id: id,\n x: element.abosoluteCoords.x - rect.pageX,\n y: element.abosoluteCoords.y - rect.pageY,\n absoluteX: element.abosoluteCoords.x,\n absoluteY: element.abosoluteCoords.y\n });\n }); // Each pointer sends its own event, so we want changed touches to contain only the pointer that has changed.\n // However, if the event is cancel, we want to cancel all pointers to avoid crashes\n\n if (event.eventType !== EventTypes.CANCEL) {\n changed.push({\n id: this.tracker.getMappedTouchEventId(event.pointerId),\n x: event.x - rect.pageX,\n y: event.y - rect.pageY,\n absoluteX: event.x,\n absoluteY: event.y\n });\n } else {\n trackerData.forEach((element, key) => {\n const id = this.tracker.getMappedTouchEventId(key);\n changed.push({\n id: id,\n x: element.abosoluteCoords.x - rect.pageX,\n y: element.abosoluteCoords.y - rect.pageY,\n absoluteX: element.abosoluteCoords.x,\n absoluteY: element.abosoluteCoords.y\n });\n });\n }\n\n let eventType = TouchEventType.UNDETERMINED;\n\n switch (event.eventType) {\n case EventTypes.DOWN:\n case EventTypes.ADDITIONAL_POINTER_DOWN:\n eventType = TouchEventType.DOWN;\n break;\n\n case EventTypes.UP:\n case EventTypes.ADDITIONAL_POINTER_UP:\n eventType = TouchEventType.UP;\n break;\n\n case EventTypes.MOVE:\n eventType = TouchEventType.MOVE;\n break;\n\n case EventTypes.CANCEL:\n eventType = TouchEventType.CANCELLED;\n break;\n } // Here, when we receive up event, we want to decrease number of touches\n // That's because we want handler to send information that there's one pointer less\n // However, we still want this pointer to be present in allTouches array, so that its data can be accessed\n\n\n let numberOfTouches = all.length;\n\n if (event.eventType === EventTypes.UP || event.eventType === EventTypes.ADDITIONAL_POINTER_UP) {\n --numberOfTouches;\n }\n\n return {\n nativeEvent: {\n handlerTag: this.handlerTag,\n state: this.currentState,\n eventType: eventType,\n changedTouches: changed,\n allTouches: all,\n numberOfTouches: numberOfTouches,\n pointerType: this.pointerType\n },\n timeStamp: Date.now()\n };\n }\n\n cancelTouches() {\n const rect = this.delegate.measureView();\n const all = [];\n const changed = [];\n const trackerData = this.tracker.getData();\n\n if (trackerData.size === 0) {\n return;\n }\n\n trackerData.forEach((element, key) => {\n const id = this.tracker.getMappedTouchEventId(key);\n all.push({\n id: id,\n x: element.abosoluteCoords.x - rect.pageX,\n y: element.abosoluteCoords.y - rect.pageY,\n absoluteX: element.abosoluteCoords.x,\n absoluteY: element.abosoluteCoords.y\n });\n changed.push({\n id: id,\n x: element.abosoluteCoords.x - rect.pageX,\n y: element.abosoluteCoords.y - rect.pageY,\n absoluteX: element.abosoluteCoords.x,\n absoluteY: element.abosoluteCoords.y\n });\n });\n const cancelEvent = {\n nativeEvent: {\n handlerTag: this.handlerTag,\n state: this.currentState,\n eventType: TouchEventType.CANCELLED,\n changedTouches: changed,\n allTouches: all,\n numberOfTouches: all.length,\n pointerType: this.pointerType\n },\n timeStamp: Date.now()\n };\n const {\n onGestureHandlerEvent\n } = this.propsRef.current;\n invokeNullableMethod(onGestureHandlerEvent, cancelEvent);\n }\n\n transformNativeEvent() {\n // Those properties are shared by most handlers and if not this method will be overriden\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n const lastRelativeCoords = this.tracker.getRelativeCoordsAverage();\n return {\n x: lastRelativeCoords.x,\n y: lastRelativeCoords.y,\n absoluteX: lastCoords.x,\n absoluteY: lastCoords.y\n };\n } //\n // Handling config\n //\n\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n this.config = {\n enabled: enabled,\n ...props\n };\n this.enabled = enabled;\n this.delegate.onEnabledChange(enabled);\n\n if (this.config.shouldCancelWhenOutside !== undefined) {\n this.setShouldCancelWhenOutside(this.config.shouldCancelWhenOutside);\n }\n\n this.validateHitSlops();\n\n if (this.enabled) {\n return;\n }\n\n switch (this.currentState) {\n case State.ACTIVE:\n this.fail(true);\n break;\n\n case State.UNDETERMINED:\n GestureHandlerOrchestrator.getInstance().removeHandlerFromOrchestrator(this);\n break;\n\n default:\n this.cancel(true);\n break;\n }\n }\n\n checkCustomActivationCriteria(criterias) {\n for (const key in this.config) {\n if (criterias.indexOf(key) >= 0) {\n this.hasCustomActivationCriteria = true;\n }\n }\n }\n\n validateHitSlops() {\n if (!this.config.hitSlop) {\n return;\n }\n\n if (this.config.hitSlop.left !== undefined && this.config.hitSlop.right !== undefined && this.config.hitSlop.width !== undefined) {\n throw new Error('HitSlop Error: Cannot define left, right and width at the same time');\n }\n\n if (this.config.hitSlop.width !== undefined && this.config.hitSlop.left === undefined && this.config.hitSlop.right === undefined) {\n throw new Error('HitSlop Error: When width is defined, either left or right has to be defined');\n }\n\n if (this.config.hitSlop.height !== undefined && this.config.hitSlop.top !== undefined && this.config.hitSlop.bottom !== undefined) {\n throw new Error('HitSlop Error: Cannot define top, bottom and height at the same time');\n }\n\n if (this.config.hitSlop.height !== undefined && this.config.hitSlop.top === undefined && this.config.hitSlop.bottom === undefined) {\n throw new Error('HitSlop Error: When height is defined, either top or bottom has to be defined');\n }\n }\n\n checkHitSlop() {\n if (!this.config.hitSlop) {\n return true;\n }\n\n const {\n width,\n height\n } = this.delegate.measureView();\n let left = 0;\n let top = 0;\n let right = width;\n let bottom = height;\n\n if (this.config.hitSlop.horizontal !== undefined) {\n left -= this.config.hitSlop.horizontal;\n right += this.config.hitSlop.horizontal;\n }\n\n if (this.config.hitSlop.vertical !== undefined) {\n top -= this.config.hitSlop.vertical;\n bottom += this.config.hitSlop.vertical;\n }\n\n if (this.config.hitSlop.left !== undefined) {\n left = -this.config.hitSlop.left;\n }\n\n if (this.config.hitSlop.right !== undefined) {\n right = width + this.config.hitSlop.right;\n }\n\n if (this.config.hitSlop.top !== undefined) {\n top = -this.config.hitSlop.top;\n }\n\n if (this.config.hitSlop.bottom !== undefined) {\n bottom = width + this.config.hitSlop.bottom;\n }\n\n if (this.config.hitSlop.width !== undefined) {\n if (this.config.hitSlop.left !== undefined) {\n right = left + this.config.hitSlop.width;\n } else if (this.config.hitSlop.right !== undefined) {\n left = right - this.config.hitSlop.width;\n }\n }\n\n if (this.config.hitSlop.height !== undefined) {\n if (this.config.hitSlop.top !== undefined) {\n bottom = top + this.config.hitSlop.height;\n } else if (this.config.hitSlop.bottom !== undefined) {\n top = bottom - this.config.hitSlop.height;\n }\n }\n\n const rect = this.delegate.measureView();\n const {\n x,\n y\n } = this.tracker.getLastAbsoluteCoords();\n const offsetX = x - rect.pageX;\n const offsetY = y - rect.pageY;\n return offsetX >= left && offsetX <= right && offsetY >= top && offsetY <= bottom;\n }\n\n isButtonInConfig(mouseButton) {\n return !mouseButton || !this.config.mouseButton && mouseButton === MouseButton.LEFT || this.config.mouseButton && mouseButton & this.config.mouseButton;\n }\n\n resetConfig() {}\n\n onDestroy() {\n this.delegate.destroy(this.config);\n } //\n // Getters and setters\n //\n\n\n getTag() {\n return this.handlerTag;\n }\n\n setTag(tag) {\n this.handlerTag = tag;\n }\n\n getConfig() {\n return this.config;\n }\n\n getDelegate() {\n return this.delegate;\n }\n\n getTracker() {\n return this.tracker;\n }\n\n getTrackedPointersID() {\n return this.tracker.getTrackedPointersID();\n }\n\n getState() {\n return this.currentState;\n }\n\n isEnabled() {\n return this.enabled;\n }\n\n isFinished() {\n return this.currentState === State.END || this.currentState === State.FAILED || this.currentState === State.CANCELLED;\n }\n\n setShouldCancelWhenOutside(shouldCancel) {\n this.shouldCancelWhenOutside = shouldCancel;\n }\n\n getShouldCancelWhenOutside() {\n return this.shouldCancelWhenOutside;\n }\n\n getPointerType() {\n return this.pointerType;\n }\n\n}\n\nfunction invokeNullableMethod(method, event) {\n if (!method) {\n return;\n }\n\n if (typeof method === 'function') {\n method(event);\n return;\n }\n\n if ('__getHandler' in method && typeof method.__getHandler === 'function') {\n const handler = method.__getHandler();\n\n invokeNullableMethod(handler, event);\n return;\n }\n\n if (!('__nodeConfig' in method)) {\n return;\n }\n\n const {\n argMapping\n } = method.__nodeConfig;\n\n if (!Array.isArray(argMapping)) {\n return;\n }\n\n for (const [index, [key, value]] of argMapping.entries()) {\n if (!(key in event.nativeEvent)) {\n continue;\n } // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n\n const nativeValue = event.nativeEvent[key]; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n if (value !== null && value !== void 0 && value.setValue) {\n // Reanimated API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n value.setValue(nativeValue);\n } else {\n // RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n\n return;\n}\n//# sourceMappingURL=GestureHandler.js.map","export let EventTypes;\n\n(function (EventTypes) {\n EventTypes[EventTypes[\"DOWN\"] = 0] = \"DOWN\";\n EventTypes[EventTypes[\"ADDITIONAL_POINTER_DOWN\"] = 1] = \"ADDITIONAL_POINTER_DOWN\";\n EventTypes[EventTypes[\"UP\"] = 2] = \"UP\";\n EventTypes[EventTypes[\"ADDITIONAL_POINTER_UP\"] = 3] = \"ADDITIONAL_POINTER_UP\";\n EventTypes[EventTypes[\"MOVE\"] = 4] = \"MOVE\";\n EventTypes[EventTypes[\"ENTER\"] = 5] = \"ENTER\";\n EventTypes[EventTypes[\"LEAVE\"] = 6] = \"LEAVE\";\n EventTypes[EventTypes[\"CANCEL\"] = 7] = \"CANCEL\";\n})(EventTypes || (EventTypes = {}));\n\nexport let TouchEventType;\n\n(function (TouchEventType) {\n TouchEventType[TouchEventType[\"UNDETERMINED\"] = 0] = \"UNDETERMINED\";\n TouchEventType[TouchEventType[\"DOWN\"] = 1] = \"DOWN\";\n TouchEventType[TouchEventType[\"MOVE\"] = 2] = \"MOVE\";\n TouchEventType[TouchEventType[\"UP\"] = 3] = \"UP\";\n TouchEventType[TouchEventType[\"CANCELLED\"] = 4] = \"CANCELLED\";\n})(TouchEventType || (TouchEventType = {}));\n//# sourceMappingURL=interfaces.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { PointerType } from '../../PointerType';\nimport { State } from '../../State';\nimport PointerTracker from './PointerTracker';\nexport default class GestureHandlerOrchestrator {\n // Private beacuse of Singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n constructor() {\n _defineProperty(this, \"gestureHandlers\", []);\n\n _defineProperty(this, \"awaitingHandlers\", []);\n\n _defineProperty(this, \"awaitingHandlersTags\", new Set());\n\n _defineProperty(this, \"handlingChangeSemaphore\", 0);\n\n _defineProperty(this, \"activationIndex\", 0);\n }\n\n scheduleFinishedHandlersCleanup() {\n if (this.handlingChangeSemaphore === 0) {\n this.cleanupFinishedHandlers();\n }\n }\n\n cleanHandler(handler) {\n handler.reset();\n handler.setActive(false);\n handler.setAwaiting(false);\n handler.setActivationIndex(Number.MAX_VALUE);\n }\n\n removeHandlerFromOrchestrator(handler) {\n const indexInGestureHandlers = this.gestureHandlers.indexOf(handler);\n const indexInAwaitingHandlers = this.awaitingHandlers.indexOf(handler);\n\n if (indexInGestureHandlers >= 0) {\n this.gestureHandlers.splice(indexInGestureHandlers, 1);\n }\n\n if (indexInAwaitingHandlers >= 0) {\n this.awaitingHandlers.splice(indexInAwaitingHandlers, 1);\n this.awaitingHandlersTags.delete(handler.getTag());\n }\n }\n\n cleanupFinishedHandlers() {\n const handlersToRemove = new Set();\n\n for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {\n const handler = this.gestureHandlers[i];\n\n if (this.isFinished(handler.getState()) && !handler.isAwaiting()) {\n this.cleanHandler(handler);\n handlersToRemove.add(handler);\n }\n }\n\n this.gestureHandlers = this.gestureHandlers.filter(handler => !handlersToRemove.has(handler));\n }\n\n hasOtherHandlerToWaitFor(handler) {\n const hasToWaitFor = otherHandler => {\n return !this.isFinished(otherHandler.getState()) && this.shouldHandlerWaitForOther(handler, otherHandler);\n };\n\n return this.gestureHandlers.some(hasToWaitFor);\n }\n\n shouldBeCancelledByFinishedHandler(handler) {\n const shouldBeCancelled = otherHandler => {\n return this.shouldHandlerWaitForOther(handler, otherHandler) && otherHandler.getState() === State.END;\n };\n\n return this.gestureHandlers.some(shouldBeCancelled);\n }\n\n tryActivate(handler) {\n if (this.shouldBeCancelledByFinishedHandler(handler)) {\n handler.cancel();\n return;\n }\n\n if (this.hasOtherHandlerToWaitFor(handler)) {\n this.addAwaitingHandler(handler);\n return;\n }\n\n const handlerState = handler.getState();\n\n if (handlerState === State.CANCELLED || handlerState === State.FAILED) {\n return;\n }\n\n if (this.shouldActivate(handler)) {\n this.makeActive(handler);\n return;\n }\n\n if (handlerState === State.ACTIVE) {\n handler.fail();\n return;\n }\n\n if (handlerState === State.BEGAN) {\n handler.cancel();\n }\n }\n\n shouldActivate(handler) {\n const shouldBeCancelledBy = otherHandler => {\n return this.shouldHandlerBeCancelledBy(handler, otherHandler);\n };\n\n return !this.gestureHandlers.some(shouldBeCancelledBy);\n }\n\n cleanupAwaitingHandlers(handler) {\n const shouldWait = otherHandler => {\n return !otherHandler.isAwaiting() && this.shouldHandlerWaitForOther(otherHandler, handler);\n };\n\n for (const otherHandler of this.awaitingHandlers) {\n if (shouldWait(otherHandler)) {\n this.cleanHandler(otherHandler);\n this.awaitingHandlersTags.delete(otherHandler.getTag());\n }\n }\n\n this.awaitingHandlers = this.awaitingHandlers.filter(otherHandler => this.awaitingHandlersTags.has(otherHandler.getTag()));\n }\n\n onHandlerStateChange(handler, newState, oldState, sendIfDisabled) {\n if (!handler.isEnabled() && !sendIfDisabled) {\n return;\n }\n\n this.handlingChangeSemaphore += 1;\n\n if (this.isFinished(newState)) {\n for (const otherHandler of this.awaitingHandlers) {\n if (!this.shouldHandlerWaitForOther(otherHandler, handler) || !this.awaitingHandlersTags.has(otherHandler.getTag())) {\n continue;\n }\n\n if (newState !== State.END) {\n this.tryActivate(otherHandler);\n continue;\n }\n\n otherHandler.cancel();\n\n if (otherHandler.getState() === State.END) {\n // Handle edge case, where discrete gestures end immediately after activation thus\n // their state is set to END and when the gesture they are waiting for activates they\n // should be cancelled, however `cancel` was never sent as gestures were already in the END state.\n // Send synthetic BEGAN -> CANCELLED to properly handle JS logic\n otherHandler.sendEvent(State.CANCELLED, State.BEGAN);\n }\n\n otherHandler.setAwaiting(false);\n }\n }\n\n if (newState === State.ACTIVE) {\n this.tryActivate(handler);\n } else if (oldState === State.ACTIVE || oldState === State.END) {\n if (handler.isActive()) {\n handler.sendEvent(newState, oldState);\n } else if (oldState === State.ACTIVE && (newState === State.CANCELLED || newState === State.FAILED)) {\n handler.sendEvent(newState, State.BEGAN);\n }\n } else if (oldState !== State.UNDETERMINED || newState !== State.CANCELLED) {\n handler.sendEvent(newState, oldState);\n }\n\n this.handlingChangeSemaphore -= 1;\n this.scheduleFinishedHandlersCleanup();\n\n if (!this.awaitingHandlers.includes(handler)) {\n this.cleanupAwaitingHandlers(handler);\n }\n }\n\n makeActive(handler) {\n const currentState = handler.getState();\n handler.setActive(true);\n handler.setShouldResetProgress(true);\n handler.setActivationIndex(this.activationIndex++);\n\n for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {\n if (this.shouldHandlerBeCancelledBy(this.gestureHandlers[i], handler)) {\n this.gestureHandlers[i].cancel();\n }\n }\n\n for (const otherHandler of this.awaitingHandlers) {\n if (this.shouldHandlerBeCancelledBy(otherHandler, handler)) {\n otherHandler.setAwaiting(false);\n }\n }\n\n handler.sendEvent(State.ACTIVE, State.BEGAN);\n\n if (currentState !== State.ACTIVE) {\n handler.sendEvent(State.END, State.ACTIVE);\n\n if (currentState !== State.END) {\n handler.sendEvent(State.UNDETERMINED, State.END);\n }\n }\n\n if (!handler.isAwaiting()) {\n return;\n }\n\n handler.setAwaiting(false);\n this.awaitingHandlers = this.awaitingHandlers.filter(otherHandler => otherHandler !== handler);\n }\n\n addAwaitingHandler(handler) {\n if (this.awaitingHandlers.includes(handler)) {\n return;\n }\n\n this.awaitingHandlers.push(handler);\n this.awaitingHandlersTags.add(handler.getTag());\n handler.setAwaiting(true);\n handler.setActivationIndex(this.activationIndex++);\n }\n\n recordHandlerIfNotPresent(handler) {\n if (this.gestureHandlers.includes(handler)) {\n return;\n }\n\n this.gestureHandlers.push(handler);\n handler.setActive(false);\n handler.setAwaiting(false);\n handler.setActivationIndex(Number.MAX_SAFE_INTEGER);\n }\n\n shouldHandlerWaitForOther(handler, otherHandler) {\n return handler !== otherHandler && (handler.shouldWaitForHandlerFailure(otherHandler) || otherHandler.shouldRequireToWaitForFailure(handler));\n }\n\n canRunSimultaneously(gh1, gh2) {\n return gh1 === gh2 || gh1.shouldRecognizeSimultaneously(gh2) || gh2.shouldRecognizeSimultaneously(gh1);\n }\n\n shouldHandlerBeCancelledBy(handler, otherHandler) {\n if (this.canRunSimultaneously(handler, otherHandler)) {\n return false;\n }\n\n if (handler.isAwaiting() || handler.getState() === State.ACTIVE) {\n // For now it always returns false\n return handler.shouldBeCancelledByOther(otherHandler);\n }\n\n const handlerPointers = handler.getTrackedPointersID();\n const otherPointers = otherHandler.getTrackedPointersID();\n\n if (!PointerTracker.shareCommonPointers(handlerPointers, otherPointers) && handler.getDelegate().getView() !== otherHandler.getDelegate().getView()) {\n return this.checkOverlap(handler, otherHandler);\n }\n\n return true;\n }\n\n checkOverlap(handler, otherHandler) {\n // If handlers don't have common pointers, default return value is false.\n // However, if at least on pointer overlaps with both handlers, we return true\n // This solves issue in overlapping parents example\n // TODO: Find better way to handle that issue, for example by activation order and handler cancelling\n const isPointerWithinBothBounds = pointer => {\n const point = handler.getTracker().getLastAbsoluteCoords(pointer);\n return handler.getDelegate().isPointerInBounds(point) && otherHandler.getDelegate().isPointerInBounds(point);\n };\n\n const handlerPointers = handler.getTrackedPointersID();\n const otherPointers = otherHandler.getTrackedPointersID();\n return handlerPointers.some(isPointerWithinBothBounds) || otherPointers.some(isPointerWithinBothBounds);\n }\n\n isFinished(state) {\n return state === State.END || state === State.FAILED || state === State.CANCELLED;\n } // This function is called when handler receives touchdown event\n // If handler is using mouse or pen as a pointer and any handler receives touch event,\n // mouse/pen event dissappears - it doesn't send onPointerCancel nor onPointerUp (and others)\n // This became a problem because handler was left at active state without any signal to end or fail\n // To handle this, when new touch event is received, we loop through active handlers and check which type of\n // pointer they're using. If there are any handler with mouse/pen as a pointer, we cancel them\n\n\n cancelMouseAndPenGestures(currentHandler) {\n this.gestureHandlers.forEach(handler => {\n if (handler.getPointerType() !== PointerType.MOUSE && handler.getPointerType() !== PointerType.STYLUS) {\n return;\n }\n\n if (handler !== currentHandler) {\n handler.cancel();\n } else {\n // Handler that received touch event should have its pointer tracker reset\n // This allows handler to smoothly change from mouse/pen to touch\n // The drawback is, that when we try to use mouse/pen one more time, it doesn't send onPointerDown at the first time\n // so it is required to click two times to get handler to work\n //\n // However, handler will receive manually created onPointerEnter that is triggered in EventManager in onPointerMove method.\n // There may be possibility to use that fact to make handler respond properly to first mouse click\n handler.getTracker().resetTracker();\n }\n });\n }\n\n static getInstance() {\n if (!GestureHandlerOrchestrator.instance) {\n GestureHandlerOrchestrator.instance = new GestureHandlerOrchestrator();\n }\n\n return GestureHandlerOrchestrator.instance;\n }\n\n}\n\n_defineProperty(GestureHandlerOrchestrator, \"instance\", void 0);\n//# sourceMappingURL=GestureHandlerOrchestrator.js.map","export let PointerType;\n\n(function (PointerType) {\n PointerType[PointerType[\"TOUCH\"] = 0] = \"TOUCH\";\n PointerType[PointerType[\"STYLUS\"] = 1] = \"STYLUS\";\n PointerType[PointerType[\"MOUSE\"] = 2] = \"MOUSE\";\n PointerType[PointerType[\"KEY\"] = 3] = \"KEY\";\n PointerType[PointerType[\"OTHER\"] = 4] = \"OTHER\";\n})(PointerType || (PointerType = {}));\n//# sourceMappingURL=PointerType.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport VelocityTracker from './VelocityTracker';\nconst MAX_POINTERS = 20;\nexport default class PointerTracker {\n constructor() {\n _defineProperty(this, \"velocityTracker\", new VelocityTracker());\n\n _defineProperty(this, \"trackedPointers\", new Map());\n\n _defineProperty(this, \"touchEventsIds\", new Map());\n\n _defineProperty(this, \"lastMovedPointerId\", void 0);\n\n _defineProperty(this, \"cachedAbsoluteAverages\", {\n x: 0,\n y: 0\n });\n\n _defineProperty(this, \"cachedRelativeAverages\", {\n x: 0,\n y: 0\n });\n\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n addToTracker(event) {\n if (this.trackedPointers.has(event.pointerId)) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n const newElement = {\n abosoluteCoords: {\n x: event.x,\n y: event.y\n },\n relativeCoords: {\n x: event.offsetX,\n y: event.offsetY\n },\n timestamp: event.time,\n velocityX: 0,\n velocityY: 0\n };\n this.trackedPointers.set(event.pointerId, newElement);\n this.mapTouchEventId(event.pointerId);\n this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();\n this.cachedRelativeAverages = this.getRelativeCoordsAverage();\n }\n\n removeFromTracker(pointerId) {\n this.trackedPointers.delete(pointerId);\n this.removeMappedTouchId(pointerId);\n }\n\n track(event) {\n const element = this.trackedPointers.get(event.pointerId);\n\n if (!element) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n this.velocityTracker.add(event);\n const [velocityX, velocityY] = this.velocityTracker.getVelocity();\n element.velocityX = velocityX;\n element.velocityY = velocityY;\n element.abosoluteCoords = {\n x: event.x,\n y: event.y\n };\n element.relativeCoords = {\n x: event.offsetX,\n y: event.offsetY\n };\n this.trackedPointers.set(event.pointerId, element);\n this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();\n this.cachedRelativeAverages = this.getRelativeCoordsAverage();\n } // Mapping TouchEvents ID\n\n\n mapTouchEventId(id) {\n for (const [mappedId, touchId] of this.touchEventsIds) {\n if (isNaN(touchId)) {\n this.touchEventsIds.set(mappedId, id);\n break;\n }\n }\n }\n\n removeMappedTouchId(id) {\n const mappedId = this.getMappedTouchEventId(id);\n\n if (!isNaN(mappedId)) {\n this.touchEventsIds.set(mappedId, NaN);\n }\n }\n\n getMappedTouchEventId(touchEventId) {\n for (const [key, value] of this.touchEventsIds.entries()) {\n if (value === touchEventId) {\n return key;\n }\n }\n\n return NaN;\n }\n\n getVelocity(pointerId) {\n var _this$trackedPointers, _this$trackedPointers2;\n\n return {\n x: (_this$trackedPointers = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers === void 0 ? void 0 : _this$trackedPointers.velocityX,\n y: (_this$trackedPointers2 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers2 === void 0 ? void 0 : _this$trackedPointers2.velocityY\n };\n }\n\n getLastAbsoluteCoords(pointerId) {\n if (pointerId !== undefined) {\n var _this$trackedPointers3, _this$trackedPointers4;\n\n return {\n x: (_this$trackedPointers3 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers3 === void 0 ? void 0 : _this$trackedPointers3.abosoluteCoords.x,\n y: (_this$trackedPointers4 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers4 === void 0 ? void 0 : _this$trackedPointers4.abosoluteCoords.y\n };\n } else {\n var _this$trackedPointers5, _this$trackedPointers6;\n\n return {\n x: (_this$trackedPointers5 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers5 === void 0 ? void 0 : _this$trackedPointers5.abosoluteCoords.x,\n y: (_this$trackedPointers6 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers6 === void 0 ? void 0 : _this$trackedPointers6.abosoluteCoords.y\n };\n }\n }\n\n getLastRelativeCoords(pointerId) {\n if (pointerId !== undefined) {\n var _this$trackedPointers7, _this$trackedPointers8;\n\n return {\n x: (_this$trackedPointers7 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers7 === void 0 ? void 0 : _this$trackedPointers7.relativeCoords.x,\n y: (_this$trackedPointers8 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers8 === void 0 ? void 0 : _this$trackedPointers8.relativeCoords.y\n };\n } else {\n var _this$trackedPointers9, _this$trackedPointers10;\n\n return {\n x: (_this$trackedPointers9 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers9 === void 0 ? void 0 : _this$trackedPointers9.relativeCoords.x,\n y: (_this$trackedPointers10 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers10 === void 0 ? void 0 : _this$trackedPointers10.relativeCoords.y\n };\n }\n } // Some handlers use these methods to send average values in native event.\n // This may happen when pointers have already been removed from tracker (i.e. pointerup event).\n // In situation when NaN would be sent as a response, we return cached value.\n // That prevents handlers from crashing\n\n\n getAbsoluteCoordsAverage() {\n const coordsSum = this.getAbsoluteCoordsSum();\n const avgX = coordsSum.x / this.trackedPointers.size;\n const avgY = coordsSum.y / this.trackedPointers.size;\n const averages = {\n x: isNaN(avgX) ? this.cachedAbsoluteAverages.x : avgX,\n y: isNaN(avgY) ? this.cachedAbsoluteAverages.y : avgY\n };\n return averages;\n }\n\n getRelativeCoordsAverage() {\n const coordsSum = this.getRelativeCoordsSum();\n const avgX = coordsSum.x / this.trackedPointers.size;\n const avgY = coordsSum.y / this.trackedPointers.size;\n const averages = {\n x: isNaN(avgX) ? this.cachedRelativeAverages.x : avgX,\n y: isNaN(avgY) ? this.cachedRelativeAverages.y : avgY\n };\n return averages;\n }\n\n getAbsoluteCoordsSum(ignoredPointer) {\n const sum = {\n x: 0,\n y: 0\n };\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sum.x += value.abosoluteCoords.x;\n sum.y += value.abosoluteCoords.y;\n }\n });\n return sum;\n }\n\n getRelativeCoordsSum(ignoredPointer) {\n const sum = {\n x: 0,\n y: 0\n };\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sum.x += value.relativeCoords.x;\n sum.y += value.relativeCoords.y;\n }\n });\n return sum;\n }\n\n getTrackedPointersCount() {\n return this.trackedPointers.size;\n }\n\n getTrackedPointersID() {\n const keys = [];\n this.trackedPointers.forEach((_value, key) => {\n keys.push(key);\n });\n return keys;\n }\n\n getData() {\n return this.trackedPointers;\n }\n\n resetTracker() {\n this.velocityTracker.reset();\n this.trackedPointers.clear();\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n static shareCommonPointers(stPointers, ndPointers) {\n return stPointers.some(pointerId => ndPointers.includes(pointerId));\n }\n\n}\n//# sourceMappingURL=PointerTracker.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport CircularBuffer from './CircularBuffer';\nimport LeastSquareSolver from './LeastSquareSolver';\nexport default class VelocityTracker {\n constructor() {\n _defineProperty(this, \"assumePointerMoveStoppedMilliseconds\", 40);\n\n _defineProperty(this, \"historySize\", 20);\n\n _defineProperty(this, \"horizonMilliseconds\", 300);\n\n _defineProperty(this, \"minSampleSize\", 3);\n\n _defineProperty(this, \"samples\", void 0);\n\n this.samples = new CircularBuffer(this.historySize);\n }\n\n add(event) {\n this.samples.push(event);\n } // Returns an estimate of the velocity of the object being tracked by the\n // tracker given the current information available to the tracker.\n //\n // Information is added using [addPosition].\n //\n // Returns null if there is no data on which to base an estimate.\n\n\n getVelocityEstimate() {\n const x = [];\n const y = [];\n const w = [];\n const time = [];\n let sampleCount = 0;\n let index = this.samples.size - 1;\n const newestSample = this.samples.get(index);\n\n if (!newestSample) {\n return null;\n }\n\n let previousSample = newestSample; // Starting with the most recent PointAtTime sample, iterate backwards while\n // the samples represent continuous motion.\n\n while (sampleCount < this.samples.size) {\n const sample = this.samples.get(index);\n const age = newestSample.time - sample.time;\n const delta = Math.abs(sample.time - previousSample.time);\n previousSample = sample;\n\n if (age > this.horizonMilliseconds || delta > this.assumePointerMoveStoppedMilliseconds) {\n break;\n }\n\n x.push(sample.x);\n y.push(sample.y);\n w.push(1);\n time.push(-age);\n sampleCount++;\n index--;\n }\n\n if (sampleCount >= this.minSampleSize) {\n const xSolver = new LeastSquareSolver(time, x, w);\n const xFit = xSolver.solve(2);\n\n if (xFit !== null) {\n const ySolver = new LeastSquareSolver(time, y, w);\n const yFit = ySolver.solve(2);\n\n if (yFit !== null) {\n const xVelocity = xFit.coefficients[1] * 1000;\n const yVelocity = yFit.coefficients[1] * 1000;\n return [xVelocity, yVelocity];\n }\n }\n }\n\n return null;\n }\n\n getVelocity() {\n const estimate = this.getVelocityEstimate();\n\n if (estimate !== null) {\n return estimate;\n }\n\n return [0, 0];\n }\n\n reset() {\n this.samples.clear();\n }\n\n}\n//# sourceMappingURL=VelocityTracker.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport default class CircularBuffer {\n constructor(size) {\n _defineProperty(this, \"bufferSize\", void 0);\n\n _defineProperty(this, \"buffer\", void 0);\n\n _defineProperty(this, \"index\", void 0);\n\n _defineProperty(this, \"actualSize\", void 0);\n\n this.bufferSize = size;\n this.buffer = new Array(size);\n this.index = 0;\n this.actualSize = 0;\n }\n\n get size() {\n return this.actualSize;\n }\n\n push(element) {\n this.buffer[this.index] = element;\n this.index = (this.index + 1) % this.bufferSize;\n this.actualSize = Math.min(this.actualSize + 1, this.bufferSize);\n }\n\n get(at) {\n if (this.actualSize === this.bufferSize) {\n let index = (this.index + at) % this.bufferSize;\n\n if (index < 0) {\n index += this.bufferSize;\n }\n\n return this.buffer[index];\n } else {\n return this.buffer[at];\n }\n }\n\n clear() {\n this.buffer = new Array(this.bufferSize);\n this.index = 0;\n this.actualSize = 0;\n }\n\n}\n//# sourceMappingURL=CircularBuffer.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Implementation taken from Flutter's LeastSquareSolver\n// https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/gestures/lsq_solver.dart\nclass Vector {\n constructor(length) {\n _defineProperty(this, \"offset\", void 0);\n\n _defineProperty(this, \"length\", void 0);\n\n _defineProperty(this, \"elements\", void 0);\n\n this.offset = 0;\n this.length = length;\n this.elements = new Array(length);\n }\n\n static fromVOL(values, offset, length) {\n const result = new Vector(0);\n result.offset = offset;\n result.length = length;\n result.elements = values;\n return result;\n }\n\n get(index) {\n return this.elements[this.offset + index];\n }\n\n set(index, value) {\n this.elements[this.offset + index] = value;\n }\n\n dot(other) {\n let result = 0;\n\n for (let i = 0; i < this.length; i++) {\n result += this.get(i) * other.get(i);\n }\n\n return result;\n }\n\n norm() {\n return Math.sqrt(this.dot(this));\n }\n\n}\n\nclass Matrix {\n constructor(rows, columns) {\n _defineProperty(this, \"columns\", void 0);\n\n _defineProperty(this, \"elements\", void 0);\n\n this.columns = columns;\n this.elements = new Array(rows * columns);\n }\n\n get(row, column) {\n return this.elements[row * this.columns + column];\n }\n\n set(row, column, value) {\n this.elements[row * this.columns + column] = value;\n }\n\n getRow(row) {\n return Vector.fromVOL(this.elements, row * this.columns, this.columns);\n }\n\n} // An nth degree polynomial fit to a dataset.\n\n\nclass PolynomialFit {\n // The polynomial coefficients of the fit.\n //\n // For each `i`, the element `coefficients[i]` is the coefficient of\n // the `i`-th power of the variable.\n // Creates a polynomial fit of the given degree.\n //\n // There are n + 1 coefficients in a fit of degree n.\n constructor(degree) {\n _defineProperty(this, \"coefficients\", void 0);\n\n this.coefficients = new Array(degree + 1);\n }\n\n}\n\nconst precisionErrorTolerance = 1e-10; // Uses the least-squares algorithm to fit a polynomial to a set of data.\n\nexport default class LeastSquareSolver {\n // The x-coordinates of each data point.\n // The y-coordinates of each data point.\n // The weight to use for each data point.\n // Creates a least-squares solver.\n //\n // The [x], [y], and [w] arguments must not be null.\n constructor(x, y, w) {\n _defineProperty(this, \"x\", void 0);\n\n _defineProperty(this, \"y\", void 0);\n\n _defineProperty(this, \"w\", void 0);\n\n this.x = x;\n this.y = y;\n this.w = w;\n } // Fits a polynomial of the given degree to the data points.\n //\n // When there is not enough data to fit a curve null is returned.\n\n\n solve(degree) {\n if (degree > this.x.length) {\n // Not enough data to fit a curve.\n return null;\n }\n\n const result = new PolynomialFit(degree); // Shorthands for the purpose of notation equivalence to original C++ code.\n\n const m = this.x.length;\n const n = degree + 1; // Expand the X vector to a matrix A, pre-multiplied by the weights.\n\n const a = new Matrix(n, m);\n\n for (let h = 0; h < m; h++) {\n a.set(0, h, this.w[h]);\n\n for (let i = 1; i < n; i++) {\n a.set(i, h, a.get(i - 1, h) * this.x[h]);\n }\n } // Apply the Gram-Schmidt process to A to obtain its QR decomposition.\n // Orthonormal basis, column-major ordVectorer.\n\n\n const q = new Matrix(n, m); // Upper triangular matrix, row-major order.\n\n const r = new Matrix(n, m);\n\n for (let j = 0; j < n; j += 1) {\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, a.get(j, h));\n }\n\n for (let i = 0; i < j; i += 1) {\n const dot = q.getRow(j).dot(q.getRow(i));\n\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, q.get(j, h) - dot * q.get(i, h));\n }\n }\n\n const norm = q.getRow(j).norm();\n\n if (norm < precisionErrorTolerance) {\n // Vectors are linearly dependent or zero so no solution.\n return null;\n }\n\n const inverseNorm = 1.0 / norm;\n\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, q.get(j, h) * inverseNorm);\n }\n\n for (let i = 0; i < n; i += 1) {\n r.set(j, i, i < j ? 0.0 : q.getRow(j).dot(a.getRow(i)));\n }\n } // Solve R B = Qt W Y to find B. This is easy because R is upper triangular.\n // We just work from bottom-right to top-left calculating B's coefficients.\n\n\n const wy = new Vector(m);\n\n for (let h = 0; h < m; h += 1) {\n wy.set(h, this.y[h] * this.w[h]);\n }\n\n for (let i = n - 1; i >= 0; i -= 1) {\n result.coefficients[i] = q.getRow(i).dot(wy);\n\n for (let j = n - 1; j > i; j -= 1) {\n result.coefficients[i] -= r.get(i, j) * result.coefficients[j];\n }\n\n result.coefficients[i] /= r.get(i, i);\n }\n\n return result;\n }\n\n}\n//# sourceMappingURL=LeastSquareSolver.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nexport default class InteractionManager {\n // Private becaues of singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n constructor() {\n _defineProperty(this, \"waitForRelations\", new Map());\n\n _defineProperty(this, \"simultaneousRelations\", new Map());\n\n _defineProperty(this, \"blocksHandlersRelations\", new Map());\n }\n\n configureInteractions(handler, config) {\n this.dropRelationsForHandlerWithTag(handler.getTag());\n\n if (config.waitFor) {\n const waitFor = [];\n config.waitFor.forEach(otherHandler => {\n // New API reference\n if (typeof otherHandler === 'number') {\n waitFor.push(otherHandler);\n } else {\n // Old API reference\n waitFor.push(otherHandler.handlerTag);\n }\n });\n this.waitForRelations.set(handler.getTag(), waitFor);\n }\n\n if (config.simultaneousHandlers) {\n const simultaneousHandlers = [];\n config.simultaneousHandlers.forEach(otherHandler => {\n if (typeof otherHandler === 'number') {\n simultaneousHandlers.push(otherHandler);\n } else {\n simultaneousHandlers.push(otherHandler.handlerTag);\n }\n });\n this.simultaneousRelations.set(handler.getTag(), simultaneousHandlers);\n }\n\n if (config.blocksHandlers) {\n const blocksHandlers = [];\n config.blocksHandlers.forEach(otherHandler => {\n if (typeof otherHandler === 'number') {\n blocksHandlers.push(otherHandler);\n } else {\n blocksHandlers.push(otherHandler.handlerTag);\n }\n });\n this.blocksHandlersRelations.set(handler.getTag(), blocksHandlers);\n }\n }\n\n shouldWaitForHandlerFailure(handler, otherHandler) {\n const waitFor = this.waitForRelations.get(handler.getTag());\n return (waitFor === null || waitFor === void 0 ? void 0 : waitFor.find(tag => {\n return tag === otherHandler.getTag();\n })) !== undefined;\n }\n\n shouldRecognizeSimultaneously(handler, otherHandler) {\n const simultaneousHandlers = this.simultaneousRelations.get(handler.getTag());\n return (simultaneousHandlers === null || simultaneousHandlers === void 0 ? void 0 : simultaneousHandlers.find(tag => {\n return tag === otherHandler.getTag();\n })) !== undefined;\n }\n\n shouldRequireHandlerToWaitForFailure(handler, otherHandler) {\n const waitFor = this.blocksHandlersRelations.get(handler.getTag());\n return (waitFor === null || waitFor === void 0 ? void 0 : waitFor.find(tag => {\n return tag === otherHandler.getTag();\n })) !== undefined;\n }\n\n shouldHandlerBeCancelledBy(_handler, otherHandler) {\n var _otherHandler$isButto;\n\n // We check constructor name instead of using `instanceof` in order do avoid circular dependencies\n const isNativeHandler = otherHandler.constructor.name === 'NativeViewGestureHandler';\n const isActive = otherHandler.getState() === State.ACTIVE;\n const isButton = ((_otherHandler$isButto = otherHandler.isButton) === null || _otherHandler$isButto === void 0 ? void 0 : _otherHandler$isButto.call(otherHandler)) === true;\n return isNativeHandler && isActive && !isButton;\n }\n\n dropRelationsForHandlerWithTag(handlerTag) {\n this.waitForRelations.delete(handlerTag);\n this.simultaneousRelations.delete(handlerTag);\n this.blocksHandlersRelations.delete(handlerTag);\n }\n\n reset() {\n this.waitForRelations.clear();\n this.simultaneousRelations.clear();\n this.blocksHandlersRelations.clear();\n }\n\n static getInstance() {\n if (!this.instance) {\n this.instance = new InteractionManager();\n }\n\n return this.instance;\n }\n\n}\n\n_defineProperty(InteractionManager, \"instance\", void 0);\n//# sourceMappingURL=InteractionManager.js.map","// Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.\n// Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof\n// e.g. React.createRef -> React.createRef.\n// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.\nconst commonProps = ['id', 'enabled', 'shouldCancelWhenOutside', 'hitSlop', 'cancelsTouchesInView', 'userSelect', 'activeCursor', 'mouseButton', 'enableContextMenu', 'touchAction'];\nconst componentInteractionProps = ['waitFor', 'simultaneousHandlers', 'blocksHandlers'];\nexport const baseGestureHandlerProps = [...commonProps, ...componentInteractionProps, 'onBegan', 'onFailed', 'onCancelled', 'onActivated', 'onEnded', 'onGestureEvent', 'onHandlerStateChange'];\nexport const baseGestureHandlerWithDetectorProps = [...commonProps, 'needsPointerData', 'manualActivation'];\nexport let MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"LEFT\"] = 1] = \"LEFT\";\n MouseButton[MouseButton[\"RIGHT\"] = 2] = \"RIGHT\";\n MouseButton[MouseButton[\"MIDDLE\"] = 4] = \"MIDDLE\";\n MouseButton[MouseButton[\"BUTTON_4\"] = 8] = \"BUTTON_4\";\n MouseButton[MouseButton[\"BUTTON_5\"] = 16] = \"BUTTON_5\";\n MouseButton[MouseButton[\"ALL\"] = 31] = \"ALL\";\n})(MouseButton || (MouseButton = {}));\n//# sourceMappingURL=gestureHandlerCommon.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nimport { EventTypes } from '../interfaces';\nimport GestureHandler from './GestureHandler';\nconst DEFAULT_MAX_DURATION_MS = 500;\nconst DEFAULT_MAX_DELAY_MS = 500;\nconst DEFAULT_NUMBER_OF_TAPS = 1;\nconst DEFAULT_MIN_NUMBER_OF_POINTERS = 1;\nexport default class TapGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"maxDeltaX\", Number.MIN_SAFE_INTEGER);\n\n _defineProperty(this, \"maxDeltaY\", Number.MIN_SAFE_INTEGER);\n\n _defineProperty(this, \"maxDistSq\", Number.MIN_SAFE_INTEGER);\n\n _defineProperty(this, \"maxDurationMs\", DEFAULT_MAX_DURATION_MS);\n\n _defineProperty(this, \"maxDelayMs\", DEFAULT_MAX_DELAY_MS);\n\n _defineProperty(this, \"numberOfTaps\", DEFAULT_NUMBER_OF_TAPS);\n\n _defineProperty(this, \"minNumberOfPointers\", DEFAULT_MIN_NUMBER_OF_POINTERS);\n\n _defineProperty(this, \"currentMaxNumberOfPointers\", 1);\n\n _defineProperty(this, \"startX\", 0);\n\n _defineProperty(this, \"startY\", 0);\n\n _defineProperty(this, \"offsetX\", 0);\n\n _defineProperty(this, \"offsetY\", 0);\n\n _defineProperty(this, \"lastX\", 0);\n\n _defineProperty(this, \"lastY\", 0);\n\n _defineProperty(this, \"waitTimeout\", void 0);\n\n _defineProperty(this, \"delayTimeout\", void 0);\n\n _defineProperty(this, \"tapsSoFar\", 0);\n }\n\n init(ref, propsRef) {\n super.init(ref, propsRef);\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n\n if (this.config.numberOfTaps !== undefined) {\n this.numberOfTaps = this.config.numberOfTaps;\n }\n\n if (this.config.maxDurationMs !== undefined) {\n this.maxDurationMs = this.config.maxDurationMs;\n }\n\n if (this.config.maxDelayMs !== undefined) {\n this.maxDelayMs = this.config.maxDelayMs;\n }\n\n if (this.config.maxDeltaX !== undefined) {\n this.maxDeltaX = this.config.maxDeltaX;\n }\n\n if (this.config.maxDeltaY !== undefined) {\n this.maxDeltaY = this.config.maxDeltaY;\n }\n\n if (this.config.maxDist !== undefined) {\n this.maxDistSq = this.config.maxDist * this.config.maxDist;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minNumberOfPointers = this.config.minPointers;\n }\n }\n\n resetConfig() {\n super.resetConfig();\n this.maxDeltaX = Number.MIN_SAFE_INTEGER;\n this.maxDeltaY = Number.MIN_SAFE_INTEGER;\n this.maxDistSq = Number.MIN_SAFE_INTEGER;\n this.maxDurationMs = DEFAULT_MAX_DURATION_MS;\n this.maxDelayMs = DEFAULT_MAX_DELAY_MS;\n this.numberOfTaps = DEFAULT_NUMBER_OF_TAPS;\n this.minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS;\n }\n\n clearTimeouts() {\n clearTimeout(this.waitTimeout);\n clearTimeout(this.delayTimeout);\n }\n\n startTap() {\n this.clearTimeouts();\n this.waitTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n endTap() {\n this.clearTimeouts();\n\n if (++this.tapsSoFar === this.numberOfTaps && this.currentMaxNumberOfPointers >= this.minNumberOfPointers) {\n this.activate();\n } else {\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDelayMs);\n }\n } // Handling Events\n\n\n onPointerDown(event) {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.trySettingPosition(event);\n this.startX = event.x;\n this.startY = event.y;\n this.lastX = event.x;\n this.lastY = event.y;\n this.updateState(event);\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n super.onPointerAdd(event);\n this.tracker.addToTracker(event);\n this.trySettingPosition(event);\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.startX = lastCoords.x;\n this.startY = lastCoords.y;\n this.updateState(event);\n }\n\n onPointerUp(event) {\n super.onPointerUp(event);\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.tracker.removeFromTracker(event.pointerId);\n this.updateState(event);\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY = this.startY;\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.startX = this.lastX;\n this.startY = this.lastY;\n this.updateState(event);\n }\n\n onPointerMove(event) {\n this.trySettingPosition(event);\n this.tracker.track(event);\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.updateState(event);\n super.onPointerMove(event);\n }\n\n onPointerOutOfBounds(event) {\n this.trySettingPosition(event);\n this.tracker.track(event);\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.lastX = lastCoords.x;\n this.lastY = lastCoords.y;\n this.updateState(event);\n super.onPointerOutOfBounds(event);\n }\n\n updateState(event) {\n if (this.currentMaxNumberOfPointers < this.tracker.getTrackedPointersCount()) {\n this.currentMaxNumberOfPointers = this.tracker.getTrackedPointersCount();\n }\n\n if (this.shouldFail()) {\n this.fail();\n return;\n }\n\n switch (this.currentState) {\n case State.UNDETERMINED:\n if (event.eventType === EventTypes.DOWN) {\n this.begin();\n }\n\n this.startTap();\n break;\n\n case State.BEGAN:\n if (event.eventType === EventTypes.UP) {\n this.endTap();\n }\n\n if (event.eventType === EventTypes.DOWN) {\n this.startTap();\n }\n\n break;\n\n default:\n break;\n }\n }\n\n trySettingPosition(event) {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.offsetX = 0;\n this.offsetY = 0;\n this.startX = event.x;\n this.startY = event.y;\n }\n\n shouldFail() {\n const dx = this.lastX - this.startX + this.offsetX;\n\n if (this.maxDeltaX !== Number.MIN_SAFE_INTEGER && Math.abs(dx) > this.maxDeltaX) {\n return true;\n }\n\n const dy = this.lastY - this.startY + this.offsetY;\n\n if (this.maxDeltaY !== Number.MIN_SAFE_INTEGER && Math.abs(dy) > this.maxDeltaY) {\n return true;\n }\n\n const distSq = dy * dy + dx * dx;\n return this.maxDistSq !== Number.MIN_SAFE_INTEGER && distSq > this.maxDistSq;\n }\n\n activate() {\n super.activate();\n this.end();\n }\n\n onCancel() {\n this.resetProgress();\n this.clearTimeouts();\n }\n\n resetProgress() {\n this.clearTimeouts();\n this.tapsSoFar = 0;\n this.currentMaxNumberOfPointers = 0;\n }\n\n}\n//# sourceMappingURL=TapGestureHandler.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nimport GestureHandler from './GestureHandler';\nconst DEFAULT_MIN_DURATION_MS = 500;\nconst DEFAULT_MAX_DIST_DP = 10;\nconst SCALING_FACTOR = 10;\nexport default class LongPressGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"minDurationMs\", DEFAULT_MIN_DURATION_MS);\n\n _defineProperty(this, \"defaultMaxDistSq\", DEFAULT_MAX_DIST_DP * SCALING_FACTOR);\n\n _defineProperty(this, \"maxDistSq\", this.defaultMaxDistSq);\n\n _defineProperty(this, \"numberOfPointers\", 1);\n\n _defineProperty(this, \"startX\", 0);\n\n _defineProperty(this, \"startY\", 0);\n\n _defineProperty(this, \"startTime\", 0);\n\n _defineProperty(this, \"previousTime\", 0);\n\n _defineProperty(this, \"activationTimeout\", void 0);\n }\n\n init(ref, propsRef) {\n if (this.config.enableContextMenu === undefined) {\n this.config.enableContextMenu = false;\n }\n\n super.init(ref, propsRef);\n }\n\n transformNativeEvent() {\n return { ...super.transformNativeEvent(),\n duration: Date.now() - this.startTime\n };\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n\n if (this.config.minDurationMs !== undefined) {\n this.minDurationMs = this.config.minDurationMs;\n }\n\n if (this.config.maxDist !== undefined) {\n this.maxDistSq = this.config.maxDist * this.config.maxDist;\n }\n\n if (this.config.numberOfPointers !== undefined) {\n this.numberOfPointers = this.config.numberOfPointers;\n }\n }\n\n resetConfig() {\n super.resetConfig();\n this.minDurationMs = DEFAULT_MIN_DURATION_MS;\n this.maxDistSq = this.defaultMaxDistSq;\n }\n\n onStateChange(_newState, _oldState) {\n clearTimeout(this.activationTimeout);\n }\n\n onPointerDown(event) {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.startX = event.x;\n this.startY = event.y;\n this.tryBegin();\n this.tryActivate();\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n super.onPointerAdd(event);\n this.tracker.addToTracker(event);\n\n if (this.tracker.getTrackedPointersCount() > this.numberOfPointers) {\n this.fail();\n return;\n }\n\n const absoluteCoordsAverage = this.tracker.getAbsoluteCoordsAverage();\n this.startX = absoluteCoordsAverage.x;\n this.startY = absoluteCoordsAverage.y;\n this.tryActivate();\n }\n\n onPointerMove(event) {\n super.onPointerMove(event);\n this.tracker.track(event);\n this.checkDistanceFail();\n }\n\n onPointerUp(event) {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.tracker.getTrackedPointersCount() < this.numberOfPointers && this.getState() !== State.ACTIVE) {\n this.fail();\n }\n }\n\n tryBegin() {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.previousTime = Date.now();\n this.startTime = this.previousTime;\n this.begin();\n }\n\n tryActivate() {\n if (this.tracker.getTrackedPointersCount() !== this.numberOfPointers) {\n return;\n }\n\n if (this.minDurationMs > 0) {\n this.activationTimeout = setTimeout(() => {\n this.activate();\n }, this.minDurationMs);\n } else if (this.minDurationMs === 0) {\n this.activate();\n }\n }\n\n checkDistanceFail() {\n const absoluteCoordsAverage = this.tracker.getAbsoluteCoordsAverage();\n const dx = absoluteCoordsAverage.x - this.startX;\n const dy = absoluteCoordsAverage.y - this.startY;\n const distSq = dx * dx + dy * dy;\n\n if (distSq <= this.maxDistSq) {\n return;\n }\n\n if (this.currentState === State.ACTIVE) {\n this.cancel();\n } else {\n this.fail();\n }\n }\n\n}\n//# sourceMappingURL=LongPressGestureHandler.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport GestureHandler from './GestureHandler';\nimport ScaleGestureDetector from '../detectors/ScaleGestureDetector';\nexport default class PinchGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"scale\", 1);\n\n _defineProperty(this, \"velocity\", 0);\n\n _defineProperty(this, \"startingSpan\", 0);\n\n _defineProperty(this, \"spanSlop\", DEFAULT_TOUCH_SLOP);\n\n _defineProperty(this, \"scaleDetectorListener\", {\n onScaleBegin: detector => {\n this.startingSpan = detector.getCurrentSpan();\n return true;\n },\n onScale: detector => {\n const prevScaleFactor = this.scale;\n this.scale *= detector.getScaleFactor(this.tracker.getTrackedPointersCount());\n const delta = detector.getTimeDelta();\n\n if (delta > 0) {\n this.velocity = (this.scale - prevScaleFactor) / delta;\n }\n\n if (Math.abs(this.startingSpan - detector.getCurrentSpan()) >= this.spanSlop && this.currentState === State.BEGAN) {\n this.activate();\n }\n\n return true;\n },\n onScaleEnd: _detector => {}\n });\n\n _defineProperty(this, \"scaleGestureDetector\", new ScaleGestureDetector(this.scaleDetectorListener));\n }\n\n init(ref, propsRef) {\n super.init(ref, propsRef);\n this.setShouldCancelWhenOutside(false);\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n }\n\n transformNativeEvent() {\n return {\n focalX: this.scaleGestureDetector.getFocusX(),\n focalY: this.scaleGestureDetector.getFocusY(),\n velocity: this.velocity,\n scale: this.scale\n };\n }\n\n onPointerDown(event) {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.tryBegin();\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n }\n\n onPointerUp(event) {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState !== State.ACTIVE) {\n return;\n }\n\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE && this.tracker.getTrackedPointersCount() < 2) {\n this.end();\n }\n }\n\n onPointerMove(event) {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n this.tracker.track(event);\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerMove(event);\n }\n\n onPointerOutOfBounds(event) {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n this.tracker.track(event);\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerOutOfBounds(event);\n }\n\n tryBegin() {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.resetProgress();\n this.begin();\n }\n\n activate(force) {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(force);\n }\n\n onReset() {\n this.resetProgress();\n }\n\n resetProgress() {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.velocity = 0;\n this.scale = 1;\n }\n\n}\n//# sourceMappingURL=PinchGestureHandler.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { EventTypes } from '../interfaces';\nexport default class ScaleGestureDetector {\n constructor(callbacks) {\n _defineProperty(this, \"onScaleBegin\", void 0);\n\n _defineProperty(this, \"onScale\", void 0);\n\n _defineProperty(this, \"onScaleEnd\", void 0);\n\n _defineProperty(this, \"focusX\", void 0);\n\n _defineProperty(this, \"focusY\", void 0);\n\n _defineProperty(this, \"currentSpan\", void 0);\n\n _defineProperty(this, \"prevSpan\", void 0);\n\n _defineProperty(this, \"initialSpan\", void 0);\n\n _defineProperty(this, \"currentTime\", void 0);\n\n _defineProperty(this, \"prevTime\", void 0);\n\n _defineProperty(this, \"inProgress\", false);\n\n _defineProperty(this, \"spanSlop\", void 0);\n\n _defineProperty(this, \"minSpan\", void 0);\n\n this.onScaleBegin = callbacks.onScaleBegin;\n this.onScale = callbacks.onScale;\n this.onScaleEnd = callbacks.onScaleEnd;\n this.spanSlop = DEFAULT_TOUCH_SLOP * 2;\n this.minSpan = 0;\n }\n\n onTouchEvent(event, tracker) {\n this.currentTime = event.time;\n const action = event.eventType;\n const numOfPointers = tracker.getTrackedPointersCount();\n const streamComplete = action === EventTypes.UP || action === EventTypes.ADDITIONAL_POINTER_UP || action === EventTypes.CANCEL;\n\n if (action === EventTypes.DOWN || streamComplete) {\n if (this.inProgress) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = 0;\n }\n\n if (streamComplete) {\n return true;\n }\n }\n\n const configChanged = action === EventTypes.DOWN || action === EventTypes.ADDITIONAL_POINTER_UP || action === EventTypes.ADDITIONAL_POINTER_DOWN;\n const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;\n const ignoredPointer = pointerUp ? event.pointerId : undefined; // Determine focal point\n\n const div = pointerUp ? numOfPointers - 1 : numOfPointers;\n const coordsSum = tracker.getAbsoluteCoordsSum();\n const focusX = coordsSum.x / div;\n const focusY = coordsSum.y / div; // Determine average deviation from focal point\n\n let devSumX = 0;\n let devSumY = 0;\n tracker.getData().forEach((value, key) => {\n if (key === ignoredPointer) {\n return;\n }\n\n devSumX += Math.abs(value.abosoluteCoords.x - focusX);\n devSumY += Math.abs(value.abosoluteCoords.y - focusY);\n });\n const devX = devSumX / div;\n const devY = devSumY / div;\n const spanX = devX * 2;\n const spanY = devY * 2;\n const span = Math.hypot(spanX, spanY); // Begin/end events\n\n const wasInProgress = this.inProgress;\n this.focusX = focusX;\n this.focusY = focusY;\n\n if (this.inProgress && (span < this.minSpan || configChanged)) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = span;\n }\n\n if (configChanged) {\n this.initialSpan = this.prevSpan = this.currentSpan = span;\n }\n\n if (!this.inProgress && span >= this.minSpan && (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)) {\n this.prevSpan = this.currentSpan = span;\n this.prevTime = this.currentTime;\n this.inProgress = this.onScaleBegin(this);\n } // Handle motion\n\n\n if (action !== EventTypes.MOVE) {\n return true;\n }\n\n this.currentSpan = span;\n\n if (this.inProgress && !this.onScale(this)) {\n return true;\n }\n\n this.prevSpan = this.currentSpan;\n this.prevTime = this.currentTime;\n return true;\n }\n\n getCurrentSpan() {\n return this.currentSpan;\n }\n\n getFocusX() {\n return this.focusX;\n }\n\n getFocusY() {\n return this.focusY;\n }\n\n getTimeDelta() {\n return this.currentTime - this.prevTime;\n }\n\n getScaleFactor(numOfPointers) {\n if (numOfPointers < 2) {\n return 1;\n }\n\n return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;\n }\n\n}\n//# sourceMappingURL=ScaleGestureDetector.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nimport GestureHandler from './GestureHandler';\nimport RotationGestureDetector from '../detectors/RotationGestureDetector';\nconst ROTATION_RECOGNITION_THRESHOLD = Math.PI / 36;\nexport default class RotationGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"rotation\", 0);\n\n _defineProperty(this, \"velocity\", 0);\n\n _defineProperty(this, \"cachedAnchorX\", 0);\n\n _defineProperty(this, \"cachedAnchorY\", 0);\n\n _defineProperty(this, \"rotationGestureListener\", {\n onRotationBegin: _detector => true,\n onRotation: detector => {\n const previousRotation = this.rotation;\n this.rotation += detector.getRotation();\n const delta = detector.getTimeDelta();\n\n if (delta > 0) {\n this.velocity = (this.rotation - previousRotation) / delta;\n }\n\n if (Math.abs(this.rotation) >= ROTATION_RECOGNITION_THRESHOLD && this.currentState === State.BEGAN) {\n this.activate();\n }\n\n return true;\n },\n onRotationEnd: _detector => {\n this.end();\n }\n });\n\n _defineProperty(this, \"rotationGestureDetector\", new RotationGestureDetector(this.rotationGestureListener));\n }\n\n init(ref, propsRef) {\n super.init(ref, propsRef);\n this.setShouldCancelWhenOutside(false);\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n }\n\n transformNativeEvent() {\n return {\n rotation: this.rotation ? this.rotation : 0,\n anchorX: this.getAnchorX(),\n anchorY: this.getAnchorY(),\n velocity: this.velocity ? this.velocity : 0\n };\n }\n\n getAnchorX() {\n const anchorX = this.rotationGestureDetector.getAnchorX();\n return anchorX ? anchorX : this.cachedAnchorX;\n }\n\n getAnchorY() {\n const anchorY = this.rotationGestureDetector.getAnchorY();\n return anchorY ? anchorY : this.cachedAnchorY;\n }\n\n onPointerDown(event) {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.tryBegin();\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n }\n\n onPointerMove(event) {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.getAnchorX()) {\n this.cachedAnchorX = this.getAnchorX();\n }\n\n if (this.getAnchorY()) {\n this.cachedAnchorY = this.getAnchorY();\n }\n\n this.tracker.track(event);\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerMove(event);\n }\n\n onPointerOutOfBounds(event) {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.getAnchorX()) {\n this.cachedAnchorX = this.getAnchorX();\n }\n\n if (this.getAnchorY()) {\n this.cachedAnchorY = this.getAnchorY();\n }\n\n this.tracker.track(event);\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerOutOfBounds(event);\n }\n\n onPointerUp(event) {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n\n if (this.currentState !== State.ACTIVE) {\n return;\n }\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n tryBegin() {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n }\n\n activate(_force) {\n super.activate();\n }\n\n onReset() {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.rotation = 0;\n this.velocity = 0;\n this.rotationGestureDetector.reset();\n }\n\n}\n//# sourceMappingURL=RotationGestureHandler.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { EventTypes } from '../interfaces';\nexport default class RotationGestureDetector {\n constructor(callbacks) {\n _defineProperty(this, \"onRotationBegin\", void 0);\n\n _defineProperty(this, \"onRotation\", void 0);\n\n _defineProperty(this, \"onRotationEnd\", void 0);\n\n _defineProperty(this, \"currentTime\", 0);\n\n _defineProperty(this, \"previousTime\", 0);\n\n _defineProperty(this, \"previousAngle\", 0);\n\n _defineProperty(this, \"rotation\", 0);\n\n _defineProperty(this, \"anchorX\", 0);\n\n _defineProperty(this, \"anchorY\", 0);\n\n _defineProperty(this, \"isInProgress\", false);\n\n _defineProperty(this, \"keyPointers\", [NaN, NaN]);\n\n this.onRotationBegin = callbacks.onRotationBegin;\n this.onRotation = callbacks.onRotation;\n this.onRotationEnd = callbacks.onRotationEnd;\n }\n\n updateCurrent(event, tracker) {\n this.previousTime = this.currentTime;\n this.currentTime = event.time;\n const [firstPointerID, secondPointerID] = this.keyPointers;\n const firstPointerCoords = tracker.getLastAbsoluteCoords(firstPointerID);\n const secondPointerCoords = tracker.getLastAbsoluteCoords(secondPointerID);\n const vectorX = secondPointerCoords.x - firstPointerCoords.x;\n const vectorY = secondPointerCoords.y - firstPointerCoords.y;\n this.anchorX = (firstPointerCoords.x + secondPointerCoords.x) / 2;\n this.anchorY = (firstPointerCoords.y + secondPointerCoords.y) / 2; // Angle diff should be positive when rotating in clockwise direction\n\n const angle = -Math.atan2(vectorY, vectorX);\n this.rotation = Number.isNaN(this.previousAngle) ? 0 : this.previousAngle - angle;\n this.previousAngle = angle;\n\n if (this.rotation > Math.PI) {\n this.rotation -= Math.PI;\n } else if (this.rotation < -Math.PI) {\n this.rotation += Math.PI;\n }\n\n if (this.rotation > Math.PI / 2) {\n this.rotation -= Math.PI;\n } else if (this.rotation < -Math.PI / 2) {\n this.rotation += Math.PI;\n }\n }\n\n finish() {\n if (!this.isInProgress) {\n return;\n }\n\n this.isInProgress = false;\n this.keyPointers = [NaN, NaN];\n this.onRotationEnd(this);\n }\n\n setKeyPointers(tracker) {\n if (this.keyPointers[0] && this.keyPointers[1]) {\n return;\n }\n\n const pointerIDs = tracker.getData().keys();\n this.keyPointers[0] = pointerIDs.next().value;\n this.keyPointers[1] = pointerIDs.next().value;\n }\n\n onTouchEvent(event, tracker) {\n switch (event.eventType) {\n case EventTypes.DOWN:\n this.isInProgress = false;\n break;\n\n case EventTypes.ADDITIONAL_POINTER_DOWN:\n if (this.isInProgress) {\n break;\n }\n\n this.isInProgress = true;\n this.previousTime = event.time;\n this.previousAngle = NaN;\n this.setKeyPointers(tracker);\n this.updateCurrent(event, tracker);\n this.onRotationBegin(this);\n break;\n\n case EventTypes.MOVE:\n if (!this.isInProgress) {\n break;\n }\n\n this.updateCurrent(event, tracker);\n this.onRotation(this);\n break;\n\n case EventTypes.ADDITIONAL_POINTER_UP:\n if (!this.isInProgress) {\n break;\n }\n\n if (this.keyPointers.indexOf(event.pointerId) >= 0) {\n this.finish();\n }\n\n break;\n\n case EventTypes.UP:\n if (this.isInProgress) {\n this.finish();\n }\n\n break;\n }\n\n return true;\n }\n\n getTimeDelta() {\n return this.currentTime + this.previousTime;\n }\n\n getAnchorX() {\n return this.anchorX;\n }\n\n getAnchorY() {\n return this.anchorY;\n }\n\n getRotation() {\n return this.rotation;\n }\n\n reset() {\n this.keyPointers = [NaN, NaN];\n this.isInProgress = false;\n }\n\n}\n//# sourceMappingURL=RotationGestureDetector.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nimport { DiagonalDirections, Directions } from '../../Directions';\nimport GestureHandler from './GestureHandler';\nimport Vector from '../tools/Vector';\nimport { coneToDeviation } from '../utils';\nconst DEFAULT_MAX_DURATION_MS = 800;\nconst DEFAULT_MIN_VELOCITY = 700;\nconst DEFAULT_ALIGNMENT_CONE = 30;\nconst DEFAULT_DIRECTION = Directions.RIGHT;\nconst DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;\nconst AXIAL_DEVIATION_COSINE = coneToDeviation(DEFAULT_ALIGNMENT_CONE);\nconst DIAGONAL_DEVIATION_COSINE = coneToDeviation(90 - DEFAULT_ALIGNMENT_CONE);\nexport default class FlingGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"numberOfPointersRequired\", DEFAULT_NUMBER_OF_TOUCHES_REQUIRED);\n\n _defineProperty(this, \"direction\", DEFAULT_DIRECTION);\n\n _defineProperty(this, \"maxDurationMs\", DEFAULT_MAX_DURATION_MS);\n\n _defineProperty(this, \"minVelocity\", DEFAULT_MIN_VELOCITY);\n\n _defineProperty(this, \"delayTimeout\", void 0);\n\n _defineProperty(this, \"maxNumberOfPointersSimultaneously\", 0);\n\n _defineProperty(this, \"keyPointer\", NaN);\n }\n\n init(ref, propsRef) {\n super.init(ref, propsRef);\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n\n if (this.config.direction) {\n this.direction = this.config.direction;\n }\n\n if (this.config.numberOfPointers) {\n this.numberOfPointersRequired = this.config.numberOfPointers;\n }\n }\n\n startFling() {\n this.begin();\n this.maxNumberOfPointersSimultaneously = 1;\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n tryEndFling() {\n const velocityVector = Vector.fromVelocity(this.tracker, this.keyPointer);\n\n const getAlignment = (direction, minimalAlignmentCosine) => {\n return (direction & this.direction) === direction && velocityVector.isSimilar(Vector.fromDirection(direction), minimalAlignmentCosine);\n };\n\n const axialDirectionsList = Object.values(Directions);\n const diagonalDirectionsList = Object.values(DiagonalDirections); // List of alignments to all activated directions\n\n const axialAlignmentList = axialDirectionsList.map(direction => getAlignment(direction, AXIAL_DEVIATION_COSINE));\n const diagonalAlignmentList = diagonalDirectionsList.map(direction => getAlignment(direction, DIAGONAL_DEVIATION_COSINE));\n const isAligned = axialAlignmentList.some(Boolean) || diagonalAlignmentList.some(Boolean);\n const isFast = velocityVector.magnitude > this.minVelocity;\n\n if (this.maxNumberOfPointersSimultaneously === this.numberOfPointersRequired && isAligned && isFast) {\n clearTimeout(this.delayTimeout);\n this.activate();\n return true;\n }\n\n return false;\n }\n\n endFling() {\n if (!this.tryEndFling()) {\n this.fail();\n }\n }\n\n onPointerDown(event) {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n this.keyPointer = event.pointerId;\n super.onPointerDown(event);\n this.newPointerAction();\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.newPointerAction();\n }\n\n newPointerAction() {\n if (this.currentState === State.UNDETERMINED) {\n this.startFling();\n }\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n\n if (this.tracker.getTrackedPointersCount() > this.maxNumberOfPointersSimultaneously) {\n this.maxNumberOfPointersSimultaneously = this.tracker.getTrackedPointersCount();\n }\n }\n\n pointerMoveAction(event) {\n this.tracker.track(event);\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n }\n\n onPointerMove(event) {\n this.pointerMoveAction(event);\n super.onPointerMove(event);\n }\n\n onPointerOutOfBounds(event) {\n this.pointerMoveAction(event);\n super.onPointerOutOfBounds(event);\n }\n\n onPointerUp(event) {\n super.onPointerUp(event);\n this.onUp(event);\n this.keyPointer = NaN;\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.onUp(event);\n }\n\n onUp(event) {\n if (this.currentState === State.BEGAN) {\n this.endFling();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n activate(force) {\n super.activate(force);\n this.end();\n }\n\n resetConfig() {\n super.resetConfig();\n this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n this.direction = DEFAULT_DIRECTION;\n }\n\n}\n//# sourceMappingURL=FlingGestureHandler.js.map","const RIGHT = 1;\nconst LEFT = 2;\nconst UP = 4;\nconst DOWN = 8; // Public interface\n\nexport const Directions = {\n RIGHT: RIGHT,\n LEFT: LEFT,\n UP: UP,\n DOWN: DOWN\n}; // Internal interface\n\nexport const DiagonalDirections = {\n UP_RIGHT: UP | RIGHT,\n DOWN_RIGHT: DOWN | RIGHT,\n UP_LEFT: UP | LEFT,\n DOWN_LEFT: DOWN | LEFT\n}; // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\n//# sourceMappingURL=Directions.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { DiagonalDirections, Directions } from '../../Directions';\nimport { MINIMAL_RECOGNIZABLE_MAGNITUDE } from '../constants';\nexport default class Vector {\n constructor(x, y) {\n _defineProperty(this, \"x\", void 0);\n\n _defineProperty(this, \"y\", void 0);\n\n _defineProperty(this, \"unitX\", void 0);\n\n _defineProperty(this, \"unitY\", void 0);\n\n _defineProperty(this, \"_magnitude\", void 0);\n\n this.x = x;\n this.y = y;\n this._magnitude = Math.hypot(this.x, this.y);\n const isMagnitudeSufficient = this._magnitude > MINIMAL_RECOGNIZABLE_MAGNITUDE;\n this.unitX = isMagnitudeSufficient ? this.x / this._magnitude : 0;\n this.unitY = isMagnitudeSufficient ? this.y / this._magnitude : 0;\n }\n\n static fromDirection(direction) {\n var _DirectionToVectorMap;\n\n return (_DirectionToVectorMap = DirectionToVectorMappings.get(direction)) !== null && _DirectionToVectorMap !== void 0 ? _DirectionToVectorMap : new Vector(0, 0);\n }\n\n static fromVelocity(tracker, pointerId) {\n const velocity = tracker.getVelocity(pointerId);\n return new Vector(velocity.x, velocity.y);\n }\n\n get magnitude() {\n return this._magnitude;\n }\n\n computeSimilarity(vector) {\n return this.unitX * vector.unitX + this.unitY * vector.unitY;\n }\n\n isSimilar(vector, threshold) {\n return this.computeSimilarity(vector) > threshold;\n }\n\n}\nconst DirectionToVectorMappings = new Map([[Directions.LEFT, new Vector(-1, 0)], [Directions.RIGHT, new Vector(1, 0)], [Directions.UP, new Vector(0, -1)], [Directions.DOWN, new Vector(0, 1)], [DiagonalDirections.UP_RIGHT, new Vector(1, -1)], [DiagonalDirections.DOWN_RIGHT, new Vector(1, 1)], [DiagonalDirections.UP_LEFT, new Vector(-1, -1)], [DiagonalDirections.DOWN_LEFT, new Vector(-1, 1)]]);\n//# sourceMappingURL=Vector.js.map","import { PointerType } from '../PointerType';\nexport function isPointerInBounds(view, {\n x,\n y\n}) {\n const rect = view.getBoundingClientRect();\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n}\nexport const PointerTypeMapping = new Map([['mouse', PointerType.MOUSE], ['touch', PointerType.TOUCH], ['pen', PointerType.STYLUS], ['none', PointerType.OTHER]]);\nexport const degToRad = degrees => degrees * Math.PI / 180;\nexport const coneToDeviation = degrees => Math.cos(degToRad(degrees / 2));\nexport function calculateViewScale(view) {\n var _RegExp$exec;\n\n const styles = getComputedStyle(view);\n const resultScales = {\n scaleX: 1,\n scaleY: 1\n }; // Get scales from scale property\n\n if (styles.scale !== undefined && styles.scale !== 'none') {\n const scales = styles.scale.split(' ');\n\n if (scales[0]) {\n resultScales.scaleX = parseFloat(scales[0]);\n }\n\n resultScales.scaleY = scales[1] ? parseFloat(scales[1]) : parseFloat(scales[0]);\n } // Get scales from transform property\n\n\n const matrixElements = (_RegExp$exec = new RegExp(/matrix\\((.+)\\)/).exec(styles.transform)) === null || _RegExp$exec === void 0 ? void 0 : _RegExp$exec[1];\n\n if (matrixElements) {\n const matrixElementsArray = matrixElements.split(', ');\n resultScales.scaleX *= parseFloat(matrixElementsArray[0]);\n resultScales.scaleY *= parseFloat(matrixElementsArray[3]);\n }\n\n return resultScales;\n}\nexport function tryExtractStylusData(event) {\n const pointerType = PointerTypeMapping.get(event.pointerType);\n\n if (pointerType !== PointerType.STYLUS) {\n return;\n } // @ts-ignore This property exists (https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent#instance_properties)\n\n\n const eventAzimuthAngle = event.azimuthAngle; // @ts-ignore This property exists (https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent#instance_properties)\n\n const eventAltitudeAngle = event.altitudeAngle;\n\n if (event.tiltX === 0 && event.tiltY === 0) {\n // If we are in this branch, it means that either tilt properties are not supported and we have to calculate them from altitude and azimuth angles,\n // or stylus is perpendicular to the screen and we can use altitude / azimuth instead of tilt\n // If azimuth and altitude are undefined in this branch, it means that we are either perpendicular to the screen,\n // or that none of the position sets is supported. In that case, we can treat stylus as perpendicular\n if (eventAzimuthAngle === undefined || eventAltitudeAngle === undefined) {\n return {\n tiltX: 0,\n tiltY: 0,\n azimuthAngle: Math.PI / 2,\n altitudeAngle: Math.PI / 2,\n pressure: event.pressure\n };\n }\n\n const {\n tiltX,\n tiltY\n } = spherical2tilt(eventAltitudeAngle, eventAzimuthAngle);\n return {\n tiltX,\n tiltY,\n azimuthAngle: eventAzimuthAngle,\n altitudeAngle: eventAltitudeAngle,\n pressure: event.pressure\n };\n }\n\n const {\n altitudeAngle,\n azimuthAngle\n } = tilt2spherical(event.tiltX, event.tiltY);\n return {\n tiltX: event.tiltX,\n tiltY: event.tiltY,\n azimuthAngle,\n altitudeAngle,\n pressure: event.pressure\n };\n} // `altitudeAngle` and `azimuthAngle` are experimental properties, which are not supported on Firefox and Safari.\n// Given that, we use `tilt` properties and algorithm that converts one value to another.\n//\n// Source: https://w3c.github.io/pointerevents/#converting-between-tiltx-tilty-and-altitudeangle-azimuthangle\n\nfunction tilt2spherical(tiltX, tiltY) {\n const tiltXrad = tiltX * Math.PI / 180;\n const tiltYrad = tiltY * Math.PI / 180; // calculate azimuth angle\n\n let azimuthAngle = 0;\n\n if (tiltX === 0) {\n if (tiltY > 0) {\n azimuthAngle = Math.PI / 2;\n } else if (tiltY < 0) {\n azimuthAngle = 3 * Math.PI / 2;\n }\n } else if (tiltY === 0) {\n if (tiltX < 0) {\n azimuthAngle = Math.PI;\n }\n } else if (Math.abs(tiltX) === 90 || Math.abs(tiltY) === 90) {\n // not enough information to calculate azimuth\n azimuthAngle = 0;\n } else {\n // Non-boundary case: neither tiltX nor tiltY is equal to 0 or +-90\n const tanX = Math.tan(tiltXrad);\n const tanY = Math.tan(tiltYrad);\n azimuthAngle = Math.atan2(tanY, tanX);\n\n if (azimuthAngle < 0) {\n azimuthAngle += 2 * Math.PI;\n }\n } // calculate altitude angle\n\n\n let altitudeAngle = 0;\n\n if (Math.abs(tiltX) === 90 || Math.abs(tiltY) === 90) {\n altitudeAngle = 0;\n } else if (tiltX === 0) {\n altitudeAngle = Math.PI / 2 - Math.abs(tiltYrad);\n } else if (tiltY === 0) {\n altitudeAngle = Math.PI / 2 - Math.abs(tiltXrad);\n } else {\n // Non-boundary case: neither tiltX nor tiltY is equal to 0 or +-90\n altitudeAngle = Math.atan(1.0 / Math.sqrt(Math.pow(Math.tan(tiltXrad), 2) + Math.pow(Math.tan(tiltYrad), 2)));\n }\n\n return {\n altitudeAngle: altitudeAngle,\n azimuthAngle: azimuthAngle\n };\n} // If we are on a platform that doesn't support `tiltX` and `tiltY`, we have to calculate them from `altitude` and `azimuth` angles.\n//\n// Source: https://w3c.github.io/pointerevents/#converting-between-tiltx-tilty-and-altitudeangle-azimuthangle\n\n\nfunction spherical2tilt(altitudeAngle, azimuthAngle) {\n const radToDeg = 180 / Math.PI;\n let tiltXrad = 0;\n let tiltYrad = 0;\n\n if (altitudeAngle === 0) {\n // the pen is in the X-Y plane\n if (azimuthAngle === 0 || azimuthAngle === 2 * Math.PI) {\n // pen is on positive X axis\n tiltXrad = Math.PI / 2;\n }\n\n if (azimuthAngle === Math.PI / 2) {\n // pen is on positive Y axis\n tiltYrad = Math.PI / 2;\n }\n\n if (azimuthAngle === Math.PI) {\n // pen is on negative X axis\n tiltXrad = -Math.PI / 2;\n }\n\n if (azimuthAngle === 3 * Math.PI / 2) {\n // pen is on negative Y axis\n tiltYrad = -Math.PI / 2;\n }\n\n if (azimuthAngle > 0 && azimuthAngle < Math.PI / 2) {\n tiltXrad = Math.PI / 2;\n tiltYrad = Math.PI / 2;\n }\n\n if (azimuthAngle > Math.PI / 2 && azimuthAngle < Math.PI) {\n tiltXrad = -Math.PI / 2;\n tiltYrad = Math.PI / 2;\n }\n\n if (azimuthAngle > Math.PI && azimuthAngle < 3 * Math.PI / 2) {\n tiltXrad = -Math.PI / 2;\n tiltYrad = -Math.PI / 2;\n }\n\n if (azimuthAngle > 3 * Math.PI / 2 && azimuthAngle < 2 * Math.PI) {\n tiltXrad = Math.PI / 2;\n tiltYrad = -Math.PI / 2;\n }\n }\n\n if (altitudeAngle !== 0) {\n const tanAlt = Math.tan(altitudeAngle);\n tiltXrad = Math.atan(Math.cos(azimuthAngle) / tanAlt);\n tiltYrad = Math.atan(Math.sin(azimuthAngle) / tanAlt);\n }\n\n const tiltX = Math.round(tiltXrad * radToDeg);\n const tiltY = Math.round(tiltYrad * radToDeg);\n return {\n tiltX,\n tiltY\n };\n}\n//# sourceMappingURL=utils.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Platform } from 'react-native';\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport GestureHandler from './GestureHandler';\nexport default class NativeViewGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"buttonRole\", void 0);\n\n _defineProperty(this, \"shouldActivateOnStart\", false);\n\n _defineProperty(this, \"disallowInterruption\", false);\n\n _defineProperty(this, \"startX\", 0);\n\n _defineProperty(this, \"startY\", 0);\n\n _defineProperty(this, \"minDistSq\", DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP);\n }\n\n init(ref, propsRef) {\n super.init(ref, propsRef);\n this.setShouldCancelWhenOutside(true);\n\n if (Platform.OS !== 'web') {\n return;\n }\n\n const view = this.delegate.getView();\n this.restoreViewStyles(view);\n this.buttonRole = view.getAttribute('role') === 'button';\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n\n if (this.config.shouldActivateOnStart !== undefined) {\n this.shouldActivateOnStart = this.config.shouldActivateOnStart;\n }\n\n if (this.config.disallowInterruption !== undefined) {\n this.disallowInterruption = this.config.disallowInterruption;\n }\n\n const view = this.delegate.getView();\n this.restoreViewStyles(view);\n }\n\n restoreViewStyles(view) {\n if (!view) {\n return;\n }\n\n view.style['touchAction'] = 'auto'; // @ts-ignore Turns on defualt touch behavior on Safari\n\n view.style['WebkitTouchCallout'] = 'auto';\n }\n\n resetConfig() {\n super.resetConfig();\n }\n\n onPointerDown(event) {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.newPointerAction();\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.newPointerAction();\n }\n\n newPointerAction() {\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n this.startX = lastCoords.x;\n this.startY = lastCoords.y;\n\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n\n if (this.buttonRole) {\n this.activate();\n }\n }\n\n onPointerMove(event) {\n this.tracker.track(event);\n const lastCoords = this.tracker.getAbsoluteCoordsAverage();\n const dx = this.startX - lastCoords.x;\n const dy = this.startY - lastCoords.y;\n const distSq = dx * dx + dy * dy;\n\n if (distSq >= this.minDistSq) {\n if (this.buttonRole && this.currentState === State.ACTIVE) {\n this.cancel();\n } else if (!this.buttonRole && this.currentState === State.BEGAN) {\n this.activate();\n }\n }\n }\n\n onPointerLeave() {\n if (this.currentState === State.BEGAN || this.currentState === State.ACTIVE) {\n this.cancel();\n }\n }\n\n onPointerUp(event) {\n super.onPointerUp(event);\n this.onUp(event);\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.onUp(event);\n }\n\n onUp(event) {\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.tracker.getTrackedPointersCount() === 0) {\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n }\n\n shouldRecognizeSimultaneously(handler) {\n if (super.shouldRecognizeSimultaneously(handler)) {\n return true;\n }\n\n if (handler instanceof NativeViewGestureHandler && handler.getState() === State.ACTIVE && handler.disallowsInterruption()) {\n return false;\n }\n\n const canBeInterrupted = !this.disallowInterruption;\n\n if (this.currentState === State.ACTIVE && handler.getState() === State.ACTIVE && canBeInterrupted) {\n return false;\n }\n\n return this.currentState === State.ACTIVE && canBeInterrupted && handler.getTag() > 0;\n }\n\n shouldBeCancelledByOther(_handler) {\n return !this.disallowInterruption;\n }\n\n disallowsInterruption() {\n return this.disallowInterruption;\n }\n\n isButton() {\n return this.buttonRole;\n }\n\n}\n//# sourceMappingURL=NativeViewGestureHandler.js.map","import GestureHandler from './GestureHandler';\nexport default class ManualGestureHandler extends GestureHandler {\n init(ref, propsRef) {\n super.init(ref, propsRef);\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n }\n\n onPointerDown(event) {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.begin();\n this.tryToSendTouchEvent(event);\n }\n\n onPointerAdd(event) {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n }\n\n onPointerMove(event) {\n this.tracker.track(event);\n super.onPointerMove(event);\n }\n\n onPointerOutOfBounds(event) {\n this.tracker.track(event);\n super.onPointerOutOfBounds(event);\n }\n\n onPointerUp(event) {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n onPointerRemove(event) {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n}\n//# sourceMappingURL=ManualGestureHandler.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { State } from '../../State';\nimport GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';\nimport GestureHandler from './GestureHandler';\nexport default class HoverGestureHandler extends GestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"stylusData\", void 0);\n }\n\n init(ref, propsRef) {\n super.init(ref, propsRef);\n }\n\n transformNativeEvent() {\n return { ...super.transformNativeEvent(),\n stylusData: this.stylusData\n };\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n super.updateGestureConfig({\n enabled: enabled,\n ...props\n });\n }\n\n onPointerMoveOver(event) {\n GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);\n this.tracker.addToTracker(event);\n this.stylusData = event.stylusData;\n super.onPointerMoveOver(event);\n\n if (this.getState() === State.UNDETERMINED) {\n this.begin();\n this.activate();\n }\n }\n\n onPointerMoveOut(event) {\n this.tracker.removeFromTracker(event.pointerId);\n this.stylusData = event.stylusData;\n super.onPointerMoveOut(event);\n this.end();\n }\n\n onPointerMove(event) {\n this.tracker.track(event);\n this.stylusData = event.stylusData;\n super.onPointerMove(event);\n }\n\n onPointerCancel(event) {\n super.onPointerCancel(event);\n this.reset();\n }\n\n}\n//# sourceMappingURL=HoverGestureHandler.js.map","import DiscreteGestureHandler from './DiscreteGestureHandler';\nimport * as NodeManager from './NodeManager';\nimport PressGestureHandler from './PressGestureHandler';\nimport { TEST_MIN_IF_NOT_NAN, VEC_LEN_SQ } from './utils';\n\nclass NativeViewGestureHandler extends PressGestureHandler {\n get isNative() {\n return true;\n }\n\n onRawEvent(ev) {\n super.onRawEvent(ev);\n\n if (!ev.isFinal) {\n // if (this.ref instanceof ScrollView) {\n if (TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ({\n x: ev.deltaX,\n y: ev.deltaY\n }), 10)) {\n // @ts-ignore FIXME(TS) config type\n if (this.config.disallowInterruption) {\n const gestures = Object.values(NodeManager.getNodes()).filter(gesture => {\n const {\n handlerTag,\n view,\n isGestureRunning\n } = gesture;\n return (// Check if this gesture isn't self\n handlerTag !== this.handlerTag && // Ensure the gesture needs to be cancelled\n isGestureRunning && // ScrollView can cancel discrete gestures like taps and presses\n gesture instanceof DiscreteGestureHandler && // Ensure a view exists and is a child of the current view\n view && // @ts-ignore FIXME(TS) view type\n this.view.contains(view)\n );\n }); // Cancel all of the gestures that passed the filter\n\n for (const gesture of gestures) {\n // TODO: Bacon: Send some cached event.\n gesture.forceInvalidate(ev);\n }\n }\n }\n }\n }\n\n}\n\nexport default NativeViewGestureHandler;\n//# sourceMappingURL=NativeViewGestureHandler.js.map","/* eslint-disable eslint-comments/no-unlimited-disable */\n\n/* eslint-disable */\nimport GestureHandler from './GestureHandler';\nimport { TEST_MAX_IF_NOT_NAN } from './utils';\n\nclass DiscreteGestureHandler extends GestureHandler {\n get isDiscrete() {\n return true;\n }\n\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n shouldFailUnderCustomCriteria({\n x,\n y,\n deltaX,\n deltaY\n }, {\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside\n }) {\n if (shouldCancelWhenOutside) {\n if (!this.isPointInView({\n x,\n y\n })) {\n return true;\n }\n }\n\n return TEST_MAX_IF_NOT_NAN(Math.abs(deltaX), maxDeltaX) || TEST_MAX_IF_NOT_NAN(Math.abs(deltaY), maxDeltaY) || TEST_MAX_IF_NOT_NAN(Math.abs(deltaY * deltaY + deltaX * deltaX), maxDistSq);\n }\n\n transformNativeEvent({\n center: {\n x,\n y\n }\n }) {\n // @ts-ignore FIXME(TS)\n const rect = this.view.getBoundingClientRect();\n return {\n absoluteX: x,\n absoluteY: y,\n x: x - rect.left,\n y: y - rect.top\n };\n }\n\n isGestureEnabledForEvent({\n minPointers,\n maxPointers,\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside\n }, _recognizer, {\n maxPointers: pointerLength,\n center,\n deltaX,\n deltaY\n }) {\n const validPointerCount = pointerLength >= minPointers && pointerLength <= maxPointers;\n\n if (this.shouldFailUnderCustomCriteria({ ...center,\n deltaX,\n deltaY\n }, {\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside\n }) || // A user probably won't land a multi-pointer tap on the first tick (so we cannot just cancel each time)\n // but if the gesture is running and the user adds or subtracts another pointer then it should fail.\n !validPointerCount && this.isGestureRunning) {\n return {\n failed: true\n };\n }\n\n return {\n success: validPointerCount\n };\n }\n\n}\n\nexport default DiscreteGestureHandler;\n//# sourceMappingURL=DiscreteGestureHandler.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable eslint-comments/no-unlimited-disable */\n\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\nimport { findNodeHandle } from 'react-native';\nimport { State } from '../State';\nimport { EventMap } from './constants';\nimport * as NodeManager from './NodeManager';\nimport { ghQueueMicrotask } from '../ghQueueMicrotask'; // TODO(TS) Replace with HammerInput if https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438/files is merged\n\nlet gestureInstances = 0;\n\nclass GestureHandler {\n get id() {\n return `${this.name}${this.gestureInstance}`;\n } // a simple way to check if GestureHandler is NativeViewGestureHandler, since importing it\n // here to use instanceof would cause import cycle\n\n\n get isNative() {\n return false;\n }\n\n get isDiscrete() {\n return false;\n }\n\n get shouldEnableGestureOnSetup() {\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\n }\n\n constructor() {\n _defineProperty(this, \"handlerTag\", void 0);\n\n _defineProperty(this, \"isGestureRunning\", false);\n\n _defineProperty(this, \"view\", null);\n\n _defineProperty(this, \"hasCustomActivationCriteria\", void 0);\n\n _defineProperty(this, \"hasGestureFailed\", false);\n\n _defineProperty(this, \"hammer\", null);\n\n _defineProperty(this, \"initialRotation\", null);\n\n _defineProperty(this, \"__initialX\", void 0);\n\n _defineProperty(this, \"__initialY\", void 0);\n\n _defineProperty(this, \"config\", {});\n\n _defineProperty(this, \"previousState\", State.UNDETERMINED);\n\n _defineProperty(this, \"pendingGestures\", {});\n\n _defineProperty(this, \"oldState\", State.UNDETERMINED);\n\n _defineProperty(this, \"lastSentState\", null);\n\n _defineProperty(this, \"gestureInstance\", void 0);\n\n _defineProperty(this, \"_stillWaiting\", void 0);\n\n _defineProperty(this, \"propsRef\", void 0);\n\n _defineProperty(this, \"ref\", void 0);\n\n _defineProperty(this, \"clearSelfAsPending\", () => {\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.removePendingGesture(this.id);\n }\n }\n });\n\n _defineProperty(this, \"destroy\", () => {\n this.clearSelfAsPending();\n\n if (this.hammer) {\n this.hammer.stop(false);\n this.hammer.destroy();\n }\n\n this.hammer = null;\n });\n\n _defineProperty(this, \"isPointInView\", ({\n x,\n y\n }) => {\n // @ts-ignore FIXME(TS)\n const rect = this.view.getBoundingClientRect();\n const pointerInside = x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n return pointerInside;\n });\n\n _defineProperty(this, \"sendEvent\", nativeEvent => {\n const {\n onGestureHandlerEvent,\n onGestureHandlerStateChange\n } = this.propsRef.current;\n const event = this.transformEventData(nativeEvent);\n invokeNullableMethod(onGestureHandlerEvent, event);\n\n if (this.lastSentState !== event.nativeEvent.state) {\n this.lastSentState = event.nativeEvent.state;\n invokeNullableMethod(onGestureHandlerStateChange, event);\n }\n });\n\n _defineProperty(this, \"sync\", () => {\n const gesture = this.hammer.get(this.name);\n if (!gesture) return;\n\n const enable = (recognizer, inputData) => {\n if (!this.config.enabled) {\n this.isGestureRunning = false;\n this.hasGestureFailed = false;\n return false;\n } // Prevent events before the system is ready.\n\n\n if (!inputData || !recognizer.options || typeof inputData.maxPointers === 'undefined') {\n return this.shouldEnableGestureOnSetup;\n }\n\n if (this.hasGestureFailed) {\n return false;\n }\n\n if (!this.isDiscrete) {\n if (this.isGestureRunning) {\n return true;\n } // The built-in hammer.js \"waitFor\" doesn't work across multiple views.\n // Only process if there are views to wait for.\n\n\n this._stillWaiting = this._getPendingGestures(); // This gesture should continue waiting.\n\n if (this._stillWaiting.length) {\n // Check to see if one of the gestures you're waiting for has started.\n // If it has then the gesture should fail.\n for (const gesture of this._stillWaiting) {\n // When the target gesture has started, this gesture must force fail.\n if (!gesture.isDiscrete && gesture.isGestureRunning) {\n this.hasGestureFailed = true;\n this.isGestureRunning = false;\n return false;\n }\n } // This gesture shouldn't start until the others have finished.\n\n\n return false;\n }\n } // Use default behaviour\n\n\n if (!this.hasCustomActivationCriteria) {\n return true;\n }\n\n const deltaRotation = this.initialRotation == null ? 0 : inputData.rotation - this.initialRotation; // @ts-ignore FIXME(TS)\n\n const {\n success,\n failed\n } = this.isGestureEnabledForEvent(this.getConfig(), recognizer, { ...inputData,\n deltaRotation\n });\n\n if (failed) {\n this.simulateCancelEvent(inputData);\n this.hasGestureFailed = true;\n }\n\n return success;\n };\n\n const params = this.getHammerConfig(); // @ts-ignore FIXME(TS)\n\n gesture.set({ ...params,\n enable\n });\n });\n\n this.gestureInstance = gestureInstances++;\n this.hasCustomActivationCriteria = false;\n }\n\n getConfig() {\n return this.config;\n }\n\n onWaitingEnded(_gesture) {}\n\n removePendingGesture(id) {\n delete this.pendingGestures[id];\n }\n\n addPendingGesture(gesture) {\n this.pendingGestures[gesture.id] = gesture;\n }\n\n isGestureEnabledForEvent(_config, _recognizer, _event) {\n return {\n success: true\n };\n }\n\n get NativeGestureClass() {\n throw new Error('Must override GestureHandler.NativeGestureClass');\n }\n\n updateHasCustomActivationCriteria(_config) {\n return true;\n }\n\n updateGestureConfig({\n enabled = true,\n ...props\n }) {\n this.clearSelfAsPending();\n this.config = this.ensureConfig({\n enabled,\n ...props\n });\n this.hasCustomActivationCriteria = this.updateHasCustomActivationCriteria(this.config);\n\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.addPendingGesture(this);\n }\n }\n\n if (this.hammer) {\n this.sync();\n }\n\n return this.config;\n }\n\n getState(type) {\n // @ts-ignore TODO(TS) check if this is needed\n if (type == 0) {\n return 0;\n }\n\n return EventMap[type];\n }\n\n transformEventData(event) {\n const {\n eventType,\n maxPointers: numberOfPointers\n } = event; // const direction = DirectionMap[ev.direction];\n\n const changedTouch = event.changedPointers[0];\n const pointerInside = this.isPointInView({\n x: changedTouch.clientX,\n y: changedTouch.clientY\n }); // TODO(TS) Remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50966 is merged.\n\n const state = this.getState(eventType);\n\n if (state !== this.previousState) {\n this.oldState = this.previousState;\n this.previousState = state;\n }\n\n return {\n nativeEvent: {\n numberOfPointers,\n state,\n pointerInside,\n ...this.transformNativeEvent(event),\n // onHandlerStateChange only\n handlerTag: this.handlerTag,\n target: this.ref,\n // send oldState only when the state was changed, or is different than ACTIVE\n // GestureDetector relies on the presence of `oldState` to differentiate between\n // update events and state change events\n oldState: state !== this.previousState || state != 4 ? this.oldState : undefined\n },\n timeStamp: Date.now()\n };\n }\n\n transformNativeEvent(_event) {\n return {};\n }\n\n cancelPendingGestures(event) {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture && gesture.isGestureRunning) {\n gesture.hasGestureFailed = true;\n gesture.cancelEvent(event);\n }\n }\n }\n\n notifyPendingGestures() {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture) {\n gesture.onWaitingEnded(this);\n }\n }\n } // FIXME event is undefined in runtime when firstly invoked (see Draggable example), check other functions taking event as input\n\n\n onGestureEnded(event) {\n this.isGestureRunning = false;\n this.cancelPendingGestures(event);\n }\n\n forceInvalidate(event) {\n if (this.isGestureRunning) {\n this.hasGestureFailed = true;\n this.cancelEvent(event);\n }\n }\n\n cancelEvent(event) {\n this.notifyPendingGestures();\n this.sendEvent({ ...event,\n eventType: Hammer.INPUT_CANCEL,\n isFinal: true\n });\n this.onGestureEnded(event);\n }\n\n onRawEvent({\n isFirst\n }) {\n if (isFirst) {\n this.hasGestureFailed = false;\n }\n }\n\n shouldUseTouchEvents(config) {\n var _config$simultaneousH, _config$simultaneousH2;\n\n return (_config$simultaneousH = (_config$simultaneousH2 = config.simultaneousHandlers) === null || _config$simultaneousH2 === void 0 ? void 0 : _config$simultaneousH2.some(handler => handler.isNative)) !== null && _config$simultaneousH !== void 0 ? _config$simultaneousH : false;\n }\n\n setView(ref, propsRef) {\n if (ref == null) {\n this.destroy();\n this.view = null;\n return;\n } // @ts-ignore window doesn't exist on global type as we don't want to use Node types\n\n\n const SUPPORTS_TOUCH = ('ontouchstart' in window);\n this.propsRef = propsRef;\n this.ref = ref;\n this.view = findNodeHandle(ref); // When the browser starts handling the gesture (e.g. scrolling), it sends a pointercancel event and stops\n // sending additional pointer events. This is not the case with touch events, so if the gesture is simultaneous\n // with a NativeGestureHandler, we need to check if touch events are supported and use them if possible.\n\n this.hammer = SUPPORTS_TOUCH && this.shouldUseTouchEvents(this.config) ? new Hammer.Manager(this.view, {\n inputClass: Hammer.TouchInput\n }) : new Hammer.Manager(this.view);\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n const {\n NativeGestureClass\n } = this; // @ts-ignore TODO(TS)\n\n const gesture = new NativeGestureClass(this.getHammerConfig());\n this.hammer.add(gesture);\n this.hammer.on('hammer.input', ev => {\n if (!this.config.enabled) {\n this.hasGestureFailed = false;\n this.isGestureRunning = false;\n return;\n }\n\n this.onRawEvent(ev); // TODO: Bacon: Check against something other than null\n // The isFirst value is not called when the first rotation is calculated.\n\n if (this.initialRotation === null && ev.rotation !== 0) {\n this.initialRotation = ev.rotation;\n }\n\n if (ev.isFinal) {\n // in favor of a willFail otherwise the last frame of the gesture will be captured.\n setTimeout(() => {\n this.initialRotation = null;\n this.hasGestureFailed = false;\n });\n }\n });\n this.setupEvents();\n this.sync();\n }\n\n setupEvents() {\n // TODO(TS) Hammer types aren't exactly that what we get in runtime\n if (!this.isDiscrete) {\n this.hammer.on(`${this.name}start`, event => this.onStart(event));\n this.hammer.on(`${this.name}end ${this.name}cancel`, event => {\n this.onGestureEnded(event);\n });\n }\n\n this.hammer.on(this.name, ev => this.onGestureActivated(ev)); // TODO(TS) remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438 is merged\n }\n\n onStart({\n deltaX,\n deltaY,\n rotation\n }) {\n // Reset the state for the next gesture\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n this.isGestureRunning = true;\n this.__initialX = deltaX;\n this.__initialY = deltaY;\n this.initialRotation = rotation;\n }\n\n onGestureActivated(ev) {\n this.sendEvent(ev);\n }\n\n onSuccess() {}\n\n _getPendingGestures() {\n if (Array.isArray(this.config.waitFor) && this.config.waitFor.length) {\n // Get the list of gestures that this gesture is still waiting for.\n // Use `=== false` in case a ref that isn't a gesture handler is used.\n const stillWaiting = this.config.waitFor.filter(({\n hasGestureFailed\n }) => hasGestureFailed === false);\n return stillWaiting;\n }\n\n return [];\n }\n\n getHammerConfig() {\n const pointers = this.config.minPointers === this.config.maxPointers ? this.config.minPointers : 0;\n return {\n pointers\n };\n }\n\n simulateCancelEvent(_inputData) {} // Validate the props\n\n\n ensureConfig(config) {\n const props = { ...config\n }; // TODO(TS) We use ! to assert that if property is present then value is not empty (null, undefined)\n\n if ('minDist' in config) {\n props.minDist = config.minDist;\n props.minDistSq = props.minDist * props.minDist;\n }\n\n if ('minVelocity' in config) {\n props.minVelocity = config.minVelocity;\n props.minVelocitySq = props.minVelocity * props.minVelocity;\n }\n\n if ('maxDist' in config) {\n props.maxDist = config.maxDist;\n props.maxDistSq = config.maxDist * config.maxDist;\n }\n\n if ('waitFor' in config) {\n props.waitFor = asArray(config.waitFor).map(({\n handlerTag\n }) => NodeManager.getHandler(handlerTag)).filter(v => v);\n } else {\n props.waitFor = null;\n }\n\n if ('simultaneousHandlers' in config) {\n const shouldUseTouchEvents = this.shouldUseTouchEvents(this.config);\n props.simultaneousHandlers = asArray(config.simultaneousHandlers).map(handler => {\n if (typeof handler === 'number') {\n return NodeManager.getHandler(handler);\n } else {\n return NodeManager.getHandler(handler.handlerTag);\n }\n }).filter(v => v);\n\n if (shouldUseTouchEvents !== this.shouldUseTouchEvents(props)) {\n ghQueueMicrotask(() => {\n // if the undelying event API needs to be changed, we need to unmount and mount\n // the hammer instance again.\n this.destroy();\n this.setView(this.ref, this.propsRef);\n });\n }\n } else {\n props.simultaneousHandlers = null;\n }\n\n const configProps = ['minPointers', 'maxPointers', 'minDist', 'maxDist', 'maxDistSq', 'minVelocitySq', 'minDistSq', 'minVelocity', 'failOffsetXStart', 'failOffsetYStart', 'failOffsetXEnd', 'failOffsetYEnd', 'activeOffsetXStart', 'activeOffsetXEnd', 'activeOffsetYStart', 'activeOffsetYEnd'];\n configProps.forEach(prop => {\n if (typeof props[prop] === 'undefined') {\n props[prop] = Number.NaN;\n }\n });\n return props; // TODO(TS) how to convince TS that props are filled?\n }\n\n} // TODO(TS) investigate this method\n// Used for sending data to a callback or AnimatedEvent\n\n\nfunction invokeNullableMethod(method, event) {\n if (method) {\n if (typeof method === 'function') {\n method(event);\n } else {\n // For use with reanimated's AnimatedEvent\n if ('__getHandler' in method && typeof method.__getHandler === 'function') {\n const handler = method.__getHandler();\n\n invokeNullableMethod(handler, event);\n } else {\n if ('__nodeConfig' in method) {\n const {\n argMapping\n } = method.__nodeConfig;\n\n if (Array.isArray(argMapping)) {\n for (const [index, [key, value]] of argMapping.entries()) {\n if (key in event.nativeEvent) {\n // @ts-ignore fix method type\n const nativeValue = event.nativeEvent[key];\n\n if (value && value.setValue) {\n // Reanimated API\n value.setValue(nativeValue);\n } else {\n // RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\nfunction asArray(value) {\n // TODO(TS) use config.waitFor type\n return value == null ? [] : Array.isArray(value) ? value : [value];\n}\n\nexport default GestureHandler;\n//# sourceMappingURL=GestureHandler.js.map","/*! Hammer.JS - v2.0.17-rc - 2019-12-16\n * http://naver.github.io/egjs\n *\n * Forked By Naver egjs\n * Copyright (c) hammerjs\n * Licensed under the MIT license */\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\n\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\nvar assign$1 = assign;\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = typeof document === \"undefined\" ? {\n style: {}\n} : document.createElement('div');\nvar TYPE_FUNCTION = 'function';\nvar round = Math.round,\n abs = Math.abs;\nvar now = Date.now;\n\n/**\n * @private\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\n\nfunction prefixed(obj, property) {\n var prefix;\n var prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n var i = 0;\n\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = prefix ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n\n i++;\n }\n\n return undefined;\n}\n\n/* eslint-disable no-new-func, no-nested-ternary */\nvar win;\n\nif (typeof window === \"undefined\") {\n // window is undefined in node.js\n win = {};\n} else {\n win = window;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n\n var touchMap = {};\n var cssSupports = win.CSS && win.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function (val) {\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n return touchMap[val] = cssSupports ? win.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\n\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\nvar SUPPORT_TOUCH = 'ontouchstart' in win;\nvar SUPPORT_POINTER_EVENTS = prefixed(win, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\nvar COMPUTE_INTERVAL = 25;\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * @private\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * @private\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\n\nfunction boolOrFn(val, args) {\n if (typeof val === TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n\n return val;\n}\n\n/**\n * @private\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * @private\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\n\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n } // pan-x OR pan-y\n\n\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n } // manipulation\n\n\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\n/**\n * @private\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\n\nvar TouchAction =\n/*#__PURE__*/\nfunction () {\n function TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n /**\n * @private\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n\n\n var _proto = TouchAction.prototype;\n\n _proto.set = function set(value) {\n // find out the touch-action by the event handlers\n if (value === TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n\n this.actions = value.toLowerCase().trim();\n };\n /**\n * @private\n * just re-set the touchAction value\n */\n\n\n _proto.update = function update() {\n this.set(this.manager.options.touchAction);\n };\n /**\n * @private\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n\n\n _proto.compute = function compute() {\n var actions = [];\n each(this.manager.recognizers, function (recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n };\n /**\n * @private\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n\n\n _proto.preventDefaults = function preventDefaults(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection; // if the touch action did prevented once this session\n\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n // do not prevent defaults if this is a tap gesture\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone || hasPanY && direction & DIRECTION_HORIZONTAL || hasPanX && direction & DIRECTION_VERTICAL) {\n return this.preventSrc(srcEvent);\n }\n };\n /**\n * @private\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n\n\n _proto.preventSrc = function preventSrc(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n };\n\n return TouchAction;\n}();\n\n/**\n * @private\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node === parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}\n\n/**\n * @private\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\n\nfunction getCenter(pointers) {\n var pointersLength = pointers.length; // no need to loop when only one touch\n\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0;\n var y = 0;\n var i = 0;\n\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * @private\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\n\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * @private\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\n\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.sqrt(x * x + y * y);\n}\n\n/**\n * @private\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\n\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * @private\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\n\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center; // let { offsetDelta:offset = {}, prevDelta = {}, prevInput = {} } = session;\n // jscs throwing error on defalut destructured values and without defaults tests fail\n\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * @private\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * @private\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\n\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\n\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\n\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input;\n var deltaTime = input.timeStamp - last.timeStamp;\n var velocity;\n var velocityX;\n var velocityY;\n var direction;\n\n if (input.eventType !== INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = abs(v.x) > abs(v.y) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n* @private\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\n\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length; // store the first input to calculate the distance and direction\n\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n } // to compute scale and rotation we need to store the multiple touches\n\n\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput,\n firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = abs(overallVelocity.x) > abs(overallVelocity.y) ? overallVelocity.x : overallVelocity.y;\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n input.maxPointers = !session.prevInput ? input.pointers.length : input.pointers.length > session.prevInput.maxPointers ? input.pointers.length : session.prevInput.maxPointers;\n computeIntervalInputData(session, input); // find the correct target\n\n var target = manager.element;\n var srcEvent = input.srcEvent;\n var srcEventTarget;\n\n if (srcEvent.composedPath) {\n srcEventTarget = srcEvent.composedPath()[0];\n } else if (srcEvent.path) {\n srcEventTarget = srcEvent.path[0];\n } else {\n srcEventTarget = srcEvent.target;\n }\n\n if (hasParent(srcEventTarget, target)) {\n target = srcEventTarget;\n }\n\n input.target = target;\n}\n\n/**\n * @private\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\n\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = eventType & INPUT_START && pointersLen - changedPointersLen === 0;\n var isFinal = eventType & (INPUT_END | INPUT_CANCEL) && pointersLen - changedPointersLen === 0;\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n } // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n\n\n input.eventType = eventType; // compute scale, rotation etc\n\n computeInputData(manager, input); // emit secret event\n\n manager.emit('hammer.input', input);\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * @private\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * @private\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return doc.defaultView || doc.parentWindow || window;\n}\n\n/**\n * @private\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\n\nvar Input =\n/*#__PURE__*/\nfunction () {\n function Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget; // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n\n this.domHandler = function (ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n }\n /**\n * @private\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n\n\n var _proto = Input.prototype;\n\n _proto.handler = function handler() {};\n /**\n * @private\n * bind the events\n */\n\n\n _proto.init = function init() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n /**\n * @private\n * unbind the events\n */\n\n\n _proto.destroy = function destroy() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n\n return Input;\n}();\n\n/**\n * @private\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n\n while (i < src.length) {\n if (findByKey && src[i][findByKey] == find || !findByKey && src[i] === find) {\n // do not use === here, test fails\n return i;\n }\n\n i++;\n }\n\n return -1;\n }\n}\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n}; // in IE10 the pointer types is defined as an enum\n\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n\n};\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; // IE10 has prefixed support, and case-sensitive\n\nif (win.MSPointerEvent && !win.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n/**\n * @private\n * Pointer events input\n * @constructor\n * @extends Input\n */\n\n\nvar PointerEventInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(PointerEventInput, _Input);\n\n function PointerEventInput() {\n var _this;\n\n var proto = PointerEventInput.prototype;\n proto.evEl = POINTER_ELEMENT_EVENTS;\n proto.evWin = POINTER_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.store = _this.manager.session.pointerEvents = [];\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = PointerEventInput.prototype;\n\n _proto.handler = function handler(ev) {\n var store = this.store;\n var removePointer = false;\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n var isTouch = pointerType === INPUT_TYPE_TOUCH; // get index of the event in the store\n\n var storeIndex = inArray(store, ev.pointerId, 'pointerId'); // start and mouse must be down\n\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n } // it not found, so the pointer hasn't been down (so it's probably a hover)\n\n\n if (storeIndex < 0) {\n return;\n } // update the event in the store\n\n\n store[storeIndex] = ev;\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n };\n\n return PointerEventInput;\n}(Input);\n\n/**\n * @private\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * @private\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\n\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function (a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\n\nvar TouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(TouchInput, _Input);\n\n function TouchInput() {\n var _this;\n\n TouchInput.prototype.evTarget = TOUCH_TARGET_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.targetIds = {}; // this.evTarget = TOUCH_TARGET_EVENTS;\n\n return _this;\n }\n\n var _proto = TouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return TouchInput;\n}(Input);\n\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds; // when there is only one touch, the process can be simplified\n\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i;\n var targetTouches;\n var changedTouches = toArray(ev.changedTouches);\n var changedTargetTouches = [];\n var target = this.target; // get target touches from touches\n\n targetTouches = allTouches.filter(function (touch) {\n return hasParent(touch.target, target);\n }); // collect touches\n\n if (type === INPUT_START) {\n i = 0;\n\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n } // filter changed touches to only contain touches that exist in the collected target ids\n\n\n i = 0;\n\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n } // cleanup removed touches\n\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [// merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), changedTargetTouches];\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n/**\n * @private\n * Mouse events input\n * @constructor\n * @extends Input\n */\n\nvar MouseInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(MouseInput, _Input);\n\n function MouseInput() {\n var _this;\n\n var proto = MouseInput.prototype;\n proto.evEl = MOUSE_ELEMENT_EVENTS;\n proto.evWin = MOUSE_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.pressed = false; // mousedown state\n\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = MouseInput.prototype;\n\n _proto.handler = function handler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type]; // on start we want to have the left mouse button down\n\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n } // mouse must be down\n\n\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n };\n\n return MouseInput;\n}(Input);\n\n/**\n * @private\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction setLastTouch(eventData) {\n var _eventData$changedPoi = eventData.changedPointers,\n touch = _eventData$changedPoi[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {\n x: touch.clientX,\n y: touch.clientY\n };\n var lts = this.lastTouches;\n this.lastTouches.push(lastTouch);\n\n var removeLastTouch = function removeLastTouch() {\n var i = lts.indexOf(lastTouch);\n\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX;\n var y = eventData.srcEvent.clientY;\n\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x);\n var dy = Math.abs(y - t.y);\n\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n\n return false;\n}\n\nvar TouchMouseInput =\n/*#__PURE__*/\nfunction () {\n var TouchMouseInput =\n /*#__PURE__*/\n function (_Input) {\n _inheritsLoose(TouchMouseInput, _Input);\n\n function TouchMouseInput(_manager, callback) {\n var _this;\n\n _this = _Input.call(this, _manager, callback) || this;\n\n _this.handler = function (manager, inputEvent, inputData) {\n var isTouch = inputData.pointerType === INPUT_TYPE_TOUCH;\n var isMouse = inputData.pointerType === INPUT_TYPE_MOUSE;\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n } // when we're in a touch event, record touches to de-dupe synthetic mouse event\n\n\n if (isTouch) {\n recordTouches.call(_assertThisInitialized(_assertThisInitialized(_this)), inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(_assertThisInitialized(_assertThisInitialized(_this)), inputData)) {\n return;\n }\n\n _this.callback(manager, inputEvent, inputData);\n };\n\n _this.touch = new TouchInput(_this.manager, _this.handler);\n _this.mouse = new MouseInput(_this.manager, _this.handler);\n _this.primaryTouch = null;\n _this.lastTouches = [];\n return _this;\n }\n /**\n * @private\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n\n\n var _proto = TouchMouseInput.prototype;\n\n /**\n * @private\n * remove the event listeners\n */\n _proto.destroy = function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n };\n\n return TouchMouseInput;\n }(Input);\n\n return TouchMouseInput;\n}();\n\n/**\n * @private\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\n\nfunction createInputInstance(manager) {\n var Type; // let inputClass = manager.options.inputClass;\n\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n\n return new Type(manager, inputHandler);\n}\n\n/**\n * @private\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\n\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n\n return false;\n}\n\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * @private\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * @private\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n\n if (manager) {\n return manager.get(otherRecognizer);\n }\n\n return otherRecognizer;\n}\n\n/**\n * @private\n * get a usable string, used as event postfix\n * @param {constant} state\n * @returns {String} state\n */\n\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n\n return '';\n}\n\n/**\n * @private\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n\n/**\n * @private\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\n\nvar Recognizer =\n/*#__PURE__*/\nfunction () {\n function Recognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = _extends({\n enable: true\n }, options);\n this.id = uniqueId();\n this.manager = null; // default is enable true\n\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n\n\n var _proto = Recognizer.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // also update the touchAction, in case something changed about the directions/enabled state\n\n this.manager && this.manager.touchAction.update();\n return this;\n };\n /**\n * @private\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.recognizeWith = function recognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRecognizeWith = function dropRecognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n };\n /**\n * @private\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.requireFailure = function requireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRequireFailure = function dropRequireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n\n return this;\n };\n /**\n * @private\n * has require failures boolean\n * @returns {boolean}\n */\n\n\n _proto.hasRequireFailures = function hasRequireFailures() {\n return this.requireFail.length > 0;\n };\n /**\n * @private\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n\n\n _proto.canRecognizeWith = function canRecognizeWith(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n };\n /**\n * @private\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n\n\n _proto.emit = function emit(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n } // 'panstart' and 'panmove'\n\n\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) {\n // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n } // panend and pancancel\n\n\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n };\n /**\n * @private\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n\n\n _proto.tryEmit = function tryEmit(input) {\n if (this.canEmit()) {\n return this.emit(input);\n } // it's failing anyway\n\n\n this.state = STATE_FAILED;\n };\n /**\n * @private\n * can we emit?\n * @returns {boolean}\n */\n\n\n _proto.canEmit = function canEmit() {\n var i = 0;\n\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n\n i++;\n }\n\n return true;\n };\n /**\n * @private\n * update the recognizer\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign$1({}, inputData); // is is enabled and allow recognizing?\n\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n } // reset when we've reached the end\n\n\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone); // the recognizer has recognized a gesture\n // so trigger an event\n\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n };\n /**\n * @private\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {constant} STATE\n */\n\n /* jshint ignore:start */\n\n\n _proto.process = function process(inputData) {};\n /* jshint ignore:end */\n\n /**\n * @private\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n\n\n _proto.getTouchAction = function getTouchAction() {};\n /**\n * @private\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n\n\n _proto.reset = function reset() {};\n\n return Recognizer;\n}();\n\n/**\n * @private\n * A tap is recognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\n\nvar TapRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(TapRecognizer, _Recognizer);\n\n function TapRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300,\n // max time between the multi-tap taps\n time: 250,\n // max time of the pointer to be down (like finger on the screen)\n threshold: 9,\n // a minimal movement is ok, but keep it low\n posThreshold: 10\n }, options)) || this; // previous time and center,\n // used for tap counting\n\n _this.pTime = false;\n _this.pCenter = false;\n _this._timer = null;\n _this._input = null;\n _this.count = 0;\n return _this;\n }\n\n var _proto = TapRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_MANIPULATION];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n this.reset();\n\n if (input.eventType & INPUT_START && this.count === 0) {\n return this.failTimeout();\n } // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType !== INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? input.timeStamp - this.pTime < options.interval : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input; // if tap count matches we have recognized it,\n // else it has began recognizing...\n\n var tapCount = this.count % options.taps;\n\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.interval);\n return STATE_BEGAN;\n }\n }\n }\n\n return STATE_FAILED;\n };\n\n _proto.failTimeout = function failTimeout() {\n var _this3 = this;\n\n this._timer = setTimeout(function () {\n _this3.state = STATE_FAILED;\n }, this.options.interval);\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit() {\n if (this.state === STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return TapRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\n\nvar AttrRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(AttrRecognizer, _Recognizer);\n\n function AttrRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _Recognizer.call(this, _extends({\n pointers: 1\n }, options)) || this;\n }\n /**\n * @private\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n\n\n var _proto = AttrRecognizer.prototype;\n\n _proto.attrTest = function attrTest(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n };\n /**\n * @private\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n\n\n _proto.process = function process(input) {\n var state = this.state;\n var eventType = input.eventType;\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input); // on cancel input and we've recognized before, return STATE_CANCELLED\n\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n\n return state | STATE_CHANGED;\n }\n\n return STATE_FAILED;\n };\n\n return AttrRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * direction cons to string\n * @param {constant} direction\n * @returns {String}\n */\n\nfunction directionStr(direction) {\n if (direction === DIRECTION_DOWN) {\n return 'down';\n } else if (direction === DIRECTION_UP) {\n return 'up';\n } else if (direction === DIRECTION_LEFT) {\n return 'left';\n } else if (direction === DIRECTION_RIGHT) {\n return 'right';\n }\n\n return '';\n}\n\n/**\n * @private\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PanRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PanRecognizer, _AttrRecognizer);\n\n function PanRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _AttrRecognizer.call(this, _extends({\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n }, options)) || this;\n _this.pX = null;\n _this.pY = null;\n return _this;\n }\n\n var _proto = PanRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n var direction = this.options.direction;\n var actions = [];\n\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n\n return actions;\n };\n\n _proto.directionTest = function directionTest(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY; // lock to axis?\n\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = x === 0 ? DIRECTION_NONE : x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x !== this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = y === 0 ? DIRECTION_NONE : y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y !== this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n };\n\n _proto.attrTest = function attrTest(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && ( // replace with a super call\n this.state & STATE_BEGAN || !(this.state & STATE_BEGAN) && this.directionTest(input));\n };\n\n _proto.emit = function emit(input) {\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PanRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar SwipeRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(SwipeRecognizer, _AttrRecognizer);\n\n function SwipeRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n }, options)) || this;\n }\n\n var _proto = SwipeRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n };\n\n _proto.attrTest = function attrTest(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return _AttrRecognizer.prototype.attrTest.call(this, input) && direction & input.offsetDirection && input.distance > this.options.threshold && input.maxPointers === this.options.pointers && abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n };\n\n _proto.emit = function emit(input) {\n var direction = directionStr(input.offsetDirection);\n\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n };\n\n return SwipeRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PinchRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PinchRecognizer, _AttrRecognizer);\n\n function PinchRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'pinch',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = PinchRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n _proto.emit = function emit(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PinchRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar RotateRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(RotateRecognizer, _AttrRecognizer);\n\n function RotateRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'rotate',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = RotateRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n return RotateRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\n\nvar PressRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(PressRecognizer, _Recognizer);\n\n function PressRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'press',\n pointers: 1,\n time: 251,\n // minimal time of the pointer to be pressed\n threshold: 9\n }, options)) || this;\n _this._timer = null;\n _this._input = null;\n return _this;\n }\n\n var _proto = PressRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_AUTO];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n this._input = input; // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n if (!validMovement || !validPointers || input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.time);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && input.eventType & INPUT_END) {\n this.manager.emit(this.options.event + \"up\", input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return PressRecognizer;\n}(Recognizer);\n\nvar defaults = {\n /**\n * @private\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * @private\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @private\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * @private\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * @private\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * @private\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * @private\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: \"none\",\n\n /**\n * @private\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: \"none\",\n\n /**\n * @private\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: \"none\",\n\n /**\n * @private\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: \"none\",\n\n /**\n * @private\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: \"none\",\n\n /**\n * @private\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: \"rgba(0,0,0,0)\"\n }\n};\n/**\n * @private\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * This is separated with other defaults because of tree-shaking.\n * @type {Array}\n */\n\nvar preset = [[RotateRecognizer, {\n enable: false\n}], [PinchRecognizer, {\n enable: false\n}, ['rotate']], [SwipeRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}], [PanRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}, ['swipe']], [TapRecognizer], [TapRecognizer, {\n event: 'doubletap',\n taps: 2\n}, ['tap']], [PressRecognizer]];\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n/**\n * @private\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\n\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n\n if (!element.style) {\n return;\n }\n\n var prop;\n each(manager.options.cssProps, function (value, name) {\n prop = prefixed(element.style, name);\n\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || \"\";\n }\n });\n\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n/**\n * @private\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\n\n\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent(\"Event\");\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n/**\n* @private\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager(element, options) {\n var _this = this;\n\n this.options = assign$1({}, defaults, options || {});\n this.options.inputTarget = this.options.inputTarget || element;\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n toggleCssProps(this, true);\n each(this.options.recognizers, function (item) {\n var recognizer = _this.add(new item[0](item[1]));\n\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n\n\n var _proto = Manager.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // Options that need a little more setup\n\n if (options.touchAction) {\n this.touchAction.update();\n }\n\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n\n return this;\n };\n /**\n * @private\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n\n\n _proto.stop = function stop(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n };\n /**\n * @private\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n var session = this.session;\n\n if (session.stopped) {\n return;\n } // run the touch-action polyfill\n\n\n this.touchAction.preventDefaults(inputData);\n var recognizer;\n var recognizers = this.recognizers; // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n\n var curRecognizer = session.curRecognizer; // reset when the last recognizer is recognized\n // or when we're in a new session\n\n if (!curRecognizer || curRecognizer && curRecognizer.state & STATE_RECOGNIZED) {\n session.curRecognizer = null;\n curRecognizer = null;\n }\n\n var i = 0;\n\n while (i < recognizers.length) {\n recognizer = recognizers[i]; // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer === curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) {\n // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n } // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n\n\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n session.curRecognizer = recognizer;\n curRecognizer = recognizer;\n }\n\n i++;\n }\n };\n /**\n * @private\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n\n\n _proto.get = function get(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event === recognizer) {\n return recognizers[i];\n }\n }\n\n return null;\n };\n /**\n * @private add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n\n\n _proto.add = function add(recognizer) {\n if (invokeArrayArg(recognizer, \"add\", this)) {\n return this;\n } // remove existing\n\n\n var existing = this.get(recognizer.options.event);\n\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n this.touchAction.update();\n return recognizer;\n };\n /**\n * @private\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n\n\n _proto.remove = function remove(recognizer) {\n if (invokeArrayArg(recognizer, \"remove\", this)) {\n return this;\n }\n\n var targetRecognizer = this.get(recognizer); // let's make sure this recognizer exists\n\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, targetRecognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n };\n /**\n * @private\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n\n\n _proto.on = function on(events, handler) {\n if (events === undefined || handler === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n };\n /**\n * @private unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n\n\n _proto.off = function off(events, handler) {\n if (events === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n };\n /**\n * @private emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n\n\n _proto.emit = function emit(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n } // no handlers, so skip it all\n\n\n var handlers = this.handlers[event] && this.handlers[event].slice();\n\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n };\n /**\n * @private\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n\n\n _proto.destroy = function destroy() {\n this.element && toggleCssProps(this, false);\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n };\n\n return Manager;\n}();\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Touch events input\n * @constructor\n * @extends Input\n */\n\nvar SingleTouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(SingleTouchInput, _Input);\n\n function SingleTouchInput() {\n var _this;\n\n var proto = SingleTouchInput.prototype;\n proto.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n proto.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.started = false;\n return _this;\n }\n\n var _proto = SingleTouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; // should we handle the touch events?\n\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type); // when done, reset the started state\n\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return SingleTouchInput;\n}(Input);\n\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\n/**\n * @private\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = \"DEPRECATED METHOD: \" + name + \"\\n\" + message + \" AT \\n\";\n return function () {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '').replace(/^\\s+at\\s+/gm, '').replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n var log = window.console && (window.console.warn || window.console.log);\n\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n\n return method.apply(this, arguments);\n };\n}\n\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\n\nvar extend = deprecate(function (dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n\n while (i < keys.length) {\n if (!merge || merge && dest[keys[i]] === undefined) {\n dest[keys[i]] = src[keys[i]];\n }\n\n i++;\n }\n\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * @private\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\n\nvar merge = deprecate(function (dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * @private\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\n\nfunction inherit(child, base, properties) {\n var baseP = base.prototype;\n var childP;\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign$1(childP, properties);\n }\n}\n\n/**\n * @private\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * @private\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\nvar Hammer =\n/*#__PURE__*/\nfunction () {\n var Hammer =\n /**\n * @private\n * @const {string}\n */\n function Hammer(element, options) {\n if (options === void 0) {\n options = {};\n }\n\n return new Manager(element, _extends({\n recognizers: preset.concat()\n }, options));\n };\n\n Hammer.VERSION = \"2.0.17-rc\";\n Hammer.DIRECTION_ALL = DIRECTION_ALL;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.DIRECTION_LEFT = DIRECTION_LEFT;\n Hammer.DIRECTION_RIGHT = DIRECTION_RIGHT;\n Hammer.DIRECTION_UP = DIRECTION_UP;\n Hammer.DIRECTION_HORIZONTAL = DIRECTION_HORIZONTAL;\n Hammer.DIRECTION_VERTICAL = DIRECTION_VERTICAL;\n Hammer.DIRECTION_NONE = DIRECTION_NONE;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.INPUT_START = INPUT_START;\n Hammer.INPUT_MOVE = INPUT_MOVE;\n Hammer.INPUT_END = INPUT_END;\n Hammer.INPUT_CANCEL = INPUT_CANCEL;\n Hammer.STATE_POSSIBLE = STATE_POSSIBLE;\n Hammer.STATE_BEGAN = STATE_BEGAN;\n Hammer.STATE_CHANGED = STATE_CHANGED;\n Hammer.STATE_ENDED = STATE_ENDED;\n Hammer.STATE_RECOGNIZED = STATE_RECOGNIZED;\n Hammer.STATE_CANCELLED = STATE_CANCELLED;\n Hammer.STATE_FAILED = STATE_FAILED;\n Hammer.Manager = Manager;\n Hammer.Input = Input;\n Hammer.TouchAction = TouchAction;\n Hammer.TouchInput = TouchInput;\n Hammer.MouseInput = MouseInput;\n Hammer.PointerEventInput = PointerEventInput;\n Hammer.TouchMouseInput = TouchMouseInput;\n Hammer.SingleTouchInput = SingleTouchInput;\n Hammer.Recognizer = Recognizer;\n Hammer.AttrRecognizer = AttrRecognizer;\n Hammer.Tap = TapRecognizer;\n Hammer.Pan = PanRecognizer;\n Hammer.Swipe = SwipeRecognizer;\n Hammer.Pinch = PinchRecognizer;\n Hammer.Rotate = RotateRecognizer;\n Hammer.Press = PressRecognizer;\n Hammer.on = addEventListeners;\n Hammer.off = removeEventListeners;\n Hammer.each = each;\n Hammer.merge = merge;\n Hammer.extend = extend;\n Hammer.bindFn = bindFn;\n Hammer.assign = assign$1;\n Hammer.inherit = inherit;\n Hammer.bindFn = bindFn;\n Hammer.prefixed = prefixed;\n Hammer.toArray = toArray;\n Hammer.inArray = inArray;\n Hammer.uniqueArray = uniqueArray;\n Hammer.splitStr = splitStr;\n Hammer.boolOrFn = boolOrFn;\n Hammer.hasParent = hasParent;\n Hammer.addEventListeners = addEventListeners;\n Hammer.removeEventListeners = removeEventListeners;\n Hammer.defaults = assign$1({}, defaults, {\n preset: preset\n });\n return Hammer;\n}();\n\n// style loader but by script tag, not by the loader.\n\nvar defaults$1 = Hammer.defaults;\n\nexport default Hammer;\nexport { INPUT_START, INPUT_MOVE, INPUT_END, INPUT_CANCEL, STATE_POSSIBLE, STATE_BEGAN, STATE_CHANGED, STATE_ENDED, STATE_RECOGNIZED, STATE_CANCELLED, STATE_FAILED, DIRECTION_NONE, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN, DIRECTION_HORIZONTAL, DIRECTION_VERTICAL, DIRECTION_ALL, Manager, Input, TouchAction, TouchInput, MouseInput, PointerEventInput, TouchMouseInput, SingleTouchInput, Recognizer, AttrRecognizer, TapRecognizer as Tap, PanRecognizer as Pan, SwipeRecognizer as Swipe, PinchRecognizer as Pinch, RotateRecognizer as Rotate, PressRecognizer as Press, addEventListeners as on, removeEventListeners as off, each, merge, extend, assign$1 as assign, inherit, bindFn, prefixed, toArray, inArray, uniqueArray, splitStr, boolOrFn, hasParent, addEventListeners, removeEventListeners, defaults$1 as defaults };\n//# sourceMappingURL=hammer.esm.js.map\n","import Hammer from '@egjs/hammerjs';\nimport { State } from '../State';\nexport const CONTENT_TOUCHES_DELAY = 240;\nexport const CONTENT_TOUCHES_QUICK_TAP_END_DELAY = 50;\nexport const MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD = 0.1;\nexport const MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD = 7;\nexport const DEG_RAD = Math.PI / 180; // Map Hammer values to RNGH\n\nexport const EventMap = {\n [Hammer.INPUT_START]: State.BEGAN,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.FAILED\n};\nexport const Direction = {\n RIGHT: 1,\n LEFT: 2,\n UP: 4,\n DOWN: 8\n};\nexport const DirectionMap = {\n [Hammer.DIRECTION_RIGHT]: Direction.RIGHT,\n [Hammer.DIRECTION_LEFT]: Direction.LEFT,\n [Hammer.DIRECTION_UP]: Direction.UP,\n [Hammer.DIRECTION_DOWN]: Direction.DOWN\n};\nexport const HammerInputNames = {\n [Hammer.INPUT_START]: 'START',\n [Hammer.INPUT_MOVE]: 'MOVE',\n [Hammer.INPUT_END]: 'END',\n [Hammer.INPUT_CANCEL]: 'CANCEL'\n};\nexport const HammerDirectionNames = {\n [Hammer.DIRECTION_HORIZONTAL]: 'HORIZONTAL',\n [Hammer.DIRECTION_UP]: 'UP',\n [Hammer.DIRECTION_DOWN]: 'DOWN',\n [Hammer.DIRECTION_VERTICAL]: 'VERTICAL',\n [Hammer.DIRECTION_NONE]: 'NONE',\n [Hammer.DIRECTION_ALL]: 'ALL',\n [Hammer.DIRECTION_RIGHT]: 'RIGHT',\n [Hammer.DIRECTION_LEFT]: 'LEFT'\n};\n//# sourceMappingURL=constants.js.map","export const gestures = {};\nexport function getHandler(tag) {\n if (tag in gestures) {\n return gestures[tag];\n }\n\n throw new Error(`No handler for tag ${tag}`);\n}\nexport function createGestureHandler(handlerTag, handler) {\n if (handlerTag in gestures) {\n throw new Error(`Handler with tag ${handlerTag} already exists`);\n }\n\n gestures[handlerTag] = handler; // @ts-ignore no types for web handlers yet\n\n gestures[handlerTag].handlerTag = handlerTag;\n}\nexport function dropGestureHandler(handlerTag) {\n // Since React 18, there are cases where componentWillUnmount gets called twice in a row\n // so skip this if the tag was already removed.\n if (!(handlerTag in gestures)) {\n return;\n }\n\n getHandler(handlerTag).destroy(); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\n delete gestures[handlerTag];\n}\nexport function getNodes() {\n return { ...gestures\n };\n}\n//# sourceMappingURL=NodeManager.js.map","// We check for typeof requestAnimationFrame because of SSR\n// Functions are bound to null to avoid issues with scope when using Metro inline requires.\nexport const ghQueueMicrotask = typeof setImmediate === 'function' ? setImmediate.bind(null) : typeof requestAnimationFrame === 'function' ? requestAnimationFrame.bind(null) : queueMicrotask.bind(null);\n//# sourceMappingURL=ghQueueMicrotask.js.map","// TODO(TS) remove if not necessary after rewrite\nexport const isnan = v => Number.isNaN(v); // TODO(TS) remove if not necessary after rewrite\n\nexport const isValidNumber = v => typeof v === 'number' && !Number.isNaN(v);\nexport const TEST_MIN_IF_NOT_NAN = (value, limit) => !isnan(limit) && (limit < 0 && value <= limit || limit >= 0 && value >= limit);\nexport const VEC_LEN_SQ = ({\n x = 0,\n y = 0\n} = {}) => x * x + y * y;\nexport const TEST_MAX_IF_NOT_NAN = (value, max) => !isnan(max) && (max < 0 && value < max || max >= 0 && value > max);\nexport function fireAfterInterval(method, interval) {\n if (!interval) {\n method();\n return null;\n }\n\n return setTimeout(() => method(), interval);\n}\n//# sourceMappingURL=utils.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Hammer from '@egjs/hammerjs';\nimport { State } from '../State';\nimport { CONTENT_TOUCHES_DELAY, CONTENT_TOUCHES_QUICK_TAP_END_DELAY } from './constants';\nimport DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { fireAfterInterval, isValidNumber, isnan } from './utils';\n\nclass PressGestureHandler extends DiscreteGestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"visualFeedbackTimer\", void 0);\n\n _defineProperty(this, \"initialEvent\", null);\n\n _defineProperty(this, \"shouldDelayTouches\", true);\n }\n\n get name() {\n return 'press';\n }\n\n get minDurationMs() {\n // @ts-ignore FIXME(TS)\n return isnan(this.config.minDurationMs) ? 5 : this.config.minDurationMs;\n }\n\n get maxDist() {\n return isnan(this.config.maxDist) ? 9 : this.config.maxDist;\n }\n\n get NativeGestureClass() {\n return Hammer.Press;\n }\n\n simulateCancelEvent(inputData) {\n // Long press never starts so we can't rely on the running event boolean.\n this.hasGestureFailed = true;\n this.cancelEvent(inputData);\n }\n\n updateHasCustomActivationCriteria({\n shouldCancelWhenOutside,\n maxDistSq\n }) {\n return shouldCancelWhenOutside || !isValidNumber(maxDistSq);\n }\n\n getState(type) {\n return {\n [Hammer.INPUT_START]: State.BEGAN,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.CANCELLED\n }[type];\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n shouldCancelWhenOutside: true,\n maxDistSq: 10\n };\n }\n\n return this.config;\n }\n\n getHammerConfig() {\n return { ...super.getHammerConfig(),\n // threshold: this.maxDist,\n time: this.minDurationMs\n };\n }\n\n onGestureActivated(ev) {\n this.onGestureStart(ev);\n }\n\n shouldDelayTouchForEvent({\n pointerType\n }) {\n // Don't disable event for mouse input\n return this.shouldDelayTouches && pointerType === 'touch';\n }\n\n onGestureStart(ev) {\n this.isGestureRunning = true;\n clearTimeout(this.visualFeedbackTimer);\n this.initialEvent = ev;\n this.visualFeedbackTimer = fireAfterInterval(() => {\n this.sendGestureStartedEvent(this.initialEvent);\n this.initialEvent = null;\n }, this.shouldDelayTouchForEvent(ev) && CONTENT_TOUCHES_DELAY);\n }\n\n sendGestureStartedEvent(ev) {\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.sendEvent({ ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFirst: true\n });\n }\n\n forceInvalidate(event) {\n super.forceInvalidate(event);\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.initialEvent = null;\n }\n\n onRawEvent(ev) {\n super.onRawEvent(ev);\n\n if (this.isGestureRunning) {\n if (ev.isFinal) {\n let timeout;\n\n if (this.visualFeedbackTimer) {\n // Aesthetic timing for a quick tap.\n // We haven't activated the tap right away to emulate iOS `delaysContentTouches`\n // Now we must send the initial activation event and wait a set amount of time before firing the end event.\n timeout = CONTENT_TOUCHES_QUICK_TAP_END_DELAY;\n this.sendGestureStartedEvent(this.initialEvent);\n this.initialEvent = null;\n }\n\n fireAfterInterval(() => {\n this.sendEvent({ ...ev,\n eventType: Hammer.INPUT_END,\n isFinal: true\n }); // @ts-ignore -- this should explicitly support undefined\n\n this.onGestureEnded();\n }, timeout);\n } else {\n this.sendEvent({ ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFinal: false\n });\n }\n }\n }\n\n updateGestureConfig({\n shouldActivateOnStart = false,\n disallowInterruption = false,\n shouldCancelWhenOutside = true,\n minDurationMs = Number.NaN,\n maxDist = Number.NaN,\n minPointers = 1,\n maxPointers = 1,\n ...props\n }) {\n return super.updateGestureConfig({\n shouldActivateOnStart,\n disallowInterruption,\n shouldCancelWhenOutside,\n minDurationMs,\n maxDist,\n minPointers,\n maxPointers,\n ...props\n });\n }\n\n}\n\nexport default PressGestureHandler;\n//# sourceMappingURL=PressGestureHandler.js.map","import Hammer from '@egjs/hammerjs';\nimport { MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD, MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD } from './constants';\nimport DraggingGestureHandler from './DraggingGestureHandler';\nimport { isValidNumber, isnan, TEST_MIN_IF_NOT_NAN, VEC_LEN_SQ } from './utils';\nimport { State } from '../State';\n\nclass PanGestureHandler extends DraggingGestureHandler {\n get name() {\n return 'pan';\n }\n\n get NativeGestureClass() {\n return Hammer.Pan;\n }\n\n getHammerConfig() {\n return { ...super.getHammerConfig(),\n direction: this.getDirection()\n };\n }\n\n getState(type) {\n const nextState = super.getState(type); // Ensure that the first state sent is `BEGAN` and not `ACTIVE`\n\n if (this.previousState === State.UNDETERMINED && nextState === State.ACTIVE) {\n return State.BEGAN;\n }\n\n return nextState;\n }\n\n getDirection() {\n const config = this.getConfig();\n const {\n activeOffsetXStart,\n activeOffsetXEnd,\n activeOffsetYStart,\n activeOffsetYEnd,\n minDist\n } = config;\n let directions = [];\n let horizontalDirections = [];\n\n if (!isnan(minDist)) {\n return Hammer.DIRECTION_ALL;\n }\n\n if (!isnan(activeOffsetXStart)) {\n horizontalDirections.push(Hammer.DIRECTION_LEFT);\n }\n\n if (!isnan(activeOffsetXEnd)) {\n horizontalDirections.push(Hammer.DIRECTION_RIGHT);\n }\n\n if (horizontalDirections.length === 2) {\n horizontalDirections = [Hammer.DIRECTION_HORIZONTAL];\n }\n\n directions = directions.concat(horizontalDirections);\n let verticalDirections = [];\n\n if (!isnan(activeOffsetYStart)) {\n verticalDirections.push(Hammer.DIRECTION_UP);\n }\n\n if (!isnan(activeOffsetYEnd)) {\n verticalDirections.push(Hammer.DIRECTION_DOWN);\n }\n\n if (verticalDirections.length === 2) {\n verticalDirections = [Hammer.DIRECTION_VERTICAL];\n }\n\n directions = directions.concat(verticalDirections);\n\n if (!directions.length) {\n return Hammer.DIRECTION_NONE;\n }\n\n if (directions[0] === Hammer.DIRECTION_HORIZONTAL && directions[1] === Hammer.DIRECTION_VERTICAL) {\n return Hammer.DIRECTION_ALL;\n }\n\n if (horizontalDirections.length && verticalDirections.length) {\n return Hammer.DIRECTION_ALL;\n }\n\n return directions[0];\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n minDistSq: 10\n };\n }\n\n return this.config;\n }\n\n shouldFailUnderCustomCriteria({\n deltaX,\n deltaY\n }, criteria) {\n return !isnan(criteria.failOffsetXStart) && deltaX < criteria.failOffsetXStart || !isnan(criteria.failOffsetXEnd) && deltaX > criteria.failOffsetXEnd || !isnan(criteria.failOffsetYStart) && deltaY < criteria.failOffsetYStart || !isnan(criteria.failOffsetYEnd) && deltaY > criteria.failOffsetYEnd;\n }\n\n shouldActivateUnderCustomCriteria({\n deltaX,\n deltaY,\n velocity\n }, criteria) {\n return !isnan(criteria.activeOffsetXStart) && deltaX < criteria.activeOffsetXStart || !isnan(criteria.activeOffsetXEnd) && deltaX > criteria.activeOffsetXEnd || !isnan(criteria.activeOffsetYStart) && deltaY < criteria.activeOffsetYStart || !isnan(criteria.activeOffsetYEnd) && deltaY > criteria.activeOffsetYEnd || TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ({\n x: deltaX,\n y: deltaY\n }), criteria.minDistSq) || TEST_MIN_IF_NOT_NAN(velocity.x, criteria.minVelocityX) || TEST_MIN_IF_NOT_NAN(velocity.y, criteria.minVelocityY) || TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ(velocity), criteria.minVelocitySq);\n }\n\n shouldMultiFingerPanFail({\n pointerLength,\n scale,\n deltaRotation\n }) {\n if (pointerLength <= 1) {\n return false;\n } // Test if the pan had too much pinching or rotating.\n\n\n const deltaScale = Math.abs(scale - 1);\n const absDeltaRotation = Math.abs(deltaRotation);\n\n if (deltaScale > MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD) {\n // > If the threshold doesn't seem right.\n // You can log the value which it failed at here:\n return true;\n }\n\n if (absDeltaRotation > MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD) {\n // > If the threshold doesn't seem right.\n // You can log the value which it failed at here:\n return true;\n }\n\n return false;\n }\n\n updateHasCustomActivationCriteria(criteria) {\n return isValidNumber(criteria.minDistSq) || isValidNumber(criteria.minVelocityX) || isValidNumber(criteria.minVelocityY) || isValidNumber(criteria.minVelocitySq) || isValidNumber(criteria.activeOffsetXStart) || isValidNumber(criteria.activeOffsetXEnd) || isValidNumber(criteria.activeOffsetYStart) || isValidNumber(criteria.activeOffsetYEnd);\n }\n\n isGestureEnabledForEvent(props, _recognizer, inputData) {\n if (this.shouldFailUnderCustomCriteria(inputData, props)) {\n return {\n failed: true\n };\n }\n\n const velocity = {\n x: inputData.velocityX,\n y: inputData.velocityY\n };\n\n if (this.hasCustomActivationCriteria && this.shouldActivateUnderCustomCriteria({\n deltaX: inputData.deltaX,\n deltaY: inputData.deltaY,\n velocity\n }, props)) {\n if (this.shouldMultiFingerPanFail({\n pointerLength: inputData.maxPointers,\n scale: inputData.scale,\n deltaRotation: inputData.deltaRotation\n })) {\n return {\n failed: true\n };\n }\n\n return {\n success: true\n };\n }\n\n return {\n success: false\n };\n }\n\n}\n\nexport default PanGestureHandler;\n//# sourceMappingURL=PanGestureHandler.js.map","/* eslint-disable eslint-comments/no-unlimited-disable */\n\n/* eslint-disable */\nimport GestureHandler from './GestureHandler';\nimport { PixelRatio } from 'react-native';\n\nclass DraggingGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n transformNativeEvent({\n deltaX,\n deltaY,\n velocityX,\n velocityY,\n center: {\n x,\n y\n }\n }) {\n // @ts-ignore FIXME(TS)\n const rect = this.view.getBoundingClientRect();\n const ratio = PixelRatio.get();\n return {\n translationX: deltaX - (this.__initialX || 0),\n translationY: deltaY - (this.__initialY || 0),\n absoluteX: x,\n absoluteY: y,\n velocityX: velocityX * ratio,\n velocityY: velocityY * ratio,\n x: x - rect.left,\n y: y - rect.top\n };\n }\n\n}\n\nexport default DraggingGestureHandler;\n//# sourceMappingURL=DraggingGestureHandler.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Hammer from '@egjs/hammerjs';\nimport DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { isnan } from './utils';\n\nclass TapGestureHandler extends DiscreteGestureHandler {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"_shouldFireEndEvent\", null);\n\n _defineProperty(this, \"_timer\", void 0);\n\n _defineProperty(this, \"_multiTapTimer\", void 0);\n\n _defineProperty(this, \"onSuccessfulTap\", ev => {\n if (this._getPendingGestures().length) {\n this._shouldFireEndEvent = ev;\n return;\n }\n\n if (ev.eventType === Hammer.INPUT_END) {\n this.sendEvent({ ...ev,\n eventType: Hammer.INPUT_MOVE\n });\n } // When handler gets activated it will turn into State.END immediately.\n\n\n this.sendEvent({ ...ev,\n isFinal: true\n });\n this.onGestureEnded(ev);\n });\n }\n\n // TODO unused?\n get name() {\n return 'tap';\n }\n\n get NativeGestureClass() {\n return Hammer.Tap;\n }\n\n get maxDelayMs() {\n // @ts-ignore TODO(TS) trace down config\n return isnan(this.config.maxDelayMs) ? 300 : this.config.maxDelayMs;\n }\n\n simulateCancelEvent(inputData) {\n if (this.isGestureRunning) {\n this.cancelEvent(inputData);\n }\n }\n\n onGestureActivated(ev) {\n if (this.isGestureRunning) {\n this.onSuccessfulTap(ev);\n }\n }\n\n onRawEvent(ev) {\n super.onRawEvent(ev); // Attempt to create a touch-down event by checking if a valid tap hasn't started yet, then validating the input.\n\n if (!this.hasGestureFailed && !this.isGestureRunning && // Prevent multi-pointer events from misfiring.\n !ev.isFinal) {\n // Tap Gesture start event\n const gesture = this.hammer.get(this.name); // @ts-ignore TODO(TS) trace down config\n\n if (gesture.options.enable(gesture, ev)) {\n clearTimeout(this._multiTapTimer);\n this.onStart(ev);\n this.sendEvent(ev);\n }\n }\n\n if (ev.isFinal && ev.maxPointers > 1) {\n setTimeout(() => {\n // Handle case where one finger presses slightly\n // after the first finger on a multi-tap event\n if (this.isGestureRunning) {\n this.cancelEvent(ev);\n }\n });\n }\n\n if (this.hasGestureFailed) {\n return;\n } // Hammer doesn't send a `cancel` event for taps.\n // Manually fail the event.\n\n\n if (ev.isFinal) {\n // Handle case where one finger presses slightly\n // after the first finger on a multi-tap event\n if (ev.maxPointers > 1) {\n setTimeout(() => {\n if (this.isGestureRunning) {\n this.cancelEvent(ev);\n }\n });\n } // Clear last timer\n\n\n clearTimeout(this._timer); // Create time out for multi-taps.\n\n this._timer = setTimeout(() => {\n this.hasGestureFailed = true;\n this.cancelEvent(ev);\n }, this.maxDelayMs);\n } else if (!this.hasGestureFailed && !this.isGestureRunning) {\n // Tap Gesture start event\n const gesture = this.hammer.get(this.name); // @ts-ignore TODO(TS) trace down config\n\n if (gesture.options.enable(gesture, ev)) {\n clearTimeout(this._multiTapTimer);\n this.onStart(ev);\n this.sendEvent(ev);\n }\n }\n }\n\n getHammerConfig() {\n return { ...super.getHammerConfig(),\n event: this.name,\n // @ts-ignore TODO(TS) trace down config\n taps: isnan(this.config.numberOfTaps) ? 1 : this.config.numberOfTaps,\n interval: this.maxDelayMs,\n time: // @ts-ignore TODO(TS) trace down config\n isnan(this.config.maxDurationMs) || this.config.maxDurationMs == null ? 250 : // @ts-ignore TODO(TS) trace down config\n this.config.maxDurationMs\n };\n }\n\n updateGestureConfig({\n shouldCancelWhenOutside = true,\n maxDeltaX = Number.NaN,\n maxDeltaY = Number.NaN,\n numberOfTaps = 1,\n minDurationMs = 525,\n maxDelayMs = Number.NaN,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- TODO possibly forgotten to use in updateGestureConfig?\n maxDurationMs = Number.NaN,\n maxDist = 2,\n minPointers = 1,\n maxPointers = 1,\n ...props\n }) {\n return super.updateGestureConfig({\n shouldCancelWhenOutside,\n numberOfTaps,\n maxDeltaX,\n maxDeltaY,\n minDurationMs,\n maxDelayMs,\n maxDist,\n minPointers,\n maxPointers,\n ...props\n });\n }\n\n onGestureEnded(...props) {\n clearTimeout(this._timer); // @ts-ignore TODO(TS) check how onGestureEnded works\n\n super.onGestureEnded(...props);\n }\n\n onWaitingEnded(_gesture) {\n if (this._shouldFireEndEvent) {\n this.onSuccessfulTap(this._shouldFireEndEvent);\n this._shouldFireEndEvent = null;\n }\n }\n\n}\n\nexport default TapGestureHandler;\n//# sourceMappingURL=TapGestureHandler.js.map","/* eslint-disable eslint-comments/no-unlimited-disable */\n\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\nimport { State } from '../State';\nimport PressGestureHandler from './PressGestureHandler';\nimport { isnan, isValidNumber } from './utils';\n\nclass LongPressGestureHandler extends PressGestureHandler {\n get minDurationMs() {\n // @ts-ignore FIXNE(TS)\n return isnan(this.config.minDurationMs) ? 251 : this.config.minDurationMs;\n }\n\n get maxDist() {\n // @ts-ignore FIXNE(TS)\n return isnan(this.config.maxDist) ? 9 : this.config.maxDist;\n }\n\n updateHasCustomActivationCriteria({\n maxDistSq\n }) {\n return !isValidNumber(maxDistSq);\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n shouldCancelWhenOutside: true,\n maxDistSq: 10\n };\n }\n\n return this.config;\n }\n\n getHammerConfig() {\n return { ...super.getHammerConfig(),\n // threshold: this.maxDist,\n time: this.minDurationMs\n };\n }\n\n getState(type) {\n return {\n [Hammer.INPUT_START]: State.ACTIVE,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.FAILED\n }[type];\n }\n\n}\n\nexport default LongPressGestureHandler;\n//# sourceMappingURL=LongPressGestureHandler.js.map","import Hammer from '@egjs/hammerjs';\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass PinchGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'pinch';\n }\n\n get NativeGestureClass() {\n return Hammer.Pinch;\n }\n\n transformNativeEvent({\n scale,\n velocity,\n center\n }) {\n return {\n focalX: center.x,\n focalY: center.y,\n velocity,\n scale\n };\n }\n\n}\n\nexport default PinchGestureHandler;\n//# sourceMappingURL=PinchGestureHandler.js.map","import GestureHandler from './GestureHandler';\n/**\n * The base class for **Rotation** and **Pinch** gesture handlers.\n */\n\nclass IndiscreteGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return false;\n }\n\n updateGestureConfig({\n minPointers = 2,\n maxPointers = 2,\n ...props\n }) {\n return super.updateGestureConfig({\n minPointers,\n maxPointers,\n ...props\n });\n }\n\n isGestureEnabledForEvent({\n minPointers,\n maxPointers\n }, _recognizer, {\n maxPointers: pointerLength\n }) {\n if (pointerLength > maxPointers) {\n return {\n failed: true\n };\n }\n\n const validPointerCount = pointerLength >= minPointers;\n return {\n success: validPointerCount\n };\n }\n\n}\n\nexport default IndiscreteGestureHandler;\n//# sourceMappingURL=IndiscreteGestureHandler.js.map","import Hammer from '@egjs/hammerjs';\nimport { DEG_RAD } from './constants';\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass RotationGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'rotate';\n }\n\n get NativeGestureClass() {\n return Hammer.Rotate;\n }\n\n transformNativeEvent({\n rotation,\n velocity,\n center\n }) {\n var _this$initialRotation;\n\n return {\n rotation: (rotation - ((_this$initialRotation = this.initialRotation) !== null && _this$initialRotation !== void 0 ? _this$initialRotation : 0)) * DEG_RAD,\n anchorX: center.x,\n anchorY: center.y,\n velocity\n };\n }\n\n}\n\nexport default RotationGestureHandler;\n//# sourceMappingURL=RotationGestureHandler.js.map","/* eslint-disable eslint-comments/no-unlimited-disable */\n\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\nimport { Direction } from './constants';\nimport { GesturePropError } from './Errors';\nimport DraggingGestureHandler from './DraggingGestureHandler';\nimport { isnan } from './utils';\n\nclass FlingGestureHandler extends DraggingGestureHandler {\n get name() {\n return 'swipe';\n }\n\n get NativeGestureClass() {\n return Hammer.Swipe;\n }\n\n onGestureActivated(event) {\n this.sendEvent({ ...event,\n eventType: Hammer.INPUT_MOVE,\n isFinal: false,\n isFirst: true\n });\n this.isGestureRunning = false;\n this.hasGestureFailed = false;\n this.sendEvent({ ...event,\n eventType: Hammer.INPUT_END,\n isFinal: true\n });\n }\n\n onRawEvent(ev) {\n super.onRawEvent(ev);\n\n if (this.hasGestureFailed) {\n return;\n } // Hammer doesn't send a `cancel` event for taps.\n // Manually fail the event.\n\n\n if (ev.isFinal) {\n setTimeout(() => {\n if (this.isGestureRunning) {\n this.cancelEvent(ev);\n }\n });\n } else if (!this.hasGestureFailed && !this.isGestureRunning) {\n // Tap Gesture start event\n const gesture = this.hammer.get(this.name); // @ts-ignore FIXME(TS)\n\n if (gesture.options.enable(gesture, ev)) {\n this.onStart(ev);\n this.sendEvent(ev);\n }\n }\n }\n\n getHammerConfig() {\n return {\n // @ts-ignore FIXME(TS)\n pointers: this.config.numberOfPointers,\n direction: this.getDirection()\n };\n }\n\n getTargetDirections(direction) {\n const directions = [];\n\n if (direction & Direction.RIGHT) {\n directions.push(Hammer.DIRECTION_RIGHT);\n }\n\n if (direction & Direction.LEFT) {\n directions.push(Hammer.DIRECTION_LEFT);\n }\n\n if (direction & Direction.UP) {\n directions.push(Hammer.DIRECTION_UP);\n }\n\n if (direction & Direction.DOWN) {\n directions.push(Hammer.DIRECTION_DOWN);\n } // const hammerDirection = directions.reduce((a, b) => a | b, 0);\n\n\n return directions;\n }\n\n getDirection() {\n // @ts-ignore FIXME(TS)\n const {\n direction\n } = this.getConfig();\n let directions = [];\n\n if (direction & Direction.RIGHT) {\n directions.push(Hammer.DIRECTION_HORIZONTAL);\n }\n\n if (direction & Direction.LEFT) {\n directions.push(Hammer.DIRECTION_HORIZONTAL);\n }\n\n if (direction & Direction.UP) {\n directions.push(Hammer.DIRECTION_VERTICAL);\n }\n\n if (direction & Direction.DOWN) {\n directions.push(Hammer.DIRECTION_VERTICAL);\n }\n\n directions = [...new Set(directions)];\n if (directions.length === 0) return Hammer.DIRECTION_NONE;\n if (directions.length === 1) return directions[0];\n return Hammer.DIRECTION_ALL;\n }\n\n isGestureEnabledForEvent({\n numberOfPointers\n }, _recognizer, {\n maxPointers: pointerLength\n }) {\n const validPointerCount = pointerLength === numberOfPointers;\n\n if (!validPointerCount && this.isGestureRunning) {\n return {\n failed: true\n };\n }\n\n return {\n success: validPointerCount\n };\n }\n\n updateGestureConfig({\n numberOfPointers = 1,\n direction,\n ...props\n }) {\n if (isnan(direction) || typeof direction !== 'number') {\n throw new GesturePropError('direction', direction, 'number');\n }\n\n return super.updateGestureConfig({\n numberOfPointers,\n direction,\n ...props\n });\n }\n\n}\n\nexport default FlingGestureHandler;\n//# sourceMappingURL=FlingGestureHandler.js.map","export class GesturePropError extends Error {\n constructor(name, value, expectedType) {\n super(`Invalid property \\`${name}: ${value}\\` expected \\`${expectedType}\\``);\n }\n\n}\n//# sourceMappingURL=Errors.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { findNodeHandle } from 'react-native';\nimport PointerEventManager from './PointerEventManager';\nimport { State } from '../../State';\nimport { isPointerInBounds } from '../utils';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport KeyboardEventManager from './KeyboardEventManager';\nexport class GestureHandlerWebDelegate {\n constructor() {\n _defineProperty(this, \"isInitialized\", false);\n\n _defineProperty(this, \"view\", void 0);\n\n _defineProperty(this, \"gestureHandler\", void 0);\n\n _defineProperty(this, \"eventManagers\", []);\n\n _defineProperty(this, \"defaultViewStyles\", {\n userSelect: '',\n touchAction: ''\n });\n }\n\n getView() {\n return this.view;\n }\n\n init(viewRef, handler) {\n if (!viewRef) {\n throw new Error(`Cannot find HTML Element for handler ${handler.getTag()}`);\n }\n\n this.isInitialized = true;\n this.gestureHandler = handler;\n this.view = findNodeHandle(viewRef);\n this.defaultViewStyles = {\n userSelect: this.view.style.userSelect,\n touchAction: this.view.style.touchAction\n };\n const config = handler.getConfig();\n this.setUserSelect(config.enabled);\n this.setTouchAction(config.enabled);\n this.setContextMenu(config.enabled);\n this.eventManagers.push(new PointerEventManager(this.view));\n this.eventManagers.push(new KeyboardEventManager(this.view));\n this.eventManagers.forEach(manager => this.gestureHandler.attachEventManager(manager));\n }\n\n isPointerInBounds({\n x,\n y\n }) {\n return isPointerInBounds(this.view, {\n x,\n y\n });\n }\n\n measureView() {\n const rect = this.view.getBoundingClientRect();\n return {\n pageX: rect.left,\n pageY: rect.top,\n width: rect.width,\n height: rect.height\n };\n }\n\n reset() {\n this.eventManagers.forEach(manager => manager.resetManager());\n }\n\n tryResetCursor() {\n const config = this.gestureHandler.getConfig();\n\n if (config.activeCursor && config.activeCursor !== 'auto' && this.gestureHandler.getState() === State.ACTIVE) {\n this.view.style.cursor = 'auto';\n }\n }\n\n shouldDisableContextMenu(config) {\n return config.enableContextMenu === undefined && this.gestureHandler.isButtonInConfig(MouseButton.RIGHT) || config.enableContextMenu === false;\n }\n\n addContextMenuListeners(config) {\n if (this.shouldDisableContextMenu(config)) {\n this.view.addEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.addEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n removeContextMenuListeners(config) {\n if (this.shouldDisableContextMenu(config)) {\n this.view.removeEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.removeEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n disableContextMenu(e) {\n e.preventDefault();\n }\n\n enableContextMenu(e) {\n e.stopPropagation();\n }\n\n setUserSelect(isHandlerEnabled) {\n const {\n userSelect\n } = this.gestureHandler.getConfig();\n this.view.style['userSelect'] = isHandlerEnabled ? userSelect !== null && userSelect !== void 0 ? userSelect : 'none' : this.defaultViewStyles.userSelect;\n this.view.style['webkitUserSelect'] = isHandlerEnabled ? userSelect !== null && userSelect !== void 0 ? userSelect : 'none' : this.defaultViewStyles.userSelect;\n }\n\n setTouchAction(isHandlerEnabled) {\n const {\n touchAction\n } = this.gestureHandler.getConfig();\n this.view.style['touchAction'] = isHandlerEnabled ? touchAction !== null && touchAction !== void 0 ? touchAction : 'none' : this.defaultViewStyles.touchAction; // @ts-ignore This one disables default events on Safari\n\n this.view.style['WebkitTouchCallout'] = isHandlerEnabled ? touchAction !== null && touchAction !== void 0 ? touchAction : 'none' : this.defaultViewStyles.touchAction;\n }\n\n setContextMenu(isHandlerEnabled) {\n const config = this.gestureHandler.getConfig();\n\n if (isHandlerEnabled) {\n this.addContextMenuListeners(config);\n } else {\n this.removeContextMenuListeners(config);\n }\n }\n\n onEnabledChange(enabled) {\n if (!this.isInitialized) {\n return;\n }\n\n this.setUserSelect(enabled);\n this.setTouchAction(enabled);\n this.setContextMenu(enabled);\n }\n\n onBegin() {// no-op for now\n }\n\n onActivate() {\n const config = this.gestureHandler.getConfig();\n\n if ((!this.view.style.cursor || this.view.style.cursor === 'auto') && config.activeCursor) {\n this.view.style.cursor = config.activeCursor;\n }\n }\n\n onEnd() {\n this.tryResetCursor();\n }\n\n onCancel() {\n this.tryResetCursor();\n }\n\n onFail() {\n this.tryResetCursor();\n }\n\n destroy(config) {\n this.removeContextMenuListeners(config);\n this.eventManagers.forEach(manager => {\n manager.unregisterListeners();\n });\n }\n\n}\n//# sourceMappingURL=GestureHandlerWebDelegate.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport EventManager from './EventManager';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport { EventTypes } from '../interfaces';\nimport { PointerTypeMapping, calculateViewScale, tryExtractStylusData, isPointerInBounds } from '../utils';\nimport { PointerType } from '../../PointerType';\nconst POINTER_CAPTURE_EXCLUDE_LIST = new Set(['SELECT', 'INPUT']);\nexport default class PointerEventManager extends EventManager {\n constructor(view) {\n super(view);\n\n _defineProperty(this, \"trackedPointers\", new Set());\n\n _defineProperty(this, \"mouseButtonsMapper\", new Map());\n\n _defineProperty(this, \"lastPosition\", void 0);\n\n _defineProperty(this, \"pointerDownCallback\", event => {\n if (!isPointerInBounds(this.view, {\n x: event.clientX,\n y: event.clientY\n })) {\n return;\n }\n\n const adaptedEvent = this.mapEvent(event, EventTypes.DOWN);\n const target = event.target;\n\n if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {\n target.setPointerCapture(adaptedEvent.pointerId);\n }\n\n this.markAsInBounds(adaptedEvent.pointerId);\n this.trackedPointers.add(adaptedEvent.pointerId);\n\n if (++this.activePointersCounter > 1) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n this.onPointerAdd(adaptedEvent);\n } else {\n this.onPointerDown(adaptedEvent);\n }\n });\n\n _defineProperty(this, \"pointerUpCallback\", event => {\n // When we call reset on gesture handlers, it also resets their event managers\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\n if (this.activePointersCounter === 0) {\n return;\n }\n\n const adaptedEvent = this.mapEvent(event, EventTypes.UP);\n const target = event.target;\n\n if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {\n target.releasePointerCapture(adaptedEvent.pointerId);\n }\n\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.trackedPointers.delete(adaptedEvent.pointerId);\n\n if (--this.activePointersCounter > 0) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n this.onPointerRemove(adaptedEvent);\n } else {\n this.onPointerUp(adaptedEvent);\n }\n });\n\n _defineProperty(this, \"pointerMoveCallback\", event => {\n const adaptedEvent = this.mapEvent(event, EventTypes.MOVE);\n const target = event.target; // You may be wondering why are we setting pointer capture here, when we\n // already set it in `pointerdown` handler. Well, that's a great question,\n // for which I don't have an answer. Specification (https://www.w3.org/TR/pointerevents2/#dom-element-setpointercapture)\n // says that the requirement for `setPointerCapture` to work is that pointer\n // must be in 'active buttons state`, otherwise it will fail silently, which\n // is lovely. Obviously, when `pointerdown` is fired, one of the buttons\n // (when using mouse) is pressed, but that doesn't mean that `setPointerCapture`\n // will succeed, for some reason. Since it fails silently, we don't actually know\n // if it worked or not (there's `gotpointercapture` event, but the complexity of\n // incorporating it here seems stupid), so we just call it again here, every time\n // pointer moves until it succeeds.\n // God, I do love web development.\n\n if (!target.hasPointerCapture(event.pointerId) && !POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {\n target.setPointerCapture(event.pointerId);\n }\n\n const inBounds = isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y\n });\n const pointerIndex = this.pointersInBounds.indexOf(adaptedEvent.pointerId);\n\n if (inBounds) {\n if (pointerIndex < 0) {\n adaptedEvent.eventType = EventTypes.ENTER;\n this.onPointerEnter(adaptedEvent);\n this.markAsInBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerMove(adaptedEvent);\n }\n } else {\n if (pointerIndex >= 0) {\n adaptedEvent.eventType = EventTypes.LEAVE;\n this.onPointerLeave(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerOutOfBounds(adaptedEvent);\n }\n }\n\n this.lastPosition.x = event.x;\n this.lastPosition.y = event.y;\n });\n\n _defineProperty(this, \"pointerCancelCallback\", event => {\n const adaptedEvent = this.mapEvent(event, EventTypes.CANCEL);\n this.onPointerCancel(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.activePointersCounter = 0;\n this.trackedPointers.clear();\n });\n\n _defineProperty(this, \"pointerEnterCallback\", event => {\n const adaptedEvent = this.mapEvent(event, EventTypes.ENTER);\n this.onPointerMoveOver(adaptedEvent);\n });\n\n _defineProperty(this, \"pointerLeaveCallback\", event => {\n const adaptedEvent = this.mapEvent(event, EventTypes.LEAVE);\n this.onPointerMoveOut(adaptedEvent);\n });\n\n _defineProperty(this, \"lostPointerCaptureCallback\", event => {\n const adaptedEvent = this.mapEvent(event, EventTypes.CANCEL);\n\n if (this.trackedPointers.has(adaptedEvent.pointerId)) {\n // In some cases the `pointerup` event is not fired, but `lostpointercapture` is.\n // Here we simulate the `pointercancel` event to make sure the gesture handler stops tracking it.\n this.onPointerCancel(adaptedEvent);\n this.activePointersCounter = 0;\n this.trackedPointers.clear();\n }\n });\n\n this.mouseButtonsMapper.set(0, MouseButton.LEFT);\n this.mouseButtonsMapper.set(1, MouseButton.MIDDLE);\n this.mouseButtonsMapper.set(2, MouseButton.RIGHT);\n this.mouseButtonsMapper.set(3, MouseButton.BUTTON_4);\n this.mouseButtonsMapper.set(4, MouseButton.BUTTON_5);\n this.lastPosition = {\n x: -Infinity,\n y: -Infinity\n };\n }\n\n registerListeners() {\n this.view.addEventListener('pointerdown', this.pointerDownCallback);\n this.view.addEventListener('pointerup', this.pointerUpCallback);\n this.view.addEventListener('pointermove', this.pointerMoveCallback);\n this.view.addEventListener('pointercancel', this.pointerCancelCallback); // onPointerEnter and onPointerLeave are triggered by a custom logic responsible for\n // handling shouldCancelWhenOutside flag, and are unreliable unless the pointer is down.\n // We therefore use pointerenter and pointerleave events to handle the hover gesture,\n // mapping them to onPointerMoveOver and onPointerMoveOut respectively.\n\n this.view.addEventListener('pointerenter', this.pointerEnterCallback);\n this.view.addEventListener('pointerleave', this.pointerLeaveCallback);\n this.view.addEventListener('lostpointercapture', this.lostPointerCaptureCallback);\n }\n\n unregisterListeners() {\n this.view.removeEventListener('pointerdown', this.pointerDownCallback);\n this.view.removeEventListener('pointerup', this.pointerUpCallback);\n this.view.removeEventListener('pointermove', this.pointerMoveCallback);\n this.view.removeEventListener('pointercancel', this.pointerCancelCallback);\n this.view.removeEventListener('pointerenter', this.pointerEnterCallback);\n this.view.removeEventListener('pointerleave', this.pointerLeaveCallback);\n this.view.removeEventListener('lostpointercapture', this.lostPointerCaptureCallback);\n }\n\n mapEvent(event, eventType) {\n var _PointerTypeMapping$g;\n\n const rect = this.view.getBoundingClientRect();\n const {\n scaleX,\n scaleY\n } = calculateViewScale(this.view);\n return {\n x: event.clientX,\n y: event.clientY,\n offsetX: (event.clientX - rect.left) / scaleX,\n offsetY: (event.clientY - rect.top) / scaleY,\n pointerId: event.pointerId,\n eventType: eventType,\n pointerType: (_PointerTypeMapping$g = PointerTypeMapping.get(event.pointerType)) !== null && _PointerTypeMapping$g !== void 0 ? _PointerTypeMapping$g : PointerType.OTHER,\n button: this.mouseButtonsMapper.get(event.button),\n time: event.timeStamp,\n stylusData: tryExtractStylusData(event)\n };\n }\n\n resetManager() {\n super.resetManager();\n this.trackedPointers.clear();\n }\n\n}\n//# sourceMappingURL=PointerEventManager.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint-disable @typescript-eslint/no-empty-function */\nexport default class EventManager {\n constructor(view) {\n _defineProperty(this, \"view\", void 0);\n\n _defineProperty(this, \"pointersInBounds\", []);\n\n _defineProperty(this, \"activePointersCounter\", void 0);\n\n this.view = view;\n this.activePointersCounter = 0;\n }\n\n onPointerDown(_event) {}\n\n onPointerAdd(_event) {}\n\n onPointerUp(_event) {}\n\n onPointerRemove(_event) {}\n\n onPointerMove(_event) {}\n\n onPointerLeave(_event) {} // Called only when pointer is pressed (or touching)\n\n\n onPointerEnter(_event) {} // Called only when pointer is pressed (or touching)\n\n\n onPointerCancel(_event) {// When pointer cancel is triggered and there are more pointers on the view, only one pointer is cancelled\n // Because we want all pointers to be cancelled by that event, we are doing it manually by reseting handler and changing activePointersCounter to 0\n // Events that correspond to removing the pointer (pointerup, touchend) have condition, that they don't perform any action when activePointersCounter\n // is equal to 0. This prevents counter from going to negative values, when pointers are removed from view after one of them has been cancelled\n }\n\n onPointerOutOfBounds(_event) {}\n\n onPointerMoveOver(_event) {}\n\n onPointerMoveOut(_event) {}\n\n setOnPointerDown(callback) {\n this.onPointerDown = callback;\n }\n\n setOnPointerAdd(callback) {\n this.onPointerAdd = callback;\n }\n\n setOnPointerUp(callback) {\n this.onPointerUp = callback;\n }\n\n setOnPointerRemove(callback) {\n this.onPointerRemove = callback;\n }\n\n setOnPointerMove(callback) {\n this.onPointerMove = callback;\n }\n\n setOnPointerLeave(callback) {\n this.onPointerLeave = callback;\n }\n\n setOnPointerEnter(callback) {\n this.onPointerEnter = callback;\n }\n\n setOnPointerCancel(callback) {\n this.onPointerCancel = callback;\n }\n\n setOnPointerOutOfBounds(callback) {\n this.onPointerOutOfBounds = callback;\n }\n\n setOnPointerMoveOver(callback) {\n this.onPointerMoveOver = callback;\n }\n\n setOnPointerMoveOut(callback) {\n this.onPointerMoveOut = callback;\n }\n\n markAsInBounds(pointerId) {\n if (this.pointersInBounds.indexOf(pointerId) >= 0) {\n return;\n }\n\n this.pointersInBounds.push(pointerId);\n }\n\n markAsOutOfBounds(pointerId) {\n const index = this.pointersInBounds.indexOf(pointerId);\n\n if (index < 0) {\n return;\n }\n\n this.pointersInBounds.splice(index, 1);\n }\n\n resetManager() {\n // Reseting activePointersCounter is necessary to make gestures such as pinch work properly\n // There are gestures that end when there is still one active pointer (like pinch/rotation)\n // When these gestures end, they are reset, but they still receive events from pointer that is active\n // This causes trouble, since only onPointerDown registers gesture in orchestrator, and while gestures receive\n // Events from active pointer after they finished, next pointerdown event will be registered as additional pointer, not the first one\n // This casues trouble like gestures getting stuck in END state, even though they should have gone to UNDETERMINED\n this.activePointersCounter = 0;\n this.pointersInBounds = [];\n }\n\n}\n//# sourceMappingURL=EventManager.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { EventTypes } from '../interfaces';\nimport EventManager from './EventManager';\nimport { PointerType } from '../../PointerType';\nexport default class KeyboardEventManager extends EventManager {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"activationKeys\", ['Enter', ' ']);\n\n _defineProperty(this, \"cancelationKeys\", ['Tab']);\n\n _defineProperty(this, \"isPressed\", false);\n\n _defineProperty(this, \"keyDownCallback\", event => {\n if (this.cancelationKeys.indexOf(event.key) !== -1 && this.isPressed) {\n this.dispatchEvent(event, EventTypes.CANCEL);\n return;\n }\n\n if (this.activationKeys.indexOf(event.key) === -1) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.DOWN);\n });\n\n _defineProperty(this, \"keyUpCallback\", event => {\n if (this.activationKeys.indexOf(event.key) === -1 || !this.isPressed) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.UP);\n });\n }\n\n dispatchEvent(event, eventType) {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const adaptedEvent = this.mapEvent(event, eventType);\n\n switch (eventType) {\n case EventTypes.UP:\n this.isPressed = false;\n this.onPointerUp(adaptedEvent);\n break;\n\n case EventTypes.DOWN:\n this.isPressed = true;\n this.onPointerDown(adaptedEvent);\n break;\n\n case EventTypes.CANCEL:\n this.isPressed = false;\n this.onPointerCancel(adaptedEvent);\n break;\n }\n }\n\n registerListeners() {\n this.view.addEventListener('keydown', this.keyDownCallback);\n this.view.addEventListener('keyup', this.keyUpCallback);\n }\n\n unregisterListeners() {\n this.view.addEventListener('keydown', this.keyDownCallback);\n this.view.addEventListener('keyup', this.keyUpCallback);\n }\n\n mapEvent(event, eventType) {\n const viewRect = event.target.getBoundingClientRect();\n const viewportPosition = {\n x: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.x) + (viewRect === null || viewRect === void 0 ? void 0 : viewRect.width) / 2,\n y: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.y) + (viewRect === null || viewRect === void 0 ? void 0 : viewRect.height) / 2\n };\n const relativePosition = {\n x: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.width) / 2,\n y: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.height) / 2\n };\n return {\n x: viewportPosition.x,\n y: viewportPosition.y,\n offsetX: relativePosition.x,\n offsetY: relativePosition.y,\n pointerId: 0,\n eventType: eventType,\n pointerType: PointerType.KEY,\n time: event.timeStamp\n };\n }\n\n}\n//# sourceMappingURL=KeyboardEventManager.js.map","import * as React from 'react';\nimport { StyleSheet } from 'react-native';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport GestureHandlerRootView from './GestureHandlerRootView';\nexport default function gestureHandlerRootHOC(Component, containerStyles) {\n function Wrapper(props) {\n return /*#__PURE__*/React.createElement(GestureHandlerRootView, {\n style: [styles.container, containerStyles]\n }, /*#__PURE__*/React.createElement(Component, props));\n }\n\n Wrapper.displayName = `gestureHandlerRootHOC(${Component.displayName || Component.name})`; // @ts-ignore - hoistNonReactStatics uses old version of @types/react\n\n hoistNonReactStatics(Wrapper, Component);\n return Wrapper;\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});\n//# sourceMappingURL=gestureHandlerRootHOC.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';\nexport default function GestureHandlerRootView({\n style,\n ...rest\n}) {\n return /*#__PURE__*/React.createElement(GestureHandlerRootViewContext.Provider, {\n value: true\n }, /*#__PURE__*/React.createElement(View, _extends({\n style: style !== null && style !== void 0 ? style : styles.container\n }, rest)));\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1\n }\n});\n//# sourceMappingURL=GestureHandlerRootView.web.js.map","import React from 'react';\nexport default /*#__PURE__*/React.createContext(false);\n//# sourceMappingURL=GestureHandlerRootViewContext.js.map","import createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const tapGestureHandlerProps = ['maxDurationMs', 'maxDelayMs', 'numberOfTaps', 'maxDeltaX', 'maxDeltaY', 'maxDist', 'minPointers'];\nexport const tapHandlerName = 'TapGestureHandler';\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const TapGestureHandler = createHandler({\n name: tapHandlerName,\n allowedProps: [...baseGestureHandlerProps, ...tapGestureHandlerProps],\n config: {\n shouldCancelWhenOutside: true\n }\n});\n//# sourceMappingURL=TapGestureHandler.js.map","var _UIManagerAny$getView, _UIManagerAny$getView2, _UIManagerAny$getCons;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Platform, UIManager, DeviceEventEmitter } from 'react-native';\nimport { customDirectEventTypes } from './customDirectEventTypes';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport { State } from '../State';\nimport { handlerIDToTag, registerOldGestureHandler } from './handlersRegistry';\nimport { getNextHandlerTag } from './getNextHandlerTag';\nimport { filterConfig, findNodeHandle, scheduleFlushOperations } from './utils';\nimport { deepEqual, isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\nimport GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';\nimport { ghQueueMicrotask } from '../ghQueueMicrotask';\nconst UIManagerAny = UIManager;\ncustomDirectEventTypes.topGestureHandlerEvent = {\n registrationName: 'onGestureHandlerEvent'\n};\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: {\n registrationName: 'onGestureHandlerEvent'\n },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange'\n }\n};\nconst customGHEventsConfig = {\n onGestureHandlerEvent: {\n registrationName: 'onGestureHandlerEvent'\n },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange'\n },\n // When using React Native Gesture Handler for Animated.event with useNativeDriver: true\n // on Android with Fabric enabled, the native part still sends the native events to JS\n // but prefixed with \"top\". We cannot simply rename the events above so they are prefixed\n // with \"top\" instead of \"on\" because in such case Animated.events would not be registered.\n // That's why we need to register another pair of event names.\n // The incoming events will be queued but never handled.\n // Without this piece of code below, you'll get the following JS error:\n // Unsupported top level event type \"topOnGestureHandlerEvent\" dispatched\n ...(isFabric() && Platform.OS === 'android' && customGHEventsConfigFabricAndroid)\n}; // Add gesture specific events to genericDirectEventTypes object exported from UIManager\n// native module.\n// Once new event types are registered with react it is possible to dispatch these\n// events to all kind of native views.\n\nUIManagerAny.genericDirectEventTypes = { ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig\n}; // In newer versions of RN the `genericDirectEventTypes` is located in the object\n// returned by UIManager.getViewManagerConfig('getConstants') or in older RN UIManager.getConstants(), we need to add it there as well to make\n// it compatible with RN 61+\n\nconst UIManagerConstants = (_UIManagerAny$getView = (_UIManagerAny$getView2 = UIManagerAny.getViewManagerConfig) === null || _UIManagerAny$getView2 === void 0 ? void 0 : _UIManagerAny$getView2.call(UIManagerAny, 'getConstants')) !== null && _UIManagerAny$getView !== void 0 ? _UIManagerAny$getView : (_UIManagerAny$getCons = UIManagerAny.getConstants) === null || _UIManagerAny$getCons === void 0 ? void 0 : _UIManagerAny$getCons.call(UIManagerAny);\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = { ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig\n };\n} // Wrap JS responder calls and notify gesture handler manager\n\n\nconst {\n setJSResponder: oldSetJSResponder = () => {// no-op\n },\n clearJSResponder: oldClearJSResponder = () => {// no-op\n }\n} = UIManagerAny;\n\nUIManagerAny.setJSResponder = (tag, blockNativeResponder) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\n\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android'; // Toggled inspector blocks touch events in order to allow inspecting on Android\n// This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component\n\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\nfunction hasUnresolvedRefs(props) {\n // TODO(TS) - add type for extract arg\n const extract = refs => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n\n return refs.some(r => r && r.current === null);\n };\n\n return extract(props['simultaneousHandlers']) || extract(props['waitFor']);\n}\n\nconst stateToPropMappings = {\n [State.UNDETERMINED]: undefined,\n [State.BEGAN]: 'onBegan',\n [State.FAILED]: 'onFailed',\n [State.CANCELLED]: 'onCancelled',\n [State.ACTIVE]: 'onActivated',\n [State.END]: 'onEnded'\n};\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1; // TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\n\nexport default function createHandler({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = []\n}) {\n class Handler extends React.Component {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"handlerTag\", void 0);\n\n _defineProperty(this, \"config\", void 0);\n\n _defineProperty(this, \"propsRef\", void 0);\n\n _defineProperty(this, \"isMountedRef\", void 0);\n\n _defineProperty(this, \"viewNode\", void 0);\n\n _defineProperty(this, \"viewTag\", void 0);\n\n _defineProperty(this, \"inspectorToggleListener\", void 0);\n\n _defineProperty(this, \"onGestureHandlerEvent\", event => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onGestureEvent === 'function') {\n var _this$props$onGesture, _this$props;\n\n (_this$props$onGesture = (_this$props = this.props).onGestureEvent) === null || _this$props$onGesture === void 0 ? void 0 : _this$props$onGesture.call(_this$props, event);\n }\n } else {\n var _this$props$onGesture2, _this$props2;\n\n (_this$props$onGesture2 = (_this$props2 = this.props).onGestureHandlerEvent) === null || _this$props$onGesture2 === void 0 ? void 0 : _this$props$onGesture2.call(_this$props2, event);\n }\n });\n\n _defineProperty(this, \"onGestureHandlerStateChange\", event => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onHandlerStateChange === 'function') {\n var _this$props$onHandler, _this$props3;\n\n (_this$props$onHandler = (_this$props3 = this.props).onHandlerStateChange) === null || _this$props$onHandler === void 0 ? void 0 : _this$props$onHandler.call(_this$props3, event);\n }\n\n const state = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n var _this$props$onGesture3, _this$props4;\n\n (_this$props$onGesture3 = (_this$props4 = this.props).onGestureHandlerStateChange) === null || _this$props$onGesture3 === void 0 ? void 0 : _this$props$onGesture3.call(_this$props4, event);\n }\n });\n\n _defineProperty(this, \"refHandler\", node => {\n this.viewNode = node;\n const child = React.Children.only(this.props.children); // TODO(TS) fix ref type\n\n const {\n ref\n } = child;\n\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n });\n\n _defineProperty(this, \"createGestureHandler\", newConfig => {\n this.config = newConfig;\n RNGestureHandlerModule.createGestureHandler(name, this.handlerTag, newConfig);\n });\n\n _defineProperty(this, \"attachGestureHandler\", newViewTag => {\n this.viewTag = newViewTag;\n\n if (Platform.OS === 'web') {\n // Typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch\n RNGestureHandlerModule.attachGestureHandler(this.handlerTag, newViewTag, ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef);\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange\n });\n\n const actionType = (() => {\n var _this$props5, _this$props6;\n\n const onGestureEvent = (_this$props5 = this.props) === null || _this$props5 === void 0 ? void 0 : _this$props5.onGestureEvent;\n const isGestureHandlerWorklet = onGestureEvent && ('current' in onGestureEvent || 'workletEventHandler' in onGestureEvent);\n const onHandlerStateChange = (_this$props6 = this.props) === null || _this$props6 === void 0 ? void 0 : _this$props6.onHandlerStateChange;\n const isStateChangeHandlerWorklet = onHandlerStateChange && ('current' in onHandlerStateChange || 'workletEventHandler' in onHandlerStateChange);\n const isReanimatedHandler = isGestureHandlerWorklet || isStateChangeHandlerWorklet;\n\n if (isReanimatedHandler) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (onGestureEvent && '__isNative' in onGestureEvent) {\n // Animated.event with useNativeDriver: true\n return ActionType.NATIVE_ANIMATED_EVENT;\n } else {\n // JS callback or Animated.event with useNativeDriver: false\n return ActionType.JS_FUNCTION_OLD_API;\n }\n })();\n\n RNGestureHandlerModule.attachGestureHandler(this.handlerTag, newViewTag, actionType);\n }\n\n scheduleFlushOperations();\n });\n\n _defineProperty(this, \"updateGestureHandler\", newConfig => {\n this.config = newConfig;\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n });\n\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = /*#__PURE__*/React.createRef();\n this.isMountedRef = /*#__PURE__*/React.createRef();\n this.state = {\n allowTouches\n };\n\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n\n handlerIDToTag[props.id] = this.handlerTag;\n }\n }\n\n componentDidMount() {\n const props = this.props;\n this.isMountedRef.current = true;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener('toggleElementInspector', () => {\n this.setState(_ => ({\n allowTouches\n }));\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n if (hasUnresolvedRefs(props)) {\n // If there are unresolved refs (e.g. \".current\" has not yet been set)\n // passed as `simultaneousHandlers` or `waitFor`, we enqueue a call to\n // _update method that will try to update native handler props using\n // queueMicrotask. This makes it so update() function gets called after all\n // react components are mounted and we expect the missing ref object to\n // be resolved by then.\n ghQueueMicrotask(() => {\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n this.createGestureHandler(filterConfig(transformProps ? transformProps(this.props) : this.props, [...allowedProps, ...customNativeProps], config));\n this.attachGestureHandler(findNodeHandle(this.viewNode)); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n var _this$inspectorToggle;\n\n (_this$inspectorToggle = this.inspectorToggleListener) === null || _this$inspectorToggle === void 0 ? void 0 : _this$inspectorToggle.remove();\n this.isMountedRef.current = false;\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations(); // We can't use this.props.id directly due to TS generic type narrowing bug, see https://github.com/microsoft/TypeScript/issues/13995 for more context\n\n const handlerID = this.props.id;\n\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n update(remainingTries) {\n if (!this.isMountedRef.current) {\n return;\n }\n\n const props = this.props; // When ref is set via a function i.e. `ref={(r) => refObject.current = r}` instead of\n // `ref={refObject}` it's possible that it won't be resolved in time. Seems like trying\n // again is easy enough fix.\n\n if (hasUnresolvedRefs(props) && remainingTries > 0) {\n ghQueueMicrotask(() => {\n this.update(remainingTries - 1);\n });\n } else {\n const newConfig = filterConfig(transformProps ? transformProps(this.props) : this.props, [...allowedProps, ...customNativeProps], config);\n\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n }\n\n setNativeProps(updates) {\n const mergedProps = { ...this.props,\n ...updates\n };\n const newConfig = filterConfig(transformProps ? transformProps(mergedProps) : mergedProps, [...allowedProps, ...customNativeProps], config);\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n var _this$props$testID;\n\n if (__DEV__ && !this.context && !isJestEnv() && Platform.OS !== 'web') {\n throw new Error(name + ' must be used as a descendant of GestureHandlerRootView. Otherwise the gestures will not be recognized. See https://docs.swmansion.com/react-native-gesture-handler/docs/installation for more details.');\n }\n\n let gestureEventHandler = this.onGestureHandlerEvent; // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n\n const {\n onGestureEvent,\n onGestureHandlerEvent\n } = this.props;\n\n if (onGestureEvent && typeof onGestureEvent !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerEvent) {\n throw new Error('Nesting touch handlers with native animated driver is not supported yet');\n }\n\n gestureEventHandler = onGestureEvent;\n } else {\n if (onGestureHandlerEvent && typeof onGestureHandlerEvent !== 'function') {\n throw new Error('Nesting touch handlers with native animated driver is not supported yet');\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange; // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange\n } = this.props;\n\n if (onHandlerStateChange && typeof onHandlerStateChange !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerStateChange) {\n throw new Error('Nesting touch handlers with native animated driver is not supported yet');\n }\n\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (onGestureHandlerStateChange && typeof onGestureHandlerStateChange !== 'function') {\n throw new Error('Nesting touch handlers with native animated driver is not supported yet');\n }\n }\n\n const events = {\n onGestureHandlerEvent: this.state.allowTouches ? gestureEventHandler : undefined,\n onGestureHandlerStateChange: this.state.allowTouches ? gestureStateEventHandler : undefined\n };\n this.propsRef.current = events;\n let child = null;\n\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(tagMessage(`${name} got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`));\n }\n\n let grandChildren = child.props.children;\n\n if (__DEV__ && child.type && (child.type === 'RNGestureHandlerButton' || child.type.name === 'View' || child.type.displayName === 'View')) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push( /*#__PURE__*/React.createElement(PressabilityDebugView, {\n key: \"pressabilityDebugView\",\n color: \"mediumspringgreen\",\n hitSlop: child.props.hitSlop\n }));\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv() ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n enabled: this.props.enabled\n } : {}),\n testID: (_this$props$testID = this.props.testID) !== null && _this$props$testID !== void 0 ? _this$props$testID : child.props.testID,\n ...events\n }, grandChildren);\n }\n\n }\n\n _defineProperty(Handler, \"displayName\", name);\n\n _defineProperty(Handler, \"contextType\", GestureHandlerRootViewContext);\n\n return Handler;\n}\n//# sourceMappingURL=createHandler.js.map","// customDirectEventTypes doesn't exist in react-native-web, therefore importing it\n// directly in createHandler.tsx would end in crash.\nconst customDirectEventTypes = {};\nexport { customDirectEventTypes };\n//# sourceMappingURL=customDirectEventTypes.web.js.map","let handlerTag = 1;\nexport function getNextHandlerTag() {\n return handlerTag++;\n}\n//# sourceMappingURL=getNextHandlerTag.js.map","import { Platform, findNodeHandle as findNodeHandleRN } from 'react-native';\nimport { handlerIDToTag } from './handlersRegistry';\nimport { toArray } from '../utils';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport { ghQueueMicrotask } from '../ghQueueMicrotask';\n\nfunction isConfigParam(param, name) {\n // param !== Object(param) returns false if `param` is a function\n // or an object and returns true if `param` is null\n return param !== undefined && (param !== Object(param) || !('__isNative' in param)) && name !== 'onHandlerStateChange' && name !== 'onGestureEvent';\n}\n\nexport function filterConfig(props, validProps, defaults = {}) {\n const filteredConfig = { ...defaults\n };\n\n for (const key of validProps) {\n let value = props[key];\n\n if (isConfigParam(value, key)) {\n if (key === 'simultaneousHandlers' || key === 'waitFor') {\n value = transformIntoHandlerTags(props[key]);\n } else if (key === 'hitSlop' && typeof value !== 'object') {\n value = {\n top: value,\n left: value,\n bottom: value,\n right: value\n };\n }\n\n filteredConfig[key] = value;\n }\n }\n\n return filteredConfig;\n}\n\nfunction transformIntoHandlerTags(handlerIDs) {\n handlerIDs = toArray(handlerIDs);\n\n if (Platform.OS === 'web') {\n return handlerIDs.map(({\n current\n }) => current).filter(handle => handle);\n } // converts handler string IDs into their numeric tags\n\n\n return handlerIDs.map(handlerID => {\n var _handlerID$current;\n\n return handlerIDToTag[handlerID] || ((_handlerID$current = handlerID.current) === null || _handlerID$current === void 0 ? void 0 : _handlerID$current.handlerTag) || -1;\n }).filter(handlerTag => handlerTag > 0);\n}\n\nexport function findNodeHandle(node) {\n if (Platform.OS === 'web') {\n return node;\n }\n\n return findNodeHandleRN(node);\n}\nlet flushOperationsScheduled = false;\nexport function scheduleFlushOperations() {\n if (!flushOperationsScheduled) {\n flushOperationsScheduled = true;\n ghQueueMicrotask(() => {\n RNGestureHandlerModule.flushOperations();\n flushOperationsScheduled = false;\n });\n }\n}\n//# sourceMappingURL=utils.js.map","export const ActionType = {\n REANIMATED_WORKLET: 1,\n NATIVE_ANIMATED_EVENT: 2,\n JS_FUNCTION_OLD_API: 3,\n JS_FUNCTION_NEW_API: 4\n}; // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\n//# sourceMappingURL=ActionType.js.map","// PressabilityDebugView is not implemented in react-native-web\nexport function PressabilityDebugView() {\n return null;\n}\n//# sourceMappingURL=PressabilityDebugView.web.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React from 'react';\nimport { tagMessage } from '../utils';\nimport PlatformConstants from '../PlatformConstants';\nimport createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const forceTouchGestureHandlerProps = ['minForce', 'maxForce', 'feedbackOnActivation']; // implicit `children` prop has been removed in @types/react^18.0.0\n\nclass ForceTouchFallback extends React.Component {\n componentDidMount() {\n console.warn(tagMessage('ForceTouchGestureHandler is not available on this platform. Please use ForceTouchGestureHandler.forceTouchAvailable to conditionally render other components that would provide a fallback behavior specific to your usecase'));\n }\n\n render() {\n return this.props.children;\n }\n\n}\n\n_defineProperty(ForceTouchFallback, \"forceTouchAvailable\", false);\n\nexport const forceTouchHandlerName = 'ForceTouchGestureHandler'; // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\n\nexport const ForceTouchGestureHandler = PlatformConstants !== null && PlatformConstants !== void 0 && PlatformConstants.forceTouchAvailable ? createHandler({\n name: forceTouchHandlerName,\n allowedProps: [...baseGestureHandlerProps, ...forceTouchGestureHandlerProps],\n config: {}\n}) : ForceTouchFallback;\nForceTouchGestureHandler.forceTouchAvailable = (PlatformConstants === null || PlatformConstants === void 0 ? void 0 : PlatformConstants.forceTouchAvailable) || false;\n//# sourceMappingURL=ForceTouchGestureHandler.js.map","export default {\n get forceTouchAvailable() {\n return false;\n }\n\n};\n//# sourceMappingURL=PlatformConstants.web.js.map","import createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const longPressGestureHandlerProps = ['minDurationMs', 'maxDist', 'numberOfPointers'];\nexport const longPressHandlerName = 'LongPressGestureHandler';\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const LongPressGestureHandler = createHandler({\n name: longPressHandlerName,\n allowedProps: [...baseGestureHandlerProps, ...longPressGestureHandlerProps],\n config: {\n shouldCancelWhenOutside: true\n }\n});\n//# sourceMappingURL=LongPressGestureHandler.js.map","import createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const panGestureHandlerProps = ['activeOffsetY', 'activeOffsetX', 'failOffsetY', 'failOffsetX', 'minDist', 'minVelocity', 'minVelocityX', 'minVelocityY', 'minPointers', 'maxPointers', 'avgTouches', 'enableTrackpadTwoFingerGesture', 'activateAfterLongPress'];\nexport const panGestureHandlerCustomNativeProps = ['activeOffsetYStart', 'activeOffsetYEnd', 'activeOffsetXStart', 'activeOffsetXEnd', 'failOffsetYStart', 'failOffsetYEnd', 'failOffsetXStart', 'failOffsetXEnd'];\nexport const panHandlerName = 'PanGestureHandler';\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const PanGestureHandler = createHandler({\n name: panHandlerName,\n allowedProps: [...baseGestureHandlerProps, ...panGestureHandlerProps],\n config: {},\n transformProps: managePanProps,\n customNativeProps: panGestureHandlerCustomNativeProps\n});\n\nfunction validatePanGestureHandlerProps(props) {\n if (Array.isArray(props.activeOffsetX) && (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)) {\n throw new Error(`First element of activeOffsetX should be negative, a the second one should be positive`);\n }\n\n if (Array.isArray(props.activeOffsetY) && (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)) {\n throw new Error(`First element of activeOffsetY should be negative, a the second one should be positive`);\n }\n\n if (Array.isArray(props.failOffsetX) && (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)) {\n throw new Error(`First element of failOffsetX should be negative, a the second one should be positive`);\n }\n\n if (Array.isArray(props.failOffsetY) && (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)) {\n throw new Error(`First element of failOffsetY should be negative, a the second one should be positive`);\n }\n\n if (props.minDist && (props.failOffsetX || props.failOffsetY)) {\n throw new Error(`It is not supported to use minDist with failOffsetX or failOffsetY, use activeOffsetX and activeOffsetY instead`);\n }\n\n if (props.minDist && (props.activeOffsetX || props.activeOffsetY)) {\n throw new Error(`It is not supported to use minDist with activeOffsetX or activeOffsetY`);\n }\n}\n\nfunction transformPanGestureHandlerProps(props) {\n const res = { ...props\n };\n\n if (props.activeOffsetX !== undefined) {\n delete res.activeOffsetX;\n\n if (Array.isArray(props.activeOffsetX)) {\n res.activeOffsetXStart = props.activeOffsetX[0];\n res.activeOffsetXEnd = props.activeOffsetX[1];\n } else if (props.activeOffsetX < 0) {\n res.activeOffsetXStart = props.activeOffsetX;\n } else {\n res.activeOffsetXEnd = props.activeOffsetX;\n }\n }\n\n if (props.activeOffsetY !== undefined) {\n delete res.activeOffsetY;\n\n if (Array.isArray(props.activeOffsetY)) {\n res.activeOffsetYStart = props.activeOffsetY[0];\n res.activeOffsetYEnd = props.activeOffsetY[1];\n } else if (props.activeOffsetY < 0) {\n res.activeOffsetYStart = props.activeOffsetY;\n } else {\n res.activeOffsetYEnd = props.activeOffsetY;\n }\n }\n\n if (props.failOffsetX !== undefined) {\n delete res.failOffsetX;\n\n if (Array.isArray(props.failOffsetX)) {\n res.failOffsetXStart = props.failOffsetX[0];\n res.failOffsetXEnd = props.failOffsetX[1];\n } else if (props.failOffsetX < 0) {\n res.failOffsetXStart = props.failOffsetX;\n } else {\n res.failOffsetXEnd = props.failOffsetX;\n }\n }\n\n if (props.failOffsetY !== undefined) {\n delete res.failOffsetY;\n\n if (Array.isArray(props.failOffsetY)) {\n res.failOffsetYStart = props.failOffsetY[0];\n res.failOffsetYEnd = props.failOffsetY[1];\n } else if (props.failOffsetY < 0) {\n res.failOffsetYStart = props.failOffsetY;\n } else {\n res.failOffsetYEnd = props.failOffsetY;\n }\n }\n\n return res;\n}\n\nexport function managePanProps(props) {\n if (__DEV__) {\n validatePanGestureHandlerProps(props);\n }\n\n return transformPanGestureHandlerProps(props);\n}\n//# sourceMappingURL=PanGestureHandler.js.map","import createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const pinchHandlerName = 'PinchGestureHandler';\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const PinchGestureHandler = createHandler({\n name: pinchHandlerName,\n allowedProps: baseGestureHandlerProps,\n config: {}\n});\n//# sourceMappingURL=PinchGestureHandler.js.map","import createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const rotationHandlerName = 'RotationGestureHandler';\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const RotationGestureHandler = createHandler({\n name: rotationHandlerName,\n allowedProps: baseGestureHandlerProps,\n config: {}\n});\n//# sourceMappingURL=RotationGestureHandler.js.map","import createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const flingGestureHandlerProps = ['numberOfPointers', 'direction'];\nexport const flingHandlerName = 'FlingGestureHandler';\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const FlingGestureHandler = createHandler({\n name: flingHandlerName,\n allowedProps: [...baseGestureHandlerProps, ...flingGestureHandlerProps],\n config: {}\n});\n//# sourceMappingURL=FlingGestureHandler.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { useImperativeHandle, useRef } from 'react';\nimport { NativeViewGestureHandler, nativeViewProps } from './NativeViewGestureHandler';\n/*\n * This array should consist of:\n * - All keys in propTypes from NativeGestureHandler\n * (and all keys in GestureHandlerPropTypes)\n * - 'onGestureHandlerEvent'\n * - 'onGestureHandlerStateChange'\n */\n\nconst NATIVE_WRAPPER_PROPS_FILTER = [...nativeViewProps, 'onGestureHandlerEvent', 'onGestureHandlerStateChange'];\nexport default function createNativeWrapper(Component, config = {}) {\n var _Component$render;\n\n const ComponentWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {\n // Filter out props that should be passed to gesture handler wrapper\n const gestureHandlerProps = Object.keys(props).reduce((res, key) => {\n // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info\n const allowedKeys = NATIVE_WRAPPER_PROPS_FILTER;\n\n if (allowedKeys.includes(key)) {\n // @ts-ignore FIXME(TS)\n res[key] = props[key];\n }\n\n return res;\n }, { ...config\n } // Watch out not to modify config\n );\n\n const _ref = useRef();\n\n const _gestureHandlerRef = useRef();\n\n useImperativeHandle(ref, // @ts-ignore TODO(TS) decide how nulls work in this context\n () => {\n const node = _gestureHandlerRef.current; // Add handlerTag for relations config\n\n if (_ref.current && node) {\n // @ts-ignore FIXME(TS) think about createHandler return type\n _ref.current.handlerTag = node.handlerTag;\n return _ref.current;\n }\n\n return null;\n }, [_ref, _gestureHandlerRef]);\n return /*#__PURE__*/React.createElement(NativeViewGestureHandler, _extends({}, gestureHandlerProps, {\n // @ts-ignore TODO(TS)\n ref: _gestureHandlerRef\n }), /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: _ref\n })));\n }); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n ComponentWrapper.displayName = (Component === null || Component === void 0 ? void 0 : Component.displayName) || ( // @ts-ignore if render doesn't exist it will return undefined and go further\n Component === null || Component === void 0 ? void 0 : (_Component$render = Component.render) === null || _Component$render === void 0 ? void 0 : _Component$render.name) || typeof Component === 'string' && Component || 'ComponentWrapper';\n return ComponentWrapper;\n}\n//# sourceMappingURL=createNativeWrapper.js.map","import createHandler from './createHandler';\nimport { baseGestureHandlerProps } from './gestureHandlerCommon';\nexport const nativeViewGestureHandlerProps = ['shouldActivateOnStart', 'disallowInterruption'];\nexport const nativeViewProps = [...baseGestureHandlerProps, ...nativeViewGestureHandlerProps];\nexport const nativeViewHandlerName = 'NativeViewGestureHandler';\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const NativeViewGestureHandler = createHandler({\n name: nativeViewHandlerName,\n allowedProps: nativeViewProps,\n config: {}\n});\n//# sourceMappingURL=NativeViewGestureHandler.js.map","/* eslint-disable react/no-unused-prop-types */\nimport React, { useContext, useEffect, useLayoutEffect, useMemo, useRef } from 'react';\nimport { Platform, findNodeHandle } from 'react-native';\nimport { isJestEnv } from '../../../utils';\nimport GestureHandlerRootViewContext from '../../../GestureHandlerRootViewContext';\nimport { useAnimatedGesture } from './useAnimatedGesture';\nimport { attachHandlers } from './attachHandlers';\nimport { needsToReattach } from './needsToReattach';\nimport { dropHandlers } from './dropHandlers';\nimport { useWebEventHandlers } from './utils';\nimport { Wrap, AnimatedWrap } from './Wrap';\nimport { useDetectorUpdater } from './useDetectorUpdater';\nimport { useViewRefHandler } from './useViewRefHandler';\n\nfunction propagateDetectorConfig(props, gesture) {\n const keysToPropagate = ['userSelect', 'enableContextMenu', 'touchAction'];\n\n for (const key of keysToPropagate) {\n const value = props[key];\n\n if (value === undefined) {\n continue;\n }\n\n for (const g of gesture.toGestureArray()) {\n const config = g.config;\n config[key] = value;\n }\n }\n}\n\n/**\n * `GestureDetector` is responsible for creating and updating native gesture handlers based on the config of provided gesture.\n *\n * ### Props\n * - `gesture`\n * - `userSelect` (**Web only**)\n * - `enableContextMenu` (**Web only**)\n * - `touchAction` (**Web only**)\n *\n * ### Remarks\n * - Gesture Detector will use first native view in its subtree to recognize gestures, however if this view is used only to group its children it may get automatically collapsed.\n * - Using the same instance of a gesture across multiple Gesture Detectors is not possible.\n *\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/gesture-detector\n */\nexport const GestureDetector = props => {\n const rootViewContext = useContext(GestureHandlerRootViewContext);\n\n if (__DEV__ && !rootViewContext && !isJestEnv() && Platform.OS !== 'web') {\n throw new Error('GestureDetector must be used as a descendant of GestureHandlerRootView. Otherwise the gestures will not be recognized. See https://docs.swmansion.com/react-native-gesture-handler/docs/installation for more details.');\n } // Gesture config should be wrapped with useMemo to prevent unnecessary re-renders\n\n\n const gestureConfig = props.gesture;\n propagateDetectorConfig(props, gestureConfig);\n const gesturesToAttach = useMemo(() => gestureConfig.toGestureArray(), [gestureConfig]);\n const shouldUseReanimated = gesturesToAttach.some(g => g.shouldUseReanimated);\n const webEventHandlersRef = useWebEventHandlers(); // Store state in ref to prevent unnecessary renders\n\n const state = useRef({\n firstRender: true,\n viewRef: null,\n previousViewTag: -1,\n forceRebuildReanimatedEvent: false\n }).current;\n const preparedGesture = React.useRef({\n attachedGestures: [],\n animatedEventHandler: null,\n animatedHandlers: null,\n shouldUseReanimated: shouldUseReanimated,\n isMounted: false\n }).current;\n const updateAttachedGestures = useDetectorUpdater(state, preparedGesture, gesturesToAttach, gestureConfig, webEventHandlersRef);\n const refHandler = useViewRefHandler(state, updateAttachedGestures); // Reanimated event should be rebuilt only when gestures are reattached, otherwise\n // config update will be enough as all necessary items are stored in shared values anyway\n\n const needsToRebuildReanimatedEvent = state.firstRender || state.forceRebuildReanimatedEvent || needsToReattach(preparedGesture, gesturesToAttach);\n state.forceRebuildReanimatedEvent = false;\n useAnimatedGesture(preparedGesture, needsToRebuildReanimatedEvent);\n useLayoutEffect(() => {\n const viewTag = findNodeHandle(state.viewRef);\n preparedGesture.isMounted = true;\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesturesToAttach,\n webEventHandlersRef,\n viewTag\n });\n return () => {\n preparedGesture.isMounted = false;\n dropHandlers(preparedGesture);\n };\n }, []);\n useEffect(() => {\n if (state.firstRender) {\n state.firstRender = false;\n } else {\n updateAttachedGestures();\n }\n }, [props]);\n\n if (shouldUseReanimated) {\n return /*#__PURE__*/React.createElement(AnimatedWrap, {\n ref: refHandler,\n onGestureHandlerEvent: preparedGesture.animatedEventHandler\n }, props.children);\n } else {\n return /*#__PURE__*/React.createElement(Wrap, {\n ref: refHandler\n }, props.children);\n }\n};\n//# sourceMappingURL=index.js.map","import { CALLBACK_TYPE } from '../gesture';\nimport { Reanimated } from '../reanimatedWrapper';\nimport { GestureStateManager } from '../gestureStateManager';\nimport { State } from '../../../State';\nimport { TouchEventType } from '../../../TouchEventType';\nimport { tagMessage } from '../../../utils';\n\nfunction getHandler(type, gesture) {\n 'worklet';\n\n switch (type) {\n case CALLBACK_TYPE.BEGAN:\n return gesture.onBegin;\n\n case CALLBACK_TYPE.START:\n return gesture.onStart;\n\n case CALLBACK_TYPE.UPDATE:\n return gesture.onUpdate;\n\n case CALLBACK_TYPE.CHANGE:\n return gesture.onChange;\n\n case CALLBACK_TYPE.END:\n return gesture.onEnd;\n\n case CALLBACK_TYPE.FINALIZE:\n return gesture.onFinalize;\n\n case CALLBACK_TYPE.TOUCHES_DOWN:\n return gesture.onTouchesDown;\n\n case CALLBACK_TYPE.TOUCHES_MOVE:\n return gesture.onTouchesMove;\n\n case CALLBACK_TYPE.TOUCHES_UP:\n return gesture.onTouchesUp;\n\n case CALLBACK_TYPE.TOUCHES_CANCELLED:\n return gesture.onTouchesCancelled;\n }\n}\n\nfunction touchEventTypeToCallbackType(eventType) {\n 'worklet';\n\n switch (eventType) {\n case TouchEventType.TOUCHES_DOWN:\n return CALLBACK_TYPE.TOUCHES_DOWN;\n\n case TouchEventType.TOUCHES_MOVE:\n return CALLBACK_TYPE.TOUCHES_MOVE;\n\n case TouchEventType.TOUCHES_UP:\n return CALLBACK_TYPE.TOUCHES_UP;\n\n case TouchEventType.TOUCHES_CANCELLED:\n return CALLBACK_TYPE.TOUCHES_CANCELLED;\n }\n\n return CALLBACK_TYPE.UNDEFINED;\n}\n\nfunction runWorklet(type, gesture, event, ...args) {\n 'worklet';\n\n const handler = getHandler(type, gesture);\n\n if (gesture.isWorklet[type]) {\n // @ts-ignore Logic below makes sure the correct event is send to the\n // correct handler.\n handler === null || handler === void 0 ? void 0 : handler(event, ...args);\n } else if (handler) {\n console.warn(tagMessage('Animated gesture callback must be a worklet'));\n }\n}\n\nfunction isStateChangeEvent(event) {\n 'worklet'; // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point\n\n return event.oldState != null;\n}\n\nfunction isTouchEvent(event) {\n 'worklet';\n\n return event.eventType != null;\n}\n\nexport function useAnimatedGesture(preparedGesture, needsRebuild) {\n if (!Reanimated) {\n return;\n } // Hooks are called conditionally, but the condition is whether the\n // react-native-reanimated is installed, which shouldn't change while running\n // eslint-disable-next-line react-hooks/rules-of-hooks\n\n\n const sharedHandlersCallbacks = Reanimated.useSharedValue(null); // eslint-disable-next-line react-hooks/rules-of-hooks\n\n const lastUpdateEvent = Reanimated.useSharedValue([]); // not every gesture needs a state controller, init them lazily\n\n const stateControllers = [];\n\n const callback = event => {\n 'worklet';\n\n const currentCallback = sharedHandlersCallbacks.value;\n\n if (!currentCallback) {\n return;\n }\n\n for (let i = 0; i < currentCallback.length; i++) {\n const gesture = currentCallback[i];\n\n if (event.handlerTag !== gesture.handlerTag) {\n continue;\n }\n\n if (isStateChangeEvent(event)) {\n if (event.oldState === State.UNDETERMINED && event.state === State.BEGAN) {\n runWorklet(CALLBACK_TYPE.BEGAN, gesture, event);\n } else if ((event.oldState === State.BEGAN || event.oldState === State.UNDETERMINED) && event.state === State.ACTIVE) {\n runWorklet(CALLBACK_TYPE.START, gesture, event);\n lastUpdateEvent.value[gesture.handlerTag] = undefined;\n } else if (event.oldState !== event.state && event.state === State.END) {\n if (event.oldState === State.ACTIVE) {\n runWorklet(CALLBACK_TYPE.END, gesture, event, true);\n }\n\n runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, true);\n } else if ((event.state === State.FAILED || event.state === State.CANCELLED) && event.state !== event.oldState) {\n if (event.oldState === State.ACTIVE) {\n runWorklet(CALLBACK_TYPE.END, gesture, event, false);\n }\n\n runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, false);\n }\n } else if (isTouchEvent(event)) {\n if (!stateControllers[i]) {\n stateControllers[i] = GestureStateManager.create(event.handlerTag);\n }\n\n if (event.eventType !== TouchEventType.UNDETERMINED) {\n runWorklet(touchEventTypeToCallbackType(event.eventType), gesture, event, stateControllers[i]);\n }\n } else {\n runWorklet(CALLBACK_TYPE.UPDATE, gesture, event);\n\n if (gesture.onChange && gesture.changeEventCalculator) {\n var _gesture$changeEventC;\n\n runWorklet(CALLBACK_TYPE.CHANGE, gesture, (_gesture$changeEventC = gesture.changeEventCalculator) === null || _gesture$changeEventC === void 0 ? void 0 : _gesture$changeEventC.call(gesture, event, lastUpdateEvent.value[gesture.handlerTag]));\n lastUpdateEvent.value[gesture.handlerTag] = event;\n }\n }\n }\n }; // eslint-disable-next-line react-hooks/rules-of-hooks\n\n\n const event = Reanimated.useEvent(callback, ['onGestureHandlerStateChange', 'onGestureHandlerEvent'], needsRebuild);\n preparedGesture.animatedEventHandler = event;\n preparedGesture.animatedHandlers = sharedHandlersCallbacks;\n}\n//# sourceMappingURL=useAnimatedGesture.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNextHandlerTag } from '../getNextHandlerTag';\nimport { isRemoteDebuggingEnabled } from '../../utils';\nexport const CALLBACK_TYPE = {\n UNDEFINED: 0,\n BEGAN: 1,\n START: 2,\n UPDATE: 3,\n CHANGE: 4,\n END: 5,\n FINALIZE: 6,\n TOUCHES_DOWN: 7,\n TOUCHES_MOVE: 8,\n TOUCHES_UP: 9,\n TOUCHES_CANCELLED: 10\n}; // Allow using CALLBACK_TYPE as object and type\n// eslint-disable-next-line @typescript-eslint/no-redeclare\n\nexport class Gesture {}\nlet nextGestureId = 0;\nexport class BaseGesture extends Gesture {\n constructor() {\n super(); // Used to check whether the gesture config has been updated when wrapping it\n // with `useMemo`. Since every config will have a unique id, when the dependencies\n // don't change, the config won't be recreated and the id will stay the same.\n // If the id is different, it means that the config has changed and the gesture\n // needs to be updated.\n\n _defineProperty(this, \"gestureId\", -1);\n\n _defineProperty(this, \"handlerTag\", -1);\n\n _defineProperty(this, \"handlerName\", '');\n\n _defineProperty(this, \"config\", {});\n\n _defineProperty(this, \"handlers\", {\n gestureId: -1,\n handlerTag: -1,\n isWorklet: []\n });\n\n this.gestureId = nextGestureId++;\n this.handlers.gestureId = this.gestureId;\n }\n\n addDependency(key, gesture) {\n const value = this.config[key];\n this.config[key] = value ? Array().concat(value, gesture) : [gesture];\n }\n /**\n * Sets a `ref` to the gesture object, allowing for interoperability with the old API.\n * @param ref\n */\n\n\n withRef(ref) {\n this.config.ref = ref;\n return this;\n } // eslint-disable-next-line @typescript-eslint/ban-types\n\n\n isWorklet(callback) {\n // @ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n return callback.__workletHash !== undefined;\n }\n /**\n * Set the callback that is being called when given gesture handler starts receiving touches.\n * At the moment of this callback the handler is in `BEGAN` state and we don't know yet if it will recognize the gesture at all.\n * @param callback\n */\n\n\n onBegin(callback) {\n this.handlers.onBegin = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.BEGAN] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the callback that is being called when the gesture is recognized by the handler and it transitions to the `ACTIVE` state.\n * @param callback\n */\n\n\n onStart(callback) {\n this.handlers.onStart = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.START] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the callback that is being called when the gesture that was recognized by the handler finishes and handler reaches `END` state.\n * It will be called only if the handler was previously in the `ACTIVE` state.\n * @param callback\n */\n\n\n onEnd(callback) {\n this.handlers.onEnd = callback; // @ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n\n this.handlers.isWorklet[CALLBACK_TYPE.END] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the callback that is being called when the handler finalizes handling gesture - the gesture was recognized and has finished or it failed to recognize.\n * @param callback\n */\n\n\n onFinalize(callback) {\n this.handlers.onFinalize = callback; // @ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n\n this.handlers.isWorklet[CALLBACK_TYPE.FINALIZE] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the `onTouchesDown` callback which is called every time a pointer is placed on the screen.\n * @param callback\n */\n\n\n onTouchesDown(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesDown = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_DOWN] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the `onTouchesMove` callback which is called every time a pointer is moved on the screen.\n * @param callback\n */\n\n\n onTouchesMove(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesMove = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_MOVE] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the `onTouchesUp` callback which is called every time a pointer is lifted from the screen.\n * @param callback\n */\n\n\n onTouchesUp(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesUp = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_UP] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the `onTouchesCancelled` callback which is called every time a pointer stops being tracked, for example when the gesture finishes.\n * @param callback\n */\n\n\n onTouchesCancelled(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesCancelled = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_CANCELLED] = this.isWorklet(callback);\n return this;\n }\n /**\n * Indicates whether the given handler should be analyzing stream of touch events or not.\n * @param enabled\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#enabledvalue-boolean\n */\n\n\n enabled(enabled) {\n this.config.enabled = enabled;\n return this;\n }\n /**\n * When true the handler will cancel or fail recognition (depending on its current state) whenever the finger leaves the area of the connected view.\n * @param value\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#shouldcancelwhenoutsidevalue-boolean\n */\n\n\n shouldCancelWhenOutside(value) {\n this.config.shouldCancelWhenOutside = value;\n return this;\n }\n /**\n * This parameter enables control over what part of the connected view area can be used to begin recognizing the gesture.\n * When a negative number is provided the bounds of the view will reduce the area by the given number of points in each of the sides evenly.\n * @param hitSlop\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#hitslopsettings\n */\n\n\n hitSlop(hitSlop) {\n this.config.hitSlop = hitSlop;\n return this;\n }\n /**\n * #### Web only\n * This parameter allows to specify which `cursor` should be used when gesture activates.\n * Supports all CSS cursor values (e.g. `\"grab\"`, `\"zoom-in\"`). Default value is set to `\"auto\"`.\n * @param activeCursor\n */\n\n\n activeCursor(activeCursor) {\n this.config.activeCursor = activeCursor;\n return this;\n }\n /**\n * #### Web & Android only\n * Allows users to choose which mouse button should handler respond to.\n * Arguments can be combined using `|` operator, e.g. `mouseButton(MouseButton.LEFT | MouseButton.RIGHT)`.\n * Default value is set to `MouseButton.LEFT`.\n * @param mouseButton\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#mousebuttonvalue-mousebutton-web--android-only\n */\n\n\n mouseButton(mouseButton) {\n this.config.mouseButton = mouseButton;\n return this;\n }\n /**\n * When `react-native-reanimated` is installed, the callbacks passed to the gestures are automatically workletized and run on the UI thread when called.\n * This option allows for changing this behavior: when `true`, all the callbacks will be run on the JS thread instead of the UI thread, regardless of whether they are worklets or not.\n * Defaults to `false`.\n * @param runOnJS\n */\n\n\n runOnJS(runOnJS) {\n this.config.runOnJS = runOnJS;\n return this;\n }\n /**\n * Allows gestures across different components to be recognized simultaneously.\n * @param gestures\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/gesture-composition/#simultaneouswithexternalgesture\n */\n\n\n simultaneousWithExternalGesture(...gestures) {\n for (const gesture of gestures) {\n this.addDependency('simultaneousWith', gesture);\n }\n\n return this;\n }\n /**\n * Allows to delay activation of the handler until all handlers passed as arguments to this method fail (or don't begin at all).\n * @param gestures\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/gesture-composition/#requireexternalgesturetofail\n */\n\n\n requireExternalGestureToFail(...gestures) {\n for (const gesture of gestures) {\n this.addDependency('requireToFail', gesture);\n }\n\n return this;\n }\n /**\n * Works similarily to `requireExternalGestureToFail` but the direction of the relation is reversed - instead of being one-to-many relation, it's many-to-one.\n * @param gestures\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/gesture-composition/#blocksexternalgesture\n */\n\n\n blocksExternalGesture(...gestures) {\n for (const gesture of gestures) {\n this.addDependency('blocksHandlers', gesture);\n }\n\n return this;\n }\n /**\n * Sets a `testID` property for gesture object, allowing for querying for it in tests.\n * @param id\n */\n\n\n withTestId(id) {\n this.config.testId = id;\n return this;\n }\n /**\n * #### iOS only\n * When `true`, the handler will cancel touches for native UI components (`UIButton`, `UISwitch`, etc) it's attached to when it becomes `ACTIVE`.\n * Default value is `true`.\n * @param value\n */\n\n\n cancelsTouchesInView(value) {\n this.config.cancelsTouchesInView = value;\n return this;\n }\n\n initialize() {\n this.handlerTag = getNextHandlerTag();\n this.handlers = { ...this.handlers,\n handlerTag: this.handlerTag\n };\n\n if (this.config.ref) {\n this.config.ref.current = this;\n }\n }\n\n toGestureArray() {\n return [this];\n } // eslint-disable-next-line @typescript-eslint/no-empty-function\n\n\n prepare() {}\n\n get shouldUseReanimated() {\n // Use Reanimated when runOnJS isn't set explicitly,\n // all defined callbacks are worklets\n // and remote debugging is disabled\n return this.config.runOnJS !== true && !this.handlers.isWorklet.includes(false) && !isRemoteDebuggingEnabled();\n }\n\n}\nexport class ContinousBaseGesture extends BaseGesture {\n /**\n * Set the callback that is being called every time the gesture receives an update while it's active.\n * @param callback\n */\n onUpdate(callback) {\n this.handlers.onUpdate = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.UPDATE] = this.isWorklet(callback);\n return this;\n }\n /**\n * Set the callback that is being called every time the gesture receives an update while it's active.\n * This callback will receive information about change in value in relation to the last received event.\n * @param callback\n */\n\n\n onChange(callback) {\n this.handlers.onChange = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.CHANGE] = this.isWorklet(callback);\n return this;\n }\n /**\n * When `true` the handler will not activate by itself even if its activation criteria are met.\n * Instead you can manipulate its state using state manager.\n * @param manualActivation\n */\n\n\n manualActivation(manualActivation) {\n this.config.manualActivation = manualActivation;\n return this;\n }\n\n}\n//# sourceMappingURL=gesture.js.map","var _Reanimated;\n\nimport { tagMessage } from '../../utils';\nlet Reanimated;\n\ntry {\n Reanimated = require('react-native-reanimated');\n} catch (e) {\n // When 'react-native-reanimated' is not available we want to quietly continue\n // @ts-ignore TS demands the variable to be initialized\n Reanimated = undefined;\n}\n\nif (!((_Reanimated = Reanimated) !== null && _Reanimated !== void 0 && _Reanimated.useSharedValue)) {\n // @ts-ignore Make sure the loaded module is actually Reanimated, if it's not\n // reset the module to undefined so we can fallback to the default implementation\n Reanimated = undefined;\n}\n\nif (Reanimated !== undefined && !Reanimated.setGestureState) {\n // The loaded module is Reanimated but it doesn't have the setGestureState defined\n Reanimated.setGestureState = () => {\n 'worklet';\n\n console.warn(tagMessage('Please use newer version of react-native-reanimated in order to control state of the gestures.'));\n };\n}\n\nexport { Reanimated };\n//# sourceMappingURL=reanimatedWrapper.js.map","import { registerHandler } from '../../handlersRegistry';\nimport RNGestureHandlerModule from '../../../RNGestureHandlerModule';\nimport { filterConfig, scheduleFlushOperations } from '../../utils';\nimport { ActionType } from '../../../ActionType';\nimport { Platform } from 'react-native';\nimport { ghQueueMicrotask } from '../../../ghQueueMicrotask';\nimport { extractGestureRelations, checkGestureCallbacksForWorklets, ALLOWED_PROPS } from './utils';\nexport function attachHandlers({\n preparedGesture,\n gestureConfig,\n gesturesToAttach,\n viewTag,\n webEventHandlersRef\n}) {\n gestureConfig.initialize(); // Use queueMicrotask to extract handlerTags, because all refs should be initialized\n // when it's ran\n\n ghQueueMicrotask(() => {\n if (!preparedGesture.isMounted) {\n return;\n }\n\n gestureConfig.prepare();\n });\n\n for (const handler of gesturesToAttach) {\n checkGestureCallbacksForWorklets(handler);\n RNGestureHandlerModule.createGestureHandler(handler.handlerName, handler.handlerTag, filterConfig(handler.config, ALLOWED_PROPS));\n registerHandler(handler.handlerTag, handler, handler.config.testId);\n } // Use queueMicrotask to extract handlerTags, because all refs should be initialized\n // when it's ran\n\n\n ghQueueMicrotask(() => {\n if (!preparedGesture.isMounted) {\n return;\n }\n\n for (const handler of gesturesToAttach) {\n RNGestureHandlerModule.updateGestureHandler(handler.handlerTag, filterConfig(handler.config, ALLOWED_PROPS, extractGestureRelations(handler)));\n }\n\n scheduleFlushOperations();\n });\n\n for (const gesture of gesturesToAttach) {\n const actionType = gesture.shouldUseReanimated ? ActionType.REANIMATED_WORKLET : ActionType.JS_FUNCTION_NEW_API;\n\n if (Platform.OS === 'web') {\n RNGestureHandlerModule.attachGestureHandler(gesture.handlerTag, viewTag, ActionType.JS_FUNCTION_OLD_API, // Ignored on web\n webEventHandlersRef);\n } else {\n RNGestureHandlerModule.attachGestureHandler(gesture.handlerTag, viewTag, actionType);\n }\n }\n\n preparedGesture.attachedGestures = gesturesToAttach;\n\n if (preparedGesture.animatedHandlers) {\n const isAnimatedGesture = g => g.shouldUseReanimated;\n\n preparedGesture.animatedHandlers.value = gesturesToAttach.filter(isAnimatedGesture).map(g => g.handlers);\n }\n}\n//# sourceMappingURL=attachHandlers.js.map","import { Platform } from 'react-native';\nimport { isJestEnv, tagMessage } from '../../../utils';\nimport { BaseGesture } from '../gesture';\nimport { flingGestureHandlerProps } from '../../FlingGestureHandler';\nimport { forceTouchGestureHandlerProps } from '../../ForceTouchGestureHandler';\nimport { longPressGestureHandlerProps } from '../../LongPressGestureHandler';\nimport { panGestureHandlerProps, panGestureHandlerCustomNativeProps } from '../../PanGestureHandler';\nimport { tapGestureHandlerProps } from '../../TapGestureHandler';\nimport { hoverGestureHandlerProps } from '../hoverGesture';\nimport { nativeViewGestureHandlerProps } from '../../NativeViewGestureHandler';\nimport { baseGestureHandlerWithDetectorProps } from '../../gestureHandlerCommon';\nimport { isNewWebImplementationEnabled } from '../../../EnableNewWebImplementation';\nimport { getReactNativeVersion } from '../../../getReactNativeVersion';\nimport { RNRenderer } from '../../../RNRenderer';\nimport { useCallback, useRef, useState } from 'react';\nimport { Reanimated } from '../reanimatedWrapper';\nimport { onGestureHandlerEvent } from '../eventReceiver';\nexport const ALLOWED_PROPS = [...baseGestureHandlerWithDetectorProps, ...tapGestureHandlerProps, ...panGestureHandlerProps, ...panGestureHandlerCustomNativeProps, ...longPressGestureHandlerProps, ...forceTouchGestureHandlerProps, ...flingGestureHandlerProps, ...hoverGestureHandlerProps, ...nativeViewGestureHandlerProps];\n\nfunction convertToHandlerTag(ref) {\n if (typeof ref === 'number') {\n return ref;\n } else if (ref instanceof BaseGesture) {\n return ref.handlerTag;\n } else {\n var _ref$current$handlerT, _ref$current;\n\n // @ts-ignore in this case it should be a ref either to gesture object or\n // a gesture handler component, in both cases handlerTag property exists\n return (_ref$current$handlerT = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.handlerTag) !== null && _ref$current$handlerT !== void 0 ? _ref$current$handlerT : -1;\n }\n}\n\nfunction extractValidHandlerTags(interactionGroup) {\n var _interactionGroup$map, _interactionGroup$map2;\n\n return (_interactionGroup$map = interactionGroup === null || interactionGroup === void 0 ? void 0 : (_interactionGroup$map2 = interactionGroup.map(convertToHandlerTag)) === null || _interactionGroup$map2 === void 0 ? void 0 : _interactionGroup$map2.filter(tag => tag > 0)) !== null && _interactionGroup$map !== void 0 ? _interactionGroup$map : [];\n}\n\nexport function extractGestureRelations(gesture) {\n const requireToFail = extractValidHandlerTags(gesture.config.requireToFail);\n const simultaneousWith = extractValidHandlerTags(gesture.config.simultaneousWith);\n const blocksHandlers = extractValidHandlerTags(gesture.config.blocksHandlers);\n return {\n waitFor: requireToFail,\n simultaneousHandlers: simultaneousWith,\n blocksHandlers: blocksHandlers\n };\n}\nexport function checkGestureCallbacksForWorklets(gesture) {\n if (!__DEV__) {\n return;\n } // If a gesture is explicitly marked to run on the JS thread there is no need to check\n // if callbacks are worklets as the user is aware they will be ran on the JS thread\n\n\n if (gesture.config.runOnJS) {\n return;\n }\n\n const areSomeNotWorklets = gesture.handlers.isWorklet.includes(false);\n const areSomeWorklets = gesture.handlers.isWorklet.includes(true); // If some of the callbacks are worklets and some are not, and the gesture is not\n // explicitly marked with `.runOnJS(true)` show an error\n\n if (areSomeNotWorklets && areSomeWorklets) {\n console.error(tagMessage(`Some of the callbacks in the gesture are worklets and some are not. Either make sure that all calbacks are marked as 'worklet' if you wish to run them on the UI thread or use '.runOnJS(true)' modifier on the gesture explicitly to run all callbacks on the JS thread.`));\n }\n\n if (Reanimated === undefined) {\n // If Reanimated is not available, we can't run worklets, so we shouldn't show the warning\n return;\n }\n\n const areAllNotWorklets = !areSomeWorklets && areSomeNotWorklets; // If none of the callbacks are worklets and the gesture is not explicitly marked with\n // `.runOnJS(true)` show a warning\n\n if (areAllNotWorklets && !isJestEnv()) {\n console.warn(tagMessage(`None of the callbacks in the gesture are worklets. If you wish to run them on the JS thread use '.runOnJS(true)' modifier on the gesture to make this explicit. Otherwise, mark the callbacks as 'worklet' to run them on the UI thread.`));\n }\n} // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nexport function validateDetectorChildren(ref) {\n // Finds the first native view under the Wrap component and traverses the fiber tree upwards\n // to check whether there is more than one native view as a pseudo-direct child of GestureDetector\n // i.e. this is not ok:\n // Wrap\n // |\n // / \\\n // / \\\n // / \\\n // / \\\n // NativeView NativeView\n //\n // but this is fine:\n // Wrap\n // |\n // NativeView\n // |\n // / \\\n // / \\\n // / \\\n // / \\\n // NativeView NativeView\n if (__DEV__ && Platform.OS !== 'web') {\n const REACT_NATIVE_VERSION = getReactNativeVersion(); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n const wrapType = REACT_NATIVE_VERSION.minor > 63 || REACT_NATIVE_VERSION.major > 0 ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ref._reactInternals.elementType : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n ref._reactInternalFiber.elementType; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n let instance = RNRenderer.findHostInstance_DEPRECATED(ref)._internalFiberInstanceHandleDEV; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n\n while (instance && instance.elementType !== wrapType) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (instance.sibling) {\n throw new Error('GestureDetector has more than one native view as its children. This can happen if you are using a custom component that renders multiple views, like React.Fragment. You should wrap content of GestureDetector with a or .');\n } // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\n\n instance = instance.return;\n }\n }\n}\nexport function useForceRender() {\n const [renderState, setRenderState] = useState(false);\n const forceRender = useCallback(() => {\n setRenderState(!renderState);\n }, [renderState, setRenderState]);\n return forceRender;\n}\nexport function useWebEventHandlers() {\n return useRef({\n onGestureHandlerEvent: e => {\n onGestureHandlerEvent(e.nativeEvent);\n },\n onGestureHandlerStateChange: isNewWebImplementationEnabled() ? e => {\n onGestureHandlerEvent(e.nativeEvent);\n } : undefined\n });\n}\n//# sourceMappingURL=utils.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { ContinousBaseGesture } from './gesture';\nexport let HoverEffect;\n\n(function (HoverEffect) {\n HoverEffect[HoverEffect[\"NONE\"] = 0] = \"NONE\";\n HoverEffect[HoverEffect[\"LIFT\"] = 1] = \"LIFT\";\n HoverEffect[HoverEffect[\"HIGHLIGHT\"] = 2] = \"HIGHLIGHT\";\n})(HoverEffect || (HoverEffect = {}));\n\nexport const hoverGestureHandlerProps = ['hoverEffect'];\n\nfunction changeEventCalculator(current, previous) {\n 'worklet';\n\n let changePayload;\n\n if (previous === undefined) {\n changePayload = {\n changeX: current.x,\n changeY: current.y\n };\n } else {\n changePayload = {\n changeX: current.x - previous.x,\n changeY: current.y - previous.y\n };\n }\n\n return { ...current,\n ...changePayload\n };\n}\n\nexport class HoverGesture extends ContinousBaseGesture {\n constructor() {\n super();\n\n _defineProperty(this, \"config\", {});\n\n this.handlerName = 'HoverGestureHandler';\n }\n /**\n * #### iOS only\n * Sets the visual hover effect.\n */\n\n\n effect(effect) {\n this.config.hoverEffect = effect;\n return this;\n }\n\n onChange(callback) {\n // @ts-ignore TS being overprotective, HoverGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n\n}\n//# sourceMappingURL=hoverGesture.js.map","export function getReactNativeVersion() {\n throw new Error('getReactNativeVersion is not supported on web');\n}\n//# sourceMappingURL=getReactNativeVersion.web.js.map","export const RNRenderer = {\n findHostInstance_DEPRECATED: _ref => null\n};\n//# sourceMappingURL=RNRenderer.web.js.map","// Checks whether the gesture should be reattached to the view, this will happen when:\n// - The number of gestures in the preparedGesture is different than the number of gestures in the gesture\n// - The handlerName is different in any of the gestures\n// - At least one of the gestures changed the thread it runs on\nexport function needsToReattach(preparedGesture, newGestures) {\n if (newGestures.length !== preparedGesture.attachedGestures.length) {\n return true;\n }\n\n for (let i = 0; i < newGestures.length; i++) {\n if (newGestures[i].handlerName !== preparedGesture.attachedGestures[i].handlerName || newGestures[i].shouldUseReanimated !== preparedGesture.attachedGestures[i].shouldUseReanimated) {\n return true;\n }\n }\n\n return false;\n}\n//# sourceMappingURL=needsToReattach.js.map","import { unregisterHandler } from '../../handlersRegistry';\nimport RNGestureHandlerModule from '../../../RNGestureHandlerModule';\nimport { scheduleFlushOperations } from '../../utils';\nexport function dropHandlers(preparedGesture) {\n for (const handler of preparedGesture.attachedGestures) {\n RNGestureHandlerModule.dropGestureHandler(handler.handlerTag);\n unregisterHandler(handler.handlerTag, handler.config.testId);\n }\n\n scheduleFlushOperations();\n}\n//# sourceMappingURL=dropHandlers.js.map","var _Reanimated$default$c, _Reanimated$default;\n\nimport React from 'react';\nimport { Reanimated } from '../reanimatedWrapper';\nimport { tagMessage } from '../../../utils';\nexport class Wrap extends React.Component {\n render() {\n try {\n // I don't think that fighting with types over such a simple function is worth it\n // The only thing it does is add 'collapsable: false' to the child component\n // to make sure it is in the native view hierarchy so the detector can find\n // correct viewTag to attach to.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const child = React.Children.only(this.props.children);\n return /*#__PURE__*/React.cloneElement(child, {\n collapsable: false\n }, // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n child.props.children);\n } catch (e) {\n throw new Error(tagMessage(`GestureDetector got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`));\n }\n }\n\n}\nexport const AnimatedWrap = (_Reanimated$default$c = Reanimated === null || Reanimated === void 0 ? void 0 : (_Reanimated$default = Reanimated.default) === null || _Reanimated$default === void 0 ? void 0 : _Reanimated$default.createAnimatedComponent(Wrap)) !== null && _Reanimated$default$c !== void 0 ? _Reanimated$default$c : Wrap;\n//# sourceMappingURL=Wrap.js.map","import { useCallback } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport { attachHandlers } from './attachHandlers';\nimport { updateHandlers } from './updateHandlers';\nimport { needsToReattach } from './needsToReattach';\nimport { dropHandlers } from './dropHandlers';\nimport { useForceRender, validateDetectorChildren } from './utils'; // Returns a function that's responsible for updating the attached gestures\n// If the view has changed, it will reattach the handlers to the new view\n// If the view remains the same, it will update the handlers with the new config\n\nexport function useDetectorUpdater(state, preparedGesture, gesturesToAttach, gestureConfig, webEventHandlersRef) {\n const forceRender = useForceRender();\n const updateAttachedGestures = useCallback( // skipConfigUpdate is used to prevent unnecessary updates when only checking if the view has changed\n skipConfigUpdate => {\n // If the underlying view has changed we need to reattach handlers to the new view\n const viewTag = findNodeHandle(state.viewRef);\n const didUnderlyingViewChange = viewTag !== state.previousViewTag;\n\n if (didUnderlyingViewChange || needsToReattach(preparedGesture, gesturesToAttach)) {\n validateDetectorChildren(state.viewRef);\n dropHandlers(preparedGesture);\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesturesToAttach,\n webEventHandlersRef,\n viewTag\n });\n\n if (didUnderlyingViewChange) {\n state.previousViewTag = viewTag;\n state.forceRebuildReanimatedEvent = true;\n forceRender();\n }\n } else if (!skipConfigUpdate) {\n updateHandlers(preparedGesture, gestureConfig, gesturesToAttach);\n }\n }, [forceRender, gestureConfig, gesturesToAttach, preparedGesture, state, webEventHandlersRef]);\n return updateAttachedGestures;\n}\n//# sourceMappingURL=useDetectorUpdater.js.map","import { registerHandler } from '../../handlersRegistry';\nimport RNGestureHandlerModule from '../../../RNGestureHandlerModule';\nimport { filterConfig, scheduleFlushOperations } from '../../utils';\nimport { ghQueueMicrotask } from '../../../ghQueueMicrotask';\nimport { extractGestureRelations, checkGestureCallbacksForWorklets, ALLOWED_PROPS } from './utils';\nexport function updateHandlers(preparedGesture, gestureConfig, newGestures) {\n gestureConfig.prepare();\n\n for (let i = 0; i < newGestures.length; i++) {\n const handler = preparedGesture.attachedGestures[i];\n checkGestureCallbacksForWorklets(handler); // Only update handlerTag when it's actually different, it may be the same\n // if gesture config object is wrapped with useMemo\n\n if (newGestures[i].handlerTag !== handler.handlerTag) {\n newGestures[i].handlerTag = handler.handlerTag;\n newGestures[i].handlers.handlerTag = handler.handlerTag;\n }\n } // Use queueMicrotask to extract handlerTags, because when it's ran, all refs should be updated\n // and handlerTags in BaseGesture references should be updated in the loop above (we need to wait\n // in case of external relations)\n\n\n ghQueueMicrotask(() => {\n if (!preparedGesture.isMounted) {\n return;\n } // If amount of gesture configs changes, we need to update the callbacks in shared value\n\n\n let shouldUpdateSharedValueIfUsed = preparedGesture.attachedGestures.length !== newGestures.length;\n\n for (let i = 0; i < newGestures.length; i++) {\n const handler = preparedGesture.attachedGestures[i]; // If the gestureId is different (gesture isn't wrapped with useMemo or its dependencies changed),\n // we need to update the shared value, assuming the gesture runs on UI thread or the thread changed\n\n if (handler.handlers.gestureId !== newGestures[i].handlers.gestureId && (newGestures[i].shouldUseReanimated || handler.shouldUseReanimated)) {\n shouldUpdateSharedValueIfUsed = true;\n }\n\n handler.config = newGestures[i].config;\n handler.handlers = newGestures[i].handlers;\n RNGestureHandlerModule.updateGestureHandler(handler.handlerTag, filterConfig(handler.config, ALLOWED_PROPS, extractGestureRelations(handler)));\n registerHandler(handler.handlerTag, handler, handler.config.testId);\n }\n\n if (preparedGesture.animatedHandlers && shouldUpdateSharedValueIfUsed) {\n const newHandlersValue = preparedGesture.attachedGestures.filter(g => g.shouldUseReanimated) // Ignore gestures that shouldn't run on UI\n .map(g => g.handlers);\n preparedGesture.animatedHandlers.value = newHandlersValue;\n }\n\n scheduleFlushOperations();\n });\n}\n//# sourceMappingURL=updateHandlers.js.map","import { isFabric, tagMessage } from '../../../utils';\nimport { getShadowNodeFromRef } from '../../../getShadowNodeFromRef';\nimport { useCallback } from 'react';\nimport { findNodeHandle } from 'react-native';\n// Ref handler for the Wrap component attached under the GestureDetector.\n// It's responsible for setting the viewRef on the state and triggering the reattaching of handlers\n// if the view has changed.\nexport function useViewRefHandler(state, updateAttachedGestures) {\n const refHandler = useCallback(ref => {\n if (ref === null) {\n return;\n }\n\n state.viewRef = ref; // if it's the first render, also set the previousViewTag to prevent reattaching gestures when not needed\n\n if (state.previousViewTag === -1) {\n state.previousViewTag = findNodeHandle(state.viewRef);\n } // Pass true as `skipConfigUpdate`. Here we only want to trigger the eventual reattaching of handlers\n // in case the view has changed. If the view doesn't change, the update will be handled by detector.\n\n\n if (!state.firstRender) {\n updateAttachedGestures(true);\n }\n\n if (__DEV__ && isFabric() && global.isFormsStackingContext) {\n const node = getShadowNodeFromRef(ref);\n\n if (global.isFormsStackingContext(node) === false) {\n console.error(tagMessage('GestureDetector has received a child that may get view-flattened. ' + '\\nTo prevent it from misbehaving you need to wrap the child with a ``.'));\n }\n }\n }, [state, updateAttachedGestures]);\n return refHandler;\n}\n//# sourceMappingURL=useViewRefHandler.js.map","// Used by GestureDetector (unsupported on web at the moment) to check whether the\n// attached view may get flattened on Fabric. Original implementation causes errors\n// on web due to the static resolution of `require` statements by webpack breaking\n// the conditional importing.\nexport function getShadowNodeFromRef(_ref) {\n return null;\n}\n//# sourceMappingURL=getShadowNodeFromRef.web.js.map","import { FlingGesture } from './flingGesture';\nimport { ForceTouchGesture } from './forceTouchGesture';\nimport { ComposedGesture, ExclusiveGesture, SimultaneousGesture } from './gestureComposition';\nimport { LongPressGesture } from './longPressGesture';\nimport { PanGesture } from './panGesture';\nimport { PinchGesture } from './pinchGesture';\nimport { RotationGesture } from './rotationGesture';\nimport { TapGesture } from './tapGesture';\nimport { NativeGesture } from './nativeGesture';\nimport { ManualGesture } from './manualGesture';\nimport { HoverGesture } from './hoverGesture';\n/**\n * `Gesture` is the object that allows you to create and compose gestures.\n *\n * ### Remarks\n * - Consider wrapping your gesture configurations with `useMemo`, as it will reduce the amount of work Gesture Handler has to do under the hood when updating gestures.\n *\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/gesture\n */\n\nexport const GestureObjects = {\n /**\n * A discrete gesture that recognizes one or many taps.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture\n */\n Tap: () => {\n return new TapGesture();\n },\n\n /**\n * A continuous gesture that can recognize a panning (dragging) gesture and track its movement.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture\n */\n Pan: () => {\n return new PanGesture();\n },\n\n /**\n * A continuous gesture that recognizes pinch gesture. It allows for tracking the distance between two fingers and use that information to scale or zoom your content.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pinch-gesture\n */\n Pinch: () => {\n return new PinchGesture();\n },\n\n /**\n * A continuous gesture that can recognize rotation and track its movement.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/rotation-gesture\n */\n Rotation: () => {\n return new RotationGesture();\n },\n\n /**\n * A discrete gesture that activates when the movement is sufficiently fast.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/fling-gesture\n */\n Fling: () => {\n return new FlingGesture();\n },\n\n /**\n * A discrete gesture that activates when the corresponding view is pressed for a sufficiently long time.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/long-press-gesture\n */\n LongPress: () => {\n return new LongPressGesture();\n },\n\n /**\n * #### iOS only\n * A continuous gesture that recognizes force of a touch. It allows for tracking pressure of touch on some iOS devices.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/force-touch-gesture\n */\n ForceTouch: () => {\n return new ForceTouchGesture();\n },\n\n /**\n * A gesture that allows other touch handling components to participate in RNGH's gesture system.\n * When used, the other component should be the direct child of a `GestureDetector`.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/native-gesture\n */\n Native: () => {\n return new NativeGesture();\n },\n\n /**\n * A plain gesture that has no specific activation criteria nor event data set.\n * Its state has to be controlled manually using a state manager.\n * It will not fail when all the pointers are lifted from the screen.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/manual-gesture\n */\n Manual: () => {\n return new ManualGesture();\n },\n\n /**\n * A continuous gesture that can recognize hovering above the view it's attached to.\n * The hover effect may be activated by moving a mouse or a stylus over the view.\n *\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/hover-gesture\n */\n Hover: () => {\n return new HoverGesture();\n },\n\n /**\n * Builds a composed gesture consisting of gestures provided as parameters.\n * The first one that becomes active cancels the rest of gestures.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/gesture-composition/#race\n */\n Race: (...gestures) => {\n return new ComposedGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture that allows all base gestures to run simultaneously.\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/gesture-composition/#simultaneous\n */\n Simultaneous(...gestures) {\n return new SimultaneousGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture where only one of the provided gestures can become active.\n * Priority is decided through the order of gestures: the first one has higher priority\n * than the second one, second one has higher priority than the third one, and so on.\n * For example, to make a gesture that recognizes both single and double tap you need\n * to call Exclusive(doubleTap, singleTap).\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/gesture-composition/#exclusive\n */\n Exclusive(...gestures) {\n return new ExclusiveGesture(...gestures);\n }\n\n};\n//# sourceMappingURL=gestureObjects.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { BaseGesture } from './gesture';\nexport class FlingGesture extends BaseGesture {\n constructor() {\n super();\n\n _defineProperty(this, \"config\", {});\n\n this.handlerName = 'FlingGestureHandler';\n }\n /**\n * Determine exact number of points required to handle the fling gesture.\n * @param pointers\n */\n\n\n numberOfPointers(pointers) {\n this.config.numberOfPointers = pointers;\n return this;\n }\n /**\n * Expressed allowed direction of movement.\n * Expected values are exported as constants in the Directions object.\n * Arguments can be combined using `|` operator. Default value is set to `MouseButton.LEFT`.\n * @param direction\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/fling-gesture/#directionvalue-directions\n */\n\n\n direction(direction) {\n this.config.direction = direction;\n return this;\n }\n\n}\n//# sourceMappingURL=flingGesture.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(current, previous) {\n 'worklet';\n\n let changePayload;\n\n if (previous === undefined) {\n changePayload = {\n forceChange: current.force\n };\n } else {\n changePayload = {\n forceChange: current.force - previous.force\n };\n }\n\n return { ...current,\n ...changePayload\n };\n}\n\nexport class ForceTouchGesture extends ContinousBaseGesture {\n constructor() {\n super();\n\n _defineProperty(this, \"config\", {});\n\n this.handlerName = 'ForceTouchGestureHandler';\n }\n /**\n * A minimal pressure that is required before gesture can activate.\n * Should be a value from range [0.0, 1.0]. Default is 0.2.\n * @param force\n */\n\n\n minForce(force) {\n this.config.minForce = force;\n return this;\n }\n /**\n * A maximal pressure that could be applied for gesture.\n * If the pressure is greater, gesture fails. Should be a value from range [0.0, 1.0].\n * @param force\n */\n\n\n maxForce(force) {\n this.config.maxForce = force;\n return this;\n }\n /**\n * Value defining if haptic feedback has to be performed on activation.\n * @param value\n */\n\n\n feedbackOnActivation(value) {\n this.config.feedbackOnActivation = value;\n return this;\n }\n\n onChange(callback) {\n // @ts-ignore TS being overprotective, ForceTouchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n\n}\n//# sourceMappingURL=forceTouchGesture.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { BaseGesture, Gesture } from './gesture';\n\nfunction extendRelation(currentRelation, extendWith) {\n if (currentRelation === undefined) {\n return [...extendWith];\n } else {\n return [...currentRelation, ...extendWith];\n }\n}\n\nexport class ComposedGesture extends Gesture {\n constructor(...gestures) {\n super();\n\n _defineProperty(this, \"gestures\", []);\n\n _defineProperty(this, \"simultaneousGestures\", []);\n\n _defineProperty(this, \"requireGesturesToFail\", []);\n\n this.gestures = gestures;\n }\n\n prepareSingleGesture(gesture, simultaneousGestures, requireGesturesToFail) {\n if (gesture instanceof BaseGesture) {\n const newConfig = { ...gesture.config\n }; // No need to extend `blocksHandlers` here, because it's not changed in composition.\n // The same effect is achieved by reversing the order of 2 gestures in `Exclusive`\n\n newConfig.simultaneousWith = extendRelation(newConfig.simultaneousWith, simultaneousGestures);\n newConfig.requireToFail = extendRelation(newConfig.requireToFail, requireGesturesToFail);\n gesture.config = newConfig;\n } else if (gesture instanceof ComposedGesture) {\n gesture.simultaneousGestures = simultaneousGestures;\n gesture.requireGesturesToFail = requireGesturesToFail;\n gesture.prepare();\n }\n }\n\n prepare() {\n for (const gesture of this.gestures) {\n this.prepareSingleGesture(gesture, this.simultaneousGestures, this.requireGesturesToFail);\n }\n }\n\n initialize() {\n for (const gesture of this.gestures) {\n gesture.initialize();\n }\n }\n\n toGestureArray() {\n return this.gestures.flatMap(gesture => gesture.toGestureArray());\n }\n\n}\nexport class SimultaneousGesture extends ComposedGesture {\n prepare() {\n // This piece of magic works something like this:\n // for every gesture in the array\n const simultaneousArrays = this.gestures.map(gesture => // we take the array it's in\n this.gestures // and make a copy without it\n .filter(x => x !== gesture) // then we flatmap the result to get list of raw (not composed) gestures\n // this way we don't make the gestures simultaneous with themselves, which is\n // important when the gesture is `ExclusiveGesture` - we don't want to make\n // exclusive gestures simultaneous\n .flatMap(x => x.toGestureArray()));\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(this.gestures[i], simultaneousArrays[i], this.requireGesturesToFail);\n }\n }\n\n}\nexport class ExclusiveGesture extends ComposedGesture {\n prepare() {\n // Transforms the array of gestures into array of grouped raw (not composed) gestures\n // i.e. [gesture1, gesture2, ComposedGesture(gesture3, gesture4)] -> [[gesture1], [gesture2], [gesture3, gesture4]]\n const gestureArrays = this.gestures.map(gesture => gesture.toGestureArray());\n let requireToFail = [];\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(this.gestures[i], this.simultaneousGestures, this.requireGesturesToFail.concat(requireToFail)); // Every group gets to wait for all groups before it\n\n requireToFail = requireToFail.concat(gestureArrays[i]);\n }\n }\n\n}\n//# sourceMappingURL=gestureComposition.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { BaseGesture } from './gesture';\nexport class LongPressGesture extends BaseGesture {\n constructor() {\n super();\n\n _defineProperty(this, \"config\", {});\n\n this.handlerName = 'LongPressGestureHandler';\n this.shouldCancelWhenOutside(true);\n }\n /**\n * Minimum time, expressed in milliseconds, that a finger must remain pressed on the corresponding view.\n * The default value is 500.\n * @param duration\n */\n\n\n minDuration(duration) {\n this.config.minDurationMs = duration;\n return this;\n }\n /**\n * Maximum distance, expressed in points, that defines how far the finger is allowed to travel during a long press gesture.\n * @param distance\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/long-press-gesture#maxdistancevalue-number\n */\n\n\n maxDistance(distance) {\n this.config.maxDist = distance;\n return this;\n }\n /**\n * Determine exact number of points required to handle the long press gesture.\n * @param pointers\n */\n\n\n numberOfPointers(pointers) {\n this.config.numberOfPointers = pointers;\n return this;\n }\n\n}\n//# sourceMappingURL=longPressGesture.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(current, previous) {\n 'worklet';\n\n let changePayload;\n\n if (previous === undefined) {\n changePayload = {\n changeX: current.translationX,\n changeY: current.translationY\n };\n } else {\n changePayload = {\n changeX: current.translationX - previous.translationX,\n changeY: current.translationY - previous.translationY\n };\n }\n\n return { ...current,\n ...changePayload\n };\n}\n\nexport class PanGesture extends ContinousBaseGesture {\n constructor() {\n super();\n\n _defineProperty(this, \"config\", {});\n\n this.handlerName = 'PanGestureHandler';\n }\n /**\n * Range along Y axis (in points) where fingers travels without activation of gesture.\n * @param offset\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#activeoffsetyvalue-number--number\n */\n\n\n activeOffsetY(offset) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetYStart = offset[0];\n this.config.activeOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetYStart = offset;\n } else {\n this.config.activeOffsetYEnd = offset;\n }\n\n return this;\n }\n /**\n * Range along X axis (in points) where fingers travels without activation of gesture.\n * @param offset\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#activeoffsetxvalue-number--number\n */\n\n\n activeOffsetX(offset) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetXStart = offset[0];\n this.config.activeOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetXStart = offset;\n } else {\n this.config.activeOffsetXEnd = offset;\n }\n\n return this;\n }\n /**\n * When the finger moves outside this range (in points) along Y axis and gesture hasn't yet activated it will fail recognizing the gesture.\n * @param offset\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#failoffsetyvalue-number--number\n */\n\n\n failOffsetY(offset) {\n if (Array.isArray(offset)) {\n this.config.failOffsetYStart = offset[0];\n this.config.failOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetYStart = offset;\n } else {\n this.config.failOffsetYEnd = offset;\n }\n\n return this;\n }\n /**\n * When the finger moves outside this range (in points) along X axis and gesture hasn't yet activated it will fail recognizing the gesture.\n * @param offset\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture#failoffsetxvalue-number--number\n */\n\n\n failOffsetX(offset) {\n if (Array.isArray(offset)) {\n this.config.failOffsetXStart = offset[0];\n this.config.failOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetXStart = offset;\n } else {\n this.config.failOffsetXEnd = offset;\n }\n\n return this;\n }\n /**\n * A number of fingers that is required to be placed before gesture can activate. Should be a higher or equal to 0 integer.\n * @param minPointers\n */\n\n\n minPointers(minPointers) {\n this.config.minPointers = minPointers;\n return this;\n }\n /**\n * When the given number of fingers is placed on the screen and gesture hasn't yet activated it will fail recognizing the gesture.\n * Should be a higher or equal to 0 integer.\n * @param maxPointers\n */\n\n\n maxPointers(maxPointers) {\n this.config.maxPointers = maxPointers;\n return this;\n }\n /**\n * Minimum distance the finger (or multiple finger) need to travel before the gesture activates.\n * Expressed in points.\n * @param distance\n */\n\n\n minDistance(distance) {\n this.config.minDist = distance;\n return this;\n }\n /**\n * Minimum velocity the finger has to reach in order to activate handler.\n * @param velocity\n */\n\n\n minVelocity(velocity) {\n this.config.minVelocity = velocity;\n return this;\n }\n /**\n * Minimum velocity along X axis the finger has to reach in order to activate handler.\n * @param velocity\n */\n\n\n minVelocityX(velocity) {\n this.config.minVelocityX = velocity;\n return this;\n }\n /**\n * Minimum velocity along Y axis the finger has to reach in order to activate handler.\n * @param velocity\n */\n\n\n minVelocityY(velocity) {\n this.config.minVelocityY = velocity;\n return this;\n }\n /**\n * #### Android only\n * Android, by default, will calculate translation values based on the position of the leading pointer (the first one that was placed on the screen).\n * This modifier allows that behavior to be changed to the one that is default on iOS - the averaged position of all active pointers will be used to calculate the translation values.\n * @param value\n */\n\n\n averageTouches(value) {\n this.config.avgTouches = value;\n return this;\n }\n /**\n * #### iOS only\n * Enables two-finger gestures on supported devices, for example iPads with trackpads.\n * @param value\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture/#enabletrackpadtwofingergesturevalue-boolean-ios-only\n */\n\n\n enableTrackpadTwoFingerGesture(value) {\n this.config.enableTrackpadTwoFingerGesture = value;\n return this;\n }\n /**\n * Duration in milliseconds of the LongPress gesture before Pan is allowed to activate.\n * @param duration\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture/#activateafterlongpressduration-number\n */\n\n\n activateAfterLongPress(duration) {\n this.config.activateAfterLongPress = duration;\n return this;\n }\n\n onChange(callback) {\n // @ts-ignore TS being overprotective, PanGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n\n}\n//# sourceMappingURL=panGesture.js.map","import { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(current, previous) {\n 'worklet';\n\n let changePayload;\n\n if (previous === undefined) {\n changePayload = {\n scaleChange: current.scale\n };\n } else {\n changePayload = {\n scaleChange: current.scale / previous.scale\n };\n }\n\n return { ...current,\n ...changePayload\n };\n}\n\nexport class PinchGesture extends ContinousBaseGesture {\n constructor() {\n super();\n this.handlerName = 'PinchGestureHandler';\n }\n\n onChange(callback) {\n // @ts-ignore TS being overprotective, PinchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n\n}\n//# sourceMappingURL=pinchGesture.js.map","import { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(current, previous) {\n 'worklet';\n\n let changePayload;\n\n if (previous === undefined) {\n changePayload = {\n rotationChange: current.rotation\n };\n } else {\n changePayload = {\n rotationChange: current.rotation - previous.rotation\n };\n }\n\n return { ...current,\n ...changePayload\n };\n}\n\nexport class RotationGesture extends ContinousBaseGesture {\n constructor() {\n super();\n this.handlerName = 'RotationGestureHandler';\n }\n\n onChange(callback) {\n // @ts-ignore TS being overprotective, RotationGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n\n}\n//# sourceMappingURL=rotationGesture.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { BaseGesture } from './gesture';\nexport class TapGesture extends BaseGesture {\n constructor() {\n super();\n\n _defineProperty(this, \"config\", {});\n\n this.handlerName = 'TapGestureHandler';\n this.shouldCancelWhenOutside(true);\n }\n /**\n * Minimum number of pointers (fingers) required to be placed before the gesture activates.\n * Should be a positive integer. The default value is 1.\n * @param minPointers\n */\n\n\n minPointers(minPointers) {\n this.config.minPointers = minPointers;\n return this;\n }\n /**\n * Number of tap gestures required to activate the gesture.\n * The default value is 1.\n * @param count\n */\n\n\n numberOfTaps(count) {\n this.config.numberOfTaps = count;\n return this;\n }\n /**\n * Maximum distance, expressed in points, that defines how far the finger is allowed to travel during a tap gesture.\n * @param maxDist\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdistancevalue-number\n */\n\n\n maxDistance(maxDist) {\n this.config.maxDist = maxDist;\n return this;\n }\n /**\n * Maximum time, expressed in milliseconds, that defines how fast a finger must be released after a touch.\n * The default value is 500.\n * @param duration\n */\n\n\n maxDuration(duration) {\n this.config.maxDurationMs = duration;\n return this;\n }\n /**\n * Maximum time, expressed in milliseconds, that can pass before the next tap — if many taps are required.\n * The default value is 500.\n * @param delay\n */\n\n\n maxDelay(delay) {\n this.config.maxDelayMs = delay;\n return this;\n }\n /**\n * Maximum distance, expressed in points, that defines how far the finger is allowed to travel along the X axis during a tap gesture.\n * @param delta\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdeltaxvalue-number\n */\n\n\n maxDeltaX(delta) {\n this.config.maxDeltaX = delta;\n return this;\n }\n /**\n * Maximum distance, expressed in points, that defines how far the finger is allowed to travel along the Y axis during a tap gesture.\n * @param delta\n * @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/tap-gesture#maxdeltayvalue-number\n */\n\n\n maxDeltaY(delta) {\n this.config.maxDeltaY = delta;\n return this;\n }\n\n}\n//# sourceMappingURL=tapGesture.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { BaseGesture } from './gesture';\nexport class NativeGesture extends BaseGesture {\n constructor() {\n super();\n\n _defineProperty(this, \"config\", {});\n\n this.handlerName = 'NativeViewGestureHandler';\n }\n /**\n * When true, underlying handler will activate unconditionally when in `BEGAN` or `UNDETERMINED` state.\n * @param value\n */\n\n\n shouldActivateOnStart(value) {\n this.config.shouldActivateOnStart = value;\n return this;\n }\n /**\n * When true, cancels all other gesture handlers when this `NativeViewGestureHandler` receives an `ACTIVE` state event.\n * @param value\n */\n\n\n disallowInterruption(value) {\n this.config.disallowInterruption = value;\n return this;\n }\n\n}\n//# sourceMappingURL=nativeGesture.js.map","import { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(current, _previous) {\n 'worklet';\n\n return current;\n}\n\nexport class ManualGesture extends ContinousBaseGesture {\n constructor() {\n super();\n this.handlerName = 'ManualGestureHandler';\n }\n\n onChange(callback) {\n // @ts-ignore TS being overprotective, Record is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n\n}\n//# sourceMappingURL=manualGesture.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Animated, Platform, processColor, StyleSheet } from 'react-native';\nimport createNativeWrapper from '../handlers/createNativeWrapper';\nimport GestureHandlerButton from './GestureHandlerButton';\nimport { State } from '../State';\nexport const RawButton = createNativeWrapper(GestureHandlerButton, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: false\n});\n\nclass InnerBaseButton extends React.Component {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"lastActive\", void 0);\n\n _defineProperty(this, \"longPressTimeout\", void 0);\n\n _defineProperty(this, \"longPressDetected\", void 0);\n\n _defineProperty(this, \"handleEvent\", ({\n nativeEvent\n }) => {\n const {\n state,\n oldState,\n pointerInside\n } = nativeEvent;\n const active = pointerInside && state === State.ACTIVE;\n\n if (active !== this.lastActive && this.props.onActiveStateChange) {\n this.props.onActiveStateChange(active);\n }\n\n if (!this.longPressDetected && oldState === State.ACTIVE && state !== State.CANCELLED && this.lastActive && this.props.onPress) {\n this.props.onPress(pointerInside);\n }\n\n if (!this.lastActive && // NativeViewGestureHandler sends different events based on platform\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) && pointerInside) {\n this.longPressDetected = false;\n\n if (this.props.onLongPress) {\n this.longPressTimeout = setTimeout(this.onLongPress, this.props.delayLongPress);\n }\n } else if ( // Cancel longpress timeout if it's set and the finger moved out of the view\n state === State.ACTIVE && !pointerInside && this.longPressTimeout !== undefined) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n } else if ( // Cancel longpress timeout if it's set and the gesture has finished\n this.longPressTimeout !== undefined && (state === State.END || state === State.CANCELLED || state === State.FAILED)) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n }\n\n this.lastActive = active;\n });\n\n _defineProperty(this, \"onLongPress\", () => {\n var _this$props$onLongPre, _this$props;\n\n this.longPressDetected = true;\n (_this$props$onLongPre = (_this$props = this.props).onLongPress) === null || _this$props$onLongPre === void 0 ? void 0 : _this$props$onLongPre.call(_this$props);\n });\n\n _defineProperty(this, \"onHandlerStateChange\", e => {\n var _this$props$onHandler, _this$props2;\n\n (_this$props$onHandler = (_this$props2 = this.props).onHandlerStateChange) === null || _this$props$onHandler === void 0 ? void 0 : _this$props$onHandler.call(_this$props2, e);\n this.handleEvent(e);\n });\n\n _defineProperty(this, \"onGestureEvent\", e => {\n var _this$props$onGesture, _this$props3;\n\n (_this$props$onGesture = (_this$props3 = this.props).onGestureEvent) === null || _this$props$onGesture === void 0 ? void 0 : _this$props$onGesture.call(_this$props3, e);\n this.handleEvent(e); // TODO: maybe it is not correct\n });\n\n this.lastActive = false;\n this.longPressDetected = false;\n }\n\n render() {\n const {\n rippleColor,\n style,\n ...rest\n } = this.props;\n return /*#__PURE__*/React.createElement(RawButton, _extends({\n ref: this.props.innerRef,\n rippleColor: processColor(rippleColor),\n style: [style, Platform.OS === 'ios' && {\n cursor: undefined\n }]\n }, rest, {\n onGestureEvent: this.onGestureEvent,\n onHandlerStateChange: this.onHandlerStateChange\n }));\n }\n\n}\n\n_defineProperty(InnerBaseButton, \"defaultProps\", {\n delayLongPress: 600\n});\n\nexport const BaseButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerBaseButton, _extends({\n innerRef: ref\n}, props)));\nconst AnimatedBaseButton = Animated.createAnimatedComponent(BaseButton);\nconst btnStyles = StyleSheet.create({\n underlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0\n }\n});\n\nclass InnerRectButton extends React.Component {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"opacity\", void 0);\n\n _defineProperty(this, \"onActiveStateChange\", active => {\n var _this$props$onActiveS, _this$props4;\n\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity : 0);\n }\n\n (_this$props$onActiveS = (_this$props4 = this.props).onActiveStateChange) === null || _this$props$onActiveS === void 0 ? void 0 : _this$props$onActiveS.call(_this$props4, active);\n });\n\n this.opacity = new Animated.Value(0);\n }\n\n render() {\n const {\n children,\n style,\n ...rest\n } = this.props;\n const resolvedStyle = StyleSheet.flatten(style !== null && style !== void 0 ? style : {});\n return /*#__PURE__*/React.createElement(BaseButton, _extends({}, rest, {\n ref: this.props.innerRef,\n style: resolvedStyle,\n onActiveStateChange: this.onActiveStateChange\n }), /*#__PURE__*/React.createElement(Animated.View, {\n style: [btnStyles.underlay, {\n opacity: this.opacity,\n backgroundColor: this.props.underlayColor,\n borderRadius: resolvedStyle.borderRadius,\n borderTopLeftRadius: resolvedStyle.borderTopLeftRadius,\n borderTopRightRadius: resolvedStyle.borderTopRightRadius,\n borderBottomLeftRadius: resolvedStyle.borderBottomLeftRadius,\n borderBottomRightRadius: resolvedStyle.borderBottomRightRadius\n }]\n }), children);\n }\n\n}\n\n_defineProperty(InnerRectButton, \"defaultProps\", {\n activeOpacity: 0.105,\n underlayColor: 'black'\n});\n\nexport const RectButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerRectButton, _extends({\n innerRef: ref\n}, props)));\n\nclass InnerBorderlessButton extends React.Component {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"opacity\", void 0);\n\n _defineProperty(this, \"onActiveStateChange\", active => {\n var _this$props$onActiveS2, _this$props5;\n\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity : 1);\n }\n\n (_this$props$onActiveS2 = (_this$props5 = this.props).onActiveStateChange) === null || _this$props$onActiveS2 === void 0 ? void 0 : _this$props$onActiveS2.call(_this$props5, active);\n });\n\n this.opacity = new Animated.Value(1);\n }\n\n render() {\n const {\n children,\n style,\n innerRef,\n ...rest\n } = this.props;\n return /*#__PURE__*/React.createElement(AnimatedBaseButton, _extends({}, rest, {\n // @ts-ignore We don't want `innerRef` to be accessible from public API.\n // However in this case we need to set it indirectly on `BaseButton`, hence we use ts-ignore\n innerRef: innerRef,\n onActiveStateChange: this.onActiveStateChange,\n style: [style, Platform.OS === 'ios' && {\n opacity: this.opacity\n }]\n }), children);\n }\n\n}\n\n_defineProperty(InnerBorderlessButton, \"defaultProps\", {\n activeOpacity: 0.3,\n borderless: true\n});\n\nexport const BorderlessButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerBorderlessButton, _extends({\n innerRef: ref\n}, props)));\nexport { default as PureNativeButton } from './GestureHandlerButton';\n//# sourceMappingURL=GestureButtons.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { View } from 'react-native';\nexport default /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(View, _extends({\n ref: ref,\n accessibilityRole: \"button\"\n}, props)));\n//# sourceMappingURL=GestureHandlerButton.web.js.map","export { default as TouchableNativeFeedback } from './TouchableNativeFeedback';\nexport { default as TouchableWithoutFeedback } from './TouchableWithoutFeedback';\nexport { default as TouchableOpacity } from './TouchableOpacity';\nexport { default as TouchableHighlight } from './TouchableHighlight';\n//# sourceMappingURL=index.js.map","import { TouchableNativeFeedback } from 'react-native';\nexport default TouchableNativeFeedback;\n//# sourceMappingURL=TouchableNativeFeedback.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport GenericTouchable from './GenericTouchable';\nconst TouchableWithoutFeedback = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(GenericTouchable, _extends({\n ref: ref\n}, props)));\nTouchableWithoutFeedback.defaultProps = GenericTouchable.defaultProps;\nexport default TouchableWithoutFeedback;\n//# sourceMappingURL=TouchableWithoutFeedback.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport { Animated, Platform } from 'react-native';\nimport { State } from '../../State';\nimport { BaseButton } from '../GestureButtons';\n\n/**\n * Each touchable is a states' machine which preforms transitions.\n * On very beginning (and on the very end or recognition) touchable is\n * UNDETERMINED. Then it moves to BEGAN. If touchable recognizes that finger\n * travel outside it transits to special MOVED_OUTSIDE state. Gesture recognition\n * finishes in UNDETERMINED state.\n */\nexport const TOUCHABLE_STATE = {\n UNDETERMINED: 0,\n BEGAN: 1,\n MOVED_OUTSIDE: 2\n};\n\n/**\n * GenericTouchable is not intented to be used as it is.\n * Should be treated as a source for the rest of touchables\n */\nexport default class GenericTouchable extends Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"pressInTimeout\", void 0);\n\n _defineProperty(this, \"pressOutTimeout\", void 0);\n\n _defineProperty(this, \"longPressTimeout\", void 0);\n\n _defineProperty(this, \"longPressDetected\", false);\n\n _defineProperty(this, \"pointerInside\", true);\n\n _defineProperty(this, \"STATE\", TOUCHABLE_STATE.UNDETERMINED);\n\n _defineProperty(this, \"onGestureEvent\", ({\n nativeEvent: {\n pointerInside\n }\n }) => {\n if (this.pointerInside !== pointerInside) {\n if (pointerInside) {\n this.onMoveIn();\n } else {\n this.onMoveOut();\n }\n }\n\n this.pointerInside = pointerInside;\n });\n\n _defineProperty(this, \"onHandlerStateChange\", ({\n nativeEvent\n }) => {\n const {\n state\n } = nativeEvent;\n\n if (state === State.CANCELLED || state === State.FAILED) {\n // Need to handle case with external cancellation (e.g. by ScrollView)\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n } else if ( // This platform check is an implication of slightly different behavior of handlers on different platform.\n // And Android \"Active\" state is achieving on first move of a finger, not on press in.\n // On iOS event on \"Began\" is not delivered.\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) && this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n // Moving inside requires\n this.handlePressIn();\n } else if (state === State.END) {\n const shouldCallOnPress = !this.longPressDetected && this.STATE !== TOUCHABLE_STATE.MOVED_OUTSIDE && this.pressOutTimeout === null;\n this.handleGoToUndetermined();\n\n if (shouldCallOnPress) {\n var _this$props$onPress, _this$props;\n\n // Calls only inside component whether no long press was called previously\n (_this$props$onPress = (_this$props = this.props).onPress) === null || _this$props$onPress === void 0 ? void 0 : _this$props$onPress.call(_this$props);\n }\n }\n });\n\n _defineProperty(this, \"onLongPressDetected\", () => {\n var _this$props$onLongPre, _this$props2;\n\n this.longPressDetected = true; // Checked for in the caller of `onLongPressDetected`, but better to check twice\n\n (_this$props$onLongPre = (_this$props2 = this.props).onLongPress) === null || _this$props$onLongPre === void 0 ? void 0 : _this$props$onLongPre.call(_this$props2);\n });\n }\n\n // handlePressIn in called on first touch on traveling inside component.\n // Handles state transition with delay.\n handlePressIn() {\n if (this.props.delayPressIn) {\n this.pressInTimeout = setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n this.pressInTimeout = null;\n }, this.props.delayPressIn);\n } else {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n\n if (this.props.onLongPress) {\n const time = (this.props.delayPressIn || 0) + (this.props.delayLongPress || 0);\n this.longPressTimeout = setTimeout(this.onLongPressDetected, time);\n }\n } // handleMoveOutside in called on traveling outside component.\n // Handles state transition with delay.\n\n\n handleMoveOutside() {\n if (this.props.delayPressOut) {\n this.pressOutTimeout = this.pressOutTimeout || setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n }\n } // handleGoToUndetermined transits to UNDETERMINED state with proper delay\n\n\n handleGoToUndetermined() {\n clearTimeout(this.pressOutTimeout); // TODO: maybe it can be undefined\n\n if (this.props.delayPressOut) {\n this.pressOutTimeout = setTimeout(() => {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n }\n }\n\n componentDidMount() {\n this.reset();\n } // Reset timeout to prevent memory leaks.\n\n\n reset() {\n this.longPressDetected = false;\n this.pointerInside = true;\n clearTimeout(this.pressInTimeout);\n clearTimeout(this.pressOutTimeout);\n clearTimeout(this.longPressTimeout);\n this.pressOutTimeout = null;\n this.longPressTimeout = null;\n this.pressInTimeout = null;\n } // All states' transitions are defined here.\n\n\n moveToState(newState) {\n var _this$props$onStateCh, _this$props6;\n\n if (newState === this.STATE) {\n // Ignore dummy transitions\n return;\n }\n\n if (newState === TOUCHABLE_STATE.BEGAN) {\n var _this$props$onPressIn, _this$props3;\n\n // First touch and moving inside\n (_this$props$onPressIn = (_this$props3 = this.props).onPressIn) === null || _this$props$onPressIn === void 0 ? void 0 : _this$props$onPressIn.call(_this$props3);\n } else if (newState === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n var _this$props$onPressOu, _this$props4;\n\n // Moving outside\n (_this$props$onPressOu = (_this$props4 = this.props).onPressOut) === null || _this$props$onPressOu === void 0 ? void 0 : _this$props$onPressOu.call(_this$props4);\n } else if (newState === TOUCHABLE_STATE.UNDETERMINED) {\n // Need to reset each time on transition to UNDETERMINED\n this.reset();\n\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n var _this$props$onPressOu2, _this$props5;\n\n // ... and if it happens inside button.\n (_this$props$onPressOu2 = (_this$props5 = this.props).onPressOut) === null || _this$props$onPressOu2 === void 0 ? void 0 : _this$props$onPressOu2.call(_this$props5);\n }\n } // Finally call lister (used by subclasses)\n\n\n (_this$props$onStateCh = (_this$props6 = this.props).onStateChange) === null || _this$props$onStateCh === void 0 ? void 0 : _this$props$onStateCh.call(_this$props6, this.STATE, newState); // ... and make transition.\n\n this.STATE = newState;\n }\n\n componentWillUnmount() {\n // To prevent memory leaks\n this.reset();\n }\n\n onMoveIn() {\n if (this.STATE === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n // This call is not throttled with delays (like in RN's implementation).\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n }\n\n onMoveOut() {\n // Long press should no longer be detected\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = null;\n\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n this.handleMoveOutside();\n }\n }\n\n render() {\n var _ref, _this$props$touchSoun;\n\n const hitSlop = (_ref = typeof this.props.hitSlop === 'number' ? {\n top: this.props.hitSlop,\n left: this.props.hitSlop,\n bottom: this.props.hitSlop,\n right: this.props.hitSlop\n } : this.props.hitSlop) !== null && _ref !== void 0 ? _ref : undefined;\n const coreProps = {\n accessible: this.props.accessible !== false,\n accessibilityLabel: this.props.accessibilityLabel,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityRole: this.props.accessibilityRole,\n // TODO: check if changed to no 's' correctly, also removed 2 props that are no longer available: `accessibilityComponentType` and `accessibilityTraits`,\n // would be good to check if it is ok for sure, see: https://github.com/facebook/react-native/issues/24016\n accessibilityState: this.props.accessibilityState,\n accessibilityActions: this.props.accessibilityActions,\n onAccessibilityAction: this.props.onAccessibilityAction,\n nativeID: this.props.nativeID,\n onLayout: this.props.onLayout\n };\n return /*#__PURE__*/React.createElement(BaseButton, _extends({\n style: this.props.containerStyle,\n onHandlerStateChange: // TODO: not sure if it can be undefined instead of null\n this.props.disabled ? undefined : this.onHandlerStateChange,\n onGestureEvent: this.onGestureEvent,\n hitSlop: hitSlop,\n userSelect: this.props.userSelect,\n shouldActivateOnStart: this.props.shouldActivateOnStart,\n disallowInterruption: this.props.disallowInterruption,\n testID: this.props.testID,\n touchSoundDisabled: (_this$props$touchSoun = this.props.touchSoundDisabled) !== null && _this$props$touchSoun !== void 0 ? _this$props$touchSoun : false,\n enabled: !this.props.disabled\n }, this.props.extraButtonProps), /*#__PURE__*/React.createElement(Animated.View, _extends({}, coreProps, {\n style: this.props.style\n }), this.props.children));\n }\n\n}\n\n_defineProperty(GenericTouchable, \"defaultProps\", {\n delayLongPress: 600,\n extraButtonProps: {\n rippleColor: 'transparent',\n exclusive: true\n }\n});\n//# sourceMappingURL=GenericTouchable.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Animated, Easing, StyleSheet, View } from 'react-native';\nimport GenericTouchable, { TOUCHABLE_STATE } from './GenericTouchable';\nimport * as React from 'react';\nimport { Component } from 'react';\n\n/**\n * TouchableOpacity bases on timing animation which has been used in RN's core\n */\nexport default class TouchableOpacity extends Component {\n constructor(...args) {\n super(...args);\n\n _defineProperty(this, \"getChildStyleOpacityWithDefault\", () => {\n const childStyle = StyleSheet.flatten(this.props.style) || {};\n return childStyle.opacity == null ? 1 : childStyle.opacity.valueOf();\n });\n\n _defineProperty(this, \"opacity\", new Animated.Value(this.getChildStyleOpacityWithDefault()));\n\n _defineProperty(this, \"setOpacityTo\", (value, duration) => {\n var _this$props$useNative;\n\n Animated.timing(this.opacity, {\n toValue: value,\n duration: duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: (_this$props$useNative = this.props.useNativeAnimations) !== null && _this$props$useNative !== void 0 ? _this$props$useNative : true\n }).start();\n });\n\n _defineProperty(this, \"onStateChange\", (_from, to) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.setOpacityTo(this.props.activeOpacity, 0);\n } else if (to === TOUCHABLE_STATE.UNDETERMINED || to === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n this.setOpacityTo(this.getChildStyleOpacityWithDefault(), 150);\n }\n });\n }\n\n render() {\n const {\n style = {},\n ...rest\n } = this.props;\n return /*#__PURE__*/React.createElement(GenericTouchable, _extends({}, rest, {\n style: [style, {\n opacity: this.opacity // TODO: fix this\n\n }],\n onStateChange: this.onStateChange\n }), this.props.children ? this.props.children : /*#__PURE__*/React.createElement(View, null));\n }\n\n}\n\n_defineProperty(TouchableOpacity, \"defaultProps\", { ...GenericTouchable.defaultProps,\n activeOpacity: 0.2\n});\n//# sourceMappingURL=TouchableOpacity.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport GenericTouchable, { TOUCHABLE_STATE } from './GenericTouchable';\nimport { StyleSheet, View } from 'react-native';\n\n/**\n * TouchableHighlight follows RN's implementation\n */\nexport default class TouchableHighlight extends Component {\n constructor(props) {\n super(props);\n\n _defineProperty(this, \"showUnderlay\", () => {\n var _this$props$onShowUnd, _this$props;\n\n if (!this.hasPressHandler()) {\n return;\n }\n\n this.setState({\n extraChildStyle: {\n opacity: this.props.activeOpacity\n },\n extraUnderlayStyle: {\n backgroundColor: this.props.underlayColor\n }\n });\n (_this$props$onShowUnd = (_this$props = this.props).onShowUnderlay) === null || _this$props$onShowUnd === void 0 ? void 0 : _this$props$onShowUnd.call(_this$props);\n });\n\n _defineProperty(this, \"hasPressHandler\", () => this.props.onPress || this.props.onPressIn || this.props.onPressOut || this.props.onLongPress);\n\n _defineProperty(this, \"hideUnderlay\", () => {\n var _this$props$onHideUnd, _this$props2;\n\n this.setState({\n extraChildStyle: null,\n extraUnderlayStyle: null\n });\n (_this$props$onHideUnd = (_this$props2 = this.props).onHideUnderlay) === null || _this$props$onHideUnd === void 0 ? void 0 : _this$props$onHideUnd.call(_this$props2);\n });\n\n _defineProperty(this, \"onStateChange\", (_from, to) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.showUnderlay();\n } else if (to === TOUCHABLE_STATE.UNDETERMINED || to === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n this.hideUnderlay();\n }\n });\n\n this.state = {\n extraChildStyle: null,\n extraUnderlayStyle: null\n };\n } // Copied from RN\n\n\n renderChildren() {\n if (!this.props.children) {\n return /*#__PURE__*/React.createElement(View, null);\n }\n\n const child = React.Children.only(this.props.children); // TODO: not sure if OK but fixes error\n\n return /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, this.state.extraChildStyle)\n });\n }\n\n render() {\n const {\n style = {},\n ...rest\n } = this.props;\n const {\n extraUnderlayStyle\n } = this.state;\n return /*#__PURE__*/React.createElement(GenericTouchable, _extends({}, rest, {\n style: [style, extraUnderlayStyle],\n onStateChange: this.onStateChange\n }), this.renderChildren());\n }\n\n}\n\n_defineProperty(TouchableHighlight, \"defaultProps\", { ...GenericTouchable.defaultProps,\n activeOpacity: 0.85,\n delayPressOut: 100,\n underlayColor: 'black'\n});\n//# sourceMappingURL=TouchableHighlight.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from 'react';\nimport { FlatList as RNFlatList, Switch as RNSwitch, TextInput as RNTextInput, ScrollView as RNScrollView, View } from 'react-native';\nimport createNativeWrapper from '../handlers/createNativeWrapper';\nexport const ScrollView = createNativeWrapper(RNScrollView, {\n disallowInterruption: false\n});\nexport const Switch = createNativeWrapper(RNSwitch, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: true,\n disallowInterruption: true\n});\nexport const TextInput = createNativeWrapper(RNTextInput);\nexport const DrawerLayoutAndroid = () => {\n console.warn('DrawerLayoutAndroid is not supported on web!');\n return /*#__PURE__*/React.createElement(View, null);\n}; // RefreshControl is implemented as a functional component, rendering a View\n// NativeViewGestureHandler needs to set a ref on its child, which cannot be done\n// on functional components\n\nexport const RefreshControl = createNativeWrapper(View);\nexport const FlatList = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(RNFlatList, _extends({\n ref: ref\n}, props, {\n renderScrollComponent: scrollProps => /*#__PURE__*/React.createElement(ScrollView, scrollProps)\n})));\n//# sourceMappingURL=GestureComponents.web.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Similarily to the DrawerLayout component this deserves to be put in a\n// separate repo. Although, keeping it here for the time being will allow us to\n// move faster and fix possible issues quicker\nimport * as React from 'react';\nimport { Component } from 'react';\nimport { Animated, StyleSheet, View, I18nManager } from 'react-native';\nimport { PanGestureHandler } from '../handlers/PanGestureHandler';\nimport { TapGestureHandler } from '../handlers/TapGestureHandler';\nimport { State } from '../State';\nconst DRAG_TOSS = 0.05;\n\n/**\n * @deprecated use Reanimated version of Swipeable instead\n *\n * This component allows for implementing swipeable rows or similar interaction.\n */\nexport default class Swipeable extends Component {\n constructor(_props) {\n super(_props);\n\n _defineProperty(this, \"onGestureEvent\", void 0);\n\n _defineProperty(this, \"transX\", void 0);\n\n _defineProperty(this, \"showLeftAction\", void 0);\n\n _defineProperty(this, \"leftActionTranslate\", void 0);\n\n _defineProperty(this, \"showRightAction\", void 0);\n\n _defineProperty(this, \"rightActionTranslate\", void 0);\n\n _defineProperty(this, \"updateAnimatedEvent\", (props, state) => {\n const {\n friction,\n overshootFriction\n } = props;\n const {\n dragX,\n rowTranslation,\n leftWidth = 0,\n rowWidth = 0\n } = state;\n const {\n rightOffset = rowWidth\n } = state;\n const rightWidth = Math.max(0, rowWidth - rightOffset);\n const {\n overshootLeft = leftWidth > 0,\n overshootRight = rightWidth > 0\n } = props;\n const transX = Animated.add(rowTranslation, dragX.interpolate({\n inputRange: [0, friction],\n outputRange: [0, 1]\n })).interpolate({\n inputRange: [-rightWidth - 1, -rightWidth, leftWidth, leftWidth + 1],\n outputRange: [-rightWidth - (overshootRight ? 1 / overshootFriction : 0), -rightWidth, leftWidth, leftWidth + (overshootLeft ? 1 / overshootFriction : 0)]\n });\n this.transX = transX;\n this.showLeftAction = leftWidth > 0 ? transX.interpolate({\n inputRange: [-1, 0, leftWidth],\n outputRange: [0, 0, 1]\n }) : new Animated.Value(0);\n this.leftActionTranslate = this.showLeftAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp'\n });\n this.showRightAction = rightWidth > 0 ? transX.interpolate({\n inputRange: [-rightWidth, 0, 1],\n outputRange: [1, 0, 0]\n }) : new Animated.Value(0);\n this.rightActionTranslate = this.showRightAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp'\n });\n });\n\n _defineProperty(this, \"onTapHandlerStateChange\", ({\n nativeEvent\n }) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.close();\n }\n });\n\n _defineProperty(this, \"onHandlerStateChange\", ev => {\n if (ev.nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease(ev);\n }\n\n if (ev.nativeEvent.state === State.ACTIVE) {\n const {\n velocityX,\n translationX: dragX\n } = ev.nativeEvent;\n const {\n rowState\n } = this.state;\n const {\n friction\n } = this.props;\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction;\n const direction = rowState === -1 ? 'right' : rowState === 1 ? 'left' : translationX > 0 ? 'left' : 'right';\n\n if (rowState === 0) {\n var _this$props$onSwipeab, _this$props;\n\n (_this$props$onSwipeab = (_this$props = this.props).onSwipeableOpenStartDrag) === null || _this$props$onSwipeab === void 0 ? void 0 : _this$props$onSwipeab.call(_this$props, direction);\n } else {\n var _this$props$onSwipeab2, _this$props2;\n\n (_this$props$onSwipeab2 = (_this$props2 = this.props).onSwipeableCloseStartDrag) === null || _this$props$onSwipeab2 === void 0 ? void 0 : _this$props$onSwipeab2.call(_this$props2, direction);\n }\n }\n });\n\n _defineProperty(this, \"handleRelease\", ev => {\n const {\n velocityX,\n translationX: dragX\n } = ev.nativeEvent;\n const {\n leftWidth = 0,\n rowWidth = 0,\n rowState\n } = this.state;\n const {\n rightOffset = rowWidth\n } = this.state;\n const rightWidth = rowWidth - rightOffset;\n const {\n friction,\n leftThreshold = leftWidth / 2,\n rightThreshold = rightWidth / 2\n } = this.props;\n const startOffsetX = this.currentOffset() + dragX / friction;\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction;\n let toValue = 0;\n\n if (rowState === 0) {\n if (translationX > leftThreshold) {\n toValue = leftWidth;\n } else if (translationX < -rightThreshold) {\n toValue = -rightWidth;\n }\n } else if (rowState === 1) {\n // Swiped to left\n if (translationX > -leftThreshold) {\n toValue = leftWidth;\n }\n } else {\n // Swiped to right\n if (translationX < rightThreshold) {\n toValue = -rightWidth;\n }\n }\n\n this.animateRow(startOffsetX, toValue, velocityX / friction);\n });\n\n _defineProperty(this, \"animateRow\", (fromValue, toValue, velocityX) => {\n const {\n dragX,\n rowTranslation\n } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(fromValue);\n this.setState({\n rowState: Math.sign(toValue)\n });\n Animated.spring(rowTranslation, {\n restSpeedThreshold: 1.7,\n restDisplacementThreshold: 0.4,\n velocity: velocityX,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations,\n ...this.props.animationOptions\n }).start(({\n finished\n }) => {\n if (finished) {\n if (toValue > 0) {\n var _this$props$onSwipeab3, _this$props3, _this$props$onSwipeab4, _this$props4;\n\n (_this$props$onSwipeab3 = (_this$props3 = this.props).onSwipeableLeftOpen) === null || _this$props$onSwipeab3 === void 0 ? void 0 : _this$props$onSwipeab3.call(_this$props3);\n (_this$props$onSwipeab4 = (_this$props4 = this.props).onSwipeableOpen) === null || _this$props$onSwipeab4 === void 0 ? void 0 : _this$props$onSwipeab4.call(_this$props4, 'left', this);\n } else if (toValue < 0) {\n var _this$props$onSwipeab5, _this$props5, _this$props$onSwipeab6, _this$props6;\n\n (_this$props$onSwipeab5 = (_this$props5 = this.props).onSwipeableRightOpen) === null || _this$props$onSwipeab5 === void 0 ? void 0 : _this$props$onSwipeab5.call(_this$props5);\n (_this$props$onSwipeab6 = (_this$props6 = this.props).onSwipeableOpen) === null || _this$props$onSwipeab6 === void 0 ? void 0 : _this$props$onSwipeab6.call(_this$props6, 'right', this);\n } else {\n var _this$props$onSwipeab7, _this$props7;\n\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n (_this$props$onSwipeab7 = (_this$props7 = this.props).onSwipeableClose) === null || _this$props$onSwipeab7 === void 0 ? void 0 : _this$props$onSwipeab7.call(_this$props7, closingDirection, this);\n }\n }\n });\n\n if (toValue > 0) {\n var _this$props$onSwipeab8, _this$props8, _this$props$onSwipeab9, _this$props9;\n\n (_this$props$onSwipeab8 = (_this$props8 = this.props).onSwipeableLeftWillOpen) === null || _this$props$onSwipeab8 === void 0 ? void 0 : _this$props$onSwipeab8.call(_this$props8);\n (_this$props$onSwipeab9 = (_this$props9 = this.props).onSwipeableWillOpen) === null || _this$props$onSwipeab9 === void 0 ? void 0 : _this$props$onSwipeab9.call(_this$props9, 'left');\n } else if (toValue < 0) {\n var _this$props$onSwipeab10, _this$props10, _this$props$onSwipeab11, _this$props11;\n\n (_this$props$onSwipeab10 = (_this$props10 = this.props).onSwipeableRightWillOpen) === null || _this$props$onSwipeab10 === void 0 ? void 0 : _this$props$onSwipeab10.call(_this$props10);\n (_this$props$onSwipeab11 = (_this$props11 = this.props).onSwipeableWillOpen) === null || _this$props$onSwipeab11 === void 0 ? void 0 : _this$props$onSwipeab11.call(_this$props11, 'right');\n } else {\n var _this$props$onSwipeab12, _this$props12;\n\n const closingDirection = fromValue > 0 ? 'left' : 'right';\n (_this$props$onSwipeab12 = (_this$props12 = this.props).onSwipeableWillClose) === null || _this$props$onSwipeab12 === void 0 ? void 0 : _this$props$onSwipeab12.call(_this$props12, closingDirection);\n }\n });\n\n _defineProperty(this, \"onRowLayout\", ({\n nativeEvent\n }) => {\n this.setState({\n rowWidth: nativeEvent.layout.width\n });\n });\n\n _defineProperty(this, \"currentOffset\", () => {\n const {\n leftWidth = 0,\n rowWidth = 0,\n rowState\n } = this.state;\n const {\n rightOffset = rowWidth\n } = this.state;\n const rightWidth = rowWidth - rightOffset;\n\n if (rowState === 1) {\n return leftWidth;\n } else if (rowState === -1) {\n return -rightWidth;\n }\n\n return 0;\n });\n\n _defineProperty(this, \"close\", () => {\n this.animateRow(this.currentOffset(), 0);\n });\n\n _defineProperty(this, \"openLeft\", () => {\n const {\n leftWidth = 0\n } = this.state;\n this.animateRow(this.currentOffset(), leftWidth);\n });\n\n _defineProperty(this, \"openRight\", () => {\n const {\n rowWidth = 0\n } = this.state;\n const {\n rightOffset = rowWidth\n } = this.state;\n const rightWidth = rowWidth - rightOffset;\n this.animateRow(this.currentOffset(), -rightWidth);\n });\n\n _defineProperty(this, \"reset\", () => {\n const {\n dragX,\n rowTranslation\n } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(0);\n this.setState({\n rowState: 0\n });\n });\n\n const _dragX = new Animated.Value(0);\n\n this.state = {\n dragX: _dragX,\n rowTranslation: new Animated.Value(0),\n rowState: 0,\n leftWidth: undefined,\n rightOffset: undefined,\n rowWidth: undefined\n };\n this.updateAnimatedEvent(_props, this.state);\n this.onGestureEvent = Animated.event([{\n nativeEvent: {\n translationX: _dragX\n }\n }], {\n useNativeDriver: _props.useNativeAnimations\n });\n }\n\n shouldComponentUpdate(props, state) {\n if (this.props.friction !== props.friction || this.props.overshootLeft !== props.overshootLeft || this.props.overshootRight !== props.overshootRight || this.props.overshootFriction !== props.overshootFriction || this.state.leftWidth !== state.leftWidth || this.state.rightOffset !== state.rightOffset || this.state.rowWidth !== state.rowWidth) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n render() {\n const {\n rowState\n } = this.state;\n const {\n children,\n renderLeftActions,\n renderRightActions,\n dragOffsetFromLeftEdge = 10,\n dragOffsetFromRightEdge = 10\n } = this.props;\n const left = renderLeftActions && /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.leftActions, // All those and below parameters can have ! since they are all\n // asigned in constructor in `updateAnimatedEvent` but TS cannot spot\n // it for some reason\n {\n transform: [{\n translateX: this.leftActionTranslate\n }]\n }]\n }, renderLeftActions(this.showLeftAction, this.transX, this), /*#__PURE__*/React.createElement(View, {\n onLayout: ({\n nativeEvent\n }) => this.setState({\n leftWidth: nativeEvent.layout.x\n })\n }));\n const right = renderRightActions && /*#__PURE__*/React.createElement(Animated.View, {\n style: [styles.rightActions, {\n transform: [{\n translateX: this.rightActionTranslate\n }]\n }]\n }, renderRightActions(this.showRightAction, this.transX, this), /*#__PURE__*/React.createElement(View, {\n onLayout: ({\n nativeEvent\n }) => this.setState({\n rightOffset: nativeEvent.layout.x\n })\n }));\n return /*#__PURE__*/React.createElement(PanGestureHandler, _extends({\n activeOffsetX: [-dragOffsetFromRightEdge, dragOffsetFromLeftEdge],\n touchAction: \"pan-y\"\n }, this.props, {\n onGestureEvent: this.onGestureEvent,\n onHandlerStateChange: this.onHandlerStateChange\n }), /*#__PURE__*/React.createElement(Animated.View, {\n onLayout: this.onRowLayout,\n style: [styles.container, this.props.containerStyle]\n }, left, right, /*#__PURE__*/React.createElement(TapGestureHandler, {\n enabled: rowState !== 0,\n touchAction: \"pan-y\",\n onHandlerStateChange: this.onTapHandlerStateChange\n }, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: rowState === 0 ? 'auto' : 'box-only',\n style: [{\n transform: [{\n translateX: this.transX\n }]\n }, this.props.childrenContainerStyle]\n }, children))));\n }\n\n}\n\n_defineProperty(Swipeable, \"defaultProps\", {\n friction: 1,\n overshootFriction: 1,\n useNativeAnimations: true\n});\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden'\n },\n leftActions: { ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row'\n },\n rightActions: { ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse'\n }\n});\n//# sourceMappingURL=Swipeable.js.map","export { default } from './Pressable';\n//# sourceMappingURL=index.js.map","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { GestureObjects as Gesture } from '../../handlers/gestures/gestureObjects';\nimport { GestureDetector } from '../../handlers/gestures/GestureDetector';\nimport { Platform, processColor } from 'react-native';\nimport NativeButton from '../GestureHandlerButton';\nimport { numberAsInset, gestureToPressableEvent, isTouchWithinInset, gestureTouchToPressableEvent, addInsets } from './utils';\nimport { PressabilityDebugView } from '../../handlers/PressabilityDebugView';\nimport { INT32_MAX } from '../../utils';\nconst DEFAULT_LONG_PRESS_DURATION = 500;\nexport default function Pressable(props) {\n var _android_ripple$color, _android_ripple$radiu;\n\n const {\n testOnly_pressed,\n hitSlop,\n pressRetentionOffset,\n delayHoverIn,\n onHoverIn,\n delayHoverOut,\n onHoverOut,\n delayLongPress,\n unstable_pressDelay,\n onPress,\n onPressIn,\n onPressOut,\n onLongPress,\n style,\n children,\n android_disableSound,\n android_ripple,\n disabled,\n ...remainingProps\n } = props;\n const [pressedState, setPressedState] = useState(testOnly_pressed !== null && testOnly_pressed !== void 0 ? testOnly_pressed : false);\n const pressableRef = useRef(null); // Disabled when onLongPress has been called\n\n const isPressCallbackEnabled = useRef(true);\n const hasPassedBoundsChecks = useRef(false);\n const shouldPreventNativeEffects = useRef(false);\n const normalizedHitSlop = useMemo(() => typeof hitSlop === 'number' ? numberAsInset(hitSlop) : hitSlop !== null && hitSlop !== void 0 ? hitSlop : {}, [hitSlop]);\n const normalizedPressRetentionOffset = useMemo(() => typeof pressRetentionOffset === 'number' ? numberAsInset(pressRetentionOffset) : pressRetentionOffset !== null && pressRetentionOffset !== void 0 ? pressRetentionOffset : {}, [pressRetentionOffset]);\n const hoverInTimeout = useRef(null);\n const hoverOutTimeout = useRef(null);\n const hoverGesture = useMemo(() => Gesture.Hover().manualActivation(true) // Stops Hover from blocking Native gesture activation on web\n .cancelsTouchesInView(false).onBegin(event => {\n if (hoverOutTimeout.current) {\n clearTimeout(hoverOutTimeout.current);\n }\n\n if (delayHoverIn) {\n hoverInTimeout.current = setTimeout(() => onHoverIn === null || onHoverIn === void 0 ? void 0 : onHoverIn(gestureToPressableEvent(event)), delayHoverIn);\n return;\n }\n\n onHoverIn === null || onHoverIn === void 0 ? void 0 : onHoverIn(gestureToPressableEvent(event));\n }).onFinalize(event => {\n if (hoverInTimeout.current) {\n clearTimeout(hoverInTimeout.current);\n }\n\n if (delayHoverOut) {\n hoverOutTimeout.current = setTimeout(() => onHoverOut === null || onHoverOut === void 0 ? void 0 : onHoverOut(gestureToPressableEvent(event)), delayHoverOut);\n return;\n }\n\n onHoverOut === null || onHoverOut === void 0 ? void 0 : onHoverOut(gestureToPressableEvent(event));\n }), [delayHoverIn, delayHoverOut, onHoverIn, onHoverOut]);\n const pressDelayTimeoutRef = useRef(null);\n const isTouchPropagationAllowed = useRef(false); // iOS only: due to varying flow of gestures, events sometimes have to be saved for later use\n\n const deferredEventPayload = useRef(null);\n const pressInHandler = useCallback(event => {\n if (handlingOnTouchesDown.current) {\n deferredEventPayload.current = event;\n }\n\n if (!isTouchPropagationAllowed.current) {\n return;\n }\n\n deferredEventPayload.current = null;\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(event);\n isPressCallbackEnabled.current = true;\n pressDelayTimeoutRef.current = null;\n setPressedState(true);\n }, [onPressIn]);\n const pressOutHandler = useCallback(event => {\n if (!hasPassedBoundsChecks.current || event.nativeEvent.touches.length > event.nativeEvent.changedTouches.length) {\n return;\n }\n\n if (unstable_pressDelay && pressDelayTimeoutRef.current !== null) {\n // When delay is preemptively finished by lifting touches,\n // we want to immediately activate it's effects - pressInHandler,\n // even though we are located at the pressOutHandler\n clearTimeout(pressDelayTimeoutRef.current);\n pressInHandler(event);\n }\n\n if (deferredEventPayload.current) {\n onPressIn === null || onPressIn === void 0 ? void 0 : onPressIn(deferredEventPayload.current);\n deferredEventPayload.current = null;\n }\n\n onPressOut === null || onPressOut === void 0 ? void 0 : onPressOut(event);\n\n if (isPressCallbackEnabled.current) {\n onPress === null || onPress === void 0 ? void 0 : onPress(event);\n }\n\n if (longPressTimeoutRef.current) {\n clearTimeout(longPressTimeoutRef.current);\n longPressTimeoutRef.current = null;\n }\n\n isTouchPropagationAllowed.current = false;\n hasPassedBoundsChecks.current = false;\n isPressCallbackEnabled.current = true;\n setPressedState(false);\n }, [onPress, onPressIn, onPressOut, pressInHandler, unstable_pressDelay]);\n const handlingOnTouchesDown = useRef(false);\n const onEndHandlingTouchesDown = useRef(null);\n const cancelledMidPress = useRef(false);\n const activateLongPress = useCallback(event => {\n if (!isTouchPropagationAllowed.current) {\n return;\n }\n\n if (hasPassedBoundsChecks.current) {\n onLongPress === null || onLongPress === void 0 ? void 0 : onLongPress(gestureTouchToPressableEvent(event));\n isPressCallbackEnabled.current = false;\n }\n\n if (longPressTimeoutRef.current) {\n clearTimeout(longPressTimeoutRef.current);\n longPressTimeoutRef.current = null;\n }\n }, [onLongPress]);\n const longPressTimeoutRef = useRef(null);\n const longPressMinDuration = (delayLongPress !== null && delayLongPress !== void 0 ? delayLongPress : DEFAULT_LONG_PRESS_DURATION) + (unstable_pressDelay !== null && unstable_pressDelay !== void 0 ? unstable_pressDelay : 0);\n const pressAndTouchGesture = useMemo(() => Gesture.LongPress().minDuration(INT32_MAX) // Stops long press from blocking native gesture\n .maxDistance(INT32_MAX) // Stops long press from cancelling after set distance\n .cancelsTouchesInView(false).onTouchesDown(event => {\n var _pressableRef$current;\n\n handlingOnTouchesDown.current = true;\n (_pressableRef$current = pressableRef.current) === null || _pressableRef$current === void 0 ? void 0 : _pressableRef$current.measure((_x, _y, width, height) => {\n var _onEndHandlingTouches;\n\n if (!isTouchWithinInset({\n width,\n height\n }, normalizedHitSlop, event.changedTouches.at(-1)) || hasPassedBoundsChecks.current || cancelledMidPress.current) {\n cancelledMidPress.current = false;\n onEndHandlingTouchesDown.current = null;\n handlingOnTouchesDown.current = false;\n return;\n }\n\n hasPassedBoundsChecks.current = true; // In case of multiple touches, the first one starts long press gesture\n\n if (longPressTimeoutRef.current === null) {\n // Start long press gesture timer\n longPressTimeoutRef.current = setTimeout(() => activateLongPress(event), longPressMinDuration);\n }\n\n if (unstable_pressDelay) {\n pressDelayTimeoutRef.current = setTimeout(() => {\n pressInHandler(gestureTouchToPressableEvent(event));\n }, unstable_pressDelay);\n } else {\n pressInHandler(gestureTouchToPressableEvent(event));\n }\n\n (_onEndHandlingTouches = onEndHandlingTouchesDown.current) === null || _onEndHandlingTouches === void 0 ? void 0 : _onEndHandlingTouches.call(onEndHandlingTouchesDown);\n onEndHandlingTouchesDown.current = null;\n handlingOnTouchesDown.current = false;\n });\n }).onTouchesUp(event => {\n if (handlingOnTouchesDown.current) {\n onEndHandlingTouchesDown.current = () => pressOutHandler(gestureTouchToPressableEvent(event));\n\n return;\n } // On iOS, short taps will make LongPress gesture call onTouchesUp before Native gesture calls onStart\n // This variable ensures that onStart isn't detected as the first gesture since Pressable is pressed.\n\n\n if (deferredEventPayload.current !== null) {\n shouldPreventNativeEffects.current = true;\n }\n\n pressOutHandler(gestureTouchToPressableEvent(event));\n }).onTouchesCancelled(event => {\n isPressCallbackEnabled.current = false;\n\n if (handlingOnTouchesDown.current) {\n cancelledMidPress.current = true;\n\n onEndHandlingTouchesDown.current = () => pressOutHandler(gestureTouchToPressableEvent(event));\n\n return;\n }\n\n if (!hasPassedBoundsChecks.current || event.allTouches.length > event.changedTouches.length) {\n return;\n }\n\n pressOutHandler(gestureTouchToPressableEvent(event));\n }), [activateLongPress, longPressMinDuration, normalizedHitSlop, pressInHandler, pressOutHandler, unstable_pressDelay]); // RNButton is placed inside ButtonGesture to enable Android's ripple and to capture non-propagating events\n\n const buttonGesture = useMemo(() => Gesture.Native().onBegin(() => {\n // Android sets BEGAN state on press down\n if (Platform.OS === 'android') {\n isTouchPropagationAllowed.current = true;\n }\n }).onStart(() => {\n if (Platform.OS === 'web') {\n isTouchPropagationAllowed.current = true;\n } // iOS sets ACTIVE state on press down\n\n\n if (Platform.OS !== 'ios') {\n return;\n }\n\n if (deferredEventPayload.current) {\n isTouchPropagationAllowed.current = true;\n\n if (hasPassedBoundsChecks.current) {\n pressInHandler(deferredEventPayload.current);\n deferredEventPayload.current = null;\n } else {\n pressOutHandler(deferredEventPayload.current);\n isTouchPropagationAllowed.current = false;\n }\n\n return;\n }\n\n if (hasPassedBoundsChecks.current) {\n isTouchPropagationAllowed.current = true;\n return;\n }\n\n if (shouldPreventNativeEffects.current) {\n shouldPreventNativeEffects.current = false;\n return;\n }\n\n isTouchPropagationAllowed.current = true;\n }), [pressInHandler, pressOutHandler]);\n const appliedHitSlop = addInsets(normalizedHitSlop, normalizedPressRetentionOffset);\n const isPressableEnabled = disabled !== true;\n const gestures = [pressAndTouchGesture, hoverGesture, buttonGesture];\n\n for (const gesture of gestures) {\n gesture.enabled(isPressableEnabled);\n gesture.runOnJS(true);\n gesture.hitSlop(appliedHitSlop);\n gesture.shouldCancelWhenOutside(false);\n\n if (Platform.OS !== 'web') {\n gesture.shouldCancelWhenOutside(true);\n }\n } // Uses different hitSlop, to activate on hitSlop area instead of pressRetentionOffset area\n\n\n buttonGesture.hitSlop(normalizedHitSlop);\n const gesture = Gesture.Simultaneous(...gestures);\n const defaultRippleColor = android_ripple ? undefined : 'transparent'; // `cursor: 'pointer'` on `RNButton` crashes iOS\n\n const pointerStyle = Platform.OS === 'web' ? {\n cursor: 'pointer'\n } : {};\n const styleProp = typeof style === 'function' ? style({\n pressed: pressedState\n }) : style;\n const childrenProp = typeof children === 'function' ? children({\n pressed: pressedState\n }) : children;\n return /*#__PURE__*/React.createElement(GestureDetector, {\n gesture: gesture\n }, /*#__PURE__*/React.createElement(NativeButton, _extends({}, remainingProps, {\n ref: pressableRef,\n hitSlop: appliedHitSlop,\n enabled: isPressableEnabled,\n touchSoundDisabled: android_disableSound !== null && android_disableSound !== void 0 ? android_disableSound : undefined,\n rippleColor: processColor((_android_ripple$color = android_ripple === null || android_ripple === void 0 ? void 0 : android_ripple.color) !== null && _android_ripple$color !== void 0 ? _android_ripple$color : defaultRippleColor),\n rippleRadius: (_android_ripple$radiu = android_ripple === null || android_ripple === void 0 ? void 0 : android_ripple.radius) !== null && _android_ripple$radiu !== void 0 ? _android_ripple$radiu : undefined,\n style: [pointerStyle, styleProp]\n }), childrenProp, __DEV__ ? /*#__PURE__*/React.createElement(PressabilityDebugView, {\n color: \"red\",\n hitSlop: normalizedHitSlop\n }) : null));\n}\n//# sourceMappingURL=Pressable.js.map","const numberAsInset = value => ({\n left: value,\n right: value,\n top: value,\n bottom: value\n});\n\nconst addInsets = (a, b) => {\n var _a$left, _b$left, _a$right, _b$right, _a$top, _b$top, _a$bottom, _b$bottom;\n\n return {\n left: ((_a$left = a.left) !== null && _a$left !== void 0 ? _a$left : 0) + ((_b$left = b.left) !== null && _b$left !== void 0 ? _b$left : 0),\n right: ((_a$right = a.right) !== null && _a$right !== void 0 ? _a$right : 0) + ((_b$right = b.right) !== null && _b$right !== void 0 ? _b$right : 0),\n top: ((_a$top = a.top) !== null && _a$top !== void 0 ? _a$top : 0) + ((_b$top = b.top) !== null && _b$top !== void 0 ? _b$top : 0),\n bottom: ((_a$bottom = a.bottom) !== null && _a$bottom !== void 0 ? _a$bottom : 0) + ((_b$bottom = b.bottom) !== null && _b$bottom !== void 0 ? _b$bottom : 0)\n };\n};\n\nconst touchDataToPressEvent = (data, timestamp, targetId) => ({\n identifier: data.id,\n locationX: data.x,\n locationY: data.y,\n pageX: data.absoluteX,\n pageY: data.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [],\n // Always empty - legacy compatibility\n changedTouches: [] // Always empty - legacy compatibility\n\n});\n\nconst gestureToPressEvent = (event, timestamp, targetId) => ({\n identifier: event.handlerTag,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n touches: [],\n // Always empty - legacy compatibility\n changedTouches: [] // Always empty - legacy compatibility\n\n});\n\nconst isTouchWithinInset = (dimensions, inset, touch) => {\n var _touch$x, _inset$right, _touch$y, _inset$bottom, _touch$x2, _inset$left, _touch$y2, _inset$top;\n\n return ((_touch$x = touch === null || touch === void 0 ? void 0 : touch.x) !== null && _touch$x !== void 0 ? _touch$x : 0) < ((_inset$right = inset.right) !== null && _inset$right !== void 0 ? _inset$right : 0) + dimensions.width && ((_touch$y = touch === null || touch === void 0 ? void 0 : touch.y) !== null && _touch$y !== void 0 ? _touch$y : 0) < ((_inset$bottom = inset.bottom) !== null && _inset$bottom !== void 0 ? _inset$bottom : 0) + dimensions.height && ((_touch$x2 = touch === null || touch === void 0 ? void 0 : touch.x) !== null && _touch$x2 !== void 0 ? _touch$x2 : 0) > -((_inset$left = inset.left) !== null && _inset$left !== void 0 ? _inset$left : 0) && ((_touch$y2 = touch === null || touch === void 0 ? void 0 : touch.y) !== null && _touch$y2 !== void 0 ? _touch$y2 : 0) > -((_inset$top = inset.top) !== null && _inset$top !== void 0 ? _inset$top : 0);\n};\n\nconst gestureToPressableEvent = event => {\n const timestamp = Date.now(); // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n\n const targetId = 0;\n const pressEvent = gestureToPressEvent(event, timestamp, targetId);\n return {\n nativeEvent: {\n touches: [pressEvent],\n changedTouches: [pressEvent],\n identifier: pressEvent.identifier,\n locationX: event.x,\n locationY: event.y,\n pageX: event.absoluteX,\n pageY: event.absoluteY,\n target: targetId,\n timestamp: timestamp,\n force: undefined\n }\n };\n};\n\nconst gestureTouchToPressableEvent = event => {\n var _event$allTouches$at$, _event$allTouches$at, _event$allTouches$at$2, _event$allTouches$at2, _event$allTouches$at$3, _event$allTouches$at3, _event$allTouches$at$4, _event$allTouches$at4;\n\n const timestamp = Date.now(); // As far as I can see, there isn't a conventional way of getting targetId with the data we get\n\n const targetId = 0;\n const touchesList = event.allTouches.map(touch => touchDataToPressEvent(touch, timestamp, targetId));\n const changedTouchesList = event.changedTouches.map(touch => touchDataToPressEvent(touch, timestamp, targetId));\n return {\n nativeEvent: {\n touches: touchesList,\n changedTouches: changedTouchesList,\n identifier: event.handlerTag,\n locationX: (_event$allTouches$at$ = (_event$allTouches$at = event.allTouches.at(0)) === null || _event$allTouches$at === void 0 ? void 0 : _event$allTouches$at.x) !== null && _event$allTouches$at$ !== void 0 ? _event$allTouches$at$ : -1,\n locationY: (_event$allTouches$at$2 = (_event$allTouches$at2 = event.allTouches.at(0)) === null || _event$allTouches$at2 === void 0 ? void 0 : _event$allTouches$at2.y) !== null && _event$allTouches$at$2 !== void 0 ? _event$allTouches$at$2 : -1,\n pageX: (_event$allTouches$at$3 = (_event$allTouches$at3 = event.allTouches.at(0)) === null || _event$allTouches$at3 === void 0 ? void 0 : _event$allTouches$at3.absoluteX) !== null && _event$allTouches$at$3 !== void 0 ? _event$allTouches$at$3 : -1,\n pageY: (_event$allTouches$at$4 = (_event$allTouches$at4 = event.allTouches.at(0)) === null || _event$allTouches$at4 === void 0 ? void 0 : _event$allTouches$at4.absoluteY) !== null && _event$allTouches$at$4 !== void 0 ? _event$allTouches$at$4 : -1,\n target: targetId,\n timestamp: timestamp,\n force: undefined\n }\n };\n};\n\nexport { numberAsInset, addInsets, isTouchWithinInset, gestureToPressableEvent, gestureTouchToPressableEvent };\n//# sourceMappingURL=utils.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This component is based on RN's DrawerLayoutAndroid API\n//\n// It perhaps deserves to be put in a separate repo, but since it relies on\n// react-native-gesture-handler library which isn't very popular at the moment I\n// decided to keep it here for the time being. It will allow us to move faster\n// and fix issues that may arise in gesture handler library that could be found\n// when using the drawer component\nimport * as React from 'react';\nimport { Component } from 'react';\nimport invariant from 'invariant';\nimport { Animated, StyleSheet, View, Keyboard, StatusBar, I18nManager } from 'react-native';\nimport { PanGestureHandler } from '../handlers/PanGestureHandler';\nimport { TapGestureHandler } from '../handlers/TapGestureHandler';\nimport { State } from '../State';\nconst DRAG_TOSS = 0.05;\nconst IDLE = 'Idle';\nconst DRAGGING = 'Dragging';\nconst SETTLING = 'Settling';\nexport default class DrawerLayout extends Component {\n constructor(_props) {\n super(_props);\n\n _defineProperty(this, \"openValue\", void 0);\n\n _defineProperty(this, \"onGestureEvent\", void 0);\n\n _defineProperty(this, \"accessibilityIsModalView\", /*#__PURE__*/React.createRef());\n\n _defineProperty(this, \"pointerEventsView\", /*#__PURE__*/React.createRef());\n\n _defineProperty(this, \"panGestureHandler\", /*#__PURE__*/React.createRef());\n\n _defineProperty(this, \"drawerShown\", false);\n\n _defineProperty(this, \"updateAnimatedEvent\", (props, state) => {\n // Event definition is based on\n const {\n drawerPosition,\n drawerWidth,\n drawerType\n } = props;\n const {\n dragX: dragXValue,\n touchX: touchXValue,\n drawerTranslation,\n containerWidth\n } = state;\n let dragX = dragXValue;\n let touchX = touchXValue;\n\n if (drawerPosition !== 'left') {\n // Most of the code is written in a way to handle left-side drawer. In\n // order to handle right-side drawer the only thing we need to do is to\n // reverse events coming from gesture handler in a way they emulate\n // left-side drawer gestures. E.g. dragX is simply -dragX, and touchX is\n // calulcated by subtracing real touchX from the width of the container\n // (such that when touch happens at the right edge the value is simply 0)\n dragX = Animated.multiply(new Animated.Value(-1), dragXValue); // TODO(TS): (for all \"as\" in this file) make sure we can map this\n\n touchX = Animated.add(new Animated.Value(containerWidth), Animated.multiply(new Animated.Value(-1), touchXValue)); // TODO(TS): make sure we can map this;\n\n touchXValue.setValue(containerWidth);\n } else {\n touchXValue.setValue(0);\n } // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep\n // start position of the gesture. Then we use that value to calculate how\n // much we need to subtract from the dragX. If the gesture started on the\n // greyed out area we take the distance from the edge of the drawer to the\n // start position. Otherwise we don't subtract at all and the drawer be\n // pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n //\n\n\n let translationX = dragX;\n\n if (drawerType === 'front') {\n const startPositionX = Animated.add(touchX, Animated.multiply(new Animated.Value(-1), dragX));\n const dragOffsetFromOnStartPosition = startPositionX.interpolate({\n inputRange: [drawerWidth - 1, drawerWidth, drawerWidth + 1],\n outputRange: [0, 0, 1]\n });\n translationX = Animated.add(dragX, dragOffsetFromOnStartPosition); // TODO: as above\n }\n\n this.openValue = Animated.add(translationX, drawerTranslation).interpolate({\n inputRange: [0, drawerWidth],\n outputRange: [0, 1],\n extrapolate: 'clamp'\n });\n const gestureOptions = {\n useNativeDriver: props.useNativeAnimations\n };\n\n if (this.props.onDrawerSlide) {\n gestureOptions.listener = ev => {\n var _this$props$onDrawerS, _this$props;\n\n const translationX = Math.floor(Math.abs(ev.nativeEvent.translationX));\n const position = translationX / this.state.containerWidth;\n (_this$props$onDrawerS = (_this$props = this.props).onDrawerSlide) === null || _this$props$onDrawerS === void 0 ? void 0 : _this$props$onDrawerS.call(_this$props, position);\n };\n }\n\n this.onGestureEvent = Animated.event([{\n nativeEvent: {\n translationX: dragXValue,\n x: touchXValue\n }\n }], gestureOptions);\n });\n\n _defineProperty(this, \"handleContainerLayout\", ({\n nativeEvent\n }) => {\n this.setState({\n containerWidth: nativeEvent.layout.width\n });\n });\n\n _defineProperty(this, \"emitStateChanged\", (newState, drawerWillShow) => {\n var _this$props$onDrawerS2, _this$props2;\n\n (_this$props$onDrawerS2 = (_this$props2 = this.props).onDrawerStateChanged) === null || _this$props$onDrawerS2 === void 0 ? void 0 : _this$props$onDrawerS2.call(_this$props2, newState, drawerWillShow);\n });\n\n _defineProperty(this, \"openingHandlerStateChange\", ({\n nativeEvent\n }) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease({\n nativeEvent\n });\n } else if (nativeEvent.state === State.ACTIVE) {\n this.emitStateChanged(DRAGGING, false);\n this.setState({\n drawerState: DRAGGING\n });\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(true, this.props.statusBarAnimation || 'slide');\n }\n }\n });\n\n _defineProperty(this, \"onTapHandlerStateChange\", ({\n nativeEvent\n }) => {\n if (this.drawerShown && nativeEvent.oldState === State.ACTIVE && this.props.drawerLockMode !== 'locked-open') {\n this.closeDrawer();\n }\n });\n\n _defineProperty(this, \"handleRelease\", ({\n nativeEvent\n }) => {\n const {\n drawerWidth,\n drawerPosition,\n drawerType\n } = this.props;\n const {\n containerWidth\n } = this.state;\n let {\n translationX: dragX,\n velocityX,\n x: touchX\n } = nativeEvent;\n\n if (drawerPosition !== 'left') {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === 'front') {\n dragOffsetBasedOnStart = gestureStartX > drawerWidth ? gestureStartX - drawerWidth : 0;\n }\n\n const startOffsetX = dragX + dragOffsetBasedOnStart + (this.drawerShown ? drawerWidth : 0);\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n const shouldOpen = projOffsetX > drawerWidth / 2;\n\n if (shouldOpen) {\n this.animateDrawer(startOffsetX, drawerWidth, velocityX);\n } else {\n this.animateDrawer(startOffsetX, 0, velocityX);\n }\n });\n\n _defineProperty(this, \"updateShowing\", showing => {\n var _this$accessibilityIs, _this$pointerEventsVi, _this$panGestureHandl;\n\n this.drawerShown = showing;\n (_this$accessibilityIs = this.accessibilityIsModalView.current) === null || _this$accessibilityIs === void 0 ? void 0 : _this$accessibilityIs.setNativeProps({\n accessibilityViewIsModal: showing\n });\n (_this$pointerEventsVi = this.pointerEventsView.current) === null || _this$pointerEventsVi === void 0 ? void 0 : _this$pointerEventsVi.setNativeProps({\n pointerEvents: showing ? 'auto' : 'none'\n });\n const {\n drawerPosition,\n minSwipeDistance,\n edgeWidth\n } = this.props;\n const fromLeft = drawerPosition === 'left'; // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n\n const gestureOrientation = (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1); // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n\n const hitSlop = fromLeft ? {\n left: 0,\n width: showing ? undefined : edgeWidth\n } : {\n right: 0,\n width: showing ? undefined : edgeWidth\n }; // @ts-ignore internal API, maybe could be fixed in handler types\n\n (_this$panGestureHandl = this.panGestureHandler.current) === null || _this$panGestureHandl === void 0 ? void 0 : _this$panGestureHandl.setNativeProps({\n hitSlop,\n activeOffsetX: gestureOrientation * minSwipeDistance\n });\n });\n\n _defineProperty(this, \"animateDrawer\", (fromValue, toValue, velocity, speed) => {\n this.state.dragX.setValue(0);\n this.state.touchX.setValue(this.props.drawerPosition === 'left' ? 0 : this.state.containerWidth);\n\n if (fromValue != null) {\n let nextFramePosition = fromValue;\n\n if (this.props.useNativeAnimations) {\n // When using native driver, we predict the next position of the\n // animation because it takes one frame of a roundtrip to pass RELEASE\n // event from native driver to JS before we can start animating. Without\n // it, it is more noticable that the frame is dropped.\n if (fromValue < toValue && velocity > 0) {\n nextFramePosition = Math.min(fromValue + velocity / 60.0, toValue);\n } else if (fromValue > toValue && velocity < 0) {\n nextFramePosition = Math.max(fromValue + velocity / 60.0, toValue);\n }\n }\n\n this.state.drawerTranslation.setValue(nextFramePosition);\n }\n\n const willShow = toValue !== 0;\n this.updateShowing(willShow);\n this.emitStateChanged(SETTLING, willShow);\n this.setState({\n drawerState: SETTLING\n });\n\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(willShow, this.props.statusBarAnimation || 'slide');\n }\n\n Animated.spring(this.state.drawerTranslation, {\n velocity,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations,\n speed: speed !== null && speed !== void 0 ? speed : undefined\n }).start(({\n finished\n }) => {\n if (finished) {\n this.emitStateChanged(IDLE, willShow);\n this.setState({\n drawerOpened: willShow\n });\n\n if (this.state.drawerState !== DRAGGING) {\n // It's possilbe that user started drag while the drawer\n // was settling, don't override state in this case\n this.setState({\n drawerState: IDLE\n });\n }\n\n if (willShow) {\n var _this$props$onDrawerO, _this$props3;\n\n (_this$props$onDrawerO = (_this$props3 = this.props).onDrawerOpen) === null || _this$props$onDrawerO === void 0 ? void 0 : _this$props$onDrawerO.call(_this$props3);\n } else {\n var _this$props$onDrawerC, _this$props4;\n\n (_this$props$onDrawerC = (_this$props4 = this.props).onDrawerClose) === null || _this$props$onDrawerC === void 0 ? void 0 : _this$props$onDrawerC.call(_this$props4);\n }\n }\n });\n });\n\n _defineProperty(this, \"openDrawer\", (options = {}) => {\n this.animateDrawer( // TODO: decide if it should be null or undefined is the proper value\n undefined, this.props.drawerWidth, options.velocity ? options.velocity : 0, options.speed); // We need to force the update, otherwise the overlay is not rerendered and\n // it would not be clickable\n\n this.forceUpdate();\n });\n\n _defineProperty(this, \"closeDrawer\", (options = {}) => {\n // TODO: decide if it should be null or undefined is the proper value\n this.animateDrawer(undefined, 0, options.velocity ? options.velocity : 0, options.speed); // We need to force the update, otherwise the overlay is not rerendered and\n // it would be still clickable\n\n this.forceUpdate();\n });\n\n _defineProperty(this, \"renderOverlay\", () => {\n /* Overlay styles */\n invariant(this.openValue, 'should be set');\n let overlayOpacity;\n\n if (this.state.drawerState !== IDLE) {\n overlayOpacity = this.openValue;\n } else {\n overlayOpacity = this.state.drawerOpened ? 1 : 0;\n }\n\n const dynamicOverlayStyles = {\n opacity: overlayOpacity,\n backgroundColor: this.props.overlayColor\n };\n return /*#__PURE__*/React.createElement(TapGestureHandler, {\n onHandlerStateChange: this.onTapHandlerStateChange\n }, /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: this.drawerShown ? 'auto' : 'none',\n ref: this.pointerEventsView,\n style: [styles.overlay, dynamicOverlayStyles]\n }));\n });\n\n _defineProperty(this, \"renderDrawer\", () => {\n const {\n drawerBackgroundColor,\n drawerWidth,\n drawerPosition,\n drawerType,\n drawerContainerStyle,\n contentContainerStyle\n } = this.props;\n const fromLeft = drawerPosition === 'left';\n const drawerSlide = drawerType !== 'back';\n const containerSlide = drawerType !== 'front'; // We rely on row and row-reverse flex directions to position the drawer\n // properly. Apparently for RTL these are flipped which requires us to use\n // the opposite setting for the drawer to appear from left or right\n // according to the drawerPosition prop\n\n const reverseContentDirection = I18nManager.isRTL ? fromLeft : !fromLeft;\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth\n };\n const openValue = this.openValue;\n invariant(openValue, 'should be set');\n let containerStyles;\n\n if (containerSlide) {\n const containerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: fromLeft ? [0, drawerWidth] : [0, -drawerWidth],\n extrapolate: 'clamp'\n });\n containerStyles = {\n transform: [{\n translateX: containerTranslateX\n }]\n };\n }\n\n let drawerTranslateX = 0;\n\n if (drawerSlide) {\n const closedDrawerOffset = fromLeft ? -drawerWidth : drawerWidth;\n\n if (this.state.drawerState !== IDLE) {\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp'\n });\n } else {\n drawerTranslateX = this.state.drawerOpened ? 0 : closedDrawerOffset;\n }\n }\n\n const drawerStyles = {\n transform: [{\n translateX: drawerTranslateX\n }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row'\n };\n return /*#__PURE__*/React.createElement(Animated.View, {\n style: styles.main,\n onLayout: this.handleContainerLayout\n }, /*#__PURE__*/React.createElement(Animated.View, {\n style: [drawerType === 'front' ? styles.containerOnBack : styles.containerInFront, containerStyles, contentContainerStyle],\n importantForAccessibility: this.drawerShown ? 'no-hide-descendants' : 'yes'\n }, typeof this.props.children === 'function' ? this.props.children(this.openValue) : this.props.children, this.renderOverlay()), /*#__PURE__*/React.createElement(Animated.View, {\n pointerEvents: \"box-none\",\n ref: this.accessibilityIsModalView,\n accessibilityViewIsModal: this.drawerShown,\n style: [styles.drawerContainer, drawerStyles, drawerContainerStyle]\n }, /*#__PURE__*/React.createElement(View, {\n style: dynamicDrawerStyles\n }, this.props.renderNavigationView(this.openValue))));\n });\n\n _defineProperty(this, \"setPanGestureRef\", ref => {\n var _this$props$onGesture, _this$props5;\n\n // TODO(TS): make sure it is OK taken from\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842\n this.panGestureHandler.current = ref;\n (_this$props$onGesture = (_this$props5 = this.props).onGestureRef) === null || _this$props$onGesture === void 0 ? void 0 : _this$props$onGesture.call(_this$props5, ref);\n });\n\n const _dragX = new Animated.Value(0);\n\n const _touchX = new Animated.Value(0);\n\n const _drawerTranslation = new Animated.Value(0);\n\n this.state = {\n dragX: _dragX,\n touchX: _touchX,\n drawerTranslation: _drawerTranslation,\n containerWidth: 0,\n drawerState: IDLE,\n drawerOpened: false\n };\n this.updateAnimatedEvent(_props, this.state);\n }\n\n shouldComponentUpdate(props, state) {\n if (this.props.drawerPosition !== props.drawerPosition || this.props.drawerWidth !== props.drawerWidth || this.props.drawerType !== props.drawerType || this.state.containerWidth !== state.containerWidth) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n render() {\n const {\n drawerPosition,\n drawerLockMode,\n edgeWidth,\n minSwipeDistance\n } = this.props;\n const fromLeft = drawerPosition === 'left'; // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n\n const gestureOrientation = (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1); // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n\n const hitSlop = fromLeft ? {\n left: 0,\n width: this.drawerShown ? undefined : edgeWidth\n } : {\n right: 0,\n width: this.drawerShown ? undefined : edgeWidth\n };\n return /*#__PURE__*/React.createElement(PanGestureHandler // @ts-ignore could be fixed in handler types\n , {\n userSelect: this.props.userSelect,\n activeCursor: this.props.activeCursor,\n mouseButton: this.props.mouseButton,\n enableContextMenu: this.props.enableContextMenu,\n ref: this.setPanGestureRef,\n hitSlop: hitSlop,\n activeOffsetX: gestureOrientation * minSwipeDistance,\n failOffsetY: [-15, 15],\n onGestureEvent: this.onGestureEvent,\n onHandlerStateChange: this.openingHandlerStateChange,\n enableTrackpadTwoFingerGesture: this.props.enableTrackpadTwoFingerGesture,\n enabled: drawerLockMode !== 'locked-closed' && drawerLockMode !== 'locked-open'\n }, this.renderDrawer());\n }\n\n}\n\n_defineProperty(DrawerLayout, \"defaultProps\", {\n drawerWidth: 200,\n drawerPosition: 'left',\n useNativeAnimations: true,\n drawerType: 'front',\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: 'unlocked',\n enableTrackpadTwoFingerGesture: false\n});\n\n_defineProperty(DrawerLayout, \"positions\", {\n Left: 'left',\n Right: 'right'\n});\n\nconst styles = StyleSheet.create({\n drawerContainer: { ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row'\n },\n containerInFront: { ...StyleSheet.absoluteFillObject,\n zIndex: 1002\n },\n containerOnBack: { ...StyleSheet.absoluteFillObject\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden'\n },\n overlay: { ...StyleSheet.absoluteFillObject,\n zIndex: 1000\n }\n});\n//# sourceMappingURL=DrawerLayout.js.map"],"x_facebook_sources":[null,[{"names":["","RootLayout","Stack.props.screenOptions.header"],"mappings":"AAA;eCM;kBCK,gCD;CD4B"}],[{"names":["","AppEntry","useEffect$argument_0","initialize.then$argument_0"],"mappings":"AAA;8CCgB;YCU;sBCC;KDE;GDC;YCK;GDI;CD6B"}],[{"names":["","","reactNative.Platform.select","ownKeys","symbols.filter$argument_0","_objectSpread2","ownKeys.forEach$argument_0","_classCallCheck","_defineProperties","_createClass","_defineProperty","_extends","_inherits","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","Reflect.construct$argument_2","_objectWithoutPropertiesLoose","_objectWithoutProperties","_assertThisInitialized","_possibleConstructorReturn","_createSuper","_createSuperInternal","measure","Promise$argument_0","ref.measure$argument_0","makeTouchable","iterator2array","isClassComponent","deprecatedComponent","deprecatedComponentHOC","DeprecatedComponent","_defineProperty$argument_2","methods.forEach$argument_0","_this.name","render","componentDidMount","createCommonjsModule","createCommonjsModule$argument_0","isValidElementType","typeOf","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","toObject","shouldUseNative","Object.getOwnPropertyNames.map$argument_0","abcdefghijklmnopqrst.split.forEach$argument_0","printWarning","checkPropTypes","checkPropTypes.resetWarningCache","printWarning$1","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","getIteratorFn","is","PropTypeError","createChainableTypeChecker","checkType","createPrimitiveTypeChecker","validate","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createEnumTypeChecker","replacer","createObjectOfTypeChecker","createUnionTypeChecker","createNodeChecker","invalidValidatorError","createShapeTypeChecker","createStrictShapeTypeChecker","isNode","isSymbol","getPropType","getPreciseType","getPostfixForTypeWarning","getClassName","withContext","wrap","EnhanceContext","React__default.createElement$argument_2","enhanceForwardRef","makeMenuRegistry","subscribe","unsubscribe","updateLayoutInfo","setOptionsCustomStyles","getMenu","getAll","Backdrop","open","close","debug","MenuPlaceholder","shouldComponentUpdate","computePosition","MenuOutside","defaultOptionsContainerRenderer","layoutsEqual","MenuProvider","measure.then$argument_0","openMenu","closeMenu","toggleMenu","isMenuOpen","_getOpenedMenu","_notify","componentWillUnmount","_menuRegistry.getAll.filter$argument_0","_menuRegistry.getAll.filter.forEach$argument_0","_invalidateTriggerLayouts","_beforeClose","Promise.all.then$argument_0","Promise.all.then._catch$argument_0","_menuRegistry.getAll.find$argument_0","beforeSetState","_this4._beforeClose.then$argument_0","afterSetState","beforeSetState.then$argument_0","_isRenderNeeded","_isInitialized","_initOpen","_onOptionsLayout","_makeOptions","onLayout","MenuOptions","updateCustomStyles","componentDidUpdate","MenuTrigger","_onPress","onPress","axisPosition","fit","fitPositionIntoSafeArea","ContextMenu","isRegularComponent","isTrigger","isMenuOptions","Menu","isOpen","getName","_reduceChildren","React__default.Children.toArray.reduce$argument_0","onRef","_getTrigger","_getOptions","_getOpened","_setOpened","_validateChildren","onSelect","onOpen","onClose","onBackdropPress","get","set","MenuExternal.setDefaultRenderer","MenuExternal.setDefaultRendererProps","MenuOption","_onSelect","_getMenusOnSelect","_getCustomStyles","NotAnimatedContextMenu","SlideInMenu","axisNegativeSideProperties","axisPositiveSideProperties","centeringProperties","axisCenteredPositionProperties","getCenteringPrice","getTopPrice","getBottomPrice","getLeftPrice","getRightPrice","getStartPosKey","topProperties","bottomProperties","rightProperties","leftProperties","computeProperties","Object.values.sort$argument_0","Object.keys.find$argument_0","Popover","getContainerStyle","dynamicAnchorStyle"],"mappings":"AAA,CC;CDI,OC;kCCO;KDE;EEG;kDCK;ODE;GFI;EIE;kDCG;ODE,mJC;ODE;GJI;EME;GNI;EOE;GPQ;EQE;GRO;ESE;GTa;EUE;sDVC;KUY;GVE;EWE;GXgB;EYE;GZK;EaE;GbM;EcE;oECM,cD;GdK;EgBE;GhBa;EiBE;GjBmB;EkBE;GlBM;EmBE;GnBQ;EoBE;WCG;KDa;GpBC;gBsBM;uBCC;kBCC;ODO;KDC;GtBC;EyBgB;GzBkB;E0BK;G1BS;E2BG;G3BE;E4BO;WCE;0B7BC;Q8BK;kECW;WDE;0BEE;0BCE;aDI;WFC;S9BE;iBkCI;WlCI;iBmCG;WnCE;O6BI;KDC;G5BC;EoCE;GpCE;iDqCE;KrCK;EsC0B;GtCG;EuCE;GvCwC;EwCiB;GxCU;EyCC;GzCE;E0CC;G1CE;E2CC;G3CE;E4CC;G5CE;E6CC;G7CE;E8CC;G9CE;E+CC;G/CE;EgDC;GhDE;EiDC;GjDE;EkDC;GlDE;EmDC;GnDE;EoDC;GpDE;KqC8B;GrCE;qCqC8B;GrCK;EqDY;GrDM;EsDE;uDCoB;KDE;6CEO;KFE;GtDW;qByD0C,azD;mByDO;KzDW;E0Dc;G1DgD;qC2DO;G3DI;uB4DI,a5D;qB4DG;K5DW;E6DG;G7DE;gC8DE;ICmB;KDK;IEiF;KFU;IGU;KHI;III;MCK;OD6C;KJM;IME;MCC;ODe;KNE;IQE;KRE;ISE;MFC;OEgB;KTE;IUE;MHC;OGO;KVE;IWE;MJC;OIO;KXE;IYE;MLC;OKO;KZE;IaE;MNe;0DOQ;SPM;OME;KbE;IeE;MRC;OQkB;KfE;IgBE;MTiB;OSc;KhBE;IiBE;MVC;OUK;KjBE;IkBE;KlBK;ImBE;MZC;OYiB;KnBE;IoBE;MbC;Oa0B;KpBG;IqBE;KrB6C;IsBE;KtBsB;IuBG;KvBe;IwBI;KxBa;IyBI;KzBa;I0BG;K1BK;G9DO;uCqCE;GrCgB;EyFG;WCE;wC1FC;Q2FK;S3FI;iBkCI;qF0DK;a1DK;WlCC;O0FI;MGK;OHI;KDO;GzFC;E8Fa;ICM;KDW;IEM;KFE;IGM;KHkB;IIE;KJU;IKM;KLE;IMM;KNE;G9FU;IqGW;KrGY;asGI;2B/EG;S+EM;OtGC;auGG;2BhFG;SgFM;OvGC;akCG;OlCa;cwG2B;GxGQ;IyGO;KzGQ;a0GI;O1GG;akCG;OlCoB;wB2GiB;G3GM;oB4GE;G5GW;wC6GQ;G7GE;qB8GE;G9GE;I+GgB;0EhFO;OgFkB;sEhFE;OgFE;qEhFE;OgFE;0EhFE;OgFE;yEhFE;OgFU;kEhFE;8BiFmB;SjFS;OgFC;0EhFE;OgFe;kBEM;SFE;mBGC;SHE;oBIC;SJE;oBKC;SLE;wBMC;SNE;iBOC;SPE;K/GO;amCI;OnCgB;auHG;OvHY;aoHG;OpHE;aiHG;OjHoB;akHG;2CMI;SNE,UO;SPE;OlHG;a0HG;2CFK;SEE,UD;SCI;O1HC;a2HG;0DCU;SDE,QE;SFG;O3HC;amHG;OnHe;asHG;oDQK;SRE;6BSW;STE;6BSI;oDCC;eDE;aTC;4BWM;aXE;qCYI;SZW;OtHC;amIO;OnImB;akCG;OlCyB;aqHG;OrHK;aoIG;OpIE;aqIG;8BrBO;SqBU;OrIC;asIG;OtIU;auIG;uBCsB;SDE;OvIuB;IyIiC;KzII;a0II;O1IS;amCG;OnCE;a2IG;O3IE;akCG;OlCQ;I4IqB;K5II;a6II;O7II;akCG;sB4GgB;S5GE;OlCmB;qB+IuB;G/I8B;EgJE;GhJc;gCiJG;GjJ2B;0B2GC;G3GuB;IkJO;KlJU;amCI;OnCO;auGG;2BhFG;SgFO;OvGC;akCG;OlCiB;2BmJ0B;GnJE;kBoJE;GpJE;sBqJE;GrJE;IsJO;KtJe;amCI;OnCS;a2IG;O3IU;auHG;OvHU;asGG;OtGE;auGG;OvGE;auJG;OvJM;awJG;OxJE;akCG;OlCQ;ayJG;2ECG;qBCK;eDE;SDS;OzJC;a4JG;O5JE;a6JG;O7JE;a8JG;O9JE;a+JG;O/JE;agKG;OhKe;ciKkB,sBjK;YkKC,oBlK;amKC,qBnK;qBoKC,6BpK;SqKI;KrKE;SsKC;KtKE;oCuKG;GvKE;yCwKE;GxKE;IyKO;KzKI;a0KI;O1KW;a2KG;O3KI;a4KG;O5KK;akCG;qB4GyC;a5GE;OlCG;I6KyC;K7KI;akCI;OlCW;0B2GO;G3GgB;I8KO;K9KU;amCI;OnCO;auGG;2BhFG;SgFO;OvGC;akCG;OlCoB;E+K4B;G/KM;EgLG;GhLO;EiLG;GjLa;EkLU;GlLgC;EmLI;GnLQ;EoLI;GpLI;EqLI;GrLI;EsLI;GtLI;EuLI;GvLI;EwLE;GxLE;EyLE;GzLU;E0LE;G1LU;E2LE;G3LU;E4LE;G5LU;E6LiB;+CCqC;KDE;iHEC;KFE;G7LE;IgMO;KhMU;amCI;OnCO;auGG;2BhFG;SgFO;OvGC;akCG;OlCwC;0BiMiB;GjMiB;2BkME;GlM2C;CDqD"}],[{"names":["","ModalProvider","React.useRef$argument_0.addContent","setContentList$argument_0","React.useRef$argument_0.removeContent","list.filter$argument_0","React.useRef$argument_0.updateContent","list.map$argument_0","contentList.map$argument_0"],"mappings":"AAA;6BCW;ICK;qBCC,2CD;KDC;IGC;qBDC;oBEC,oCF,CC;KHE;IKC;qBHC;iBIC;SJK,CG;KLE;yBOgB;SPU;CDI"}],[{"names":["","defaultOptions.onDismiss","AlertProvider","alert","handleModalPress","buttons.map$argument_0","Button.props.onPress"],"mappings":"AAA;aCsB,QD;OEyB;ICW;KDgB;2BEU;GFK;oCGE;mBCO;WDG;GHW;6BIoE;qBJE;CFkB"}],[{"names":["","WithSplashScreen","Splash","useEffect$argument_0","Animated.timing.start$argument_0"],"mappings":"AAA;OCe;CDc;+BEe;YCiB;eCM;ODE;GDE;YCE;GDM;YCE;eCO;ODE;GDE;CF0B"}],[{"names":["","initialize","_.times$argument_1"],"mappings":"AAA;OCuB;sCCkC;ODG;CDkC"}],[{"names":["","","r.format","replace$argument_1"],"mappings":"AAA,CC,4ND,OC,mFC,2MC,yiBD,0BD,ED"}],[{"names":["","","a","f","u","d","t.map$argument_0","l","r.replace$argument_1","i.o.replace$argument_1","r.parse"],"mappings":"AAA,CC,+ND,OC,kTC,yCD,OE,mBF,uBE,CF,kNG,+DH,GI,yIJ,2sBK,gCL,2PM,qGC,8GC,qCD,GD,sIN,uTM,CN,oIS,wLT,0fS,4TT,ED"}],[{"names":["","","i.prototype.isBetween"],"mappings":"AAA,CC,uND,OC,qEC,yPD,ED"}],[{"names":["","","o.prototype.isToday"],"mappings":"AAA,CC,qND,OC,mEC,wED,ED"}],[{"names":["","","r.format","t.replace$argument_1","o.i.replace$argument_1"],"mappings":"AAA,CC,6ND,OC,oOC,kFD,oEE,8GC,qCD,GF,GC,0CD,ED"}],[{"names":["","","i","n.fromToBase","n.to","n.from","d","n.toNow","n.fromNow"],"mappings":"AAA,CC,0ND,OC,8PC,iDD,iCE,unBF,MG,oCH,QI,iCJ,OK,oCL,SM,sCN,WO,wCP,ED"}],[{"names":["","","t.updateLocale","forEach$argument_0"],"mappings":"AAA,CC,0ND,OC,8DC,sEC,sBD,KD,ED"}],[{"names":["","","n.utc","u.utc","u.local","u.parse","u.init","u.utcOffset","u.format","u.valueOf","u.isUTC","u.toISOString","u.toString","u.toDate","u.diff"],"mappings":"AAA,CC,iND,OC,gIC,iED,OE,gGF,SG,2DH,uBI,oGJ,qBK,mQL,+BM,iIN,2JM,sQN,yBO,iFP,WQ,iJR,SS,2BT,eU,8CV,YW,8CX,yBY,wGZ,qBa,wHb,ED"}],[{"names":["","initializeSentry"],"mappings":"AAA;OCO;CD+B"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","createQueryClient"],"mappings":"AAA;OCE;CDsB"}],[{"names":["","ignoreLogs"],"mappings":"AAA;OCG;CD6B"}],[{"names":["","observer$argument_0","IconButton.props.onPress"],"mappings":"AAA;ECyC;yBCuC;iBDE;GDgB"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","initialize","maybeInitializeFabric"],"mappings":"AAA;OCI;CDE;OEG;CFK"}],[{"names":["","isStateChangeEvent","isTouchEvent","onGestureHandlerEvent","startListening","stopListening"],"mappings":"AAA;ACU;CDG;AEE;CFE;OGE;CH8F;OIC;CJI;OKC;CLU"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","registerHandler","registerOldGestureHandler","unregisterHandler","findHandler","findOldGestureHandler","findHandlerByTestID"],"mappings":"AAA;OCK;CDM;OEC;CFE;OGC;CHM;OIC;CJE;OKC;CLE;OMC;CNU"}],[{"names":["","toArray","withPrevAndCurrent","currentArr.forEach$argument_0","hasProperty","isJestEnv","tagMessage","isFabric","isRemoteDebuggingEnabled","deepEqual"],"mappings":"AAA,OC;CDM;OEC;qBCI;GDQ;CFE;OIE;CJE;OKC;CLG;OMC;CNE;OOG;CPK;OQC;CRK;OSW;CTuB"}],[{"names":["","GestureStateManager.create","begin","activate","fail","end"],"mappings":"AAA;ECE;aCE;ODE;gBEC;OFE;YGC;OHE;WIC;OJE;GDE"}],[{"names":["_defineProperty","","NodeManager","getHandler","createGestureHandler","dropGestureHandler","getNodes"],"mappings":"AAA,iNC;eCG;ECC;GDM;EEE;GFO;EGE;GHQ;EIE;GJG;CDE"}],[{"names":["","default.handleSetJSResponder","default.handleClearJSResponder","default.createGestureHandler","default.attachGestureHandler","default.updateGestureHandler","default.getGestureHandlerNode","default.dropGestureHandler","default.flushOperations"],"mappings":"AAA;ECQ;GDE;EEE;GFE;EGE;GHsB;EIE;GJa;EKE;GLO;EME;GNM;EOE;GPM;EQG,oBR"}],[{"names":["","enableExperimentalWebImplementation","enableLegacyWebImplementation","isNewWebImplementationEnabled"],"mappings":"AAA;OCG;CDC;OEC;CFW;OGC;CHG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["_defineProperty","","PanGestureHandler","constructor","init","updateGestureConfig","resetConfig","transformNativeEvent","getTranslationX","getTranslationY","clearActivationTimeout","onPointerDown","onPointerAdd","onPointerUp","onPointerRemove","onPointerMove","onPointerOutOfBounds","shouldActivate","shouldFail","tryBegin","setTimeout$argument_0","checkBegan","activate","onCancel","onReset","resetProgress"],"mappings":"AAA,iNC;eCQ;ECC;GDsD;EEE;GFE;EGE;GHyG;EIE;GJiB;EKE;GLU;EME;GNE;EOE;GPE;EQE;GRE;ESG;GTgB;EUE;GVqB;EWE;GXsB;EYE;GZc;EaE;GbW;EcE;GdkB;EeE;GfyC;EgBE;GhBuB;EiBE;4CCU;SDE;GjBO;EmBE;GnBQ;EoBE;GpBM;EqBE;GrBE;EsBE;GtBE;EuBE;GvBO;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["_defineProperty","","GestureHandler","constructor","_defineProperty$argument_2","init","attachEventManager","onCancel","onReset","resetProgress","reset","moveToState","onStateChange","begin","fail","cancel","activate","end","isAwaiting","setAwaiting","isActive","setActive","getShouldResetProgress","setShouldResetProgress","getActivationIndex","setActivationIndex","shouldWaitForHandlerFailure","shouldRequireToWaitForFailure","shouldRecognizeSimultaneously","shouldBeCancelledByOther","onPointerDown","onPointerAdd","onPointerUp","onPointerRemove","onPointerMove","onPointerLeave","onPointerEnter","onPointerCancel","onPointerOutOfBounds","onPointerMoveOver","onPointerMoveOut","tryToSendMoveEvent","tryToSendTouchEvent","sendTouchEvent","transformEventData","transformTouchEvent","trackerData.forEach$argument_0","cancelTouches","transformNativeEvent","updateGestureConfig","checkCustomActivationCriteria","validateHitSlops","checkHitSlop","isButtonInConfig","resetConfig","onDestroy","getTag","setTag","getConfig","getDelegate","getTracker","getTrackedPointersID","getState","isEnabled","isFinished","setShouldCancelWhenOutside","getShouldCancelWhenOutside","getPointerType","invokeNullableMethod"],"mappings":"AAA,iNC;eCU;ECE;uCCmC;KDmB;GDG;EGK;GHK;EIE;GJa;EKK,aL;EME,YN;EOE,kBP;EQE;GRM;ESK;GTkB;EUE,sCV;EWE;GXQ;EYM;GZS;EaM;GbO;EcE;GdK;EeE;GfQ;EgBK;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;EoBE;GpBE;EqBE;GrBE;EsBE;GtBE;EuBE;GvBE;EwBE;GxBM;EyBE;GzBM;E0BE;G1BM;E2BE;G3BM;E4BK;G5BQ;E6BG;G7BE;E8BE;G9BE;E+BG;G/BE;EgCE;GhCE;EiCE;GjCgB;EkCE;GlCE;EmCE;GnCI;EoCE;GpCE;EqCE;GrCC;EsCE;GtCC;EuCE;GvCU;EwCE;GxCI;EyCE;GzCa;E0CK;G1Cc;E2CE;wBCa;KDS;0BCY;ODS;G3C8C;E6CE;wBDU;KCgB;G7CiB;E8CE;G9CU;E+CK;G/CkC;EgDE;GhDM;EiDE;GjDoB;EkDE;GlDgE;EmDE;GnDE;EoDE,gBpD;EqDE;GrDE;EsDK;GtDE;EuDE;GvDE;EwDE;GxDE;EyDE;GzDE;E0DE;G1DE;E2DE;G3DE;E4DE;G5DE;E6DE;G7DE;E8DE;G9DE;E+DE;G/DE;EgEE;GhEE;EiEE;GjEE;CDE;AmEE;CnEgD"}],[{"names":["",""],"mappings":"AAA;CCE;CDS;CCI;CDM"}],[{"names":["_defineProperty","","GestureHandlerOrchestrator","constructor","scheduleFinishedHandlersCleanup","cleanHandler","removeHandlerFromOrchestrator","cleanupFinishedHandlers","gestureHandlers.filter$argument_0","hasOtherHandlerToWaitFor","hasToWaitFor","shouldBeCancelledByFinishedHandler","shouldBeCancelled","tryActivate","shouldActivate","shouldBeCancelledBy","cleanupAwaitingHandlers","shouldWait","awaitingHandlers.filter$argument_0","onHandlerStateChange","makeActive","addAwaitingHandler","recordHandlerIfNotPresent","shouldHandlerWaitForOther","canRunSimultaneously","shouldHandlerBeCancelledBy","checkOverlap","isPointerWithinBothBounds","isFinished","cancelMouseAndPenGestures","gestureHandlers.forEach$argument_0","getInstance"],"mappings":"AAA,iNC;eCK;ECG;GDU;EEE;GFI;EGE;GHK;EIE;GJY;EKE;uDCY,yCD;GLC;EOE;yBCC;KDE;GPG;ESE;8BCC;KDE;GTG;EWE;GX8B;EYE;gCCC;KDE;GZG;EcE;uBCC;KDE;yDES,oEF;GdC;EiBE;GjBkD;EkBE;yDFiC,wCE;GlBC;EmBE;GnBS;EoBE;GpBS;EqBE;GrBE;EsBE;GtBE;EuBE;GvBkB;EwBE;sCCK;KDG;GxBK;E0BE;G1BE;E2BQ;iCCC;KDiB;G3BC;E6BE;G7BM;CDE"}],[{"names":["",""],"mappings":"AAA;CCE;CDM"}],[{"names":["_defineProperty","","PointerTracker","constructor","addToTracker","removeFromTracker","track","mapTouchEventId","removeMappedTouchId","getMappedTouchEventId","getVelocity","getLastAbsoluteCoords","getLastRelativeCoords","getAbsoluteCoordsAverage","getRelativeCoordsAverage","getAbsoluteCoordsSum","trackedPointers.forEach$argument_0","getRelativeCoordsSum","getTrackedPointersCount","getTrackedPointersID","getData","resetTracker","shareCommonPointers","stPointers.some$argument_0"],"mappings":"AAA,iNC;eCI;ECC;GDwB;EEE;GFuB;EGE;GHG;EIE;GJuB;EKG;GLO;EME;GNM;EOE;GPQ;EQE;GRO;ESE;GTgB;EUE;GVgB;EWM;GXS;EYE;GZS;EaE;iCCK;KDK;GbE;EeE;iCDK;KCK;GfE;EgBE;GhBE;EiBE;iCHE;KGE;GjBE;EkBE;GlBE;EmBE;GnBQ;EoBE;2BCC,2CD;GpBC;CDE"}],[{"names":["_defineProperty","","VelocityTracker","constructor","add","getVelocityEstimate","getVelocity","reset"],"mappings":"AAA,iNC;eCI;ECC;GDY;EEE;GFE;EGQ;GHmD;EIE;GJQ;EKE;GLE;CDE"}],[{"names":["_defineProperty","","CircularBuffer","constructor","get__size","push","get","clear"],"mappings":"AAA,iNC;eCE;ECC;GDa;EEE;GFE;EGE;GHI;EIE;GJY;EKE;GLI;CDE"}],[{"names":["_defineProperty","","Vector","Vector#constructor","Vector.fromVOL","Vector#get","Vector#set","Vector#dot","Vector#norm","Matrix","Matrix#constructor","Matrix#get","Matrix#set","Matrix#getRow","PolynomialFit","PolynomialFit#constructor","LeastSquareSolver","constructor","solve"],"mappings":"AAA,iNC;ACI;ECC;GDU;EEE;GFM;EGE;GHE;EIE;GJE;EKE;GLQ;EME;GNE;CDE;AQE;ECC;GDO;EEE;GFE;EGE;GHE;EIE;GJE;CRE;AaG;ECQ;GDI;CbE;eeI;ECO;GDU;EEK;GF6E;CfE"}],[{"names":["_defineProperty","","InteractionManager","constructor","configureInteractions","config.waitFor.forEach$argument_0","config.simultaneousHandlers.forEach$argument_0","config.blocksHandlers.forEach$argument_0","shouldWaitForHandlerFailure","waitFor.find$argument_0","shouldRecognizeSimultaneously","simultaneousHandlers.find$argument_0","shouldRequireHandlerToWaitForFailure","shouldHandlerBeCancelledBy","dropRelationsForHandlerWithTag","reset","getInstance"],"mappings":"AAA,iNC;eCG;ECG;GDM;EEE;6BCK;ODQ;0CEM;OFM;oCGM;OHM;GFG;EME;2ECE;KDE;GNC;EQE;kHCE;KDE;GRC;EUE;2EHE;KGE;GVC;EWE;GXQ;EYE;GZI;EaE;GbI;EcE;GdM;CDE"}],[{"names":["",""],"mappings":"AAA;CCU;CDO"}],[{"names":["_defineProperty","","TapGestureHandler","constructor","init","updateGestureConfig","resetConfig","clearTimeouts","startTap","setTimeout$argument_0","endTap","onPointerDown","onPointerAdd","onPointerUp","onPointerRemove","onPointerMove","onPointerOutOfBounds","updateState","trySettingPosition","shouldFail","activate","onCancel","resetProgress"],"mappings":"AAA,iNC;eCS;ECC;GDoC;EEE;GFE;EGE;GHoC;EIE;GJS;EKE;GLG;EME;kCCE,iBD;GNC;EQE;qCDM,iBC;GRE;ESG;GTc;EUE;GVY;EWE;GXO;EYE;GZW;EaE;GbQ;EcE;GdQ;EeE;GfiC;EgBE;GhBS;EiBE;GjBe;EkBE;GlBG;EmBE;GnBG;EoBE;GpBI;CDE"}],[{"names":["_defineProperty","","LongPressGestureHandler","constructor","init","transformNativeEvent","updateGestureConfig","resetConfig","onStateChange","onPointerDown","onPointerAdd","onPointerMove","onPointerUp","onPointerRemove","tryBegin","tryActivate","setTimeout$argument_0","checkDistanceFail"],"mappings":"AAA,iNC;eCO;ECC;GDoB;EEE;GFM;EGE;GHI;EIE;GJoB;EKE;GLI;EME;GNE;EOE;GPY;EQE;GRa;ESE;GTI;EUE;GVS;EWE;GXO;EYE;GZQ;EaE;0CCM;ODE;GbI;EeE;Gfe;CDE"}],[{"names":["_defineProperty","","PinchGestureHandler","constructor","_defineProperty$argument_2.onScaleBegin","_defineProperty$argument_2.onScale","_defineProperty$argument_2.onScaleEnd","init","updateGestureConfig","transformNativeEvent","onPointerDown","onPointerAdd","onPointerUp","onPointerRemove","onPointerMove","onPointerOutOfBounds","tryBegin","activate","onReset","resetProgress"],"mappings":"AAA,iNC;eCM;ECC;oBCY;ODG;eEC;OFc;kBGC,eH;GDI;EKE;GLG;EME;GNQ;EOE;GPO;EQE;GRI;ESE;GTK;EUE;GVe;EWE;GXQ;EYE;GZQ;EaE;GbQ;EcE;GdO;EeE;GfM;EgBE;GhBE;EiBE;GjBO;CDE"}],[{"names":["_defineProperty","","ScaleGestureDetector","constructor","onTouchEvent","tracker.getData.forEach$argument_0","getCurrentSpan","getFocusX","getFocusY","getTimeDelta","getScaleFactor"],"mappings":"AAA,iNC;eCI;ECC;GDgC;EEE;8BC6B;KDO;GFyC;EIE;GJE;EKE;GLE;EME;GNE;EOE;GPE;EQE;GRM;CDE"}],[{"names":["_defineProperty","","RotationGestureHandler","constructor","_defineProperty$argument_2.onRotationBegin","_defineProperty$argument_2.onRotation","_defineProperty$argument_2.onRotationEnd","init","updateGestureConfig","transformNativeEvent","getAnchorX","getAnchorY","onPointerDown","onPointerAdd","onPointerMove","onPointerOutOfBounds","onPointerUp","onPointerRemove","tryBegin","activate","onReset"],"mappings":"AAA,iNC;eCM;ECC;uBCY,iBD;kBEC;OFc;qBGC;OHE;GDI;EKE;GLG;EME;GNQ;EOE;GPO;EQE;GRG;ESE;GTG;EUE;GVI;EWE;GXK;EYE;GZgB;EaE;GbgB;EcE;Gdc;EeE;GfI;EgBE;GhBM;EiBE;GjBE;EkBE;GlBQ;CDE"}],[{"names":["_defineProperty","","RotationGestureDetector","constructor","updateCurrent","finish","setKeyPointers","onTouchEvent","getTimeDelta","getAnchorX","getAnchorY","getRotation","reset"],"mappings":"AAA,iNC;eCG;ECC;GD0B;EEE;GF0B;EGE;GHQ;EIE;GJQ;EKE;GLgD;EME;GNE;EOE;GPE;EQE;GRE;ESE;GTE;EUE;GVG;CDE"}],[{"names":["_defineProperty","","FlingGestureHandler","constructor","init","updateGestureConfig","startFling","setTimeout$argument_0","tryEndFling","getAlignment","axialDirectionsList.map$argument_0","diagonalDirectionsList.map$argument_0","endFling","onPointerDown","onPointerAdd","newPointerAction","pointerMoveAction","onPointerMove","onPointerOutOfBounds","onPointerUp","onPointerRemove","onUp","activate","resetConfig"],"mappings":"AAA,iNC;eCc;ECC;GDgB;EEE;GFE;EGE;GHgB;EIE;mCCG,iBD;GJC;EME;yBCG;KDE;uDEK,4DF;6DGC,+DH;GNW;EUE;GVI;EWE;GXU;EYE;GZI;EaE;Gbc;EcE;GdQ;EeE;GfG;EgBE;GhBG;EiBE;GjBI;EkBE;GlBG;EmBE;GnBM;EoBE;GpBG;EqBE;GrBI;CDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["_defineProperty","","Vector","constructor","fromDirection","fromVelocity","get__magnitude","computeSimilarity","isSimilar"],"mappings":"AAA,iNC;eCI;ECC;GDiB;EEE;GFI;EGE;GHG;EIE;GJE;EKE;GLE;EME;GNE;CDE"}],[{"names":["","isPointerInBounds","degToRad","coneToDeviation","calculateViewScale","tryExtractStylusData","tilt2spherical","spherical2tilt"],"mappings":"AAA;OCC;CDM;wBEE,kCF;+BGC,0CH;OIC;CJ6B;OKC;CLmD;AMK;CNgD;AOK;CP4D"}],[{"names":["_defineProperty","","NativeViewGestureHandler","constructor","init","updateGestureConfig","restoreViewStyles","resetConfig","onPointerDown","onPointerAdd","newPointerAction","onPointerMove","onPointerLeave","onPointerUp","onPointerRemove","onUp","shouldRecognizeSimultaneously","shouldBeCancelledByOther","disallowsInterruption","isButton"],"mappings":"AAA,iNC;eCM;ECC;GDc;EEE;GFW;EGE;GHmB;EIE;GJQ;EKE;GLE;EME;GNK;EOE;GPI;EQE;GRc;ESE;GTc;EUE;GVI;EWE;GXG;EYE;GZG;EaE;GbU;EcE;GdgB;EeE;GfE;EgBE;GhBE;EiBE;GjBE;CDE"}],[{"names":["","ManualGestureHandler","init","updateGestureConfig","onPointerDown","onPointerAdd","onPointerMove","onPointerOutOfBounds","onPointerUp","onPointerRemove"],"mappings":"AAA;eCC;ECC;GDE;EEE;GFQ;EGE;GHK;EIE;GJG;EKE;GLG;EME;GNG;EOE;GPG;EQE;GRG;CDE"}],[{"names":["_defineProperty","","HoverGestureHandler","constructor","init","transformNativeEvent","updateGestureConfig","onPointerMoveOver","onPointerMoveOut","onPointerMove","onPointerCancel"],"mappings":"AAA,iNC;eCK;ECC;GDI;EEE;GFE;EGE;GHI;EIE;GJQ;EKE;GLU;EME;GNK;EOE;GPI;EQE;GRG;CDE"}],[{"names":["","NativeViewGestureHandler","get__isNative","onRawEvent","Object.values.filter$argument_0"],"mappings":"AAA;ACK;ECC;GDE;EEE;wECW;WDa;GFS;CDE"}],[{"names":["","DiscreteGestureHandler","get__isDiscrete","get__shouldEnableGestureOnSetup","shouldFailUnderCustomCriteria","transformNativeEvent","isGestureEnabledForEvent"],"mappings":"AAA;ACM;ECC;GDE;EEE;GFE;EGE;GHqB;EIE;GJc;EKE;GLkC;CDE"}],[{"names":["_defineProperty","","GestureHandler","get__id","get__isNative","get__isDiscrete","get__shouldEnableGestureOnSetup","constructor","_defineProperty$argument_2","enable","getConfig","onWaitingEnded","removePendingGesture","addPendingGesture","isGestureEnabledForEvent","get__NativeGestureClass","updateHasCustomActivationCriteria","updateGestureConfig","getState","transformEventData","transformNativeEvent","cancelPendingGestures","notifyPendingGestures","onGestureEnded","forceInvalidate","cancelEvent","onRawEvent","shouldUseTouchEvents","_config$simultaneousH2.some$argument_0","setView","hammer.on$argument_1","setTimeout$argument_0","setupEvents","onStart","onGestureActivated","onSuccess","_getPendingGestures","config.waitFor.filter$argument_0","getHammerConfig","simulateCancelEvent","ensureConfig","asArray.map$argument_0","asArray.map.filter$argument_0","ghQueueMicrotask$argument_0","configProps.forEach$argument_0","invokeNullableMethod","asArray"],"mappings":"AAA,iNC;ACc;ECC;GDE;EEI;GFE;EGE;GHE;EIE;GJE;EKE;gDCqC;KDM;qCCE;KDS;2CCE;KDQ;uCCE;KDY;kCCE;qBCI;OD8D;KDO;GLI;EQE;GRE;ESE,2BT;EUE;GVE;EWE;GXE;EYE;GZI;EaE;GbE;EcE;GdE;EeE;GfsB;EgBE;GhBO;EiBE;GjBmC;EkBE;GlBE;EmBE;GnBO;EoBE;GpBM;EqBG;GrBG;EsBE;GtBK;EuBE;GvBO;EwBE;GxBM;EyBE;gLCG,2BD;GzBC;E2BE;mCC2B;mBCgB;SDG;KDE;G3BG;E8BE;0CFG,4BE;2DFC;OEE;8BFG,iCE;G9BC;E+BE;G/Ba;EgCE;GhCE;EiCE,cjC;EkCE;sDCI;sCDE;GlCK;EoCE;GpCK;EqCE,kCrC;EsCG;kDCoB;8CDE,SE,MF;4ECO;ODM,SE,MF;yBGG;SHK;wBIO;KJI;GtCE;CDE;A4CI;C5CoC;A6CE;C7CG"}],[{"names":["","_extends","","_inheritsLoose","_assertThisInitialized","assign","prefixed","getTouchActionProps","forEach$argument_0","each","boolOrFn","inStr","cleanTouchActions","TouchAction","set","update","compute","each$argument_1","preventDefaults","preventSrc","hasParent","getCenter","simpleCloneInputData","getDistance","getAngle","getDirection","computeDeltaXY","getVelocity","getScale","getRotation","computeIntervalInputData","computeInputData","inputHandler","splitStr","addEventListeners","removeEventListeners","getWindowForElement","Input","domHandler","handler","init","destroy","inArray","PointerEventInput","toArray","uniqueArray","results.sort$argument_0","TouchInput","getTouches","allTouches.filter$argument_0","MouseInput","setLastTouch","removeLastTouch","recordTouches","isSyntheticEvent","TouchMouseInput","_this.handler","createInputInstance","invokeArrayArg","uniqueId","getRecognizerByNameIfManager","stateStr","Recognizer","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","emit","tryEmit","canEmit","recognize","process","getTouchAction","reset","TapRecognizer","setTimeout$argument_0","failTimeout","AttrRecognizer","attrTest","directionStr","PanRecognizer","directionTest","SwipeRecognizer","PinchRecognizer","RotateRecognizer","PressRecognizer","toggleCssProps","triggerDomEvent","Manager","stop","get","add","remove","on","off","data.preventDefault","SingleTouchInput","normalizeSingleTouches","deprecate","deprecate$argument_0","inherit","bindFn","boundFn","Hammer"],"mappings":"AAA;ACM;8BCC;GDY;CDG;AGE;CHI;AIE;CJM;WKa;GLoB;AMwB;CNkB;AOc;4ECO;GDI;CPE;AS0C;CTqB;AUW;CVM;AWS;CXE;AYS;CZ2B;AEa;EWC;GXG;eYU;GZW;kBaO;GbE;mBcQ;mCCE;KDI;GdE;2BgBQ;GhBiC;sBiBQ;GjBG;CFG;AoBU;CpBU;AqBS;CrBwB;AsBS;CtBqB;AuBW;CvBQ;AwBW;CxBQ;AyBU;CzBU;A0BE;C1BqB;A2BU;C3BK;A4BW;C5BE;A6BU;C7BE;A8BS;C9B6B;A+BS;C/BoD;AgCU;ChCqB;AiCQ;CjCE;AkCU;wBjBC;GiBE;ClCC;AmCU;wBlBC;GkBE;CnCC;AoCQ;CpCG;AEa;EmCC;sBCQ;KDI;GnCG;mBqCU,qBrC;gBsCO;GtCI;mBuCO;GvCI;CFG;A0CU;C1CiB;AEkC;EyCG;GzCS;mBqCU;GrCqC;CFG;A4CQ;C5CE;A6CW;6BCoB;ODE;C7CK;AEkB;E6CG;G7CQ;mBqCI;GrCc;CFG;AgDE;oCCe;GDE;ChDiC;AEkB;EgDG;GhDU;mBqCU;GrC0B;CFG;AmDgB;0BCY;KDM;CnDI;AqDE;CrDO;AsDE;CtDe;AEI;IqDM;sBCK;ODgB;KrDO;qBuCgB;KvCG;CFM;AyDU;CzDkB;A0Da;C1DO;A2DgB;C3DE;A4DS;C5DQ;A6DS;C7DY;AEyC;E4DC;G5Dc;eYW;GZK;yB6DS;G7Dc;6B8DS;G9DQ;0B+DS;G/Dc;8BgES;GhEa;8BiEQ;GjEE;4BkES;GlEE;gBmES;GnEwB;mBoEU;GpEO;mBqEQ;GrEY;qBsEQ;GtEsB;mBuEa,8BvE;0BwEW,4BxE;iByES,mBzE;CFG;AEgB;E0EG;G1E2B;0BwEI;GxEE;mBuEE;mCI0C;WJI;GvEO;uB4EE;6BDG;KCE;G5EE;iByEE;GzEE;gBmEE;GnEK;CFG;AEW;E6EG;G7EQ;oB8EY;G9EG;mBuEU;GvEmB;CFG;AiFS;CjFY;AEY;EgFG;GhFgB;0BwEI;GxEa;yBiFE;GjFsB;oB8EE;G9EG;gBmEE;GnEU;CFG;AEY;EkFG;GlFY;0BwEI;GxEE;oB8EE;G9Ea;gBmEE;GnEQ;CFG;AEY;EmFG;GnFU;0BwEI;GxEE;oB8EE;G9EE;gBmEE;GnEO;CFG;AEY;EoFG;GpFU;0BwEI;GxEE;oB8EE;G9EE;CFG;AEY;EqFG;GrFiB;0BwEI;GxEE;mBuEE;+BIc;OJI;GvEM;iByEE;GzEE;gBmEE;GnEW;CFG;AwFuI;iCvEQ;GuES;CxFK;AyFS;CzFK;AEY;EwFC;mCzEa;KyEK;GxFC;eYW;GZe;gByFU;GzFE;qBsEU;GtEkD;e0FS;G1Fc;e2FS;G3FgB;kB4FS;G5FkB;c6FU;2B9EM;K8EG;G7FE;e8FS;2B/EM;K+EM;G9FE;gBmEQ;0B4Be;K5BE;GnEQ;mBuCQ;GvCM;CFG;AEmB;EgGG;GhGS;mBqCI;GrCuB;CFG;AmGE;CnGS;AoGU;SlGE;GkGU;CpGC;uBqGY;CrGa;sBqGW;CrGE;AsGU;CtGU;AuGS;SCC;GDE;CvGC;AEY;EuGM;GvGQ;CF6D"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getHandler","createGestureHandler","dropGestureHandler","getNodes"],"mappings":"AAA;OCC;CDM;OEC;CFQ;OGC;CHU;OIC;CJG"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","isnan","isValidNumber","TEST_MIN_IF_NOT_NAN","VEC_LEN_SQ","TEST_MAX_IF_NOT_NAN","fireAfterInterval","setTimeout$argument_0"],"mappings":"AAA;qBCC,oBD;6BEE,8CF;mCGC,gGH;0BIC;wBJG;mCKC,kFL;OMC;oBCM,cD;CNC"}],[{"names":["_defineProperty","","PressGestureHandler","constructor","get__name","get__minDurationMs","get__maxDist","get__NativeGestureClass","simulateCancelEvent","updateHasCustomActivationCriteria","getState","getConfig","getHammerConfig","onGestureActivated","shouldDelayTouchForEvent","onGestureStart","fireAfterInterval$argument_0","sendGestureStartedEvent","forceInvalidate","onRawEvent","updateGestureConfig"],"mappings":"AAA,iNC;ACQ;ECC;GDQ;EEE;GFE;EGE;GHG;EIE;GJE;EKE;GLE;EME;GNI;EOE;GPK;EQE;GRO;ESE;GTW;EUE;GVK;EWE;GXE;EYE;GZK;EaE;iDCI;KDG;GbC;EeE;GfO;EgBE;GhBK;EiBE;0BHgB;SGO;GjBQ;EkBE;GlBoB;CDE"}],[{"names":["","PanGestureHandler","get__name","get__NativeGestureClass","getHammerConfig","getState","getDirection","getConfig","shouldFailUnderCustomCriteria","shouldActivateUnderCustomCriteria","shouldMultiFingerPanFail","updateHasCustomActivationCriteria","isGestureEnabledForEvent"],"mappings":"AAA;ACM;ECC;GDE;EEE;GFE;EGE;GHI;EIE;GJQ;EKE;GL0D;EME;GNU;EOE;GPK;EQE;GRS;ESE;GT0B;EUE;GVE;EWE;GXmC;CDE"}],[{"names":["","DraggingGestureHandler","get__shouldEnableGestureOnSetup","transformNativeEvent"],"mappings":"AAA;ACM;ECC;GDE;EEE;GFuB;CDE"}],[{"names":["_defineProperty","","TapGestureHandler","constructor","_defineProperty$argument_2","get__name","get__NativeGestureClass","get__maxDelayMs","simulateCancelEvent","onGestureActivated","onRawEvent","setTimeout$argument_0","getHammerConfig","updateGestureConfig","onGestureEnded","onWaitingEnded"],"mappings":"AAA,iNC;ACM;ECC;6CCS;KDiB;GDC;EGG;GHE;EIE;GJE;EKE;GLG;EME;GNI;EOE;GPI;EQE;iBCgB;ODM;mBCa;SDI;+BCM;ODG;GRW;EUE;GVU;EWE;GX0B;EYE;GZI;EaE;GbK;CDE"}],[{"names":["","LongPressGestureHandler","get__minDurationMs","get__maxDist","updateHasCustomActivationCriteria","getConfig","getHammerConfig","getState"],"mappings":"AAA;ACQ;ECC;GDG;EEE;GFG;EGE;GHI;EIE;GJW;EKE;GLK;EME;GNO;CDE"}],[{"names":["","PinchGestureHandler","get__name","get__NativeGestureClass","transformNativeEvent"],"mappings":"AAA;ACG;ECC;GDE;EEE;GFE;EGE;GHW;CDE"}],[{"names":["","IndiscreteGestureHandler","get__shouldEnableGestureOnSetup","updateGestureConfig","isGestureEnabledForEvent"],"mappings":"AAA;ACK;ECC;GDE;EEE;GFU;EGE;GHgB;CDE"}],[{"names":["","RotationGestureHandler","get__name","get__NativeGestureClass","transformNativeEvent"],"mappings":"AAA;ACI;ECC;GDE;EEE;GFE;EGE;GHa;CDE"}],[{"names":["","FlingGestureHandler","get__name","get__NativeGestureClass","onGestureActivated","onRawEvent","setTimeout$argument_0","getHammerConfig","getTargetDirections","getDirection","isGestureEnabledForEvent","updateGestureConfig"],"mappings":"AAA;ACS;ECC;GDE;EEE;GFE;EGE;GHY;EIE;iBCU;ODI;GJU;EME;GNM;EOE;GPqB;EQE;GR2B;ESE;GTgB;EUE;GVc;CDE"}],[{"names":["","GesturePropError","GesturePropError#constructor"],"mappings":"AAA,OC;ECC;GDE;CDE"}],[{"names":["_defineProperty","","GestureHandlerWebDelegate","constructor","getView","init","eventManagers.forEach$argument_0","isPointerInBounds","measureView","reset","tryResetCursor","shouldDisableContextMenu","addContextMenuListeners","removeContextMenuListeners","disableContextMenu","enableContextMenu","setUserSelect","setTouchAction","setContextMenu","onEnabledChange","onBegin","onActivate","onEnd","onCancel","onFail","destroy"],"mappings":"AAA,iNC;OCQ;ECC;GDa;EEE;GFE;EGE;+BCkB,0DD;GHC;EKE;GLQ;EME;GNQ;EOE;+BHC,iCG;GPC;EQE;GRM;ESE;GTE;EUE;GVM;EWE;GXM;EYE;GZE;EaE;GbE;EcE;GdM;EeE;GfO;EgBE;GhBQ;EiBE;GjBQ;EkBE;GlBC;EmBE;GnBM;EoBE;GpBE;EqBE;GrBE;EsBE;GtBE;EuBE;+BnBE;KmBE;GvBC;CDE"}],[{"names":["_defineProperty","","PointerEventManager","constructor","_defineProperty$argument_2","registerListeners","unregisterListeners","mapEvent","resetManager"],"mappings":"AAA,iNC;eCQ;ECC;iDCS;KDwB;+CCE;KDyB;iDCE;KD6C;mDCE;KDM;kDCE;KDG;kDCE;KDG;wDCE;KDU;GDW;EGE;GHY;EIE;GJQ;EKE;GLoB;EME;GNG;CDE"}],[{"names":["_defineProperty","","EventManager","constructor","onPointerDown","onPointerAdd","onPointerUp","onPointerRemove","onPointerMove","onPointerLeave","onPointerEnter","onPointerCancel","onPointerOutOfBounds","onPointerMoveOver","onPointerMoveOut","setOnPointerDown","setOnPointerAdd","setOnPointerUp","setOnPointerRemove","setOnPointerMove","setOnPointerLeave","setOnPointerEnter","setOnPointerCancel","setOnPointerOutOfBounds","setOnPointerMoveOver","setOnPointerMoveOut","markAsInBounds","markAsOutOfBounds","resetManager"],"mappings":"AAA,iNC;eCG;ECC;GDS;EEE,wBF;EGE,uBH;EIE,sBJ;EKE,0BL;EME,wBN;EOE,yBP;EQG,yBR;ESG;GTI;EUE,+BV;EWE,4BX;EYE,2BZ;EaE;GbE;EcE;GdE;EeE;GfE;EgBE;GhBE;EiBE;GjBE;EkBE;GlBE;EmBE;GnBE;EoBE;GpBE;EqBE;GrBE;EsBE;GtBE;EuBE;GvBE;EwBE;GxBM;EyBE;GzBQ;E0BE;G1BS;CDE"}],[{"names":["_defineProperty","","KeyboardEventManager","constructor","_defineProperty$argument_2","dispatchEvent","registerListeners","unregisterListeners","mapEvent"],"mappings":"AAA,iNC;eCK;ECC;6CCS;KDW;2CCE;KDM;GDC;EGE;GHuB;EIE;GJG;EKE;GLG;EME;GNoB;CDE"}],[{"names":["","gestureHandlerRootHOC","Wrapper"],"mappings":"AAA;eCI;ECC;GDI;CDM"}],[{"names":["_extends","","","GestureHandlerRootView"],"mappings":"AAA,kDC,gOD,2CE;eCK;CDS"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","_defineProperty","","UIManagerAny.setJSResponder","UIManagerAny.clearJSResponder","DeviceEventEmitter.addListener$argument_1","hasUnresolvedRefs","extract","refs.some$argument_0","createHandler","Handler","Handler#constructor","_defineProperty$argument_2","Handler#componentDidMount","setState$argument_0","ghQueueMicrotask$argument_0","Handler#componentDidUpdate","Handler#componentWillUnmount","Handler#update","Handler#setNativeProps","Handler#render"],"mappings":"AAA;ACE,iND;sCEgE;GFC;0CEC;GFC;8BGG;CHG;gCIE;CJG;2DKO;GLE;AMG;kBCE;qBCK,4BD;GDC;CNG;eSY;ECO;ICC;qDCiB;ODY;2DCE;ODoB;0CCE;ODe;oDCE;ODG;oDCE;8BVa;WUmB;ODM;oDCE;ODI;KDiB;IGE;gGRK;wBSC;YTE;SQE;yBEU;SFE;KHK;IME;KNQ;IOE;KPc;IQE;yBHU;SGE;KRQ;ISE;KTM;IUE;KVsF;GDE;CTO"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","getNextHandlerTag"],"mappings":"AAA;OCC;CDE"}],[{"names":["","isConfigParam","filterConfig","transformIntoHandlerTags","handlerIDs.map$argument_0","handlerIDs.map.filter$argument_0","findNodeHandle","scheduleFlushOperations","ghQueueMicrotask$argument_0"],"mappings":"AAA;ACM;CDI;OEE;CFwB;AGE;0BCI;iBDE,SE,gBF;wBCI;GDI,SE,4BF;CHC;OME;CNM;OOE;qBCG;KDG;CPE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","PressabilityDebugView"],"mappings":"AAA;OCC;CDE"}],[{"names":["_defineProperty","","ForceTouchFallback","ForceTouchFallback#componentDidMount","ForceTouchFallback#render"],"mappings":"AAA,iNC;ACS;ECC;GDE;EEE;GFE;CDE"}],[{"names":["","default.get__forceTouchAvailable"],"mappings":"AAA;ECC;GDE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","validatePanGestureHandlerProps","transformPanGestureHandlerProps","managePanProps"],"mappings":"AAA;ACc;CDwB;AEE;CFyD;OGE;CHM"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["_extends","","","createNativeWrapper","React.forwardRef$argument_0","Object.keys.reduce$argument_0","useImperativeHandle$argument_1"],"mappings":"AAA,kDC,gOD,2CE;eCc;yDCG;0DCE;KDU;IES;KFU;GDO;CDK"}],[{"names":[""],"mappings":"AAA"}],[{"names":["","propagateDetectorConfig","GestureDetector","useMemo$argument_0","gesturesToAttach.some$argument_0","useLayoutEffect$argument_0","","useEffect$argument_0"],"mappings":"AAA;ACc;CDe;+BEiB;mCCU,oCD;oDEC,0BF;kBGuB;WCU;KDG;GHC;YKC;GLM;CFY"}],[{"names":["","getHandler","touchEventTypeToCallbackType","runWorklet","isStateChangeEvent","isTouchEvent","useAnimatedGesture","callback"],"mappings":"AAA;ACO;CDkC;AEE;CFkB;AGE;CHY;AIE;CJI;AKE;CLI;OME;mBCc;GDsD;CNM"}],[{"names":["_defineProperty","","Gesture","BaseGesture","BaseGesture#constructor","BaseGesture#addDependency","BaseGesture#withRef","BaseGesture#isWorklet","BaseGesture#onBegin","BaseGesture#onStart","BaseGesture#onEnd","BaseGesture#onFinalize","BaseGesture#onTouchesDown","BaseGesture#onTouchesMove","BaseGesture#onTouchesUp","BaseGesture#onTouchesCancelled","BaseGesture#enabled","BaseGesture#shouldCancelWhenOutside","BaseGesture#hitSlop","BaseGesture#activeCursor","BaseGesture#mouseButton","BaseGesture#runOnJS","BaseGesture#simultaneousWithExternalGesture","BaseGesture#requireExternalGestureToFail","BaseGesture#blocksExternalGesture","BaseGesture#withTestId","BaseGesture#cancelsTouchesInView","BaseGesture#initialize","BaseGesture#toGestureArray","BaseGesture#prepare","BaseGesture#get__shouldUseReanimated","ContinousBaseGesture","ContinousBaseGesture#onUpdate","ContinousBaseGesture#onChange","ContinousBaseGesture#manualActivation"],"mappings":"AAA,iNC;OCmB,gBD;OEE;ECC;GDuB;EEE;GFG;EGO;GHG;EIG;GJG;EKQ;GLI;EMO;GNI;EOQ;GPK;EQO;GRK;ESO;GTK;EUO;GVK;EWO;GXK;EYO;GZK;EaQ;GbG;EcQ;GdG;EeS;GfG;EgBS;GhBG;EiBW;GjBG;EkBS;GlBG;EmBQ;GnBM;EoBQ;GpBM;EqBQ;GrBM;EsBO;GtBG;EuBS;GvBG;EwBE;GxBS;EyBE;GzBE;E0BG,Y1B;E2BE;G3BK;CFE;O8BC;ECK;GDI;EEQ;GFI;EGQ;GHG;C9BE"}],[{"names":["","Reanimated.setGestureState"],"mappings":"AAA;+BCqB;GDI"}],[{"names":["","attachHandlers","ghQueueMicrotask$argument_0","isAnimatedGesture","gesturesToAttach.filter.map$argument_0"],"mappings":"AAA;OCO;mBCU;GDM;mBCU;GDU;8BEgB,0BF;4FGE,eH;CDE"}],[{"names":["","convertToHandlerTag","extractValidHandlerTags","_interactionGroup$map2.filter$argument_0","extractGestureRelations","checkGestureCallbacksForWorklets","validateDetectorChildren","useForceRender","forceRender","useWebEventHandlers","useRef$argument_0.onGestureHandlerEvent",""],"mappings":"AAA;ACmB;CDY;AEE;kQCG,cD;CFC;OIE;CJS;OKC;CL8B;OME;CN0C;OOC;kCCE;GDE;CPE;OSC;2BCE;KDE;mEEC;KFE;CTE"}],[{"names":["_defineProperty","","","changeEventCalculator","HoverGesture","HoverGesture#constructor","HoverGesture#effect","HoverGesture#onChange"],"mappings":"AAA,iNC;CCK;CDI;AEI;CFoB;OGE;ECC;GDM;EEO;GFG;EGE;GHI;CHE"}],[{"names":["","getReactNativeVersion"],"mappings":"AAA,OC;CDE"}],[{"names":["","findHostInstance_DEPRECATED"],"mappings":"AAA;+BCC,YD"}],[{"names":["","needsToReattach"],"mappings":"AAA;OCI;CDY"}],[{"names":["","dropHandlers"],"mappings":"AAA;OCG;CDO"}],[{"names":["","Wrap","render"],"mappings":"AAA;OCK;ECC;GDe;CDE"}],[{"names":["","useDetectorUpdater","updateAttachedGestures"],"mappings":"AAA;OCU;ECG;GDwB;CDE"}],[{"names":["","updateHandlers","ghQueueMicrotask$argument_0","preparedGesture.attachedGestures.filter$argument_0","preparedGesture.attachedGestures.filter.map$argument_0"],"mappings":"AAA;OCK;mBCiB;uECuB,0BD;WEC,eF;GDK;CDC"}],[{"names":["","useViewRefHandler","refHandler"],"mappings":"AAA;OCO;iCCC;GDwB;CDE"}],[{"names":["","getShadowNodeFromRef"],"mappings":"AAA;OCI;CDE"}],[{"names":["","GestureObjects.Tap","GestureObjects.Pan","GestureObjects.Pinch","GestureObjects.Rotation","GestureObjects.Fling","GestureObjects.LongPress","GestureObjects.ForceTouch","GestureObjects.Native","GestureObjects.Manual","GestureObjects.Hover","GestureObjects.Race","GestureObjects.Simultaneous","GestureObjects.Exclusive"],"mappings":"AAA;OCyB;GDE;OEM;GFE;SGM;GHE;YIM;GJE;SKM;GLE;aMM;GNE;cOO;GPE;UQO;GRE;USQ;GTE;SUQ;GVE;QWO;GXE;EYM;GZE;EaU;GbE"}],[{"names":["_defineProperty","","FlingGesture","FlingGesture#constructor","FlingGesture#numberOfPointers","FlingGesture#direction"],"mappings":"AAA,iNC;OCG;ECC;GDM;EEO;GFG;EGU;GHG;CDE"}],[{"names":["_defineProperty","","changeEventCalculator","ForceTouchGesture","ForceTouchGesture#constructor","ForceTouchGesture#minForce","ForceTouchGesture#maxForce","ForceTouchGesture#feedbackOnActivation","ForceTouchGesture#onChange"],"mappings":"AAA,iNC;ACI;CDkB;OEE;ECC;GDM;EEQ;GFG;EGQ;GHG;EIO;GJG;EKE;GLI;CFE"}],[{"names":["_defineProperty","","extendRelation","ComposedGesture","ComposedGesture#constructor","ComposedGesture#prepareSingleGesture","ComposedGesture#prepare","ComposedGesture#initialize","ComposedGesture#toGestureArray","gestures.flatMap$argument_0","SimultaneousGesture","SimultaneousGesture#prepare","gestures.map$argument_0","gestures.filter$argument_0","gestures.filter.flatMap$argument_0","ExclusiveGesture","ExclusiveGesture#prepare"],"mappings":"AAA,iNC;ACI;CDM;OEE;ECC;GDU;EEE;GFc;EGE;GHI;EIE;GJI;EKE;iCCC,mCD;GLC;CFE;OSC;ECC;iDCG;YCE,kBD;aEI,uBF,CD;GDK;CTE;OcC;ECC;4CJG,mCI;GDQ;CdE"}],[{"names":["_defineProperty","","LongPressGesture","LongPressGesture#constructor","LongPressGesture#minDuration","LongPressGesture#maxDistance","LongPressGesture#numberOfPointers"],"mappings":"AAA,iNC;OCG;ECC;GDO;EEQ;GFG;EGQ;GHG;EIO;GJG;CDE"}],[{"names":["_defineProperty","","changeEventCalculator","PanGesture","PanGesture#constructor","PanGesture#activeOffsetY","PanGesture#activeOffsetX","PanGesture#failOffsetY","PanGesture#failOffsetX","PanGesture#minPointers","PanGesture#maxPointers","PanGesture#minDistance","PanGesture#minVelocity","PanGesture#minVelocityX","PanGesture#minVelocityY","PanGesture#averageTouches","PanGesture#enableTrackpadTwoFingerGesture","PanGesture#activateAfterLongPress","PanGesture#onChange"],"mappings":"AAA,iNC;ACI;CDoB;OEE;ECC;GDM;EEQ;GFW;EGQ;GHW;EIQ;GJW;EKQ;GLW;EMO;GNG;EOQ;GPG;EQQ;GRG;ESO;GTG;EUO;GVG;EWO;GXG;EYS;GZG;EaS;GbG;EcQ;GdG;EeE;GfI;CFE"}],[{"names":["","changeEventCalculator","PinchGesture","PinchGesture#constructor","PinchGesture#onChange"],"mappings":"AAA;ACE;CDkB;OEE;ECC;GDG;EEE;GFI;CFE"}],[{"names":["","changeEventCalculator","RotationGesture","RotationGesture#constructor","RotationGesture#onChange"],"mappings":"AAA;ACE;CDkB;OEE;ECC;GDG;EEE;GFI;CFE"}],[{"names":["_defineProperty","","TapGesture","TapGesture#constructor","TapGesture#minPointers","TapGesture#numberOfTaps","TapGesture#maxDistance","TapGesture#maxDuration","TapGesture#maxDelay","TapGesture#maxDeltaX","TapGesture#maxDeltaY"],"mappings":"AAA,iNC;OCG;ECC;GDO;EEQ;GFG;EGQ;GHG;EIQ;GJG;EKQ;GLG;EMQ;GNG;EOQ;GPG;EQQ;GRG;CDE"}],[{"names":["_defineProperty","","NativeGesture","NativeGesture#constructor","NativeGesture#shouldActivateOnStart","NativeGesture#disallowInterruption"],"mappings":"AAA,iNC;OCG;ECC;GDM;EEO;GFG;EGO;GHG;CDE"}],[{"names":["","changeEventCalculator","ManualGesture","ManualGesture#constructor","ManualGesture#onChange"],"mappings":"AAA;ACE;CDI;OEE;ECC;GDG;EEE;GFI;CFE"}],[{"names":["_extends","","","_defineProperty","InnerBaseButton","InnerBaseButton#constructor","_defineProperty$argument_2","InnerBaseButton#render","React.forwardRef$argument_0","InnerRectButton","InnerRectButton#constructor","InnerRectButton#render","InnerBorderlessButton","InnerBorderlessButton#constructor","InnerBorderlessButton#render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;AEY;ECC;yCCS;KDoC;yCCE;KDK;kDCE;KDK;4CCE;KDK;GDI;EGE;GHgB;CFE;wDMM;UNE;AOY;ECC;iDJK;KIQ;GDG;EEE;GFsB;CPE;wDMO;UNE;AUE;ECC;iDPK;KOQ;GDG;EEE;GFgB;CVE;8DMO;UNE"}],[{"names":["_extends","","","React.forwardRef$argument_0"],"mappings":"AAA,kDC,gOD,2CE;6CCI;UDG"}],[{"names":[""],"mappings":"AAA"}],[{"names":[""],"mappings":"AAA"}],[{"names":["_extends","","","React.forwardRef$argument_0"],"mappings":"AAA,kDC,gOD,2CE;+DCI;UDE"}],[{"names":["_extends","","","_defineProperty","GenericTouchable","constructor","_defineProperty$argument_2","handlePressIn","setTimeout$argument_0","handleMoveOutside","handleGoToUndetermined","componentDidMount","reset","moveToState","componentWillUnmount","onMoveIn","onMoveOut","render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;eEyB;ECC;4CCe;KDc;kDCE;KD2B;iDCE;KDM;GDC;EGI;uCCE;ODG;GHS;EKI;gEDE;OCG;GLI;EMG;wCFI;OEO;GNQ;EOE;GPE;EQG;GRS;ESG;GTkC;EUE;GVG;EWE;GXK;EYE;GZQ;EaE;GbqC;CFE"}],[{"names":["_extends","","","_defineProperty","TouchableOpacity","constructor","_defineProperty$argument_2","render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;eEU;ECC;6DCG;KDG;0CCI;KDS;2CCE;KDM;GDC;EGE;GHY;CFE"}],[{"names":["_extends","","","_defineProperty","TouchableHighlight","constructor","_defineProperty$argument_2","renderChildren","render"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;eEU;ECC;0CCG;KDgB;6CCE,mGD;0CCE;KDQ;2CCE;KDM;GDM;EGG;GHU;EIE;GJY;CFE"}],[{"names":["_extends","","","DrawerLayoutAndroid","React.forwardRef$argument_0","_extends$argument_2.renderScrollComponent"],"mappings":"AAA,kDC,gOD,2CE;mCCc;CDG;sDEK;yBCG,wED;GFC"}],[{"names":["_extends","","","_defineProperty","Swipeable","constructor","_defineProperty$argument_2","Animated.spring.start$argument_0","shouldComponentUpdate","render","React.createElement$argument_1.onLayout"],"mappings":"AAA,kDC,gOD,2CE;ACE,iND;eEkB;ECC;iDCe;KD6C;qDCE;KDM;kDCE;KD6B;2CCE;KD0C;wCCE;eCkB;ODqB;KDkB;yCCE;KDM;2CCE;KDkB;mCCE;KDE;sCCE;KDK;uCCE;KDS;mCCE;KDU;GDoB;EIE;GJM;EKE;gBCqB;QDI;gBCS;QDI;GLuB;CFE"}],[{"names":[""],"mappings":"AAA"}],[{"names":["_extends","","","Pressable","useMemo$argument_0","Gesture.Hover.manualActivation.cancelsTouchesInView.onBegin$argument_0","setTimeout$argument_0","Gesture.Hover...onBegin.onFinalize$argument_0","pressInHandler","pressOutHandler","activateLongPress","Gesture.LongPress...cancelsTouchesInView.onTouchesDown$argument_0","_pressableRef$current.measure$argument_0","Gesture.LongPress...onTouchesDown.onTouchesUp$argument_0","onEndHandlingTouchesDown.current","Gesture.LongPress...onTouchesUp.onTouchesCancelled$argument_0","Gesture.Native.onBegin$argument_0","Gesture.Native.onBegin.onStart$argument_0"],"mappings":"AAA,kDC,gOD,2CE;eCW;oCC8B,kHD;iDCC,mLD;+BCG;uCCC;0CCM,qGD;GDK,aG;2CDM,wGC;GHK,CD;qCKK;GLc;sCMC;GNiC;wCOI;GPc;uCCG;6COE;yICI;iDNiB,8BM;kDNI;SME;KDQ;GPC,cS;yCCE,0DD;GTY,qBW;yCDM,0DC;GXU,CD;gCCE,+BY;GZK,Ua;GbmC,CD;CD4C"}],[{"names":["","numberAsInset","addInsets","touchDataToPressEvent","gestureToPressEvent","isTouchWithinInset","gestureToPressableEvent","gestureTouchToPressableEvent","event.allTouches.map$argument_0","event.changedTouches.map$argument_0"],"mappings":"AAA,sBC;EDK;kBEE;CFS;8BGE;EHY;4BIE;EJY;2BKE;CLI;gCME;CNmB;qCOE;2CCM,0DD;sDEC,0DF;CPe"}],[{"names":["_defineProperty","","DrawerLayout","constructor","_defineProperty$argument_2","gestureOptions.listener","Animated.spring.start$argument_0","shouldComponentUpdate","render"],"mappings":"AAA,iNC;eCoB;ECC;iDCe;kCC8E;SDM;KDS;mDCE;KDM;8CCE;KDI;uDCE;KDqB;qDCE;KDM;2CCE;KDyC;2CCE;KDmC;2CCE;eEuC;OF2B;KDC;wCCE;KDM;yCCE;KDM;2CCE;KDsB;0CCE;KD0E;8CCE;KDO;GDiB;EKE;GLM;EME;GNqC;CDE"}]],"x_google_ignoreList":[3,8,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],"names":["_jsxRuntime","jsx","_AppEntry","AppEntry","children","jsxs","_expoRouter","Stack","screenOptions","header","props","_Header","Header","gestureEnabled","headerShown","Screen","name","options","r","d","_interopRequireDefault","_reactQuery","_r","_react","e","__esModule","default","t","_getRequireWildcardCache","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_interopRequireWildcard","_reactIntl","_StatusBar","_reactNativeGestureHandler","_reactNativePopupMenu","_reactNativeSafeAreaContext","_ModalProvider","_AlertProvider","_Splash","_errorAlert","_toast","_initialize","_routingInstrumentation","WeakMap","_e","gestureHandlerRootHOC","isReady","setIsReady","useState","useEffect","initialize","then","ctx","context","ref","useNavigationContainerRef","routingInstrumentation","registerNavigationContainer","WithSplashScreen","isAppReady","barStyle","translucent","backgroundColor","animated","QueryClientProvider","client","queryClient","RawIntlProvider","value","intl","SafeAreaProvider","ModalProvider","AlertProvider","ErrorAlertProvider","ToastProvider","MenuProvider","global","factory","this","exports","reactNative","React","React__default","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread2","target","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_createClass","protoProps","staticProps","prototype","obj","_extends","assign","bind","_inherits","subClass","superClass","create","constructor","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","self","undefined","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","result","Super","NewTarget","Platform","select","OS","nextID","measure","Promise","resolve","x","y","width","height","pageX","pageY","makeName","concat","makeTouchable","TouchableComponent","Touchable","android","TouchableNativeFeedback","ios","TouchableHighlight","defaultTouchableProps","underlayColor","iterator2array","it","arr","next","done","createCommonjsModule","fn","module","reactIs_development","hasSymbol","Symbol","for","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeof","type","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","isAsyncMode","console","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","reactIs","propIsEnumerable","toObject","val","printWarning","objectAssign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","letter","err","shouldUseNative","from","to","s","ReactPropTypesSecret_1","Function","ReactPropTypesSecret$1","loggedTypeFailures","has$1","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","error","Error","ex","message","stack","text","resetWarningCache","printWarning$1","checkPropTypes_1","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","number","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","Array","isArray","getPropType","element","elementType","instanceOf","expectedClass","expectedClassName","getClassName","node","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","JSON","stringify","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","step","entries","entry","isSymbol","RegExp","Date","PropTypes","propTypes","ReactIs","_excluded","makeMenuRegistry","menus","Map","subscribe","getName","warn","unsubscribe","delete","updateLayoutInfo","layouts","menu","triggerLayout","optionsLayout","getMenu","getAll","setOptionsCustomStyles","optionsCustomStyles","OPEN_ANIM_DURATION","CLOSE_ANIM_DURATION","USE_NATIVE_DRIVER","Backdrop","_Component","_super","_this","_len","args","_key","fadeAnim","Animated","Value","_this2","timing","duration","toValue","useNativeDriver","start","_this3","_this$props","onPress","style","createElement","TouchableWithoutFeedback","View","styles","fullscreen","opacity","Component","StyleSheet","position","top","left","bottom","right","CFG","debug","_console","log","MenuPlaceholder","state","_isMenuClosing","backdropStyles","shouldRenderMenu","isMenuOpen","_isInitialized","styles$1","placeholder","_onBackdropPress","onBackdropRef","_makeOptions","overflow","_excluded$1","MenuOutside","windowLayout","other","styles$2","collapsable","defaultOptionsContainerRenderer","layoutsEqual","b","forwardRef","PopupMenuContext","createContext","withCtx","Context","EnhanceContext","_React$Component","forwardedRef","rest","Consumer","_custom","custom","displayName","consumerName","enhanceForwardRef","FC","defaultProps","withContext","instanceCount","backHandler","closeMenu","backdropRef","optionsRef","_placeholderRef","_getOpenedMenu","onBackdropPress","_ref","layout","nativeEvent","_ownLayout","trigger","_getTrigger","_menuRegistry","_notify","_ref2","_safeAreaLayout","_isBackHandlerRegistered","menuActions","openMenu","toggleMenu","force","menuCtx","menuRegistry","customStyles","skipInstanceCheck","menuContextWrapper","BackHandler","removeEventListener","_handleBackButton","addEventListener","_setOpened","_getOpened","isOpen","hideMenu","close","hideBackdrop","_invalidateTriggerLayouts","all","catch","forceUpdate","_this4","NULL","prev","openedMenu","find","_isRenderNeeded","afterSetState","beforeSetState","_beforeClose","onClose","onOpen","_initOpen","setState","openedMenuName","_this$props2","Provider","styles$3","flex1","onLayout","_onLayout","menuProviderWrapper","SafeAreaView","safeArea","pointerEvents","_onSafeAreaLayout","backdrop","_onPlaceholderRef","_this5","open","isOutside","component","_this6","_this$_getOpenedMenu2","_getOptions","_instance$props","renderer","rendererProps","safeAreaLayout","_options$props","optionsContainerStyle","renderOptionsContainer","optionsRenderer","optionsContainer","_onOptionsLayout","optionsType","render","onOptionsRef","flex","MenuOptions","_props","menuName","updateCustomStyles","optionsWrapper","MenuOptions$1","_excluded$2","MenuTrigger","disabled","onRef","triggerOnLongPress","onAlternativeAction","testID","_onPress","_makeTouchable","TriggerTouchableComponent","triggerOuterWrapper","onLongPress","triggerTouchable","triggerWrapper","Text","triggerText","MenuTrigger$1","_excluded$3","axisPosition","oDim","wDim","tPos","tDim","pos","Math","round","fit","len","minPos","maxPos","fitPositionIntoSafeArea","saX","saY","saHeight","saWidth","oHeight","oWidth","wWidth","computePosition$1","isRTL","wX","wY","wHeight","tX","tY","tHeight","tWidth","ContextMenu","scaleAnim","easing","Easing","out","cubic","in","animation","transform","scale","I18nManager","styles$4","computePosition","borderRadius","PixelRatio","roundToNearestPixel","shadowColor","shadowOpacity","shadowOffset","shadowRadius","elevation","isTrigger","c","isMenuOptions","Menu","_name","_forceClose","_validateChildren","prevProps","opened","_opened","_reduceChildren","Children","toArray","reduce","child","cloneElement","_trigger","onSelect","MenuExternal","setDefaultRenderer","setDefaultRendererProps","MenuOption","shouldClose","_getMenusOnSelect","disableTouchable","_getCustomStyles","count","disabledStyles","defaultStyles","optionTextDisabled","optionText","option","optionWrapper","rendered","OptionTouchableComponent","_onSelect","optionTouchable","padding","color","MenuOption$1","_excluded$4","NotAnimatedContextMenu","_excluded$5","computePosition$2","SlideInMenu","slide","translateY","interpolate","inputRange","outputRange","styles$5","_excluded$6","anchorHyp","sqrt","anchorOffset","axisNegativeSideProperties","axisPositiveSideProperties","centeringProperties","_ref3","center","leftOffset","rightOffset","axisCenteredPositionProperties","_centeringProperties","offset","getCenteringPrice","_centeringProperties2","max","getTopPrice","hOptions","vOptions","getBottomPrice","getLeftPrice","getRightPrice","getStartPosKey","propertiesByPlacement","centered","placement","side","computeProperties","_ref4","preferredPlacement","prices","bestPrice","sort","bestPlacement","pl","Popover","openAnimationDuration","closeAnimationDuration","anchorStyle","userPlacement","_computeProperties","styles$6","getContainerStyle","anchor","dynamicAnchorStyle","_ref5","flexDirection","_ref6","_ref7","_ref8","translateX","rotate","alignItems","minWidth","minHeight","renderers","MenuContext","methods","DeprecatedComponent","_len2","_key2","_this$ref","deprecatedComponent","withMenuContext","require","define","amd","ReactNativePopupMenu","_KeyboardAvoidingView","_StyleSheet","_View","_ModalContext","S","kav","childrenWrap","contentList","setContentList","actions","useRef","addContent","uniqueId","list","removeContent","item","updateContent","el","ModalContext","current","enabled","behavior","contentChildren","index","toString","otherProps","alertVisible","setAlertVisible","alertParams","setAlertParams","title","body","buttons","defaultOptions","iconName","alert","useCallback","preparedOptions","contextValue","onDismiss","cancelable","buttonsContainerStyle","buttonsRender","button","_Spacer","Spacer","medium","_Button","Button","outline","maxWidth","alignSelf","colorDanger","_AlertContext","AlertContext","_Modal","Modal","_reactNativeReanimated","entering","FadeIn","exiting","FadeOut","_Pressable","handleModalPress","centerContent","FadeInDown","FadeOutDown","popup","_Icon","Icon","_ScrollView","bounces","showsVerticalScrollIndicator","paddingVerticalMedium","_Text","weightExtraBold","sizeLarge","alignCenter","weightSemiBold","flexDirectionRow","justifyContentCenter","transparent","formatMessage","id","defaultMessage","description","_styleConstants","absoluteFillObject","styleConstants","colorBackgroundBackdrop","maxHeight","colorBackgroundWhite","spacingLarge","_mobx","_mobxReactLite","_Animated","_useWindowDimensions","_Logo","_Collapsible","FADE_IN_IMAGE","WAIT_FOR_APP_TO_BE_READY","FADE_OUT","HIDDEN","splashScreenState","observable","Splash","observer","window","useWindowDimensions","containerOpacity","lottieOpacity","delay","container","lottieWrap","iconContainer","Logo","size","strokeColor","Collapsible","collapsed","colorDarkSoft","colorBackgroundTheme","justifyContent","async","initializeSentry","uniqueUserIdFromStorage","AsyncStorage","getItem","constants","ASYNC_STORAGE_KEYS","UNIQUE_USER_ID","parseResponse","z","min","or","email","safeParse","success","_uniqueUserId","uniqueUserId","_","times","charList","floor","random","setItem","configure","enforceActions","createQueryClient","initializeI18n","environment","DISABLE_LOGS","ignoreLogs","dayjs","extend","customParseFormat","isToday","localizedFormat","relativeTime","utc","isBetween","updateLocale","advancedFormat","_asyncStorage","_dayjs","_advancedFormat","_customParseFormat","_isBetween","_isToday","_localizedFormat","_relativeTime","_updateLocale","_utc","_lodash","_zod","_initializeSentry","_constants","_environment","_intl","_createQueryClient","_store","_ignoreLogs","format","$locale","isValid","$utils","replace","ceil","$M","ordinal","$D","weekYear","isoWeekYear","week","isoWeek","$H","$d","getTime","offsetName","globalThis","dayjs_plugin_advancedFormat","LTS","LT","L","LL","LLL","LLLL","f","h","zone","match","meridiem","A","afternoon","Q","month","milliseconds","SS","SSS","ss","m","mm","H","HH","hh","D","DD","Do","day","w","ww","M","MM","MMM","slice","MMMM","Y","YY","year","YYYY","Z","ZZ","l","formats","toUpperCase","regex","parser","exec","hours","parseTwoDigitYear","parse","date","$u","Ls","minutes","seconds","getDate","getFullYear","v","getMonth","g","UTC","toDate","init","$L","locale","dayjs_plugin_customParseFormat","isAfter","isBefore","dayjs_plugin_isBetween","dayjs_plugin_isToday","en","dayjs_plugin_localizedFormat","future","past","dd","yy","fromToBase","thresholds","diff","rounding","abs","toNow","fromNow","dayjs_plugin_relativeTime","dayjs_plugin_updateLocale","add","utcOffset","local","$offset","$y","getUTCFullYear","getUTCMonth","getUTCDate","$W","getUTCDay","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","getTimezoneOffset","$x","$localOffset","isUTC","toISOString","toUTCString","dayjs_plugin_utc","SENTRY_DSN","isSentryInitialized","Sentry","dsn","ENVIRONMENT_NAME","sendDefaultPii","autoSessionTracking","enableNative","autoInitializeNativeSdk","enableNativeCrashHandling","enableAutoSessionTracking","enableNativeFramesTracking","isRunningInExpoGo","integrations","_expo","reactNavigationIntegration","QueryClient","queries","gcTime","structuralSharing","refetchOnWindowFocus","retry","throwOnError","mutations","LogBox","ignoreAllLogs","noop","group","groupCollapsed","groupEnd","info","table","trace","assert","clear","countReset","dir","dirxml","time","timeEnd","timeLog","profile","profileEnd","timeStamp","_LogBox","_shadow","_IconButton","headerHeight","shadow","headerContainer","C","colorBackgroundLight","backButton","headerLeft","headerRight","titleText","navigation","canGoBack","back","insets","useSafeAreaInsets","HeaderRight","HeaderLeft","hideBackButton","statusBarBackground","alignItemsCenter","pointerEventsNone","colorDark","sizeMedium","ellipsizeMode","numberOfLines","IconButton","goBack","iconSize","iconColor","colorTextDark","_init","_Directions","_State","_PointerType","_gestureHandlerRootHOC","_GestureHandlerRootView","_gestureHandlerCommon","_TapGestureHandler","_ForceTouchGestureHandler","_LongPressGestureHandler","_PanGestureHandler","_PinchGestureHandler","_RotationGestureHandler","_FlingGestureHandler","_createNativeWrapper","_GestureDetector","_gestureObjects","_NativeViewGestureHandler","_GestureButtons","_touchables","_GestureComponents","_hoverGesture","_Swipeable","_DrawerLayout","_EnableNewWebImplementation","startListening","isFabric","fabricInitialized","RNGestureHandlerModule","install","_eventReceiver","_RNGestureHandlerModule","_utils","stopListening","gestureHandlerEventSubscription","DeviceEventEmitter","addListener","onGestureHandlerEvent","gestureHandlerStateChangeEventSubscription","_TouchEventType","_handlersRegistry","_gestureStateManager","gestureStateManagers","lastUpdateEvent","isStateChangeEvent","event","oldState","isTouchEvent","eventType","_handler$handlers7","_handler$handlers7$on","_handler$handlers8","_handler$handlers8$on","_handler$handlers9","_handler$handlers9$on","_handler$handlers10","_handler$handlers10$o","handler","findHandler","handlerTag","_handler$handlers$onB","_handler$handlers","State","UNDETERMINED","BEGAN","handlers","onBegin","ACTIVE","END","_handler$handlers$onF","_handler$handlers4","_handler$handlers$onE","_handler$handlers3","onEnd","onFinalize","FAILED","CANCELLED","_handler$handlers$onF2","_handler$handlers6","_handler$handlers$onE2","_handler$handlers5","_handler$handlers$onS","_handler$handlers2","onStart","GestureStateManager","manager","TouchEventType","TOUCHES_DOWN","onTouchesDown","TOUCHES_MOVE","onTouchesMove","TOUCHES_UP","onTouchesUp","TOUCHES_CANCELLED","onTouchesCancelled","_handler$handlers$onU","_handler$handlers11","_handler$handlers$onC","_handler$handlers12","_handler$handlers$cha","_handler$handlers13","onUpdate","onChange","changeEventCalculator","oldHandler","findOldGestureHandler","onGestureStateChange","onGestureEvent","remove","testIDs","_findHandler","oldHandlers","gestures","isJestEnv","handlerIDToTag","hasProperty","deepEqual","obj1","obj2","keys1","keys2","includes","_global","nativeFabricUIManager","process","env","JEST_WORKER_ID","localGlobal","nativeCallSyncHook","__REMOTEDEV__","RN$Bridgeless","msg","mapFn","previousArr","currentArr","transformedArr","previous","transformed","INT32_MAX","_NodeManager","begin","NodeManager","getHandler","activate","fail","end","tag","createGestureHandler","setTag","dropGestureHandler","onDestroy","getNodes","_Gestures","_InteractionManager","HammerNodeManager","_GestureHandlerWebDelegate","handleSetJSResponder","blockNativeResponder","handleClearJSResponder","handlerName","config","isNewWebImplementationEnabled","Gestures","GestureClass","GestureHandlerWebDelegate","InteractionManager","getInstance","configureInteractions","HammerGestures","updateGestureHandler","attachGestureHandler","newView","_actionType","propsRef","HTMLElement","setView","newConfig","updateGestureConfig","getGestureHandlerNode","flushOperations","_shouldEnable","shouldUseLegacyImplementation","useNewWebImplementation","getWasCalled","_ManualGestureHandler","_HoverGestureHandler","_NativeViewGestureHandler2","_PanGestureHandler2","_TapGestureHandler2","_LongPressGestureHandler2","_PinchGestureHandler2","_RotationGestureHandler2","_FlingGestureHandler2","NativeViewGestureHandler","PanGestureHandler","TapGestureHandler","LongPressGestureHandler","PinchGestureHandler","RotationGestureHandler","FlingGestureHandler","ManualGestureHandler","HoverGestureHandler","HammerNativeViewGestureHandler","HammerPanGestureHandler","HammerTapGestureHandler","HammerLongPressGestureHandler","HammerPinchGestureHandler","HammerRotationGestureHandler","HammerFlingGestureHandler","_GestureHandler","DEFAULT_MIN_DIST_SQ","DEFAULT_TOUCH_SLOP","GestureHandler","super","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","resetConfig","checkCustomActivationCriteria","customActivationProperties","minDist","minDistSq","hasCustomActivationCriteria","minPointers","maxPointers","minVelocity","minVelocityX","minVelocityY","activateAfterLongPress","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minVelocitySq","transformNativeEvent","translationX","getTranslationX","translationY","getTranslationY","isNaN","velocityX","velocityY","stylusData","lastX","startX","offsetX","lastY","startY","offsetY","clearActivationTimeout","clearTimeout","activationTimeout","onPointerDown","isButtonInConfig","tracker","addToTracker","lastCoords","getAbsoluteCoordsAverage","tryBegin","checkBegan","tryToSendTouchEvent","onPointerAdd","getTrackedPointersCount","currentState","cancel","onPointerUp","removeFromTracker","pointerId","resetProgress","onPointerRemove","onPointerMove","track","velocity","getVelocity","onPointerOutOfBounds","getShouldCancelWhenOutside","shouldActivate","dx","dy","distanceSq","vx","vy","velocitySq","shouldFail","setTimeout","onCancel","onReset","MINIMAL_RECOGNIZABLE_MAGNITUDE","_interfaces","_GestureHandlerOrchestrator","_PointerTracker","invokeNullableMethod","method","__getHandler","argMapping","__nodeConfig","nativeValue","setValue","delegate","PointerTracker","PointerType","MOUSE","newState","onGestureHandlerStateChange","resultEvent","transformEventData","lastSentState","viewRef","attachEventManager","setOnPointerDown","setOnPointerAdd","setOnPointerUp","setOnPointerRemove","setOnPointerMove","setOnPointerEnter","onPointerEnter","setOnPointerLeave","onPointerLeave","setOnPointerCancel","onPointerCancel","setOnPointerOutOfBounds","setOnPointerMoveOver","onPointerMoveOver","setOnPointerMoveOut","onPointerMoveOut","registerListeners","reset","resetTracker","moveToState","sendIfDisabled","needsPointerData","isFinished","cancelTouches","GestureHandlerOrchestrator","onHandlerStateChange","onStateChange","_newState","_oldState","checkHitSlop","onFail","manualActivation","onActivate","isAwaiting","awaiting","setAwaiting","isActive","active","setActive","getShouldResetProgress","shouldResetProgress","setShouldResetProgress","getActivationIndex","activationIndex","setActivationIndex","shouldWaitForHandlerFailure","shouldRequireToWaitForFailure","shouldRequireHandlerToWaitForFailure","shouldRecognizeSimultaneously","shouldBeCancelledByOther","shouldHandlerBeCancelledBy","recordHandlerIfNotPresent","pointerType","TOUCH","cancelMouseAndPenGestures","tryToSendMoveEvent","shouldCancelWhenOutside","_event","sendEvent","sendTouchEvent","touchEvent","transformTouchEvent","numberOfPointers","pointerInside","isPointerInBounds","now","rect","measureView","changed","trackerData","getData","getMappedTouchEventId","abosoluteCoords","absoluteX","absoluteY","EventTypes","CANCEL","DOWN","ADDITIONAL_POINTER_DOWN","UP","ADDITIONAL_POINTER_UP","MOVE","numberOfTouches","changedTouches","allTouches","cancelEvent","lastRelativeCoords","getRelativeCoordsAverage","onEnabledChange","setShouldCancelWhenOutside","validateHitSlops","removeHandlerFromOrchestrator","criterias","hitSlop","horizontal","vertical","getLastAbsoluteCoords","mouseButton","MouseButton","LEFT","destroy","getTag","getConfig","getDelegate","getTracker","getTrackedPointersID","getState","isEnabled","shouldCancel","getPointerType","Set","scheduleFinishedHandlersCleanup","handlingChangeSemaphore","cleanupFinishedHandlers","cleanHandler","MAX_VALUE","indexInGestureHandlers","gestureHandlers","indexInAwaitingHandlers","awaitingHandlers","splice","awaitingHandlersTags","handlersToRemove","hasOtherHandlerToWaitFor","some","otherHandler","shouldHandlerWaitForOther","shouldBeCancelledByFinishedHandler","tryActivate","addAwaitingHandler","handlerState","makeActive","cleanupAwaitingHandlers","shouldWait","canRunSimultaneously","gh1","gh2","handlerPointers","otherPointers","shareCommonPointers","getView","checkOverlap","isPointerWithinBothBounds","pointer","point","currentHandler","STYLUS","_VelocityTracker","VelocityTracker","lastMovedPointerId","NaN","touchEventsIds","trackedPointers","newElement","relativeCoords","timestamp","mapTouchEventId","cachedAbsoluteAverages","cachedRelativeAverages","removeMappedTouchId","velocityTracker","mappedId","touchId","touchEventId","_this$trackedPointers","_this$trackedPointers2","_this$trackedPointers3","_this$trackedPointers4","_this$trackedPointers5","_this$trackedPointers6","getLastRelativeCoords","_this$trackedPointers7","_this$trackedPointers8","_this$trackedPointers9","_this$trackedPointers10","coordsSum","getAbsoluteCoordsSum","avgX","avgY","getRelativeCoordsSum","ignoredPointer","sum","_value","stPointers","ndPointers","_CircularBuffer","_LeastSquareSolver","samples","CircularBuffer","historySize","getVelocityEstimate","sampleCount","newestSample","previousSample","sample","age","delta","horizonMilliseconds","assumePointerMoveStoppedMilliseconds","minSampleSize","xFit","LeastSquareSolver","solve","yFit","coefficients","estimate","bufferSize","buffer","actualSize","at","Vector","elements","fromVOL","dot","norm","Matrix","rows","columns","row","column","getRow","PolynomialFit","degree","q","j","inverseNorm","wy","dropRelationsForHandlerWithTag","waitFor","waitForRelations","simultaneousHandlers","simultaneousRelations","blocksHandlers","blocksHandlersRelations","_handler","_otherHandler$isButto","isNativeHandler","isButton","commonProps","baseGestureHandlerProps","baseGestureHandlerWithDetectorProps","numberOfTaps","maxDurationMs","maxDelayMs","maxDeltaX","maxDeltaY","maxDist","maxDistSq","minNumberOfPointers","clearTimeouts","waitTimeout","delayTimeout","startTap","endTap","tapsSoFar","currentMaxNumberOfPointers","trySettingPosition","updateState","distSq","defaultMaxDistSq","enableContextMenu","startTime","minDurationMs","absoluteCoordsAverage","checkDistanceFail","previousTime","_ScaleGestureDetector","onScaleBegin","detector","startingSpan","getCurrentSpan","onScale","prevScaleFactor","getScaleFactor","getTimeDelta","spanSlop","onScaleEnd","_detector","ScaleGestureDetector","scaleDetectorListener","focalX","scaleGestureDetector","getFocusX","focalY","getFocusY","onTouchEvent","callbacks","minSpan","currentTime","action","numOfPointers","streamComplete","inProgress","initialSpan","configChanged","pointerUp","div","focusX","focusY","devSumX","devSumY","spanX","spanY","span","hypot","wasInProgress","prevSpan","currentSpan","prevTime","_RotationGestureDetector","ROTATION_RECOGNITION_THRESHOLD","PI","onRotationBegin","onRotation","previousRotation","rotation","getRotation","onRotationEnd","RotationGestureDetector","rotationGestureListener","anchorX","getAnchorX","anchorY","getAnchorY","rotationGestureDetector","cachedAnchorX","cachedAnchorY","_force","updateCurrent","firstPointerID","secondPointerID","keyPointers","firstPointerCoords","secondPointerCoords","vectorX","vectorY","angle","atan2","previousAngle","finish","isInProgress","setKeyPointers","pointerIDs","_Vector","DEFAULT_DIRECTION","Directions","RIGHT","AXIAL_DEVIATION_COSINE","coneToDeviation","DIAGONAL_DEVIATION_COSINE","direction","numberOfPointersRequired","startFling","maxNumberOfPointersSimultaneously","tryEndFling","velocityVector","fromVelocity","keyPointer","getAlignment","minimalAlignmentCosine","isSimilar","fromDirection","axialDirectionsList","diagonalDirectionsList","DiagonalDirections","axialAlignmentList","diagonalAlignmentList","isAligned","isFast","magnitude","endFling","newPointerAction","pointerMoveAction","onUp","UP_RIGHT","DOWN_RIGHT","UP_LEFT","DOWN_LEFT","_magnitude","isMagnitudeSufficient","unitX","unitY","_DirectionToVectorMap","DirectionToVectorMappings","computeSimilarity","vector","threshold","view","_RegExp$exec","getComputedStyle","resultScales","scaleX","scaleY","scales","parseFloat","matrixElements","matrixElementsArray","getBoundingClientRect","PointerTypeMapping","eventAzimuthAngle","azimuthAngle","eventAltitudeAngle","altitudeAngle","tiltX","tiltY","pressure","spherical2tilt","tilt2spherical","OTHER","degToRad","degrees","tiltXrad","tiltYrad","tanX","tan","tanY","atan","pow","radToDeg","tanAlt","cos","sin","restoreViewStyles","buttonRole","getAttribute","shouldActivateOnStart","disallowInterruption","disallowsInterruption","canBeInterrupted","_DiscreteGestureHandler","_PressGestureHandler","PressGestureHandler","isNative","onRawEvent","ev","isFinal","TEST_MIN_IF_NOT_NAN","VEC_LEN_SQ","deltaX","deltaY","gesture","isGestureRunning","DiscreteGestureHandler","contains","forceInvalidate","isDiscrete","shouldEnableGestureOnSetup","shouldFailUnderCustomCriteria","isPointInView","TEST_MAX_IF_NOT_NAN","isGestureEnabledForEvent","_recognizer","pointerLength","validPointerCount","failed","_hammerjs","_findNodeHandle","_ghQueueMicrotask","gestureInstances","asArray","gestureInstance","removePendingGesture","clearSelfAsPending","hammer","stop","params","getHammerConfig","enable","recognizer","inputData","hasGestureFailed","_stillWaiting","_getPendingGestures","deltaRotation","initialRotation","simulateCancelEvent","onWaitingEnded","_gesture","pendingGestures","addPendingGesture","_config","NativeGestureClass","updateHasCustomActivationCriteria","ensureConfig","sync","EventMap","changedTouch","changedPointers","clientX","clientY","previousState","cancelPendingGestures","notifyPendingGestures","onGestureEnded","Hammer","INPUT_CANCEL","isFirst","shouldUseTouchEvents","_config$simultaneousH","_config$simultaneousH2","SUPPORTS_TOUCH","findNodeHandle","Manager","inputClass","TouchInput","on","setupEvents","onGestureActivated","__initialX","__initialY","onSuccess","pointers","_inputData","ghQueueMicrotask","prop","_inheritsLoose","output","nextKey","win","assign$1","VENDOR_PREFIXES","TEST_ELEMENT","document","TYPE_FUNCTION","prefixed","property","prefix","camelProp","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","test","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","INPUT_START","INPUT_MOVE","INPUT_END","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","each","boolOrFn","inStr","str","cleanTouchActions","hasPanX","hasPanY","TouchAction","_proto","compute","toLowerCase","trim","update","touchAction","recognizers","getTouchAction","preventDefaults","input","srcEvent","offsetDirection","session","prevented","preventDefault","hasNone","isTapPointer","isTapMovement","distance","isTapTouchTime","deltaTime","preventSrc","hasParent","parent","parentNode","getCenter","pointersLength","simpleCloneInputData","getDistance","p1","p2","getAngle","getDirection","computeDeltaXY","offsetDelta","prevDelta","prevInput","computeIntervalInputData","last","lastInterval","computeInputData","firstInput","firstMultiple","offsetCenter","overallVelocity","overallVelocityX","overallVelocityY","srcEventTarget","composedPath","path","inputHandler","pointersLen","changedPointersLen","emit","recognize","splitStr","addEventListeners","types","removeEventListeners","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","callback","inputTarget","domHandler","evEl","evTarget","evWin","inArray","src","findByKey","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEvent","PointerEventInput","_Input","proto","store","removePointer","eventTypeNormalized","isTouch","storeIndex","uniqueArray","results","TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","targetIds","touches","getTouches","targetTouches","identifier","changedTargetTouches","touch","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","which","setLastTouch","eventData","primaryTouch","lastTouch","lts","lastTouches","recordTouches","isSyntheticEvent","TouchMouseInput","_manager","inputEvent","isMouse","sourceCapabilities","firesTouchEvents","mouse","invokeArrayArg","arg","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","_uniqueId","getRecognizerByNameIfManager","otherRecognizer","stateStr","Recognizer","simultaneous","requireFail","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","TapRecognizer","Tap","_Recognizer","taps","interval","posThreshold","pTime","pCenter","_timer","_input","validPointers","validMovement","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","AttrRecognizer","attrTest","optionPointers","isRecognized","directionStr","PanRecognizer","Pan","_AttrRecognizer","pX","pY","directionTest","hasMoved","SwipeRecognizer","Swipe","PinchRecognizer","Pinch","inOut","RotateRecognizer","Rotate","PressRecognizer","Press","validTime","defaults","domEvents","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","preset","toggleCssProps","oldCssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","dispatchEvent","stopped","curRecognizer","existing","targetRecognizer","events","off","SINGLE_TOUCH_INPUT_MAP","SingleTouchInput","started","normalizeSingleTouches","deprecate","deprecationMessage","dest","merge","inherit","base","properties","childP","baseP","bindFn","VERSION","CONTENT_TOUCHES_DELAY","CONTENT_TOUCHES_QUICK_TAP_END_DELAY","MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD","MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD","DEG_RAD","Direction","DirectionMap","HammerInputNames","HammerDirectionNames","setImmediate","requestAnimationFrame","queueMicrotask","isnan","isValidNumber","limit","onGestureStart","shouldDelayTouchForEvent","shouldDelayTouches","visualFeedbackTimer","initialEvent","fireAfterInterval","sendGestureStartedEvent","timeout","_DraggingGestureHandler","DraggingGestureHandler","nextState","directions","horizontalDirections","verticalDirections","criteria","shouldActivateUnderCustomCriteria","shouldMultiFingerPanFail","deltaScale","absDeltaRotation","_PixelRatio","ratio","_shouldFireEndEvent","onSuccessfulTap","_multiTapTimer","_IndiscreteGestureHandler","IndiscreteGestureHandler","_this$initialRotation","_Errors","getTargetDirections","GesturePropError","_PointerEventManager","_KeyboardEventManager","isInitialized","gestureHandler","defaultViewStyles","setUserSelect","setTouchAction","setContextMenu","eventManagers","PointerEventManager","KeyboardEventManager","resetManager","tryResetCursor","activeCursor","cursor","shouldDisableContextMenu","addContextMenuListeners","disableContextMenu","removeContextMenuListeners","stopPropagation","isHandlerEnabled","unregisterListeners","_EventManager","POINTER_CAPTURE_EXCLUDE_LIST","EventManager","adaptedEvent","mapEvent","tagName","setPointerCapture","markAsInBounds","activePointersCounter","releasePointerCapture","markAsOutOfBounds","hasPointerCapture","inBounds","pointerIndex","pointersInBounds","ENTER","LEAVE","lastPosition","mouseButtonsMapper","MIDDLE","BUTTON_4","BUTTON_5","pointerDownCallback","pointerUpCallback","pointerMoveCallback","pointerCancelCallback","pointerEnterCallback","pointerLeaveCallback","lostPointerCaptureCallback","_PointerTypeMapping$g","calculateViewScale","tryExtractStylusData","cancelationKeys","isPressed","activationKeys","keyDownCallback","keyUpCallback","viewRect","viewportPosition","relativePosition","KEY","containerStyles","Wrapper","GestureHandlerRootView","hoistNonReactStatics","_hoistNonReactStatics","GestureHandlerRootViewContext","_GestureHandlerRootViewContext","_createHandler","tapGestureHandlerProps","tapHandlerName","createHandler","allowedProps","transformProps","customNativeProps","Handler","_this$props$onGesture","_this$props$onGesture2","_this$props$onHandler","_this$props3","stateEventName","stateToPropMappings","eventHandler","_this$props$onGesture3","_this$props4","viewNode","only","newViewTag","viewTag","ActionType","JS_FUNCTION_OLD_API","scheduleFlushOperations","getNextHandlerTag","createRef","isMountedRef","allowTouches","componentDidMount","hasUnresolvedRefs","UNRESOLVED_REFS_RETRY_LIMIT","filterConfig","componentDidUpdate","componentWillUnmount","_this$inspectorToggle","inspectorToggleListener","handlerID","remainingTries","setNativeProps","updates","mergedProps","_this$props$testID","gestureEventHandler","gestureStateEventHandler","tagMessage","grandChildren","refHandler","handlerType","_UIManagerAny$getView","_UIManagerAny$getView2","_UIManagerAny$getCons","_UIManager","_customDirectEventTypes","_getNextHandlerTag","_utils2","_ActionType","UIManagerAny","UIManager","customDirectEventTypes","topGestureHandlerEvent","registrationName","customGHEventsConfig","genericDirectEventTypes","UIManagerConstants","getViewManagerConfig","getConstants","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","extract","refs","validProps","filteredConfig","param","transformIntoHandlerTags","flushOperationsScheduled","handlerIDs","handle","REANIMATED_WORKLET","NATIVE_ANIMATED_EVENT","JS_FUNCTION_NEW_API","_PlatformConstants","forceTouchGestureHandlerProps","ForceTouchFallback","forceTouchHandlerName","ForceTouchGestureHandler","PlatformConstants","forceTouchAvailable","longPressGestureHandlerProps","longPressHandlerName","panGestureHandlerProps","panGestureHandlerCustomNativeProps","panHandlerName","managePanProps","transformPanGestureHandlerProps","res","activeOffsetX","activeOffsetY","failOffsetX","failOffsetY","pinchHandlerName","rotationHandlerName","flingGestureHandlerProps","flingHandlerName","_Component$render","ComponentWrapper","gestureHandlerProps","NATIVE_WRAPPER_PROPS_FILTER","_gestureHandlerRef","useImperativeHandle","nativeViewProps","nativeViewGestureHandlerProps","nativeViewHandlerName","_useAnimatedGesture","_attachHandlers","_needsToReattach","_dropHandlers","_Wrap","_useDetectorUpdater","_useViewRefHandler","propagateDetectorConfig","keysToPropagate","toGestureArray","GestureDetector","useContext","gestureConfig","gesturesToAttach","useMemo","shouldUseReanimated","webEventHandlersRef","useWebEventHandlers","firstRender","previousViewTag","forceRebuildReanimatedEvent","preparedGesture","attachedGestures","animatedEventHandler","animatedHandlers","isMounted","updateAttachedGestures","useDetectorUpdater","useViewRefHandler","needsToRebuildReanimatedEvent","needsToReattach","useAnimatedGesture","useLayoutEffect","attachHandlers","dropHandlers","AnimatedWrap","Wrap","needsRebuild","Reanimated","sharedHandlersCallbacks","useSharedValue","stateControllers","reactNativeGestureHandler_useAnimatedGestureJs6","currentCallback","runWorklet","CALLBACK_TYPE","FINALIZE","START","touchEventTypeToCallbackType","_gesture$changeEventC","UPDATE","CHANGE","__closure","__workletHash","__initData","_worklet_615977787608_init_data","useEvent","_reanimatedWrapper","_worklet_4317557963300_init_data","code","_worklet_2039840524711_init_data","UNDEFINED","_worklet_17409932184457_init_data","isWorklet","_worklet_7889847699524_init_data","_worklet_13087507825621_init_data","Gesture","nextGestureId","BaseGesture","gestureId","addDependency","withRef","runOnJS","simultaneousWithExternalGesture","requireExternalGestureToFail","blocksExternalGesture","withTestId","testId","cancelsTouchesInView","prepare","isRemoteDebuggingEnabled","ContinousBaseGesture","_Reanimated","_worklet_7298969188432_init_data","setGestureState","reactNativeGestureHandler_reanimatedWrapperJs1","checkGestureCallbacksForWorklets","ALLOWED_PROPS","registerHandler","extractGestureRelations","isAnimatedGesture","requireToFail","extractValidHandlerTags","simultaneousWith","renderState","setRenderState","hoverGestureHandlerProps","convertToHandlerTag","_ref$current$handlerT","_ref$current","interactionGroup","_interactionGroup$map","_interactionGroup$map2","HoverEffect","_worklet_15895574323364_init_data","changePayload","changeX","changeY","HoverGesture","effect","hoverEffect","RNRenderer","findHostInstance_DEPRECATED","newGestures","unregisterHandler","_Reanimated$default$c","_Reanimated$default","createAnimatedComponent","forceRender","useForceRender","skipConfigUpdate","didUnderlyingViewChange","validateDetectorChildren","updateHandlers","_updateHandlers","shouldUpdateSharedValueIfUsed","newHandlersValue","_flingGesture","_forceTouchGesture","_gestureComposition","_longPressGesture","_panGesture","_pinchGesture","_rotationGesture","_tapGesture","_nativeGesture","_manualGesture","GestureObjects","TapGesture","PanGesture","PinchGesture","Rotation","RotationGesture","Fling","FlingGesture","LongPress","LongPressGesture","ForceTouch","ForceTouchGesture","Native","NativeGesture","Manual","ManualGesture","Hover","Race","ComposedGesture","Simultaneous","SimultaneousGesture","Exclusive","ExclusiveGesture","_worklet_6555184671956_init_data","forceChange","minForce","maxForce","feedbackOnActivation","extendRelation","currentRelation","extendWith","prepareSingleGesture","simultaneousGestures","requireGesturesToFail","flatMap","simultaneousArrays","gestureArrays","minDuration","maxDistance","_worklet_6591024890621_init_data","minDistance","averageTouches","avgTouches","enableTrackpadTwoFingerGesture","_worklet_168466708215_init_data","scaleChange","_worklet_3631609729009_init_data","rotationChange","maxDuration","maxDelay","_worklet_8341633256781_init_data","_previous","_processColor","_GestureHandlerButton","RawButton","createNativeWrapper","GestureHandlerButton","InnerBaseButton","lastActive","onActiveStateChange","longPressDetected","longPressTimeout","delayLongPress","_this$props$onLongPre","handleEvent","rippleColor","innerRef","processColor","BaseButton","AnimatedBaseButton","btnStyles","underlay","InnerRectButton","_this$props$onActiveS","activeOpacity","resolvedStyle","flatten","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","RectButton","InnerBorderlessButton","_this$props$onActiveS2","_this$props5","borderless","BorderlessButton","accessibilityRole","_TouchableNativeFeedback","_TouchableWithoutFeedback","_TouchableOpacity","_TouchableHighlight","_GenericTouchable","GenericTouchable","TOUCHABLE_STATE","MOVED_OUTSIDE","onMoveIn","onMoveOut","STATE","handlePressIn","shouldCallOnPress","pressOutTimeout","_this$props$onPress","handleGoToUndetermined","delayPressIn","pressInTimeout","onLongPressDetected","handleMoveOutside","delayPressOut","_this$props$onStateCh","_this$props6","_this$props$onPressIn","onPressIn","_this$props$onPressOu","onPressOut","_this$props$onPressOu2","_this$props$touchSoun","coreProps","accessible","accessibilityLabel","accessibilityHint","accessibilityState","accessibilityActions","onAccessibilityAction","nativeID","containerStyle","touchSoundDisabled","extraButtonProps","exclusive","TouchableOpacity","childStyle","getChildStyleOpacityWithDefault","_this$props$useNative","quad","useNativeAnimations","_from","setOpacityTo","_this$props$onShowUnd","hasPressHandler","extraChildStyle","extraUnderlayStyle","onShowUnderlay","_this$props$onHideUnd","onHideUnderlay","showUnderlay","hideUnderlay","renderChildren","compose","_FlatList","_Switch","_TextInput","ScrollView","RNScrollView","Switch","RNSwitch","TextInput","RNTextInput","DrawerLayoutAndroid","RefreshControl","FlatList","RNFlatList","renderScrollComponent","scrollProps","_I18nManager","Swipeable","friction","overshootFriction","dragX","rowTranslation","leftWidth","rowWidth","rightWidth","overshootLeft","overshootRight","transX","showLeftAction","leftActionTranslate","MIN_VALUE","extrapolate","showRightAction","rightActionTranslate","handleRelease","rowState","_this$props$onSwipeab","_this$props$onSwipeab2","onSwipeableOpenStartDrag","onSwipeableCloseStartDrag","leftThreshold","rightThreshold","startOffsetX","currentOffset","animateRow","fromValue","_this$props$onSwipeab8","_this$props8","_this$props$onSwipeab9","_this$props9","sign","spring","restSpeedThreshold","restDisplacementThreshold","bounciness","animationOptions","finished","_this$props$onSwipeab3","_this$props$onSwipeab4","onSwipeableLeftOpen","onSwipeableOpen","_this$props$onSwipeab5","_this$props$onSwipeab6","onSwipeableRightOpen","_this$props$onSwipeab7","_this$props7","closingDirection","onSwipeableClose","onSwipeableLeftWillOpen","onSwipeableWillOpen","_this$props$onSwipeab10","_this$props10","_this$props$onSwipeab11","_this$props11","onSwipeableRightWillOpen","_this$props$onSwipeab12","_this$props12","onSwipeableWillClose","_dragX","updateAnimatedEvent","shouldComponentUpdate","renderLeftActions","renderRightActions","dragOffsetFromLeftEdge","dragOffsetFromRightEdge","leftActions","rightActions","onRowLayout","onTapHandlerStateChange","childrenContainerStyle","_android_ripple$color","_android_ripple$radiu","testOnly_pressed","pressRetentionOffset","delayHoverIn","onHoverIn","delayHoverOut","onHoverOut","unstable_pressDelay","android_disableSound","android_ripple","remainingProps","pressedState","setPressedState","pressableRef","isPressCallbackEnabled","hasPassedBoundsChecks","shouldPreventNativeEffects","normalizedHitSlop","numberAsInset","normalizedPressRetentionOffset","hoverInTimeout","hoverOutTimeout","hoverGesture","reactNativeGestureHandler_PressableJs1","gestureToPressableEvent","_worklet_13008698270117_init_data","reactNativeGestureHandler_PressableJs2","_worklet_4962952881647_init_data","pressDelayTimeoutRef","isTouchPropagationAllowed","deferredEventPayload","pressInHandler","handlingOnTouchesDown","pressOutHandler","longPressTimeoutRef","onEndHandlingTouchesDown","cancelledMidPress","activateLongPress","gestureTouchToPressableEvent","longPressMinDuration","DEFAULT_LONG_PRESS_DURATION","pressAndTouchGesture","reactNativeGestureHandler_PressableJs3","_pressableRef$current","_x","_y","_onEndHandlingTouches","isTouchWithinInset","_worklet_13737626960471_init_data","reactNativeGestureHandler_PressableJs4","_worklet_16520707553157_init_data","reactNativeGestureHandler_PressableJs5","_worklet_5577263905475_init_data","buttonGesture","reactNativeGestureHandler_PressableJs6","_worklet_4081858526427_init_data","reactNativeGestureHandler_PressableJs7","_worklet_11752004859077_init_data","appliedHitSlop","addInsets","isPressableEnabled","defaultRippleColor","styleProp","childrenProp","NativeButton","rippleRadius","radius","_Platform","_a$left","_b$left","_a$right","_b$right","_a$top","_b$top","_a$bottom","_b$bottom","touchDataToPressEvent","targetId","locationX","locationY","gestureToPressEvent","dimensions","inset","_touch$x","_inset$right","_touch$y","_inset$bottom","_touch$x2","_inset$left","_touch$y2","_inset$top","pressEvent","_event$allTouches$at$","_event$allTouches$at","_event$allTouches$at$2","_event$allTouches$at2","_event$allTouches$at$3","_event$allTouches$at3","_event$allTouches$at$4","_event$allTouches$at4","_invariant","_Keyboard","IDLE","DRAGGING","SETTLING","DrawerLayout","drawerPosition","drawerWidth","drawerType","dragXValue","touchX","touchXValue","drawerTranslation","containerWidth","multiply","dragOffsetFromOnStartPosition","openValue","gestureOptions","onDrawerSlide","listener","_this$props$onDrawerS","drawerWillShow","_this$props$onDrawerS2","onDrawerStateChanged","emitStateChanged","drawerState","keyboardDismissMode","Keyboard","dismiss","hideStatusBar","StatusBar","setHidden","statusBarAnimation","drawerShown","drawerLockMode","closeDrawer","gestureStartX","dragOffsetBasedOnStart","animateDrawer","showing","_this$accessibilityIs","_this$pointerEventsVi","_this$panGestureHandl","accessibilityIsModalView","accessibilityViewIsModal","pointerEventsView","minSwipeDistance","edgeWidth","fromLeft","gestureOrientation","panGestureHandler","speed","nextFramePosition","willShow","updateShowing","_this$props$onDrawerO","_this$props$onDrawerC","drawerOpened","onDrawerOpen","onDrawerClose","overlayOpacity","invariant","dynamicOverlayStyles","overlayColor","overlay","drawerBackgroundColor","drawerContainerStyle","contentContainerStyle","drawerSlide","containerSlide","reverseContentDirection","dynamicDrawerStyles","drawerTranslateX","closedDrawerOffset","drawerStyles","main","handleContainerLayout","containerOnBack","containerInFront","importantForAccessibility","renderOverlay","drawerContainer","renderNavigationView","onGestureRef","_touchX","_drawerTranslation","setPanGestureRef","openingHandlerStateChange","renderDrawer","Left","Right","zIndex"],"mappings":"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","debugId":"0b7be92b-f196-4b80-b368-772b1ea34000"}