{"version":3,"names":["_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","registerEventHandler","unregisterEventHandler","shouldBeUseWeb","SHOULD_BE_USE_WEB","jsListener","eventName","handler","evt","nativeEvent","WorkletEventHandler","constructor","worklet","eventNames","arguments","length","reattachNeeded","listeners","viewTag","registrations","reduce","acc","updateWorklet","newWorklet","registerForEvents","fallbackEventName","map","push","registerForEventByName","unregisterFromEvents","forEach","id"],"sources":["WorkletEventHandler.ts"],"sourcesContent":["'use strict';\nimport type { NativeSyntheticEvent } from 'react-native';\nimport { registerEventHandler, unregisterEventHandler } from './core';\nimport type { EventPayload, ReanimatedEvent } from './hook/commonTypes';\nimport { shouldBeUseWeb } from './PlatformChecker';\n\nconst SHOULD_BE_USE_WEB = shouldBeUseWeb();\n\ntype JSEvent = NativeSyntheticEvent>;\n\n// In JS implementation (e.g. for web) we don't use Reanimated's\n// event emitter, therefore we have to handle here\n// the event that came from React Native and convert it.\nfunction jsListener(\n eventName: string,\n handler: (event: ReanimatedEvent) => void\n) {\n return (evt: JSEvent) => {\n handler({ ...evt.nativeEvent, eventName } as ReanimatedEvent);\n };\n}\n\nexport default class WorkletEventHandler {\n worklet: (event: ReanimatedEvent) => void;\n eventNames: string[];\n reattachNeeded: boolean;\n listeners:\n | Record>) => void>\n | Record) => void>;\n\n viewTag: number | undefined;\n registrations: number[];\n constructor(\n worklet: (event: ReanimatedEvent) => void,\n eventNames: string[] = []\n ) {\n this.worklet = worklet;\n this.eventNames = eventNames;\n this.reattachNeeded = false;\n this.listeners = {};\n this.viewTag = undefined;\n this.registrations = [];\n\n if (SHOULD_BE_USE_WEB) {\n this.listeners = eventNames.reduce(\n (\n acc: Record) => void>,\n eventName: string\n ) => {\n acc[eventName] = jsListener(eventName, worklet);\n return acc;\n },\n {}\n );\n }\n }\n\n updateWorklet(newWorklet: (event: ReanimatedEvent) => void): void {\n this.worklet = newWorklet;\n this.reattachNeeded = true;\n }\n\n registerForEvents(viewTag: number, fallbackEventName?: string): void {\n this.viewTag = viewTag;\n this.registrations = this.eventNames.map((eventName) =>\n registerEventHandler(this.worklet, eventName, viewTag)\n );\n if (this.registrations.length === 0 && fallbackEventName) {\n this.registrations.push(\n registerEventHandler(this.worklet, fallbackEventName, viewTag)\n );\n }\n }\n\n registerForEventByName(eventName: string) {\n this.registrations.push(registerEventHandler(this.worklet, eventName));\n }\n\n unregisterFromEvents(): void {\n this.registrations.forEach((id) => unregisterEventHandler(id));\n this.registrations = [];\n }\n}\n"],"mappings":"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"}