@amazon-devices/react-native-gesture-handler 2.0.1758683737 → 2.0.9000000000

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,6 @@
1
1
  {
2
2
  "versions": {
3
3
  "2.0.0": "/com.amazon.kepler.gesture_handler_2@IGestureHandler_0",
4
- "2.0.1756405106": "/com.amazon.kepler.gesture_handler_2@IGestureHandler_0",
5
- "2.0.1758654000": "/com.amazon.kepler.gesture_handler_2@IGestureHandler_0",
6
- "2.0.1758683737": "/com.amazon.kepler.gesture_handler_2@IGestureHandler_0"
4
+ "2.0.9000000000": "/com.amazon.kepler.gesture_handler_2@IGestureHandler_0"
7
5
  }
8
6
  }
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = createHandler;
7
+ var _reactNativeKepler = require("@amazon-devices/react-native-kepler");
7
8
  var React = _interopRequireWildcard(require("react"));
8
9
  var _reactNative = require("react-native");
9
10
  var _lodash = require("lodash");
@@ -55,7 +56,7 @@ const customGHEventsConfig = {
55
56
  // The incoming events will be queued but never handled.
56
57
  // Without this piece of code below, you'll get the following JS error:
57
58
  // Unsupported top level event type "topOnGestureHandlerEvent" dispatched
58
- ...((0, _utils.isFabric)() && _reactNative.Platform.OS === 'android' && customGHEventsConfigFabricAndroid)
59
+ ...((0, _utils.isFabric)() && _reactNativeKepler.Platform.OS === 'android' && customGHEventsConfigFabricAndroid)
59
60
  };
60
61
 
61
62
  // Add gesture specific events to genericDirectEventTypes object exported from UIManager
