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

1 line
26 KiB

{"ast":null,"code":"import _defineProperty2 from \"@babel/runtime/helpers/defineProperty\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { getNextHandlerTag } from \"../handlersRegistry\";\nimport { isRemoteDebuggingEnabled } from \"../../utils\";\nexport var CALLBACK_TYPE = {\n UNDEFINED: 0,\n BEGAN: 1,\n START: 2,\n UPDATE: 3,\n CHANGE: 4,\n END: 5,\n FINALIZE: 6,\n TOUCHES_DOWN: 7,\n TOUCHES_MOVE: 8,\n TOUCHES_UP: 9,\n TOUCHES_CANCELLED: 10\n};\nexport var Gesture = _createClass(function Gesture() {\n _classCallCheck(this, Gesture);\n});\nvar nextGestureId = 0;\nexport var BaseGesture = function (_Gesture) {\n _inherits(BaseGesture, _Gesture);\n var _super = _createSuper(BaseGesture);\n function BaseGesture() {\n var _this;\n _classCallCheck(this, BaseGesture);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"gestureId\", -1);\n _defineProperty(_assertThisInitialized(_this), \"handlerTag\", -1);\n _defineProperty(_assertThisInitialized(_this), \"handlerName\", '');\n _defineProperty(_assertThisInitialized(_this), \"config\", {});\n _defineProperty(_assertThisInitialized(_this), \"handlers\", {\n gestureId: -1,\n handlerTag: -1,\n isWorklet: []\n });\n _this.gestureId = nextGestureId++;\n _this.handlers.gestureId = _this.gestureId;\n return _this;\n }\n _createClass(BaseGesture, [{\n key: \"addDependency\",\n value: function addDependency(key, gesture) {\n var value = this.config[key];\n this.config[key] = value ? Array().concat(value, gesture) : [gesture];\n }\n }, {\n key: \"withRef\",\n value: function withRef(ref) {\n this.config.ref = ref;\n return this;\n }\n }, {\n key: \"isWorklet\",\n value: function isWorklet(callback) {\n return callback.__workletHash !== undefined;\n }\n }, {\n key: \"onBegin\",\n value: function onBegin(callback) {\n this.handlers.onBegin = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.BEGAN] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onStart\",\n value: function onStart(callback) {\n this.handlers.onStart = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.START] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onEnd\",\n value: function onEnd(callback) {\n this.handlers.onEnd = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.END] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onFinalize\",\n value: function onFinalize(callback) {\n this.handlers.onFinalize = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.FINALIZE] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onTouchesDown\",\n value: function onTouchesDown(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesDown = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_DOWN] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onTouchesMove\",\n value: function onTouchesMove(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesMove = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_MOVE] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onTouchesUp\",\n value: function onTouchesUp(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesUp = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_UP] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onTouchesCancelled\",\n value: function onTouchesCancelled(callback) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesCancelled = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_CANCELLED] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"enabled\",\n value: function enabled(_enabled) {\n this.config.enabled = _enabled;\n return this;\n }\n }, {\n key: \"shouldCancelWhenOutside\",\n value: function shouldCancelWhenOutside(value) {\n this.config.shouldCancelWhenOutside = value;\n return this;\n }\n }, {\n key: \"hitSlop\",\n value: function hitSlop(_hitSlop) {\n this.config.hitSlop = _hitSlop;\n return this;\n }\n }, {\n key: \"runOnJS\",\n value: function runOnJS(_runOnJS) {\n this.config.runOnJS = _runOnJS;\n return this;\n }\n }, {\n key: \"simultaneousWithExternalGesture\",\n value: function simultaneousWithExternalGesture() {\n for (var _len = arguments.length, gestures = new Array(_len), _key = 0; _key < _len; _key++) {\n gestures[_key] = arguments[_key];\n }\n for (var gesture of gestures) {\n this.addDependency('simultaneousWith', gesture);\n }\n return this;\n }\n }, {\n key: \"requireExternalGestureToFail\",\n value: function requireExternalGestureToFail() {\n for (var _len2 = arguments.length, gestures = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n gestures[_key2] = arguments[_key2];\n }\n for (var gesture of gestures) {\n this.addDependency('requireToFail', gesture);\n }\n return this;\n }\n }, {\n key: \"withTestId\",\n value: function withTestId(id) {\n this.config.testId = id;\n return this;\n }\n }, {\n key: \"cancelsTouchesInView\",\n value: function cancelsTouchesInView(value) {\n this.config.cancelsTouchesInView = value;\n return this;\n }\n }, {\n key: \"initialize\",\n value: function initialize() {\n this.handlerTag = getNextHandlerTag();\n this.handlers = _objectSpread(_objectSpread({}, this.handlers), {}, {\n handlerTag: this.handlerTag\n });\n if (this.config.ref) {\n this.config.ref.current = this;\n }\n }\n }, {\n key: \"toGestureArray\",\n value: function toGestureArray() {\n return [this];\n }\n }, {\n key: \"prepare\",\n value: function prepare() {}\n }, {\n key: \"shouldUseReanimated\",\n get: function get() {\n return this.config.runOnJS !== true && !this.handlers.isWorklet.includes(false) && !isRemoteDebuggingEnabled();\n }\n }]);\n return BaseGesture;\n}(Gesture);\nexport var ContinousBaseGesture = function (_BaseGesture) {\n _inherits(ContinousBaseGesture, _BaseGesture);\n var _super2 = _createSuper(ContinousBaseGesture);\n function ContinousBaseGesture() {\n _classCallCheck(this, ContinousBaseGesture);\n return _super2.apply(this, arguments);\n }\n _createClass(ContinousBaseGesture, [{\n key: \"onUpdate\",\n value: function onUpdate(callback) {\n this.handlers.onUpdate = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.UPDATE] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"onChange\",\n value: function onChange(callback) {\n this.handlers.onChange = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.CHANGE] = this.isWorklet(callback);\n return this;\n }\n }, {\n key: \"manualActivation\",\n value: function manualActivation(_manualActivation) {\n this.config.manualActivation = _manualActivation;\n return this;\n }\n }]);\n return ContinousBaseGesture;\n}(BaseGesture);","map":{"version":3,"sources":["gesture.ts"],"names":["getNextHandlerTag","isRemoteDebuggingEnabled","CALLBACK_TYPE","UNDEFINED","BEGAN","START","UPDATE","CHANGE","END","FINALIZE","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED","Gesture","nextGestureId","BaseGesture","gestureId","handlerTag","isWorklet","constructor","handlers","addDependency","key","gesture","value","config","Array","concat","withRef","ref","callback","__workletHash","undefined","onBegin","onStart","onEnd","onFinalize","onTouchesDown","needsPointerData","onTouchesMove","onTouchesUp","onTouchesCancelled","enabled","shouldCancelWhenOutside","hitSlop","runOnJS","simultaneousWithExternalGesture","gestures","requireExternalGestureToFail","withTestId","id","testId","cancelsTouchesInView","initialize","current","toGestureArray","prepare","shouldUseReanimated","includes","ContinousBaseGesture","onUpdate","onChange","manualActivation"],"mappings":"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","sourcesContent":["import { FlingGestureHandlerEventPayload } from '../FlingGestureHandler';\nimport { ForceTouchGestureHandlerEventPayload } from '../ForceTouchGestureHandler';\nimport {\n HitSlop,\n CommonGestureConfig,\n GestureTouchEvent,\n GestureStateChangeEvent,\n GestureUpdateEvent,\n} from '../gestureHandlerCommon';\nimport { getNextHandlerTag } from '../handlersRegistry';\nimport { GestureStateManagerType } from './gestureStateManager';\nimport { LongPressGestureHandlerEventPayload } from '../LongPressGestureHandler';\nimport { PanGestureHandlerEventPayload } from '../PanGestureHandler';\nimport { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';\nimport { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';\nimport { TapGestureHandlerEventPayload } from '../TapGestureHandler';\nimport { NativeViewGestureHandlerPayload } from '../NativeViewGestureHandler';\nimport { isRemoteDebuggingEnabled } from '../../utils';\n\nexport type GestureType =\n | BaseGesture<Record<string, unknown>>\n | BaseGesture<Record<string, never>>\n | BaseGesture<TapGestureHandlerEventPayload>\n | BaseGesture<PanGestureHandlerEventPayload>\n | BaseGesture<LongPressGestureHandlerEventPayload>\n | BaseGesture<RotationGestureHandlerEventPayload>\n | BaseGesture<PinchGestureHandlerEventPayload>\n | BaseGesture<FlingGestureHandlerEventPayload>\n | BaseGesture<ForceTouchGestureHandlerEventPayload>\n | BaseGesture<NativeViewGestureHandlerPayload>;\n\nexport type GestureRef =\n | number\n | GestureType\n | React.RefObject<GestureType | undefined>\n | React.RefObject<React.ComponentType | undefined>; // allow adding a ref to a gesture handler\nexport interface BaseGestureConfig\n extends CommonGestureConfig,\n Record<string, unknown> {\n ref?: React.MutableRefObject<GestureType | undefined>;\n requireToFail?: GestureRef[];\n simultaneousWith?: GestureRef[];\n needsPointerData?: boolean;\n manualActivation?: boolean;\n runOnJS?: boolean;\n testId?: string;\n cancelsTouchesInView?: boolean;\n}\n\ntype TouchEventHandlerType = (\n event: GestureTouchEvent,\n stateManager: GestureStateManagerType\n) => void;\n\nexport type HandlerCallbacks<EventPayloadT extends Record<string, unknown>> = {\n gestureId: number;\n handlerTag: number;\n onBegin?: (event: GestureStateChangeEvent<EventPayloadT>) => void;\n onStart?: (event: GestureStateChangeEvent<EventPayloadT>) => void;\n onEnd?: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void;\n onFinalize?: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void;\n onUpdate?: (event: GestureUpdateEvent<EventPayloadT>) => void;\n onChange?: (event: any) => void;\n onTouchesDown?: TouchEventHandlerType;\n onTouchesMove?: TouchEventHandlerType;\n onTouchesUp?: TouchEventHandlerType;\n onTouchesCancelled?: TouchEventHandlerType;\n changeEventCalculator?: (\n current: GestureUpdateEvent<Record<string, unknown>>,\n previous?: GestureUpdateEvent<Record<string, unknown>>\n ) => GestureUpdateEvent<Record<string, unknown>>;\n isWorklet: boolean[];\n};\n\nexport const CALLBACK_TYPE = {\n UNDEFINED: 0,\n BEGAN: 1,\n START: 2,\n UPDATE: 3,\n CHANGE: 4,\n END: 5,\n FINALIZE: 6,\n TOUCHES_DOWN: 7,\n TOUCHES_MOVE: 8,\n TOUCHES_UP: 9,\n TOUCHES_CANCELLED: 10,\n} as const;\n\n// Allow using CALLBACK_TYPE as object and type\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type CALLBACK_TYPE = typeof CALLBACK_TYPE[keyof typeof CALLBACK_TYPE];\n\nexport abstract class Gesture {\n /**\n * Return array of gestures, providing the same interface for creating and updating\n * handlers, no matter which object was used to create gesture instance.\n */\n abstract toGestureArray(): GestureType[];\n\n /**\n * Assign handlerTag to the gesture instance and set ref.current (if a ref is set)\n */\n abstract initialize(): void;\n\n /**\n * Make sure that values of properties defining relations are arrays. Do any necessary\n * preprocessing required to configure relations between handlers. Called just before\n * updating the handler on the native side.\n */\n abstract prepare(): void;\n}\n\nlet nextGestureId = 0;\nexport abstract class BaseGesture<\n EventPayloadT extends Record<string, unknown>\n> extends Gesture {\n private gestureId = -1;\n public handlerTag = -1;\n public handlerName = '';\n public config: BaseGestureConfig = {};\n public handlers: HandlerCallbacks<EventPayloadT> = {\n gestureId: -1,\n handlerTag: -1,\n isWorklet: [],\n };\n\n constructor() {\n super();\n\n // Used to check whether the gesture config has been updated when wrapping it\n // with `useMemo`. Since every config will have a unique id, when the dependencies\n // don't change, the config won't be recreated and the id will stay the same.\n // If the id is different, it means that the config has changed and the gesture\n // needs to be updated.\n this.gestureId = nextGestureId++;\n this.handlers.gestureId = this.gestureId;\n }\n\n private addDependency(\n key: 'simultaneousWith' | 'requireToFail',\n gesture: Exclude<GestureRef, number>\n ) {\n const value = this.config[key];\n this.config[key] = value\n ? Array<GestureRef>().concat(value, gesture)\n : [gesture];\n }\n\n withRef(ref: React.MutableRefObject<GestureType | undefined>) {\n this.config.ref = ref;\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n protected isWorklet(callback: Function) {\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n return callback.__workletHash !== undefined;\n }\n\n onBegin(callback: (event: GestureStateChangeEvent<EventPayloadT>) => void) {\n this.handlers.onBegin = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.BEGAN] = this.isWorklet(callback);\n return this;\n }\n\n onStart(callback: (event: GestureStateChangeEvent<EventPayloadT>) => void) {\n this.handlers.onStart = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.START] = this.isWorklet(callback);\n return this;\n }\n\n onEnd(\n callback: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void\n ) {\n this.handlers.onEnd = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.END] = this.isWorklet(callback);\n return this;\n }\n\n onFinalize(\n callback: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void\n ) {\n this.handlers.onFinalize = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.FINALIZE] = this.isWorklet(callback);\n return this;\n }\n\n onTouchesDown(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesDown = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_DOWN] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesMove(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesMove = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_MOVE] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesUp(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesUp = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_UP] =\n this.isWorklet(callback);\n\n return this;\n }\n\n onTouchesCancelled(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesCancelled = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_CANCELLED] =\n this.isWorklet(callback);\n\n return this;\n }\n\n enabled(enabled: boolean) {\n this.config.enabled = enabled;\n return this;\n }\n\n shouldCancelWhenOutside(value: boolean) {\n this.config.shouldCancelWhenOutside = value;\n return this;\n }\n\n hitSlop(hitSlop: HitSlop) {\n this.config.hitSlop = hitSlop;\n return this;\n }\n\n runOnJS(runOnJS: boolean) {\n this.config.runOnJS = runOnJS;\n return this;\n }\n\n simultaneousWithExternalGesture(...gestures: Exclude<GestureRef, number>[]) {\n for (const gesture of gestures) {\n this.addDependency('simultaneousWith', gesture);\n }\n return this;\n }\n\n requireExternalGestureToFail(...gestures: Exclude<GestureRef, number>[]) {\n for (const gesture of gestures) {\n this.addDependency('requireToFail', gesture);\n }\n return this;\n }\n\n withTestId(id: string) {\n this.config.testId = id;\n return this;\n }\n\n cancelsTouchesInView(value: boolean) {\n this.config.cancelsTouchesInView = value;\n return this;\n }\n\n initialize() {\n this.handlerTag = getNextHandlerTag();\n\n this.handlers = { ...this.handlers, handlerTag: this.handlerTag };\n\n if (this.config.ref) {\n this.config.ref.current = this as GestureType;\n }\n }\n\n toGestureArray(): GestureType[] {\n return [this as GestureType];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n prepare() {}\n\n get shouldUseReanimated(): boolean {\n // use Reanimated when runOnJS isn't set explicitly,\n // and all defined callbacks are worklets,\n // and remote debugging is disabled\n return (\n this.config.runOnJS !== true &&\n !this.handlers.isWorklet.includes(false) &&\n !isRemoteDebuggingEnabled()\n );\n }\n}\n\nexport abstract class ContinousBaseGesture<\n EventPayloadT extends Record<string, unknown>,\n EventChangePayloadT extends Record<string, unknown>\n> extends BaseGesture<EventPayloadT> {\n onUpdate(callback: (event: GestureUpdateEvent<EventPayloadT>) => void) {\n this.handlers.onUpdate = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.UPDATE] = this.isWorklet(callback);\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<EventPayloadT & EventChangePayloadT>\n ) => void\n ) {\n this.handlers.onChange = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.CHANGE] = this.isWorklet(callback);\n return this;\n }\n\n manualActivation(manualActivation: boolean) {\n this.config.manualActivation = manualActivation;\n return this;\n }\n}\n"]},"metadata":{},"sourceType":"module"}