@@ -69,7 +70,9 @@ UIManagerAny.genericDirectEventTypes = {
69
70
  // In newer versions of RN the `genericDirectEventTypes` is located in the object
70
71
  // returned by UIManager.getViewManagerConfig('getConstants') or in older RN UIManager.getConstants(), we need to add it there as well to make
71
72
  // it compatible with RN 61+
72
- const 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);
73
+ // amznmod_react - getViewManagerConfig and getConstants are both deprecated and return null.
74
+ // Bypassing the call on kepler to avoid a misleading error log.
75
+ const UIManagerConstants = _reactNativeKepler.Platform.OS === 'kepler' ? null : (_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);
73
76
  if (UIManagerConstants) {
74
77
  UIManagerConstants.genericDirectEventTypes = {
75
78
  ...UIManagerConstants.genericDirectEventTypes,
@@ -95,7 +98,7 @@ UIManagerAny.clearJSResponder = () => {
95
98
  oldClearJSResponder();
96
99
  };
97
100
  let allowTouches = true;
98
- const DEV_ON_ANDROID = __DEV__ && _reactNative.Platform.OS === 'android';
101
+ const DEV_ON_ANDROID = __DEV__ && _reactNativeKepler.Platform.OS === 'android';
99
102
  // Toggled inspector blocks touch events in order to allow inspecting on Android
100
103
  // This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component
101
104
  if (DEV_ON_ANDROID) {
@@ -194,7 +197,7 @@ function createHandler({
194
197
  });
195
198
  _defineProperty(this, "attachGestureHandler", newViewTag => {
196
199
  this.viewTag = newViewTag;
197
- if (_reactNative.Platform.OS === 'web') {
200
+ if (_reactNativeKepler.Platform.OS === 'web') {
198
201
  // typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch
199
202
  _RNGestureHandlerModule.default.attachGestureHandler(this.handlerTag, newViewTag, _ActionType.ActionType.JS_FUNCTION_OLD_API,
200
203
  // ignored on web
@@ -320,7 +323,7 @@ function createHandler({
320
323
  }
321
324
  render() {
322
325
  var _this$props$testID;
323
- if (__DEV__ && !this.context && !(0, _utils.isJestEnv)() && _reactNative.Platform.OS !== 'web') {
326
+ if (__DEV__ && !this.context && !(0, _utils.isJestEnv)() && _reactNativeKepler.Platform.OS !== 'web') {
324
327
  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.');
325
328
  }
326
329
  let gestureEventHandler = this.onGestureHandlerEvent;
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_lodash","_RNGestureHandlerModule","_interopRequireDefault","_State","_handlersRegistry","_gestureHandlerCommon","_utils","_ActionType","_PressabilityDebugView","_GestureHandlerRootViewContext","registry","_UIManagerAny$getView","_UIManagerAny$getView2","_UIManagerAny$getCons","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","customDirectEventTypes","registrationName","UIManagerAny","UIManager","customGHEventsConfigFabricAndroid","topOnGestureHandlerEvent","topOnGestureHandlerStateChange","customGHEventsConfig","onGestureHandlerEvent","onGestureHandlerStateChange","isFabric","Platform","OS","genericDirectEventTypes","UIManagerConstants","getViewManagerConfig","getConstants","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","tag","blockNativeResponder","RNGestureHandlerModule","handleSetJSResponder","handleClearJSResponder","allowTouches","DEV_ON_ANDROID","__DEV__","DeviceEventEmitter","addListener","hasUnresolvedRefs","props","extract","refs","Array","isArray","current","some","stateToPropMappings","State","UNDETERMINED","undefined","BEGAN","FAILED","CANCELLED","ACTIVE","END","UNRESOLVED_REFS_RETRY_LIMIT","createHandler","name","allowedProps","config","transformProps","customNativeProps","Handler","Component","constructor","event","nativeEvent","handlerTag","onGestureEvent","_this$props$onGesture","_this$props","_this$props$onGesture2","_this$props2","onHandlerStateChange","_this$props$onHandler","_this$props3","state","stateEventName","eventHandler","_this$props$onGesture3","_this$props4","node","viewNode","child","Children","only","children","ref","newConfig","createGestureHandler","newViewTag","viewTag","attachGestureHandler","ActionType","JS_FUNCTION_OLD_API","propsRef","registerOldGestureHandler","onGestureStateChange","actionType","_this$props5","_this$props6","_this$props7","REANIMATED_WORKLET","NATIVE_ANIMATED_EVENT","scheduleFlushOperations","updateGestureHandler","getNextHandlerTag","createRef","isMountedRef","id","handlerIDToTag","Error","componentDidMount","inspectorToggleListener","setState","_","update","queueMicrotask","filterConfig","findNodeHandle","componentDidUpdate","componentWillUnmount","_this$inspectorToggle","remove","dropGestureHandler","handlerID","remainingTries","deepEqual","setNativeProps","updates","mergedProps","render","_this$props$testID","context","isJestEnv","gestureEventHandler","gestureStateEventHandler","events","tagMessage","grandChildren","type","displayName","toArray","push","createElement","PressabilityDebugView","key","color","hitSlop","cloneElement","refHandler","collapsable","handlerType","testID","GestureHandlerRootViewContext"],"sources":["createHandler.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Platform,\n UIManager,\n DeviceEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport { isEqual as deepEqual } from 'lodash';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\nimport {\n handlerIDToTag,\n getNextHandlerTag,\n registerOldGestureHandler,\n} from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n scheduleFlushOperations,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\nimport { isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\nimport GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';\n\n// amznmod_gesturehandler - Update deep import to align with changes we have pulled early from upstream.\n// @ts-expect-error Untyped as we are unsafely importing a private API\nimport * as registry from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry'\n\nregistry.customDirectEventTypes['topOnGestureHandlerStateChange'] = {\n registrationName: 'onGestureHandlerStateChange'\n}\n\nregistry.customDirectEventTypes['topOnGestureHandlerEvent'] = {\n registrationName: 'onGestureHandlerEvent'\n}\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\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() &&\n Platform.OS === 'android' &&\n customGHEventsConfigFabricAndroid),\n};\n\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.\nUIManagerAny.genericDirectEventTypes = {\n ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig,\n};\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+\nconst UIManagerConstants =\n UIManagerAny.getViewManagerConfig?.('getConstants') ??\n UIManagerAny.getConstants?.();\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = {\n ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig,\n };\n}\n\n// Wrap JS responder calls and notify gesture handler manager\nconst {\n setJSResponder: oldSetJSResponder = () => {\n //no operation\n },\n clearJSResponder: oldClearJSResponder = () => {\n //no operation\n },\n} = UIManagerAny;\nUIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';\n// 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\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\ntype HandlerProps<T extends Record<string, unknown>> = Readonly<\n React.PropsWithChildren<BaseGestureHandlerProps<T>>\n>;\nfunction hasUnresolvedRefs<T extends Record<string, unknown>>(\n props: HandlerProps<T>\n) {\n // TODO(TS) - add type for extract arg\n const extract = (refs: any | any[]) => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n return refs.some((r) => r && r.current === null);\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} as const;\n\ntype CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =\n Readonly<{\n name: string;\n allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;\n config: Readonly<Record<string, unknown>>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly<string[]>;\n }>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\n\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1;\n\n// TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\nexport default function createHandler<\n T extends BaseGestureHandlerProps<U>,\n U extends Record<string, unknown>\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs<T>): React.ComponentType<T & React.RefAttributes<any>> {\n interface HandlerState {\n allowTouches: boolean;\n }\n class Handler extends React.Component<\n T & InternalEventHandlers,\n HandlerState\n > {\n static displayName = name;\n static contextType = GestureHandlerRootViewContext;\n\n private handlerTag: number;\n private config: Record<string, unknown>;\n private propsRef: React.MutableRefObject<unknown>;\n private isMountedRef: React.MutableRefObject<boolean | null>;\n private viewNode: any;\n private viewTag?: number;\n private inspectorToggleListener?: EmitterSubscription;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = React.createRef();\n this.isMountedRef = React.createRef();\n this.state = { allowTouches };\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n handlerIDToTag[props.id] = this.handlerTag;\n }\n }\n\n componentDidMount() {\n const props: HandlerProps<U> = this.props;\n this.isMountedRef.current = true;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n this.setState((_) => ({ allowTouches }));\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 queueMicrotask(() => {\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n this.createGestureHandler(\n filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n )\n );\n\n this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n this.isMountedRef.current = false;\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations();\n // 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 const handlerID: string | undefined = this.props.id;\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n private onGestureHandlerEvent = (event: GestureEvent<U>) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onGestureEvent === 'function') {\n this.props.onGestureEvent?.(event);\n }\n } else {\n this.props.onGestureHandlerEvent?.(event);\n }\n };\n\n // TODO(TS) - make sure this is right type for event\n private onGestureHandlerStateChange = (\n event: HandlerStateChangeEvent<U>\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onHandlerStateChange === 'function') {\n this.props.onHandlerStateChange?.(event);\n }\n\n const state: ValueOf<typeof State> = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n this.props.onGestureHandlerStateChange?.(event);\n }\n };\n\n private refHandler = (node: any) => {\n this.viewNode = node;\n\n const child = React.Children.only(this.props.children);\n // TODO(TS) fix ref type\n const { ref }: any = child;\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n };\n\n private createGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.createGestureHandler(\n name,\n this.handlerTag,\n newConfig\n );\n };\n\n private attachGestureHandler = (newViewTag: number) => {\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 (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n this.handlerTag,\n newViewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef\n );\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange,\n });\n\n const actionType = (() => {\n if (\n (this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n 'current' in this.props.onGestureEvent) ||\n (this.props?.onHandlerStateChange &&\n // @ts-ignore types not correct?\n 'current' in this.props.onHandlerStateChange)\n ) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (\n this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n '__isNative' in this.props.onGestureEvent\n ) {\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(\n this.handlerTag,\n newViewTag,\n actionType\n );\n }\n\n scheduleFlushOperations();\n };\n\n private updateGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n };\n\n private update(remainingTries: number) {\n if (!this.isMountedRef.current) {\n return;\n }\n\n const props: HandlerProps<U> = this.props;\n\n // 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 if (hasUnresolvedRefs(props) && remainingTries > 0) {\n queueMicrotask(() => {\n this.update(remainingTries - 1);\n });\n } else {\n const newConfig = filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n );\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n }\n\n setNativeProps(updates: any) {\n const mergedProps = { ...this.props, ...updates };\n const newConfig = filterConfig(\n transformProps ? transformProps(mergedProps) : mergedProps,\n [...allowedProps, ...customNativeProps],\n config\n );\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n if (__DEV__ && !this.context && !isJestEnv() && Platform.OS !== 'web') {\n throw new Error(\n name +\n ' 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\n let gestureEventHandler = this.onGestureHandlerEvent;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureEventHandlers = {\n onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =\n this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureEventHandler = onGestureEvent;\n } else {\n if (\n onGestureHandlerEvent &&\n typeof onGestureHandlerEvent !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureStateChangeHandlers = {\n onHandlerStateChange?: BaseGestureHandlerProps<U>['onHandlerStateChange'];\n onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];\n };\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange,\n }: OnGestureStateChangeHandlers = this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (\n onGestureHandlerStateChange &&\n typeof onGestureHandlerStateChange !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n const events = {\n onGestureHandlerEvent: this.state.allowTouches\n ? gestureEventHandler\n : undefined,\n onGestureHandlerStateChange: this.state.allowTouches\n ? gestureStateEventHandler\n : undefined,\n };\n\n this.propsRef.current = events;\n\n let child: any = null;\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(\n tagMessage(\n `${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 }\n\n let grandChildren = child.props.children;\n if (\n __DEV__ &&\n child.type &&\n (child.type === 'RNGestureHandlerButton' ||\n child.type.name === 'View' ||\n child.type.displayName === 'View')\n ) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push(\n <PressabilityDebugView\n key=\"pressabilityDebugView\"\n color=\"mediumspringgreen\"\n hitSlop={child.props.hitSlop}\n />\n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv()\n ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n }\n : {}),\n testID: this.props.testID ?? child.props.testID,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeKepler","require","React","_interopRequireWildcard","_reactNative","_lodash","_RNGestureHandlerModule","_interopRequireDefault","_State","_handlersRegistry","_gestureHandlerCommon","_utils","_ActionType","_PressabilityDebugView","_GestureHandlerRootViewContext","registry","_UIManagerAny$getView","_UIManagerAny$getView2","_UIManagerAny$getCons","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","customDirectEventTypes","registrationName","UIManagerAny","UIManager","customGHEventsConfigFabricAndroid","topOnGestureHandlerEvent","topOnGestureHandlerStateChange","customGHEventsConfig","onGestureHandlerEvent","onGestureHandlerStateChange","isFabric","Platform","OS","genericDirectEventTypes","UIManagerConstants","getViewManagerConfig","getConstants","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","tag","blockNativeResponder","RNGestureHandlerModule","handleSetJSResponder","handleClearJSResponder","allowTouches","DEV_ON_ANDROID","__DEV__","DeviceEventEmitter","addListener","hasUnresolvedRefs","props","extract","refs","Array","isArray","current","some","stateToPropMappings","State","UNDETERMINED","undefined","BEGAN","FAILED","CANCELLED","ACTIVE","END","UNRESOLVED_REFS_RETRY_LIMIT","createHandler","name","allowedProps","config","transformProps","customNativeProps","Handler","Component","constructor","event","nativeEvent","handlerTag","onGestureEvent","_this$props$onGesture","_this$props","_this$props$onGesture2","_this$props2","onHandlerStateChange","_this$props$onHandler","_this$props3","state","stateEventName","eventHandler","_this$props$onGesture3","_this$props4","node","viewNode","child","Children","only","children","ref","newConfig","createGestureHandler","newViewTag","viewTag","attachGestureHandler","ActionType","JS_FUNCTION_OLD_API","propsRef","registerOldGestureHandler","onGestureStateChange","actionType","_this$props5","_this$props6","_this$props7","REANIMATED_WORKLET","NATIVE_ANIMATED_EVENT","scheduleFlushOperations","updateGestureHandler","getNextHandlerTag","createRef","isMountedRef","id","handlerIDToTag","Error","componentDidMount","inspectorToggleListener","setState","_","update","queueMicrotask","filterConfig","findNodeHandle","componentDidUpdate","componentWillUnmount","_this$inspectorToggle","remove","dropGestureHandler","handlerID","remainingTries","deepEqual","setNativeProps","updates","mergedProps","render","_this$props$testID","context","isJestEnv","gestureEventHandler","gestureStateEventHandler","events","tagMessage","grandChildren","type","displayName","toArray","push","createElement","PressabilityDebugView","key","color","hitSlop","cloneElement","refHandler","collapsable","handlerType","testID","GestureHandlerRootViewContext"],"sources":["createHandler.tsx"],"sourcesContent":["import { Platform } from '@amazon-devices/react-native-kepler';\nimport * as React from 'react';\nimport {\n UIManager,\n DeviceEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport { isEqual as deepEqual } from 'lodash';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\nimport {\n handlerIDToTag,\n getNextHandlerTag,\n registerOldGestureHandler,\n} from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n scheduleFlushOperations,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\nimport { isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\nimport GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';\n\n// amznmod_gesturehandler - Update deep import to align with changes we have pulled early from upstream.\n// @ts-expect-error Untyped as we are unsafely importing a private API\nimport * as registry from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry'\n\nregistry.customDirectEventTypes['topOnGestureHandlerStateChange'] = {\n registrationName: 'onGestureHandlerStateChange'\n}\n\nregistry.customDirectEventTypes['topOnGestureHandlerEvent'] = {\n registrationName: 'onGestureHandlerEvent'\n}\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\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() &&\n Platform.OS === 'android' &&\n customGHEventsConfigFabricAndroid),\n};\n\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.\nUIManagerAny.genericDirectEventTypes = {\n ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig,\n};\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// amznmod_react - getViewManagerConfig and getConstants are both deprecated and return null.\n// Bypassing the call on kepler to avoid a misleading error log.\nconst UIManagerConstants = Platform.OS === 'kepler' ? null :\n UIManagerAny.getViewManagerConfig?.('getConstants') ??\n UIManagerAny.getConstants?.();\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = {\n ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig,\n };\n}\n\n// Wrap JS responder calls and notify gesture handler manager\nconst {\n setJSResponder: oldSetJSResponder = () => {\n //no operation\n },\n clearJSResponder: oldClearJSResponder = () => {\n //no operation\n },\n} = UIManagerAny;\nUIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';\n// 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\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\ntype HandlerProps<T extends Record<string, unknown>> = Readonly<\n React.PropsWithChildren<BaseGestureHandlerProps<T>>\n>;\nfunction hasUnresolvedRefs<T extends Record<string, unknown>>(\n props: HandlerProps<T>\n) {\n // TODO(TS) - add type for extract arg\n const extract = (refs: any | any[]) => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n return refs.some((r) => r && r.current === null);\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} as const;\n\ntype CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =\n Readonly<{\n name: string;\n allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;\n config: Readonly<Record<string, unknown>>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly<string[]>;\n }>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\n\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1;\n\n// TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\nexport default function createHandler<\n T extends BaseGestureHandlerProps<U>,\n U extends Record<string, unknown>\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs<T>): React.ComponentType<T & React.RefAttributes<any>> {\n interface HandlerState {\n allowTouches: boolean;\n }\n class Handler extends React.Component<\n T & InternalEventHandlers,\n HandlerState\n > {\n static displayName = name;\n static contextType = GestureHandlerRootViewContext;\n\n private handlerTag: number;\n private config: Record<string, unknown>;\n private propsRef: React.MutableRefObject<unknown>;\n private isMountedRef: React.MutableRefObject<boolean | null>;\n private viewNode: any;\n private viewTag?: number;\n private inspectorToggleListener?: EmitterSubscription;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = React.createRef();\n this.isMountedRef = React.createRef();\n this.state = { allowTouches };\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n handlerIDToTag[props.id] = this.handlerTag;\n }\n }\n\n componentDidMount() {\n const props: HandlerProps<U> = this.props;\n this.isMountedRef.current = true;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n this.setState((_) => ({ allowTouches }));\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 queueMicrotask(() => {\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n this.createGestureHandler(\n filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n )\n );\n\n this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n this.isMountedRef.current = false;\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations();\n // 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 const handlerID: string | undefined = this.props.id;\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n private onGestureHandlerEvent = (event: GestureEvent<U>) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onGestureEvent === 'function') {\n this.props.onGestureEvent?.(event);\n }\n } else {\n this.props.onGestureHandlerEvent?.(event);\n }\n };\n\n // TODO(TS) - make sure this is right type for event\n private onGestureHandlerStateChange = (\n event: HandlerStateChangeEvent<U>\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onHandlerStateChange === 'function') {\n this.props.onHandlerStateChange?.(event);\n }\n\n const state: ValueOf<typeof State> = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n this.props.onGestureHandlerStateChange?.(event);\n }\n };\n\n private refHandler = (node: any) => {\n this.viewNode = node;\n\n const child = React.Children.only(this.props.children);\n // TODO(TS) fix ref type\n const { ref }: any = child;\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n };\n\n private createGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.createGestureHandler(\n name,\n this.handlerTag,\n newConfig\n );\n };\n\n private attachGestureHandler = (newViewTag: number) => {\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 (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n this.handlerTag,\n newViewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef\n );\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange,\n });\n\n const actionType = (() => {\n if (\n (this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n 'current' in this.props.onGestureEvent) ||\n (this.props?.onHandlerStateChange &&\n // @ts-ignore types not correct?\n 'current' in this.props.onHandlerStateChange)\n ) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (\n this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n '__isNative' in this.props.onGestureEvent\n ) {\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(\n this.handlerTag,\n newViewTag,\n actionType\n );\n }\n\n scheduleFlushOperations();\n };\n\n private updateGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n };\n\n private update(remainingTries: number) {\n if (!this.isMountedRef.current) {\n return;\n }\n\n const props: HandlerProps<U> = this.props;\n\n // 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 if (hasUnresolvedRefs(props) && remainingTries > 0) {\n queueMicrotask(() => {\n this.update(remainingTries - 1);\n });\n } else {\n const newConfig = filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n );\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n }\n\n setNativeProps(updates: any) {\n const mergedProps = { ...this.props, ...updates };\n const newConfig = filterConfig(\n transformProps ? transformProps(mergedProps) : mergedProps,\n [...allowedProps, ...customNativeProps],\n config\n );\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n if (__DEV__ && !this.context && !isJestEnv() && Platform.OS !== 'web') {\n throw new Error(\n name +\n ' 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\n let gestureEventHandler = this.onGestureHandlerEvent;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureEventHandlers = {\n onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =\n this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureEventHandler = onGestureEvent;\n } else {\n if (\n onGestureHandlerEvent &&\n typeof onGestureHandlerEvent !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureStateChangeHandlers = {\n onHandlerStateChange?: BaseGestureHandlerProps<U>['onHandlerStateChange'];\n onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];\n };\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange,\n }: OnGestureStateChangeHandlers = this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (\n onGestureHandlerStateChange &&\n typeof onGestureHandlerStateChange !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n const events = {\n onGestureHandlerEvent: this.state.allowTouches\n ? gestureEventHandler\n : undefined,\n onGestureHandlerStateChange: this.state.allowTouches\n ? gestureStateEventHandler\n : undefined,\n };\n\n this.propsRef.current = events;\n\n let child: any = null;\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(\n tagMessage(\n `${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 }\n\n let grandChildren = child.props.children;\n if (\n __DEV__ &&\n child.type &&\n (child.type === 'RNGestureHandlerButton' ||\n child.type.name === 'View' ||\n child.type.displayName === 'View')\n ) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push(\n <PressabilityDebugView\n key=\"pressabilityDebugView\"\n color=\"mediumspringgreen\"\n hitSlop={child.props.hitSlop}\n />\n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv()\n ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n }\n : {}),\n testID: this.props.testID ?? child.props.testID,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAMA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,uBAAA,GAAAC,sBAAA,CAAAN,OAAA;AAEA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAR,OAAA;AAMA,IAAAS,qBAAA,GAAAT,OAAA;AASA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,sBAAA,GAAAZ,OAAA;AACA,IAAAa,8BAAA,GAAAP,sBAAA,CAAAN,OAAA;AAIA,IAAAc,QAAA,GAAAZ,uBAAA,CAAAF,OAAA;AAA+F,IAAAe,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EA3B/F;AAyBA;AACA;AAAA,SAAAX,uBAAAY,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAhB,wBAAAgB,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA,SAAAW,gBAAApB,CAAA,EAAAK,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAgB,cAAA,CAAAhB,CAAA,MAAAL,CAAA,GAAAY,MAAA,CAAAC,cAAA,CAAAb,CAAA,EAAAK,CAAA,IAAAiB,KAAA,EAAAhB,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAzB,CAAA,CAAAK,CAAA,IAAAC,CAAA,EAAAN,CAAA;AAAA,SAAAqB,eAAAf,CAAA,QAAAY,CAAA,GAAAQ,YAAA,CAAApB,CAAA,uCAAAY,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAQ,aAAApB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAN,CAAA,GAAAM,CAAA,CAAAqB,MAAA,CAAAC,WAAA,kBAAA5B,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAX,CAAA,EAAAD,CAAA,uCAAAa,CAAA,SAAAA,CAAA,YAAAW,SAAA,yEAAAxB,CAAA,GAAAyB,MAAA,GAAAC,MAAA,EAAAzB,CAAA;AAGAV,QAAQ,CAACoC,sBAAsB,CAAC,gCAAgC,CAAC,GAAG;EAClEC,gBAAgB,EAAE;AACpB,CAAC;AAEDrC,QAAQ,CAACoC,sBAAsB,CAAC,0BAA0B,CAAC,GAAG;EAC5DC,gBAAgB,EAAE;AACpB,CAAC;AAED,MAAMC,YAAY,GAAGC,sBAAgB;AAErC,MAAMC,iCAAiC,GAAG;EACxCC,wBAAwB,EAAE;IAAEJ,gBAAgB,EAAE;EAAwB,CAAC;EACvEK,8BAA8B,EAAE;IAC9BL,gBAAgB,EAAE;EACpB;AACF,CAAC;AAED,MAAMM,oBAAoB,GAAG;EAC3BC,qBAAqB,EAAE;IAAEP,gBAAgB,EAAE;EAAwB,CAAC;EACpEQ,2BAA2B,EAAE;IAC3BR,gBAAgB,EAAE;EACpB,CAAC;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,IAAAS,eAAQ,EAAC,CAAC,IACZC,2BAAQ,CAACC,EAAE,KAAK,SAAS,IACzBR,iCAAiC;AACrC,CAAC;;AAED;AACA;AACA;AACA;AACAF,YAAY,CAACW,uBAAuB,GAAG;EACrC,GAAGX,YAAY,CAACW,uBAAuB;EACvC,GAAGN;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,MAAMO,kBAAkB,GAAGH,2BAAQ,CAACC,EAAE,KAAK,QAAQ,GAAG,IAAI,IAAA/C,qBAAA,IAAAC,sBAAA,GACxDoC,YAAY,CAACa,oBAAoB,cAAAjD,sBAAA,uBAAjCA,sBAAA,CAAAmB,IAAA,CAAAiB,YAAY,EAAwB,cAAc,CAAC,cAAArC,qBAAA,cAAAA,qBAAA,IAAAE,qBAAA,GACnDmC,YAAY,CAACc,YAAY,cAAAjD,qBAAA,uBAAzBA,qBAAA,CAAAkB,IAAA,CAAAiB,YAA4B,CAAC;AAE/B,IAAIY,kBAAkB,EAAE;EACtBA,kBAAkB,CAACD,uBAAuB,GAAG;IAC3C,GAAGC,kBAAkB,CAACD,uBAAuB;IAC7C,GAAGN;EACL,CAAC;AACH;;AAEA;AACA,MAAM;EACJU,cAAc,EAAEC,iBAAiB,GAAGA,CAAA,KAAM;IACxC;EAAA,CACD;EACDC,gBAAgB,EAAEC,mBAAmB,GAAGA,CAAA,KAAM;IAC5C;EAAA;AAEJ,CAAC,GAAGlB,YAAY;AAChBA,YAAY,CAACe,cAAc,GAAG,CAACI,GAAW,EAAEC,oBAA6B,KAAK;EAC5EC,+BAAsB,CAACC,oBAAoB,CAACH,GAAG,EAAEC,oBAAoB,CAAC;EACtEJ,iBAAiB,CAACG,GAAG,EAAEC,oBAAoB,CAAC;AAC9C,CAAC;AACDpB,YAAY,CAACiB,gBAAgB,GAAG,MAAM;EACpCI,+BAAsB,CAACE,sBAAsB,CAAC,CAAC;EAC/CL,mBAAmB,CAAC,CAAC;AACvB,CAAC;AAED,IAAIM,YAAY,GAAG,IAAI;AACvB,MAAMC,cAAc,GAAGC,OAAO,IAAIjB,2BAAQ,CAACC,EAAE,KAAK,SAAS;AAC3D;AACA;AACA,IAAIe,cAAc,EAAE;EAClBE,+BAAkB,CAACC,WAAW,CAAC,wBAAwB,EAAE,MAAM;IAC7DJ,YAAY,GAAG,CAACA,YAAY;EAC9B,CAAC,CAAC;AACJ;AAKA,SAASK,iBAAiBA,CACxBC,KAAsB,EACtB;EACA;EACA,MAAMC,OAAO,GAAIC,IAAiB,IAAK;IACrC,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAE;MACxB,OAAOA,IAAI,IAAIA,IAAI,CAACG,OAAO,KAAK,IAAI;IACtC;IACA,OAAOH,IAAI,CAACI,IAAI,CAAEjE,CAAC,IAAKA,CAAC,IAAIA,CAAC,CAACgE,OAAO,KAAK,IAAI,CAAC;EAClD,CAAC;EACD,OAAOJ,OAAO,CAACD,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAIC,OAAO,CAACD,KAAK,CAAC,SAAS,CAAC,CAAC;AAC5E;AAEA,MAAMO,mBAAmB,GAAG;EAC1B,CAACC,YAAK,CAACC,YAAY,GAAGC,SAAS;EAC/B,CAACF,YAAK,CAACG,KAAK,GAAG,SAAS;EACxB,CAACH,YAAK,CAACI,MAAM,GAAG,UAAU;EAC1B,CAACJ,YAAK,CAACK,SAAS,GAAG,aAAa;EAChC,CAACL,YAAK,CAACM,MAAM,GAAG,aAAa;EAC7B,CAACN,YAAK,CAACO,GAAG,GAAG;AACf,CAAU;;AAWV;;AAMA,MAAMC,2BAA2B,GAAG,CAAC;;AAErC;AACe,SAASC,aAAaA,CAGnC;EACAC,IAAI;EACJC,YAAY,GAAG,EAAE;EACjBC,MAAM,GAAG,CAAC,CAAC;EACXC,cAAc;EACdC,iBAAiB,GAAG;AACA,CAAC,EAAqD;EAI1E,MAAMC,OAAO,SAASxG,KAAK,CAACyG,SAAS,CAGnC;IAYAC,WAAWA,CAACzB,KAAgC,EAAE;MAC5C,KAAK,CAACA,KAAK,CAAC;MAAC5C,eAAA;MAAAA,eAAA;MAAAA,eAAA;MAAAA,eAAA;MAAAA,eAAA;MAAAA,eAAA;MAAAA,eAAA;MAAAA,eAAA,gCAuEkBsE,KAAsB,IAAK;QAC1D,IAAIA,KAAK,CAACC,WAAW,CAACC,UAAU,KAAK,IAAI,CAACA,UAAU,EAAE;UACpD,IAAI,OAAO,IAAI,CAAC5B,KAAK,CAAC6B,cAAc,KAAK,UAAU,EAAE;YAAA,IAAAC,qBAAA,EAAAC,WAAA;YACnD,CAAAD,qBAAA,IAAAC,WAAA,OAAI,CAAC/B,KAAK,EAAC6B,cAAc,cAAAC,qBAAA,eAAzBA,qBAAA,CAAA7E,IAAA,CAAA8E,WAAA,EAA4BL,KAAK,CAAC;UACpC;QACF,CAAC,MAAM;UAAA,IAAAM,sBAAA,EAAAC,YAAA;UACL,CAAAD,sBAAA,IAAAC,YAAA,OAAI,CAACjC,KAAK,EAACxB,qBAAqB,cAAAwD,sBAAA,eAAhCA,sBAAA,CAAA/E,IAAA,CAAAgF,YAAA,EAAmCP,KAAK,CAAC;QAC3C;MACF,CAAC;MAED;MAAAtE,eAAA,sCAEEsE,KAAiC,IAC9B;QACH,IAAIA,KAAK,CAACC,WAAW,CAACC,UAAU,KAAK,IAAI,CAACA,UAAU,EAAE;UACpD,IAAI,OAAO,IAAI,CAAC5B,KAAK,CAACkC,oBAAoB,KAAK,UAAU,EAAE;YAAA,IAAAC,qBAAA,EAAAC,YAAA;YACzD,CAAAD,qBAAA,IAAAC,YAAA,OAAI,CAACpC,KAAK,EAACkC,oBAAoB,cAAAC,qBAAA,eAA/BA,qBAAA,CAAAlF,IAAA,CAAAmF,YAAA,EAAkCV,KAAK,CAAC;UAC1C;UAEA,MAAMW,KAA4B,GAAGX,KAAK,CAACC,WAAW,CAACU,KAAK;UAC5D,MAAMC,cAAc,GAAG/B,mBAAmB,CAAC8B,KAAK,CAAC;UACjD,MAAME,YAAY,GAAGD,cAAc,IAAI,IAAI,CAACtC,KAAK,CAACsC,cAAc,CAAC;UACjE,IAAIC,YAAY,IAAI,OAAOA,YAAY,KAAK,UAAU,EAAE;YACtDA,YAAY,CAACb,KAAK,CAAC;UACrB;QACF,CAAC,MAAM;UAAA,IAAAc,sBAAA,EAAAC,YAAA;UACL,CAAAD,sBAAA,IAAAC,YAAA,OAAI,CAACzC,KAAK,EAACvB,2BAA2B,cAAA+D,sBAAA,eAAtCA,sBAAA,CAAAvF,IAAA,CAAAwF,YAAA,EAAyCf,KAAK,CAAC;QACjD;MACF,CAAC;MAAAtE,eAAA,qBAEqBsF,IAAS,IAAK;QAClC,IAAI,CAACC,QAAQ,GAAGD,IAAI;QAEpB,MAAME,KAAK,GAAG7H,KAAK,CAAC8H,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC9C,KAAK,CAAC+C,QAAQ,CAAC;QACtD;QACA,MAAM;UAAEC;QAAS,CAAC,GAAGJ,KAAK;QAC1B,IAAII,GAAG,KAAK,IAAI,EAAE;UAChB,IAAI,OAAOA,GAAG,KAAK,UAAU,EAAE;YAC7BA,GAAG,CAACN,IAAI,CAAC;UACX,CAAC,MAAM;YACLM,GAAG,CAAC3C,OAAO,GAAGqC,IAAI;UACpB;QACF;MACF,CAAC;MAAAtF,eAAA,+BAGC6F,SAA4C,IACzC;QACH,IAAI,CAAC7B,MAAM,GAAG6B,SAAS;QAEvB1D,+BAAsB,CAAC2D,oBAAoB,CACzChC,IAAI,EACJ,IAAI,CAACU,UAAU,EACfqB,SACF,CAAC;MACH,CAAC;MAAA7F,eAAA,+BAE+B+F,UAAkB,IAAK;QACrD,IAAI,CAACC,OAAO,GAAGD,UAAU;QAEzB,IAAIxE,2BAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;UACzB;UAEEW,+BAAsB,CAAC8D,oBAAoB,CAE3C,IAAI,CAACzB,UAAU,EACfuB,UAAU,EACVG,sBAAU,CAACC,mBAAmB;UAAE;UAChC,IAAI,CAACC,QACP,CAAC;QACH,CAAC,MAAM;UACL,IAAAC,2CAAyB,EAAC,IAAI,CAAC7B,UAAU,EAAE;YACzCC,cAAc,EAAE,IAAI,CAACrD,qBAAqB;YAC1CkF,oBAAoB,EAAE,IAAI,CAACjF;UAC7B,CAAC,CAAC;UAEF,MAAMkF,UAAU,GAAG,CAAC,CAAAC,YAAA,EAAAC,YAAA,EAAAC,YAAA,KAAM;YACxB,IACG,CAAAF,YAAA,OAAI,CAAC5D,KAAK,cAAA4D,YAAA,eAAVA,YAAA,CAAY/B,cAAc;YACzB;YACA,SAAS,IAAI,IAAI,CAAC7B,KAAK,CAAC6B,cAAc,IACvC,CAAAgC,YAAA,OAAI,CAAC7D,KAAK,cAAA6D,YAAA,eAAVA,YAAA,CAAY3B,oBAAoB;YAC/B;YACA,SAAS,IAAI,IAAI,CAAClC,KAAK,CAACkC,oBAAqB,EAC/C;cACA;cACA,OAAOoB,sBAAU,CAACS,kBAAkB;YACtC,CAAC,MAAM,IACL,CAAAD,YAAA,OAAI,CAAC9D,KAAK,cAAA8D,YAAA,eAAVA,YAAA,CAAYjC,cAAc;YAC1B;YACA,YAAY,IAAI,IAAI,CAAC7B,KAAK,CAAC6B,cAAc,EACzC;cACA;cACA,OAAOyB,sBAAU,CAACU,qBAAqB;YACzC,CAAC,MAAM;cACL;cACA,OAAOV,sBAAU,CAACC,mBAAmB;YACvC;UACF,CAAC,EAAE,CAAC;UAEJhE,+BAAsB,CAAC8D,oBAAoB,CACzC,IAAI,CAACzB,UAAU,EACfuB,UAAU,EACVQ,UACF,CAAC;QACH;QAEA,IAAAM,6CAAuB,EAAC,CAAC;MAC3B,CAAC;MAAA7G,eAAA,+BAGC6F,SAA4C,IACzC;QACH,IAAI,CAAC7B,MAAM,GAAG6B,SAAS;QAEvB1D,+BAAsB,CAAC2E,oBAAoB,CAAC,IAAI,CAACtC,UAAU,EAAEqB,SAAS,CAAC;QACvE,IAAAgB,6CAAuB,EAAC,CAAC;MAC3B,CAAC;MA3LC,IAAI,CAACrC,UAAU,GAAG,IAAAuC,mCAAiB,EAAC,CAAC;MACrC,IAAI,CAAC/C,MAAM,GAAG,CAAC,CAAC;MAChB,IAAI,CAACoC,QAAQ,gBAAGzI,KAAK,CAACqJ,SAAS,CAAC,CAAC;MACjC,IAAI,CAACC,YAAY,gBAAGtJ,KAAK,CAACqJ,SAAS,CAAC,CAAC;MACrC,IAAI,CAAC/B,KAAK,GAAG;QAAE3C;MAAa,CAAC;MAC7B,IAAIM,KAAK,CAACsE,EAAE,EAAE;QACZ,IAAIC,gCAAc,CAACvE,KAAK,CAACsE,EAAE,CAAC,KAAK5D,SAAS,EAAE;UAC1C,MAAM,IAAI8D,KAAK,CAAC,oBAAoBxE,KAAK,CAACsE,EAAE,sBAAsB,CAAC;QACrE;QACAC,gCAAc,CAACvE,KAAK,CAACsE,EAAE,CAAC,GAAG,IAAI,CAAC1C,UAAU;MAC5C;IACF;IAEA6C,iBAAiBA,CAAA,EAAG;MAClB,MAAMzE,KAAsB,GAAG,IAAI,CAACA,KAAK;MACzC,IAAI,CAACqE,YAAY,CAAChE,OAAO,GAAG,IAAI;MAEhC,IAAIV,cAAc,EAAE;QAClB,IAAI,CAAC+E,uBAAuB,GAAG7E,+BAAkB,CAACC,WAAW,CAC3D,wBAAwB,EACxB,MAAM;UACJ,IAAI,CAAC6E,QAAQ,CAAEC,CAAC,KAAM;YAAElF;UAAa,CAAC,CAAC,CAAC;UACxC,IAAI,CAACmF,MAAM,CAAC7D,2BAA2B,CAAC;QAC1C,CACF,CAAC;MACH;MACA,IAAIjB,iBAAiB,CAACC,KAAK,CAAC,EAAE;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA8E,cAAc,CAAC,MAAM;UACnB,IAAI,CAACD,MAAM,CAAC7D,2BAA2B,CAAC;QAC1C,CAAC,CAAC;MACJ;MAEA,IAAI,CAACkC,oBAAoB,CACvB,IAAA6B,kCAAY,EACV1D,cAAc,GAAGA,cAAc,CAAC,IAAI,CAACrB,KAAK,CAAC,GAAG,IAAI,CAACA,KAAK,EACxD,CAAC,GAAGmB,YAAY,EAAE,GAAGG,iBAAiB,CAAC,EACvCF,MACF,CACF,CAAC;MAED,IAAI,CAACiC,oBAAoB,CAAC,IAAA2B,oCAAc,EAAC,IAAI,CAACrC,QAAQ,CAAW,CAAC,CAAC,CAAC;IACtE;IAEAsC,kBAAkBA,CAAA,EAAG;MACnB,MAAM7B,OAAO,GAAG,IAAA4B,oCAAc,EAAC,IAAI,CAACrC,QAAQ,CAAC;MAC7C,IAAI,IAAI,CAACS,OAAO,KAAKA,OAAO,EAAE;QAC5B,IAAI,CAACC,oBAAoB,CAACD,OAAiB,CAAC,CAAC,CAAC;MAChD;MACA,IAAI,CAACyB,MAAM,CAAC7D,2BAA2B,CAAC;IAC1C;IAEAkE,oBAAoBA,CAAA,EAAG;MAAA,IAAAC,qBAAA;MACrB,CAAAA,qBAAA,OAAI,CAACT,uBAAuB,cAAAS,qBAAA,eAA5BA,qBAAA,CAA8BC,MAAM,CAAC,CAAC;MACtC,IAAI,CAACf,YAAY,CAAChE,OAAO,GAAG,KAAK;MACjCd,+BAAsB,CAAC8F,kBAAkB,CAAC,IAAI,CAACzD,UAAU,CAAC;MAC1D,IAAAqC,6CAAuB,EAAC,CAAC;MACzB;MACA,MAAMqB,SAA6B,GAAG,IAAI,CAACtF,KAAK,CAACsE,EAAE;MACnD,IAAIgB,SAAS,EAAE;QACb;QACA,OAAOf,gCAAc,CAACe,SAAS,CAAC;MAClC;IACF;IAyHQT,MAAMA,CAACU,cAAsB,EAAE;MACrC,IAAI,CAAC,IAAI,CAAClB,YAAY,CAAChE,OAAO,EAAE;QAC9B;MACF;MAEA,MAAML,KAAsB,GAAG,IAAI,CAACA,KAAK;;MAEzC;MACA;MACA;MACA,IAAID,iBAAiB,CAACC,KAAK,CAAC,IAAIuF,cAAc,GAAG,CAAC,EAAE;QAClDT,cAAc,CAAC,MAAM;UACnB,IAAI,CAACD,MAAM,CAACU,cAAc,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAMtC,SAAS,GAAG,IAAA8B,kCAAY,EAC5B1D,cAAc,GAAGA,cAAc,CAAC,IAAI,CAACrB,KAAK,CAAC,GAAG,IAAI,CAACA,KAAK,EACxD,CAAC,GAAGmB,YAAY,EAAE,GAAGG,iBAAiB,CAAC,EACvCF,MACF,CAAC;QACD,IAAI,CAAC,IAAAoE,eAAS,EAAC,IAAI,CAACpE,MAAM,EAAE6B,SAAS,CAAC,EAAE;UACtC,IAAI,CAACiB,oBAAoB,CAACjB,SAAS,CAAC;QACtC;MACF;IACF;IAEAwC,cAAcA,CAACC,OAAY,EAAE;MAC3B,MAAMC,WAAW,GAAG;QAAE,GAAG,IAAI,CAAC3F,KAAK;QAAE,GAAG0F;MAAQ,CAAC;MACjD,MAAMzC,SAAS,GAAG,IAAA8B,kCAAY,EAC5B1D,cAAc,GAAGA,cAAc,CAACsE,WAAW,CAAC,GAAGA,WAAW,EAC1D,CAAC,GAAGxE,YAAY,EAAE,GAAGG,iBAAiB,CAAC,EACvCF,MACF,CAAC;MACD,IAAI,CAAC8C,oBAAoB,CAACjB,SAAS,CAAC;IACtC;IAEA2C,MAAMA,CAAA,EAAG;MAAA,IAAAC,kBAAA;MACP,IAAIjG,OAAO,IAAI,CAAC,IAAI,CAACkG,OAAO,IAAI,CAAC,IAAAC,gBAAS,EAAC,CAAC,IAAIpH,2BAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;QACrE,MAAM,IAAI4F,KAAK,CACbtD,IAAI,GACF,yMACJ,CAAC;MACH;MAEA,IAAI8E,mBAAmB,GAAG,IAAI,CAACxH,qBAAqB;MACpD;;MAKA,MAAM;QAAEqD,cAAc;QAAErD;MAA8C,CAAC,GACrE,IAAI,CAACwB,KAAK;MACZ,IAAI6B,cAAc,IAAI,OAAOA,cAAc,KAAK,UAAU,EAAE;QAC1D;QACA;QACA;QACA,IAAIrD,qBAAqB,EAAE;UACzB,MAAM,IAAIgG,KAAK,CACb,yEACF,CAAC;QACH;QACAwB,mBAAmB,GAAGnE,cAAc;MACtC,CAAC,MAAM;QACL,IACErD,qBAAqB,IACrB,OAAOA,qBAAqB,KAAK,UAAU,EAC3C;UACA,MAAM,IAAIgG,KAAK,CACb,yEACF,CAAC;QACH;MACF;MAEA,IAAIyB,wBAAwB,GAAG,IAAI,CAACxH,2BAA2B;MAC/D;;MAKA,MAAM;QACJyD,oBAAoB;QACpBzD;MAC4B,CAAC,GAAG,IAAI,CAACuB,KAAK;MAC5C,IAAIkC,oBAAoB,IAAI,OAAOA,oBAAoB,KAAK,UAAU,EAAE;QACtE;QACA;QACA;QACA,IAAIzD,2BAA2B,EAAE;UAC/B,MAAM,IAAI+F,KAAK,CACb,yEACF,CAAC;QACH;QACAyB,wBAAwB,GAAG/D,oBAAoB;MACjD,CAAC,MAAM;QACL,IACEzD,2BAA2B,IAC3B,OAAOA,2BAA2B,KAAK,UAAU,EACjD;UACA,MAAM,IAAI+F,KAAK,CACb,yEACF,CAAC;QACH;MACF;MACA,MAAM0B,MAAM,GAAG;QACb1H,qBAAqB,EAAE,IAAI,CAAC6D,KAAK,CAAC3C,YAAY,GAC1CsG,mBAAmB,GACnBtF,SAAS;QACbjC,2BAA2B,EAAE,IAAI,CAAC4D,KAAK,CAAC3C,YAAY,GAChDuG,wBAAwB,GACxBvF;MACN,CAAC;MAED,IAAI,CAAC8C,QAAQ,CAACnD,OAAO,GAAG6F,MAAM;MAE9B,IAAItD,KAAU,GAAG,IAAI;MACrB,IAAI;QACFA,KAAK,GAAG7H,KAAK,CAAC8H,QAAQ,CAACC,IAAI,CAAC,IAAI,CAAC9C,KAAK,CAAC+C,QAAQ,CAAC;MAClD,CAAC,CAAC,OAAO/G,CAAC,EAAE;QACV,MAAM,IAAIwI,KAAK,CACb,IAAA2B,iBAAU,EACR,GAAGjF,IAAI,4JACT,CACF,CAAC;MACH;MAEA,IAAIkF,aAAa,GAAGxD,KAAK,CAAC5C,KAAK,CAAC+C,QAAQ;MACxC,IACEnD,OAAO,IACPgD,KAAK,CAACyD,IAAI,KACTzD,KAAK,CAACyD,IAAI,KAAK,wBAAwB,IACtCzD,KAAK,CAACyD,IAAI,CAACnF,IAAI,KAAK,MAAM,IAC1B0B,KAAK,CAACyD,IAAI,CAACC,WAAW,KAAK,MAAM,CAAC,EACpC;QACAF,aAAa,GAAGrL,KAAK,CAAC8H,QAAQ,CAAC0D,OAAO,CAACH,aAAa,CAAC;QACrDA,aAAa,CAACI,IAAI,cAChBzL,KAAA,CAAA0L,aAAA,CAAC/K,sBAAA,CAAAgL,qBAAqB;UACpBC,GAAG,EAAC,uBAAuB;UAC3BC,KAAK,EAAC,mBAAmB;UACzBC,OAAO,EAAEjE,KAAK,CAAC5C,KAAK,CAAC6G;QAAQ,CAC9B,CACH,CAAC;MACH;MAEA,oBAAO9L,KAAK,CAAC+L,YAAY,CACvBlE,KAAK,EACL;QACEI,GAAG,EAAE,IAAI,CAAC+D,UAAU;QACpBC,WAAW,EAAE,KAAK;QAClB,IAAI,IAAAjB,gBAAS,EAAC,CAAC,GACX;UACEkB,WAAW,EAAE/F,IAAI;UACjBU,UAAU,EAAE,IAAI,CAACA;QACnB,CAAC,GACD,CAAC,CAAC,CAAC;QACPsF,MAAM,GAAArB,kBAAA,GAAE,IAAI,CAAC7F,KAAK,CAACkH,MAAM,cAAArB,kBAAA,cAAAA,kBAAA,GAAIjD,KAAK,CAAC5C,KAAK,CAACkH,MAAM;QAC/C,GAAGhB;MACL,CAAC,EACDE,aACF,CAAC;IACH;EACF;EAAChJ,eAAA,CA9WKmE,OAAO,iBAIUL,IAAI;EAAA9D,eAAA,CAJrBmE,OAAO,iBAKU4F,sCAA6B;EA0WpD,OAAO5F,OAAO;AAChB","ignoreList":[]}
@@ -21,26 +21,37 @@ const NATIVE_WRAPPER_PROPS_FILTER = [..._NativeViewGestureHandler.nativeViewProp
21
21
  function createNativeWrapper(Component, config = {}) {
22
22
  var _Component$render;
23
23
  const ComponentWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {
24
- // filter out props that should be passed to gesture handler wrapper
25
- const gestureHandlerProps = Object.keys(props).reduce((res, key) => {
24
+ // Filter out props that should be passed to gesture handler wrapper
25
+ const {
26
+ gestureHandlerProps,
27
+ childProps
28
+ } = Object.keys(props).reduce((res, key) => {
26
29
  // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info
27
30
  const allowedKeys = NATIVE_WRAPPER_PROPS_FILTER;
28
31
  if (allowedKeys.includes(key)) {
29
32
  // @ts-ignore FIXME(TS)
30
- res[key] = props[key];
33
+ res.gestureHandlerProps[key] = props[key];
34
+ } else {
35
+ // @ts-ignore FIXME(TS)
36
+ res.childProps[key] = props[key];
31
37
  }
32
38
  return res;
33
39
  }, {
34
- ...config
35
- } // watch out not to modify config
36
- );
40
+ gestureHandlerProps: {
41
+ ...config
42
+ },
43
+ // Watch out not to modify config
44
+ childProps: {
45
+ enabled: props.enabled
46
+ }
47
+ });
37
48
  const _ref = (0, _react.useRef)();
38
49
  const _gestureHandlerRef = (0, _react.useRef)();
39
50
  (0, _react.useImperativeHandle)(ref,
40
51
  // @ts-ignore TODO(TS) decide how nulls work in this context
41
52
  () => {
42
53
  const node = _gestureHandlerRef.current;
43
- // add handlerTag for relations config
54
+ // Add handlerTag for relations config
44
55
  if (_ref.current && node) {
45
56
  // @ts-ignore FIXME(TS) think about createHandler return type
46
57
  _ref.current.handlerTag = node.handlerTag;
@@ -50,7 +61,7 @@ function createNativeWrapper(Component, config = {}) {
50
61
  }, [_ref, _gestureHandlerRef]);
51
62
  return /*#__PURE__*/React.createElement(_NativeViewGestureHandler.NativeViewGestureHandler, _extends({}, gestureHandlerProps, {
52
63
  ref: _gestureHandlerRef
53
- }), /*#__PURE__*/React.createElement(Component, _extends({}, props, {
64
+ }), /*#__PURE__*/React.createElement(Component, _extends({}, childProps, {
54
65
  ref: _ref
55
66
  })));
56
67
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","React","_NativeViewGestureHandler","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","NATIVE_WRAPPER_PROPS_FILTER","nativeViewProps","createNativeWrapper","Component","config","_Component$render","ComponentWrapper","forwardRef","props","ref","gestureHandlerProps","keys","reduce","res","key","allowedKeys","includes","_ref","useRef","_gestureHandlerRef","useImperativeHandle","node","current","handlerTag","createElement","NativeViewGestureHandler","displayName","render","name"],"sources":["createNativeWrapper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useImperativeHandle, useRef } from 'react';\n\nimport {\n NativeViewGestureHandler,\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from './NativeViewGestureHandler';\n\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 */\nconst NATIVE_WRAPPER_PROPS_FILTER = [\n ...nativeViewProps,\n 'onGestureHandlerEvent',\n 'onGestureHandlerStateChange',\n] as const;\n\nexport default function createNativeWrapper<P>(\n Component: React.ComponentType<P>,\n config: Readonly<NativeViewGestureHandlerProps> = {}\n) {\n const ComponentWrapper = React.forwardRef<\n React.ComponentType<any>,\n P & NativeViewGestureHandlerProps\n >((props, ref) => {\n // filter out props that should be passed to gesture handler wrapper\n const gestureHandlerProps = Object.keys(props).reduce(\n (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: readonly string[] = NATIVE_WRAPPER_PROPS_FILTER;\n if (allowedKeys.includes(key)) {\n // @ts-ignore FIXME(TS)\n res[key] = props[key];\n }\n return res;\n },\n { ...config } // watch out not to modify config\n );\n const _ref = useRef<React.ComponentType<P>>();\n const _gestureHandlerRef = useRef<React.ComponentType<P>>();\n useImperativeHandle(\n ref,\n // @ts-ignore TODO(TS) decide how nulls work in this context\n () => {\n const node = _gestureHandlerRef.current;\n // add handlerTag for relations config\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 return null;\n },\n [_ref, _gestureHandlerRef]\n );\n return (\n <NativeViewGestureHandler\n {...gestureHandlerProps}\n ref={_gestureHandlerRef}>\n {/* @ts-ignore yocto TS error, fixed in newer version, PROJVEGA-277530 */}\n <Component {...props} ref={_ref} />\n </NativeViewGestureHandler>\n );\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ComponentWrapper.displayName =\n Component?.displayName ||\n // @ts-ignore if render doesn't exist it will return undefined and go further\n Component?.render?.name ||\n (typeof Component === 'string' && Component) ||\n 'ComponentWrapper';\n\n return ComponentWrapper;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","React","_NativeViewGestureHandler","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","NATIVE_WRAPPER_PROPS_FILTER","nativeViewProps","createNativeWrapper","Component","config","_Component$render","ComponentWrapper","forwardRef","props","ref","gestureHandlerProps","childProps","keys","reduce","res","key","allowedKeys","includes","enabled","_ref","useRef","_gestureHandlerRef","useImperativeHandle","node","current","handlerTag","createElement","NativeViewGestureHandler","displayName","render","name"],"sources":["createNativeWrapper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useImperativeHandle, useRef } from 'react';\n\nimport {\n NativeViewGestureHandler,\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from './NativeViewGestureHandler';\n\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 */\nconst NATIVE_WRAPPER_PROPS_FILTER = [\n ...nativeViewProps,\n 'onGestureHandlerEvent',\n 'onGestureHandlerStateChange',\n] as const;\n\nexport default function createNativeWrapper<P>(\n Component: React.ComponentType<P>,\n config: Readonly<NativeViewGestureHandlerProps> = {}\n) {\n const ComponentWrapper = React.forwardRef<\n React.ComponentType<any>,\n P & NativeViewGestureHandlerProps\n >((props, ref) => {\n // Filter out props that should be passed to gesture handler wrapper\n const { gestureHandlerProps, childProps } = Object.keys(props).reduce(\n (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: readonly string[] = NATIVE_WRAPPER_PROPS_FILTER;\n if (allowedKeys.includes(key)) {\n // @ts-ignore FIXME(TS)\n res.gestureHandlerProps[key] = props[key];\n } else {\n // @ts-ignore FIXME(TS)\n res.childProps[key] = props[key];\n }\n return res;\n },\n {\n gestureHandlerProps: { ...config }, // Watch out not to modify config\n childProps: { enabled: props.enabled } as P,\n }\n );\n const _ref = useRef<React.ComponentType<P>>();\n const _gestureHandlerRef = useRef<React.ComponentType<P>>();\n useImperativeHandle(\n ref,\n // @ts-ignore TODO(TS) decide how nulls work in this context\n () => {\n const node = _gestureHandlerRef.current;\n // Add handlerTag for relations config\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 return null;\n },\n [_ref, _gestureHandlerRef]\n );\n return (\n <NativeViewGestureHandler\n {...gestureHandlerProps}\n ref={_gestureHandlerRef}>\n <Component {...childProps} ref={_ref} />\n </NativeViewGestureHandler>\n );\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n ComponentWrapper.displayName =\n Component?.displayName ||\n // @ts-ignore if render doesn't exist it will return undefined and go further\n Component?.render?.name ||\n (typeof Component === 'string' && Component) ||\n 'ComponentWrapper';\n\n return ComponentWrapper;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,8 +2,9 @@ var _UIManagerAny$getView, _UIManagerAny$getView2, _UIManagerAny$getCons;
2
2
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
+ import { Platform } from '@amazon-devices/react-native-kepler';
5
6
  import * as React from 'react';
6
- import { Platform, UIManager, DeviceEventEmitter } from 'react-native';
7
+ import { UIManager, DeviceEventEmitter } from 'react-native';
7
8
  // @ts-ignore - it isn't typed by TS & don't have definitelyTyped types
8
9
  import { isEqual as deepEqual } from 'lodash';
9
10
  import RNGestureHandlerModule from '../RNGestureHandlerModule';
@@ -62,7 +63,9 @@ UIManagerAny.genericDirectEventTypes = {
62
63
  // In newer versions of RN the `genericDirectEventTypes` is located in the object
63
64
  // returned by UIManager.getViewManagerConfig('getConstants') or in older RN UIManager.getConstants(), we need to add it there as well to make
64
65
  // it compatible with RN 61+
65
- const 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);
66
+ // amznmod_react - getViewManagerConfig and getConstants are both deprecated and return null.
67
+ // Bypassing the call on kepler to avoid a misleading error log.
68
+ const UIManagerConstants = Platform.OS === 'kepler' ? null : (_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);
66
69
  if (UIManagerConstants) {
67
70
  UIManagerConstants.genericDirectEventTypes = {
68
71
  ...UIManagerConstants.genericDirectEventTypes,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","UIManager","DeviceEventEmitter","isEqual","deepEqual","RNGestureHandlerModule","State","handlerIDToTag","getNextHandlerTag","registerOldGestureHandler","filterConfig","findNodeHandle","scheduleFlushOperations","isFabric","isJestEnv","tagMessage","ActionType","PressabilityDebugView","GestureHandlerRootViewContext","registry","customDirectEventTypes","registrationName","UIManagerAny","customGHEventsConfigFabricAndroid","topOnGestureHandlerEvent","topOnGestureHandlerStateChange","customGHEventsConfig","onGestureHandlerEvent","onGestureHandlerStateChange","OS","genericDirectEventTypes","UIManagerConstants","_UIManagerAny$getView","_UIManagerAny$getView2","getViewManagerConfig","call","_UIManagerAny$getCons","getConstants","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","tag","blockNativeResponder","handleSetJSResponder","handleClearJSResponder","allowTouches","DEV_ON_ANDROID","__DEV__","addListener","hasUnresolvedRefs","props","extract","refs","Array","isArray","current","some","r","stateToPropMappings","UNDETERMINED","undefined","BEGAN","FAILED","CANCELLED","ACTIVE","END","UNRESOLVED_REFS_RETRY_LIMIT","createHandler","name","allowedProps","config","transformProps","customNativeProps","Handler","Component","constructor","_defineProperty","event","nativeEvent","handlerTag","onGestureEvent","_this$props$onGesture","_this$props","_this$props$onGesture2","_this$props2","onHandlerStateChange","_this$props$onHandler","_this$props3","state","stateEventName","eventHandler","_this$props$onGesture3","_this$props4","node","viewNode","child","Children","only","children","ref","newConfig","createGestureHandler","newViewTag","viewTag","attachGestureHandler","JS_FUNCTION_OLD_API","propsRef","onGestureStateChange","actionType","_this$props5","_this$props6","_this$props7","REANIMATED_WORKLET","NATIVE_ANIMATED_EVENT","updateGestureHandler","createRef","isMountedRef","id","Error","componentDidMount","inspectorToggleListener","setState","_","update","queueMicrotask","componentDidUpdate","componentWillUnmount","_this$inspectorToggle","remove","dropGestureHandler","handlerID","remainingTries","setNativeProps","updates","mergedProps","render","_this$props$testID","context","gestureEventHandler","gestureStateEventHandler","events","e","grandChildren","type","displayName","toArray","push","createElement","key","color","hitSlop","cloneElement","refHandler","collapsable","handlerType","testID"],"sources":["createHandler.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Platform,\n UIManager,\n DeviceEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport { isEqual as deepEqual } from 'lodash';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\nimport {\n handlerIDToTag,\n getNextHandlerTag,\n registerOldGestureHandler,\n} from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n scheduleFlushOperations,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\nimport { isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\nimport GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';\n\n// amznmod_gesturehandler - Update deep import to align with changes we have pulled early from upstream.\n// @ts-expect-error Untyped as we are unsafely importing a private API\nimport * as registry from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry'\n\nregistry.customDirectEventTypes['topOnGestureHandlerStateChange'] = {\n registrationName: 'onGestureHandlerStateChange'\n}\n\nregistry.customDirectEventTypes['topOnGestureHandlerEvent'] = {\n registrationName: 'onGestureHandlerEvent'\n}\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\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() &&\n Platform.OS === 'android' &&\n customGHEventsConfigFabricAndroid),\n};\n\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.\nUIManagerAny.genericDirectEventTypes = {\n ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig,\n};\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+\nconst UIManagerConstants =\n UIManagerAny.getViewManagerConfig?.('getConstants') ??\n UIManagerAny.getConstants?.();\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = {\n ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig,\n };\n}\n\n// Wrap JS responder calls and notify gesture handler manager\nconst {\n setJSResponder: oldSetJSResponder = () => {\n //no operation\n },\n clearJSResponder: oldClearJSResponder = () => {\n //no operation\n },\n} = UIManagerAny;\nUIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';\n// 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\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\ntype HandlerProps<T extends Record<string, unknown>> = Readonly<\n React.PropsWithChildren<BaseGestureHandlerProps<T>>\n>;\nfunction hasUnresolvedRefs<T extends Record<string, unknown>>(\n props: HandlerProps<T>\n) {\n // TODO(TS) - add type for extract arg\n const extract = (refs: any | any[]) => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n return refs.some((r) => r && r.current === null);\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} as const;\n\ntype CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =\n Readonly<{\n name: string;\n allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;\n config: Readonly<Record<string, unknown>>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly<string[]>;\n }>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\n\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1;\n\n// TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\nexport default function createHandler<\n T extends BaseGestureHandlerProps<U>,\n U extends Record<string, unknown>\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs<T>): React.ComponentType<T & React.RefAttributes<any>> {\n interface HandlerState {\n allowTouches: boolean;\n }\n class Handler extends React.Component<\n T & InternalEventHandlers,\n HandlerState\n > {\n static displayName = name;\n static contextType = GestureHandlerRootViewContext;\n\n private handlerTag: number;\n private config: Record<string, unknown>;\n private propsRef: React.MutableRefObject<unknown>;\n private isMountedRef: React.MutableRefObject<boolean | null>;\n private viewNode: any;\n private viewTag?: number;\n private inspectorToggleListener?: EmitterSubscription;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = React.createRef();\n this.isMountedRef = React.createRef();\n this.state = { allowTouches };\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n handlerIDToTag[props.id] = this.handlerTag;\n }\n }\n\n componentDidMount() {\n const props: HandlerProps<U> = this.props;\n this.isMountedRef.current = true;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n this.setState((_) => ({ allowTouches }));\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 queueMicrotask(() => {\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n this.createGestureHandler(\n filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n )\n );\n\n this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n this.isMountedRef.current = false;\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations();\n // 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 const handlerID: string | undefined = this.props.id;\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n private onGestureHandlerEvent = (event: GestureEvent<U>) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onGestureEvent === 'function') {\n this.props.onGestureEvent?.(event);\n }\n } else {\n this.props.onGestureHandlerEvent?.(event);\n }\n };\n\n // TODO(TS) - make sure this is right type for event\n private onGestureHandlerStateChange = (\n event: HandlerStateChangeEvent<U>\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onHandlerStateChange === 'function') {\n this.props.onHandlerStateChange?.(event);\n }\n\n const state: ValueOf<typeof State> = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n this.props.onGestureHandlerStateChange?.(event);\n }\n };\n\n private refHandler = (node: any) => {\n this.viewNode = node;\n\n const child = React.Children.only(this.props.children);\n // TODO(TS) fix ref type\n const { ref }: any = child;\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n };\n\n private createGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.createGestureHandler(\n name,\n this.handlerTag,\n newConfig\n );\n };\n\n private attachGestureHandler = (newViewTag: number) => {\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 (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n this.handlerTag,\n newViewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef\n );\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange,\n });\n\n const actionType = (() => {\n if (\n (this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n 'current' in this.props.onGestureEvent) ||\n (this.props?.onHandlerStateChange &&\n // @ts-ignore types not correct?\n 'current' in this.props.onHandlerStateChange)\n ) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (\n this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n '__isNative' in this.props.onGestureEvent\n ) {\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(\n this.handlerTag,\n newViewTag,\n actionType\n );\n }\n\n scheduleFlushOperations();\n };\n\n private updateGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n };\n\n private update(remainingTries: number) {\n if (!this.isMountedRef.current) {\n return;\n }\n\n const props: HandlerProps<U> = this.props;\n\n // 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 if (hasUnresolvedRefs(props) && remainingTries > 0) {\n queueMicrotask(() => {\n this.update(remainingTries - 1);\n });\n } else {\n const newConfig = filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n );\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n }\n\n setNativeProps(updates: any) {\n const mergedProps = { ...this.props, ...updates };\n const newConfig = filterConfig(\n transformProps ? transformProps(mergedProps) : mergedProps,\n [...allowedProps, ...customNativeProps],\n config\n );\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n if (__DEV__ && !this.context && !isJestEnv() && Platform.OS !== 'web') {\n throw new Error(\n name +\n ' 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\n let gestureEventHandler = this.onGestureHandlerEvent;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureEventHandlers = {\n onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =\n this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureEventHandler = onGestureEvent;\n } else {\n if (\n onGestureHandlerEvent &&\n typeof onGestureHandlerEvent !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureStateChangeHandlers = {\n onHandlerStateChange?: BaseGestureHandlerProps<U>['onHandlerStateChange'];\n onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];\n };\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange,\n }: OnGestureStateChangeHandlers = this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (\n onGestureHandlerStateChange &&\n typeof onGestureHandlerStateChange !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n const events = {\n onGestureHandlerEvent: this.state.allowTouches\n ? gestureEventHandler\n : undefined,\n onGestureHandlerStateChange: this.state.allowTouches\n ? gestureStateEventHandler\n : undefined,\n };\n\n this.propsRef.current = events;\n\n let child: any = null;\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(\n tagMessage(\n `${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 }\n\n let grandChildren = child.props.children;\n if (\n __DEV__ &&\n child.type &&\n (child.type === 'RNGestureHandlerButton' ||\n child.type.name === 'View' ||\n child.type.displayName === 'View')\n ) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push(\n <PressabilityDebugView\n key=\"pressabilityDebugView\"\n color=\"mediumspringgreen\"\n hitSlop={child.props.hitSlop}\n />\n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv()\n ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n }\n : {}),\n testID: this.props.testID ?? child.props.testID,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","React","UIManager","DeviceEventEmitter","isEqual","deepEqual","RNGestureHandlerModule","State","handlerIDToTag","getNextHandlerTag","registerOldGestureHandler","filterConfig","findNodeHandle","scheduleFlushOperations","isFabric","isJestEnv","tagMessage","ActionType","PressabilityDebugView","GestureHandlerRootViewContext","registry","customDirectEventTypes","registrationName","UIManagerAny","customGHEventsConfigFabricAndroid","topOnGestureHandlerEvent","topOnGestureHandlerStateChange","customGHEventsConfig","onGestureHandlerEvent","onGestureHandlerStateChange","OS","genericDirectEventTypes","UIManagerConstants","_UIManagerAny$getView","_UIManagerAny$getView2","getViewManagerConfig","call","_UIManagerAny$getCons","getConstants","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","tag","blockNativeResponder","handleSetJSResponder","handleClearJSResponder","allowTouches","DEV_ON_ANDROID","__DEV__","addListener","hasUnresolvedRefs","props","extract","refs","Array","isArray","current","some","r","stateToPropMappings","UNDETERMINED","undefined","BEGAN","FAILED","CANCELLED","ACTIVE","END","UNRESOLVED_REFS_RETRY_LIMIT","createHandler","name","allowedProps","config","transformProps","customNativeProps","Handler","Component","constructor","_defineProperty","event","nativeEvent","handlerTag","onGestureEvent","_this$props$onGesture","_this$props","_this$props$onGesture2","_this$props2","onHandlerStateChange","_this$props$onHandler","_this$props3","state","stateEventName","eventHandler","_this$props$onGesture3","_this$props4","node","viewNode","child","Children","only","children","ref","newConfig","createGestureHandler","newViewTag","viewTag","attachGestureHandler","JS_FUNCTION_OLD_API","propsRef","onGestureStateChange","actionType","_this$props5","_this$props6","_this$props7","REANIMATED_WORKLET","NATIVE_ANIMATED_EVENT","updateGestureHandler","createRef","isMountedRef","id","Error","componentDidMount","inspectorToggleListener","setState","_","update","queueMicrotask","componentDidUpdate","componentWillUnmount","_this$inspectorToggle","remove","dropGestureHandler","handlerID","remainingTries","setNativeProps","updates","mergedProps","render","_this$props$testID","context","gestureEventHandler","gestureStateEventHandler","events","e","grandChildren","type","displayName","toArray","push","createElement","key","color","hitSlop","cloneElement","refHandler","collapsable","handlerType","testID"],"sources":["createHandler.tsx"],"sourcesContent":["import { Platform } from '@amazon-devices/react-native-kepler';\nimport * as React from 'react';\nimport {\n UIManager,\n DeviceEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport { isEqual as deepEqual } from 'lodash';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\nimport {\n handlerIDToTag,\n getNextHandlerTag,\n registerOldGestureHandler,\n} from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n scheduleFlushOperations,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\nimport { isFabric, isJestEnv, tagMessage } from '../utils';\nimport { ActionType } from '../ActionType';\nimport { PressabilityDebugView } from './PressabilityDebugView';\nimport GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';\n\n// amznmod_gesturehandler - Update deep import to align with changes we have pulled early from upstream.\n// @ts-expect-error Untyped as we are unsafely importing a private API\nimport * as registry from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry'\n\nregistry.customDirectEventTypes['topOnGestureHandlerStateChange'] = {\n registrationName: 'onGestureHandlerStateChange'\n}\n\nregistry.customDirectEventTypes['topOnGestureHandlerEvent'] = {\n registrationName: 'onGestureHandlerEvent'\n}\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfigFabricAndroid = {\n topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n topOnGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\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() &&\n Platform.OS === 'android' &&\n customGHEventsConfigFabricAndroid),\n};\n\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.\nUIManagerAny.genericDirectEventTypes = {\n ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig,\n};\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// amznmod_react - getViewManagerConfig and getConstants are both deprecated and return null.\n// Bypassing the call on kepler to avoid a misleading error log.\nconst UIManagerConstants = Platform.OS === 'kepler' ? null :\n UIManagerAny.getViewManagerConfig?.('getConstants') ??\n UIManagerAny.getConstants?.();\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = {\n ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig,\n };\n}\n\n// Wrap JS responder calls and notify gesture handler manager\nconst {\n setJSResponder: oldSetJSResponder = () => {\n //no operation\n },\n clearJSResponder: oldClearJSResponder = () => {\n //no operation\n },\n} = UIManagerAny;\nUIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';\n// 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\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\ntype HandlerProps<T extends Record<string, unknown>> = Readonly<\n React.PropsWithChildren<BaseGestureHandlerProps<T>>\n>;\nfunction hasUnresolvedRefs<T extends Record<string, unknown>>(\n props: HandlerProps<T>\n) {\n // TODO(TS) - add type for extract arg\n const extract = (refs: any | any[]) => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n return refs.some((r) => r && r.current === null);\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} as const;\n\ntype CreateHandlerArgs<HandlerPropsT extends Record<string, unknown>> =\n Readonly<{\n name: string;\n allowedProps: Readonly<Extract<keyof HandlerPropsT, string>[]>;\n config: Readonly<Record<string, unknown>>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly<string[]>;\n }>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\n\nconst UNRESOLVED_REFS_RETRY_LIMIT = 1;\n\n// TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\nexport default function createHandler<\n T extends BaseGestureHandlerProps<U>,\n U extends Record<string, unknown>\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs<T>): React.ComponentType<T & React.RefAttributes<any>> {\n interface HandlerState {\n allowTouches: boolean;\n }\n class Handler extends React.Component<\n T & InternalEventHandlers,\n HandlerState\n > {\n static displayName = name;\n static contextType = GestureHandlerRootViewContext;\n\n private handlerTag: number;\n private config: Record<string, unknown>;\n private propsRef: React.MutableRefObject<unknown>;\n private isMountedRef: React.MutableRefObject<boolean | null>;\n private viewNode: any;\n private viewTag?: number;\n private inspectorToggleListener?: EmitterSubscription;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = React.createRef();\n this.isMountedRef = React.createRef();\n this.state = { allowTouches };\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n handlerIDToTag[props.id] = this.handlerTag;\n }\n }\n\n componentDidMount() {\n const props: HandlerProps<U> = this.props;\n this.isMountedRef.current = true;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n this.setState((_) => ({ allowTouches }));\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 queueMicrotask(() => {\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n });\n }\n\n this.createGestureHandler(\n filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n )\n );\n\n this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n this.update(UNRESOLVED_REFS_RETRY_LIMIT);\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n this.isMountedRef.current = false;\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n scheduleFlushOperations();\n // 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 const handlerID: string | undefined = this.props.id;\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n private onGestureHandlerEvent = (event: GestureEvent<U>) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onGestureEvent === 'function') {\n this.props.onGestureEvent?.(event);\n }\n } else {\n this.props.onGestureHandlerEvent?.(event);\n }\n };\n\n // TODO(TS) - make sure this is right type for event\n private onGestureHandlerStateChange = (\n event: HandlerStateChangeEvent<U>\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n if (typeof this.props.onHandlerStateChange === 'function') {\n this.props.onHandlerStateChange?.(event);\n }\n\n const state: ValueOf<typeof State> = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n this.props.onGestureHandlerStateChange?.(event);\n }\n };\n\n private refHandler = (node: any) => {\n this.viewNode = node;\n\n const child = React.Children.only(this.props.children);\n // TODO(TS) fix ref type\n const { ref }: any = child;\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n };\n\n private createGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.createGestureHandler(\n name,\n this.handlerTag,\n newConfig\n );\n };\n\n private attachGestureHandler = (newViewTag: number) => {\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 (\n RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler\n )(\n this.handlerTag,\n newViewTag,\n ActionType.JS_FUNCTION_OLD_API, // ignored on web\n this.propsRef\n );\n } else {\n registerOldGestureHandler(this.handlerTag, {\n onGestureEvent: this.onGestureHandlerEvent,\n onGestureStateChange: this.onGestureHandlerStateChange,\n });\n\n const actionType = (() => {\n if (\n (this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n 'current' in this.props.onGestureEvent) ||\n (this.props?.onHandlerStateChange &&\n // @ts-ignore types not correct?\n 'current' in this.props.onHandlerStateChange)\n ) {\n // Reanimated worklet\n return ActionType.REANIMATED_WORKLET;\n } else if (\n this.props?.onGestureEvent &&\n // @ts-ignore types not correct?\n '__isNative' in this.props.onGestureEvent\n ) {\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(\n this.handlerTag,\n newViewTag,\n actionType\n );\n }\n\n scheduleFlushOperations();\n };\n\n private updateGestureHandler = (\n newConfig: Readonly<Record<string, unknown>>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n scheduleFlushOperations();\n };\n\n private update(remainingTries: number) {\n if (!this.isMountedRef.current) {\n return;\n }\n\n const props: HandlerProps<U> = this.props;\n\n // 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 if (hasUnresolvedRefs(props) && remainingTries > 0) {\n queueMicrotask(() => {\n this.update(remainingTries - 1);\n });\n } else {\n const newConfig = filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n );\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n }\n\n setNativeProps(updates: any) {\n const mergedProps = { ...this.props, ...updates };\n const newConfig = filterConfig(\n transformProps ? transformProps(mergedProps) : mergedProps,\n [...allowedProps, ...customNativeProps],\n config\n );\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n if (__DEV__ && !this.context && !isJestEnv() && Platform.OS !== 'web') {\n throw new Error(\n name +\n ' 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\n let gestureEventHandler = this.onGestureHandlerEvent;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureEventHandlers = {\n onGestureEvent?: BaseGestureHandlerProps<U>['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const { onGestureEvent, onGestureHandlerEvent }: OnGestureEventHandlers =\n this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureEventHandler = onGestureEvent;\n } else {\n if (\n onGestureHandlerEvent &&\n typeof onGestureHandlerEvent !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureStateChangeHandlers = {\n onHandlerStateChange?: BaseGestureHandlerProps<U>['onHandlerStateChange'];\n onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];\n };\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange,\n }: OnGestureStateChangeHandlers = this.props;\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(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (\n onGestureHandlerStateChange &&\n typeof onGestureHandlerStateChange !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n const events = {\n onGestureHandlerEvent: this.state.allowTouches\n ? gestureEventHandler\n : undefined,\n onGestureHandlerStateChange: this.state.allowTouches\n ? gestureStateEventHandler\n : undefined,\n };\n\n this.propsRef.current = events;\n\n let child: any = null;\n try {\n child = React.Children.only(this.props.children);\n } catch (e) {\n throw new Error(\n tagMessage(\n `${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 }\n\n let grandChildren = child.props.children;\n if (\n __DEV__ &&\n child.type &&\n (child.type === 'RNGestureHandlerButton' ||\n child.type.name === 'View' ||\n child.type.displayName === 'View')\n ) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push(\n <PressabilityDebugView\n key=\"pressabilityDebugView\"\n color=\"mediumspringgreen\"\n hitSlop={child.props.hitSlop}\n />\n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...(isJestEnv()\n ? {\n handlerType: name,\n handlerTag: this.handlerTag,\n }\n : {}),\n testID: this.props.testID ?? child.props.testID,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,26 +14,37 @@ const NATIVE_WRAPPER_PROPS_FILTER = [...nativeViewProps, 'onGestureHandlerEvent'
14
14
  export default function createNativeWrapper(Component, config = {}) {
15
15
  var _Component$render;
16
16
  const ComponentWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {
17
- // filter out props that should be passed to gesture handler wrapper
18
- const gestureHandlerProps = Object.keys(props).reduce((res, key) => {
17
+ // Filter out props that should be passed to gesture handler wrapper
18
+ const {
19
+ gestureHandlerProps,
20
+ childProps
21
+ } = Object.keys(props).reduce((res, key) => {
19
22
  // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info
20
23
  const allowedKeys = NATIVE_WRAPPER_PROPS_FILTER;
21
24
  if (allowedKeys.includes(key)) {
22
25
  // @ts-ignore FIXME(TS)
23
- res[key] = props[key];
26
+ res.gestureHandlerProps[key] = props[key];
27
+ } else {
28
+ // @ts-ignore FIXME(TS)
29
+ res.childProps[key] = props[key];
24
30
  }
25
31
  return res;
26
32
  }, {
27
- ...config
28
- } // watch out not to modify config
29
- );
33
+ gestureHandlerProps: {
34
+ ...config
35
+ },
36
+ // Watch out not to modify config
37
+ childProps: {
38
+ enabled: props.enabled
39
+ }
40
+ });
30
41
  const _ref = useRef();
31
42
  const _gestureHandlerRef = useRef();
32
43
  useImperativeHandle(ref,
33
44
  // @ts-ignore TODO(TS) decide how nulls work in this context
34
45
  () => {
35
46
  const node = _gestureHandlerRef.current;
36
- // add handlerTag for relations config
47
+ // Add handlerTag for relations config
37
48
  if (_ref.current && node) {
38
49
  // @ts-ignore FIXME(TS) think about createHandler return type
39
50
  _ref.current.handlerTag = node.handlerTag;
@@ -43,7 +54,7 @@ export default function createNativeWrapper(Component, config = {}) {
43
54
  }, [_ref, _gestureHandlerRef]);
44
55
  return /*#__PURE__*/React.createElement(NativeViewGestureHandler, _extends({}, gestureHandlerProps, {
45
56
  ref: _gestureHandlerRef
46
- }), /*#__PURE__*/React.createElement(Component, _extends({}, props, {
57
+ }), /*#__PURE__*/React.createElement(Component, _extends({}, childProps, {
47
58
  ref: _ref
48
59
  })));
49
60
  });