@office-iss/react-native-win32 0.0.0-canary.284 → 0.0.0-canary.285

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.
Files changed (351) hide show
  1. package/CHANGELOG.json +40 -1
  2. package/CHANGELOG.md +20 -8
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +38 -17
  4. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -2
  5. package/Libraries/Alert/Alert.flow.js +62 -0
  6. package/Libraries/Alert/Alert.js +4 -27
  7. package/Libraries/Alert/Alert.win32.js +5 -27
  8. package/Libraries/Alert/NativeAlertManager.js +2 -2
  9. package/Libraries/Alert/RCTAlertManager.flow.js +20 -0
  10. package/Libraries/Animated/NativeAnimatedModule.js +2 -2
  11. package/Libraries/Animated/NativeAnimatedTurboModule.js +2 -2
  12. package/Libraries/Animated/createAnimatedComponent.js +3 -3
  13. package/Libraries/Animated/useAnimatedProps.js +4 -294
  14. package/Libraries/AppState/NativeAppState.js +2 -2
  15. package/Libraries/Blob/FileReader.js +8 -174
  16. package/Libraries/Blob/FileReader_new.js +231 -0
  17. package/Libraries/Blob/FileReader_old.js +186 -0
  18. package/Libraries/Blob/NativeBlobModule.js +2 -2
  19. package/Libraries/Blob/NativeFileReaderModule.js +2 -2
  20. package/Libraries/Blob/URLSearchParams.js +1 -2
  21. package/Libraries/BugReporting/NativeBugReporting.js +2 -2
  22. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +2 -2
  23. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +2 -2
  24. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +2 -2
  25. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  26. package/Libraries/Components/Clipboard/NativeClipboard.js +2 -2
  27. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  28. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +2 -1
  29. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +14 -18
  30. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +2 -2
  31. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  32. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  33. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  34. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  35. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  36. package/Libraries/Components/Sound/NativeSoundManager.js +2 -2
  37. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +2 -2
  38. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +2 -2
  39. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  40. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  41. package/Libraries/Components/TextInput/InputAccessoryView.js +4 -2
  42. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  43. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  44. package/Libraries/Components/TextInput/TextInput.flow.js +98 -88
  45. package/Libraries/Components/TextInput/TextInput.js +103 -96
  46. package/Libraries/Components/TextInput/TextInput.win32.js +105 -98
  47. package/Libraries/Components/TextInput/TextInputState.js +3 -1
  48. package/Libraries/Components/TextInput/TextInputState.win32.js +3 -1
  49. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +2 -2
  50. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  51. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  52. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
  53. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  54. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  55. package/Libraries/Components/Touchable/Position.js +1 -1
  56. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  57. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  58. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  59. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +1 -1
  60. package/Libraries/Components/Touchable/TouchableOpacity.js +1 -1
  61. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  62. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  63. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +2 -2
  64. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  65. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -1
  66. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -1
  67. package/Libraries/Components/View/View.js +1 -1
  68. package/Libraries/Components/View/View.win32.js +1 -1
  69. package/Libraries/Core/Devtools/getDevServer.js +1 -3
  70. package/Libraries/Core/Devtools/loadBundleFromServer.js +4 -2
  71. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +4 -2
  72. package/Libraries/Core/Devtools/openFileInEditor.js +2 -4
  73. package/Libraries/Core/Devtools/openURLInBrowser.js +5 -4
  74. package/Libraries/Core/Devtools/parseErrorStack.js +4 -4
  75. package/Libraries/Core/Devtools/parseHermesStack.js +2 -2
  76. package/Libraries/Core/Devtools/symbolicateStackTrace.js +5 -4
  77. package/Libraries/Core/ExceptionsManager.js +6 -4
  78. package/Libraries/Core/InitializeCore.js +5 -2
  79. package/Libraries/Core/NativeExceptionsManager.js +2 -2
  80. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  81. package/Libraries/Core/ReactNativeVersion.js +1 -1
  82. package/Libraries/Core/ReactNativeVersionCheck.js +2 -4
  83. package/Libraries/Core/ReactNativeVersionCheck.win32.js +2 -4
  84. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +2 -2
  85. package/Libraries/Core/Timers/JSTimers.js +1 -1
  86. package/Libraries/Core/Timers/NativeTiming.js +2 -2
  87. package/Libraries/Core/Timers/immediateShim.js +2 -9
  88. package/Libraries/Core/setUpBatchedBridge.js +4 -3
  89. package/Libraries/Core/setUpDeveloperTools.js +2 -7
  90. package/Libraries/Core/setUpErrorHandling.js +1 -6
  91. package/Libraries/Core/setUpReactDevTools.js +22 -4
  92. package/Libraries/Core/setUpTimers.js +17 -17
  93. package/Libraries/Core/setUpXHR.js +1 -1
  94. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  95. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  96. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  97. package/Libraries/Image/AssetRegistry.js +3 -1
  98. package/Libraries/Image/AssetSourceResolver.js +1 -1
  99. package/Libraries/Image/Image.android.js +3 -1
  100. package/Libraries/Image/Image.ios.js +1 -1
  101. package/Libraries/Image/Image.win32.js +1 -1
  102. package/Libraries/Image/ImageBackground.js +1 -1
  103. package/Libraries/Image/ImageViewNativeComponent.js +4 -5
  104. package/Libraries/Image/NativeImageEditor.js +2 -2
  105. package/Libraries/Image/NativeImageLoaderAndroid.js +2 -2
  106. package/Libraries/Image/NativeImageLoaderIOS.js +2 -2
  107. package/Libraries/Image/NativeImageLoaderWin32.js +2 -2
  108. package/Libraries/Image/NativeImageStoreAndroid.js +2 -2
  109. package/Libraries/Image/NativeImageStoreIOS.js +2 -2
  110. package/Libraries/Image/RelativeImageStub.js +3 -1
  111. package/Libraries/Image/nativeImageSource.js +1 -1
  112. package/Libraries/Image/resolveAssetSource.js +4 -2
  113. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  114. package/Libraries/Interaction/InteractionManager.js +8 -6
  115. package/Libraries/Interaction/InteractionManagerStub.js +1 -1
  116. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  117. package/Libraries/Interaction/NativeFrameRateLogger.js +2 -2
  118. package/Libraries/Interaction/PanResponder.js +2 -2
  119. package/Libraries/Interaction/TaskQueue.js +1 -1
  120. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  121. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  122. package/Libraries/Linking/Linking.d.ts +3 -3
  123. package/Libraries/Linking/Linking.js +10 -8
  124. package/Libraries/Linking/NativeIntentAndroid.js +2 -2
  125. package/Libraries/Linking/NativeLinkingManager.js +2 -2
  126. package/Libraries/Lists/FillRateHelper.js +1 -1
  127. package/Libraries/Lists/FlatList.js +1 -1
  128. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  129. package/Libraries/Lists/VirtualizeUtils.js +1 -3
  130. package/Libraries/Lists/VirtualizedList.js +1 -1
  131. package/Libraries/Lists/VirtualizedListContext.js +1 -3
  132. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  133. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -1
  134. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  135. package/Libraries/Modal/Modal.js +3 -3
  136. package/Libraries/Modal/NativeModalManager.js +2 -2
  137. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  138. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  139. package/Libraries/NativeModules/specs/NativeDevSettings.js +2 -2
  140. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +2 -2
  141. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +2 -2
  142. package/Libraries/NativeModules/specs/NativeLogBox.js +2 -2
  143. package/Libraries/NativeModules/specs/NativeRedBox.js +2 -2
  144. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -2
  145. package/Libraries/Network/NativeNetworkingAndroid.js +2 -2
  146. package/Libraries/Network/NativeNetworkingIOS.js +2 -2
  147. package/Libraries/Network/RCTNetworking.android.js +1 -1
  148. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  149. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  150. package/Libraries/Network/XMLHttpRequest.js +11 -685
  151. package/Libraries/Network/XMLHttpRequest_new.js +790 -0
  152. package/Libraries/Network/XMLHttpRequest_old.js +697 -0
  153. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -2
  154. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +2 -2
  155. package/Libraries/ReactNative/AppContainer-dev.js +2 -2
  156. package/Libraries/ReactNative/AppContainer.js +1 -1
  157. package/Libraries/ReactNative/AppRegistry.js +1 -1
  158. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  159. package/Libraries/ReactNative/FabricUIManager.js +18 -8
  160. package/Libraries/ReactNative/I18nManager.js +1 -1
  161. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +2 -2
  162. package/Libraries/ReactNative/NativeI18nManager.js +2 -2
  163. package/Libraries/ReactNative/NativeUIManager.js +2 -2
  164. package/Libraries/ReactNative/PaperUIManager.js +2 -3
  165. package/Libraries/ReactNative/PaperUIManager.win32.js +2 -3
  166. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +85 -31
  167. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +1 -1
  168. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +1 -1
  169. package/Libraries/ReactNative/RendererImplementation.js +9 -0
  170. package/Libraries/ReactNative/UIManager.d.ts +1 -0
  171. package/Libraries/ReactNative/UIManager.js +3 -3
  172. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  173. package/Libraries/ReactNative/getNativeComponentAttributes.js +6 -5
  174. package/Libraries/ReactNative/requireNativeComponent.js +2 -1
  175. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +9 -4
  176. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -1
  177. package/Libraries/Settings/NativeSettingsManager.js +2 -2
  178. package/Libraries/Settings/Settings.ios.js +1 -1
  179. package/Libraries/Settings/Settings.js +1 -1
  180. package/Libraries/Settings/Settings.win32.js +1 -1
  181. package/Libraries/Share/NativeShareModule.js +2 -2
  182. package/Libraries/Share/Share.js +1 -1
  183. package/Libraries/StyleSheet/StyleSheet.js +2 -1
  184. package/Libraries/StyleSheet/StyleSheet.win32.js +2 -1
  185. package/Libraries/StyleSheet/processBoxShadow.js +4 -0
  186. package/Libraries/StyleSheet/processColorArray.js +1 -1
  187. package/Libraries/Text/Text.js +1 -1
  188. package/Libraries/Text/Text.win32.js +1 -1
  189. package/Libraries/Text/TextAncestor.js +1 -1
  190. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +2 -2
  191. package/Libraries/Types/CoreEventTypes.js +2 -0
  192. package/Libraries/Types/CoreEventTypes.win32.js +2 -0
  193. package/Libraries/Utilities/Appearance.js +0 -8
  194. package/Libraries/Utilities/NativeAppearance.js +2 -2
  195. package/Libraries/Utilities/NativeDevLoadingView.js +2 -2
  196. package/Libraries/Utilities/NativeDeviceInfo.js +2 -2
  197. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +2 -2
  198. package/Libraries/Utilities/NativePlatformConstantsIOS.js +2 -2
  199. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  200. package/Libraries/Utilities/ReactNativeTestTools.js +3 -4
  201. package/Libraries/Utilities/dismissKeyboard.js +2 -1
  202. package/Libraries/Vibration/NativeVibration.js +2 -2
  203. package/Libraries/WebSocket/NativeWebSocketModule.js +2 -2
  204. package/Libraries/WebSocket/WebSocket.js +8 -285
  205. package/Libraries/WebSocket/WebSocketEvent.js +1 -1
  206. package/Libraries/WebSocket/WebSocketInterceptor.js +39 -11
  207. package/Libraries/WebSocket/WebSocket_new.js +325 -0
  208. package/Libraries/WebSocket/WebSocket_old.js +297 -0
  209. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  210. package/index.js +25 -26
  211. package/index.win32.js +25 -26
  212. package/jest/mockScrollView.js +1 -1
  213. package/jest/setup.js +91 -65
  214. package/overrides.json +30 -42
  215. package/package.json +16 -16
  216. package/src/private/animated/createAnimatedPropsHook.js +360 -0
  217. package/src/private/animated/{useAnimatedPropsMemo.js → createAnimatedPropsMemoHook.js} +84 -32
  218. package/src/private/components/HScrollViewNativeComponents.js +1 -1
  219. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  220. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +1 -1
  221. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +1 -1
  222. package/src/private/devmenu/DevMenu.js +1 -1
  223. package/src/private/featureflags/ReactNativeFeatureFlags.js +23 -30
  224. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -1
  225. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -7
  226. package/{Libraries/Inspector → src/private/inspector}/BorderBox.js +3 -3
  227. package/{Libraries/Inspector → src/private/inspector}/BoxInspector.js +9 -6
  228. package/{Libraries/Inspector → src/private/inspector}/ElementBox.js +8 -8
  229. package/{Libraries/Inspector → src/private/inspector}/ElementProperties.js +14 -12
  230. package/{Libraries/Inspector → src/private/inspector}/Inspector.js +18 -15
  231. package/{Libraries/Inspector → src/private/inspector}/InspectorOverlay.js +5 -5
  232. package/{Libraries/Inspector → src/private/inspector}/InspectorPanel.js +12 -10
  233. package/{Libraries/Inspector → src/private/inspector}/NetworkOverlay.js +35 -20
  234. package/{Libraries/Inspector → src/private/inspector}/PerformanceOverlay.js +5 -5
  235. package/{Libraries/Inspector → src/private/inspector}/ReactDevToolsOverlay.js +9 -8
  236. package/{Libraries/Inspector → src/private/inspector}/StyleInspector.js +6 -6
  237. package/{Libraries/Network → src/private/inspector}/XHRInterceptor.js +1 -1
  238. package/{Libraries/Inspector → src/private/inspector}/getInspectorDataForViewAtPoint.js +5 -3
  239. package/{Libraries/Inspector → src/private/inspector}/resolveBoxStyle.js +3 -2
  240. package/src/private/renderer/errorhandling/ErrorHandlers.js +3 -4
  241. package/src/private/setup/setUpDOM.js +7 -2
  242. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevMenu.js +0 -1
  243. package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevSettings.js +0 -1
  244. package/src/private/webapis/dom/events/CustomEvent.js +40 -0
  245. package/src/private/webapis/dom/events/Event.js +236 -0
  246. package/src/private/webapis/dom/events/EventHandlerAttributes.js +130 -0
  247. package/src/private/webapis/dom/events/EventTarget.js +436 -0
  248. package/src/private/webapis/dom/events/internals/EventInternals.js +120 -0
  249. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +52 -0
  250. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +120 -0
  251. package/src/private/webapis/dom/nodes/ReactNativeElement.js +48 -25
  252. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +6 -5
  253. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +25 -25
  254. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +55 -77
  255. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +144 -0
  256. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +55 -0
  257. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +43 -0
  258. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +305 -194
  259. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  260. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  261. package/src/private/webapis/{dom/oldstylecollections → geometry}/DOMRectList.js +3 -3
  262. package/src/private/webapis/html/events/MessageEvent.js +63 -0
  263. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  264. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +12 -9
  265. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +4 -6
  266. package/src/private/webapis/websockets/events/CloseEvent.js +54 -0
  267. package/src/private/webapis/xhr/events/ProgressEvent.js +54 -0
  268. package/types/index.d.ts +0 -5
  269. package/Libraries/Animated/AnimatedWeb.js +0 -44
  270. package/Libraries/Inspector/Inspector.win32.js +0 -212
  271. package/Libraries/Inspector/InspectorOverlay.win32.js +0 -68
  272. package/Libraries/JSInspector/InspectorAgent.js +0 -27
  273. package/Libraries/JSInspector/JSInspector.js +0 -33
  274. package/Libraries/JSInspector/NetworkAgent.js +0 -296
  275. package/Libraries/Utilities/DebugEnvironment.js +0 -16
  276. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +0 -19
  277. package/Libraries/YellowBox/YellowBoxDeprecated.js +0 -76
  278. package/src/private/specs/modules/NativeCPUTime.js +0 -24
  279. package/src/private/specs/modules/NativeFantom.js +0 -43
  280. /package/src/private/{specs → specs_DEPRECATED}/components/ActivityIndicatorViewNativeComponent.js +0 -0
  281. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidDrawerLayoutNativeComponent.js +0 -0
  282. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidHorizontalScrollContentViewNativeComponent.js +0 -0
  283. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwipeRefreshLayoutNativeComponent.js +0 -0
  284. /package/src/private/{specs → specs_DEPRECATED}/components/AndroidSwitchNativeComponent.js +0 -0
  285. /package/src/private/{specs → specs_DEPRECATED}/components/DebuggingOverlayNativeComponent.js +0 -0
  286. /package/src/private/{specs → specs_DEPRECATED}/components/ProgressBarAndroidNativeComponent.js +0 -0
  287. /package/src/private/{specs → specs_DEPRECATED}/components/PullToRefreshViewNativeComponent.js +0 -0
  288. /package/src/private/{specs → specs_DEPRECATED}/components/RCTInputAccessoryViewNativeComponent.js +0 -0
  289. /package/src/private/{specs → specs_DEPRECATED}/components/RCTModalHostViewNativeComponent.js +0 -0
  290. /package/src/private/{specs → specs_DEPRECATED}/components/RCTSafeAreaViewNativeComponent.js +0 -0
  291. /package/src/private/{specs → specs_DEPRECATED}/components/SwitchNativeComponent.js +0 -0
  292. /package/src/private/{specs → specs_DEPRECATED}/components/UnimplementedNativeViewNativeComponent.js +0 -0
  293. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfo.js +0 -0
  294. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityInfoWin32.js +0 -0
  295. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAccessibilityManager.js +0 -0
  296. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeActionSheetManager.js +0 -0
  297. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAlertManager.js +0 -0
  298. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedModule.js +0 -0
  299. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAnimatedTurboModule.js +0 -0
  300. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppState.js +0 -0
  301. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeAppearance.js +0 -0
  302. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeBlobModule.js +0 -0
  303. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeBugReporting.js +0 -0
  304. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeClipboard.js +0 -0
  305. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDevLoadingView.js +0 -0
  306. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceEventManager.js +0 -0
  307. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDeviceInfo.js +0 -0
  308. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeDialogManagerAndroid.js +0 -0
  309. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeExceptionsManager.js +0 -0
  310. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeFileReaderModule.js +0 -0
  311. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeFrameRateLogger.js +0 -0
  312. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeHeadlessJsTaskSupport.js +0 -0
  313. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeI18nManager.js +0 -0
  314. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageEditor.js +0 -0
  315. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderAndroid.js +0 -0
  316. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderIOS.js +0 -0
  317. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageLoaderWin32.js +0 -0
  318. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreAndroid.js +0 -0
  319. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeImageStoreIOS.js +0 -0
  320. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeIntentAndroid.js +0 -0
  321. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeJSCHeapCapture.js +0 -0
  322. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeKeyboardObserver.js +0 -0
  323. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLinkingManager.js +0 -0
  324. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeLogBox.js +0 -0
  325. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeModalManager.js +0 -0
  326. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingAndroid.js +0 -0
  327. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeNetworkingIOS.js +0 -0
  328. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePermissionsAndroid.js +0 -0
  329. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsAndroid.js +0 -0
  330. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsIOS.js +0 -0
  331. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePlatformConstantsWin.js +0 -0
  332. /package/src/private/{specs → specs_DEPRECATED}/modules/NativePushNotificationManagerIOS.js +0 -0
  333. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeReactDevToolsSettingsManager.js +0 -0
  334. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeRedBox.js +0 -0
  335. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSampleTurboModule.js +0 -0
  336. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSegmentFetcher.js +0 -0
  337. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSettingsManager.js +0 -0
  338. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeShareModule.js +0 -0
  339. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSoundManager.js +0 -0
  340. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeSourceCode.js +0 -0
  341. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerAndroid.js +0 -0
  342. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeStatusBarManagerIOS.js +0 -0
  343. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeTiming.js +0 -0
  344. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeToastAndroid.js +0 -0
  345. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeUIManager.js +0 -0
  346. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeVibration.js +0 -0
  347. /package/src/private/{specs → specs_DEPRECATED}/modules/NativeWebSocketModule.js +0 -0
  348. /package/src/private/webapis/dom/nodes/{utilities → internals}/Traversal.js +0 -0
  349. /package/src/private/webapis/{dom/geometry → geometry}/DOMRect.js +0 -0
  350. /package/src/private/webapis/{dom/geometry → geometry}/DOMRectReadOnly.js +0 -0
  351. /package/src/private/webapis/{dom/oldstylecollections → utils}/ArrayLikeUtils.js +0 -0
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ /**
12
+ * This module provides helpers for classes to implement event handler IDL
13
+ * attributes, as defined in https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-idl-attributes.
14
+ *
15
+ * Expected usage:
16
+ * ```
17
+ * import {getEventHandlerAttribute, setEventHandlerAttribute} from '../path/to/EventHandlerAttributes';
18
+ *
19
+ * class EventTargetSubclass extends EventTarget {
20
+ * get oncustomevent(): EventListener | null {
21
+ * return getEventHandlerAttribute(this, 'customEvent');
22
+ * }
23
+ *
24
+ * set oncustomevent(listener: EventListener | null) {
25
+ * setEventHandlerAttribute(this, 'customEvent', listener);
26
+ * }
27
+ * }
28
+ *
29
+ * const eventTargetInstance = new EventTargetSubclass();
30
+ *
31
+ * eventTargetInstance.oncustomevent = (event: Event) => {
32
+ * console.log('custom event received');
33
+ * };
34
+ * eventTargetInstance.dispatchEvent(new Event('customEvent'));
35
+ * // Logs 'custom event received' to the console.
36
+ *
37
+ * eventTargetInstance.oncustomevent = null;
38
+ * eventTargetInstance.dispatchEvent(new Event('customEvent'));
39
+ * // Does not log anything to the console.
40
+ * ```
41
+ */
42
+
43
+ import type EventTarget from './EventTarget';
44
+ import type {EventCallback} from './EventTarget';
45
+
46
+ type EventHandler = $ReadOnly<{
47
+ handleEvent: EventCallback,
48
+ }>;
49
+ type EventHandlerAttributeMap = Map<string, EventHandler | null>;
50
+
51
+ const EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY = Symbol(
52
+ 'eventHandlerAttributeMap',
53
+ );
54
+
55
+ function getEventHandlerAttributeMap(
56
+ target: EventTarget,
57
+ ): ?EventHandlerAttributeMap {
58
+ // $FlowExpectedError[prop-missing]
59
+ return target[EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY];
60
+ }
61
+
62
+ function setEventHandlerAttributeMap(
63
+ target: EventTarget,
64
+ map: ?EventHandlerAttributeMap,
65
+ ) {
66
+ // $FlowExpectedError[prop-missing]
67
+ target[EVENT_HANDLER_CONTENT_ATTRIBUTE_MAP_KEY] = map;
68
+ }
69
+
70
+ /**
71
+ * Returns the event listener registered as an event handler IDL attribute for
72
+ * the given target and type.
73
+ *
74
+ * Should be used to get the current value for `target.on{type}`.
75
+ */
76
+ export function getEventHandlerAttribute(
77
+ target: EventTarget,
78
+ type: string,
79
+ ): EventCallback | null {
80
+ const listener = getEventHandlerAttributeMap(target)?.get(type);
81
+ return listener != null ? listener.handleEvent : null;
82
+ }
83
+
84
+ /**
85
+ * Sets the event listener registered as an event handler IDL attribute for
86
+ * the given target and type.
87
+ *
88
+ * Should be used to set a value for `target.on{type}`.
89
+ */
90
+ export function setEventHandlerAttribute(
91
+ target: EventTarget,
92
+ type: string,
93
+ callback: ?EventCallback,
94
+ ): void {
95
+ let map = getEventHandlerAttributeMap(target);
96
+ if (map != null) {
97
+ const currentListener = map.get(type);
98
+ if (currentListener) {
99
+ target.removeEventListener(type, currentListener);
100
+ map.delete(type);
101
+ }
102
+ }
103
+
104
+ if (
105
+ callback != null &&
106
+ (typeof callback === 'function' || typeof callback === 'object')
107
+ ) {
108
+ // Register the listener as a different object in the target so it
109
+ // occupies its own slot and cannot be removed via `removeEventListener`.
110
+ const listener = {
111
+ handleEvent: callback,
112
+ };
113
+
114
+ try {
115
+ target.addEventListener(type, listener);
116
+ // If adding the listener fails, we don't store the value
117
+ if (map == null) {
118
+ map = new Map();
119
+ setEventHandlerAttributeMap(target, map);
120
+ }
121
+ map.set(type, listener);
122
+ } catch (e) {
123
+ // Assigning incorrect listener does not throw in setters.
124
+ }
125
+ }
126
+
127
+ if (map != null && map.size === 0) {
128
+ setEventHandlerAttributeMap(target, null);
129
+ }
130
+ }
@@ -0,0 +1,436 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ /**
12
+ * This module implements the `EventTarget` and related interfaces from the DOM.
13
+ * See https://dom.spec.whatwg.org/#interface-eventtarget.
14
+ */
15
+
16
+ import type {EventPhase} from './Event';
17
+
18
+ import Event from './Event';
19
+ import {
20
+ getStopImmediatePropagationFlag,
21
+ getStopPropagationFlag,
22
+ setComposedPath,
23
+ setCurrentTarget,
24
+ setEventPhase,
25
+ setInPassiveListenerFlag,
26
+ setIsTrusted,
27
+ setStopImmediatePropagationFlag,
28
+ setStopPropagationFlag,
29
+ setTarget,
30
+ } from './internals/EventInternals';
31
+ import {
32
+ EVENT_TARGET_GET_THE_PARENT_KEY,
33
+ INTERNAL_DISPATCH_METHOD_KEY,
34
+ } from './internals/EventTargetInternals';
35
+
36
+ export type EventCallback = (event: Event) => void;
37
+ export type EventHandler = interface {
38
+ handleEvent(event: Event): void,
39
+ };
40
+ export type EventListener = EventCallback | EventHandler;
41
+
42
+ export type EventListenerOptions = $ReadOnly<{
43
+ capture?: boolean,
44
+ }>;
45
+
46
+ export type AddEventListenerOptions = $ReadOnly<{
47
+ ...EventListenerOptions,
48
+ passive?: boolean,
49
+ once?: boolean,
50
+ signal?: AbortSignal,
51
+ }>;
52
+
53
+ type EventListenerRegistration = {
54
+ +callback: EventListener,
55
+ +passive: boolean,
56
+ +once: boolean,
57
+ removed: boolean,
58
+ };
59
+
60
+ type ListenersMap = Map<string, Map<EventListener, EventListenerRegistration>>;
61
+
62
+ export default class EventTarget {
63
+ addEventListener(
64
+ type: string,
65
+ callback: EventListener | null,
66
+ optionsOrUseCapture?: AddEventListenerOptions | boolean = {},
67
+ ): void {
68
+ if (arguments.length < 2) {
69
+ throw new TypeError(
70
+ `Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`,
71
+ );
72
+ }
73
+
74
+ if (callback == null) {
75
+ return;
76
+ }
77
+
78
+ validateCallback(callback, 'addEventListener');
79
+
80
+ const processedType = String(type);
81
+
82
+ let capture;
83
+ let passive;
84
+ let once;
85
+ let signal;
86
+
87
+ if (
88
+ optionsOrUseCapture != null &&
89
+ (typeof optionsOrUseCapture === 'object' ||
90
+ typeof optionsOrUseCapture === 'function')
91
+ ) {
92
+ capture = Boolean(optionsOrUseCapture.capture);
93
+ passive =
94
+ optionsOrUseCapture.passive == null
95
+ ? getDefaultPassiveValue(processedType, this)
96
+ : Boolean(optionsOrUseCapture.passive);
97
+ once = Boolean(optionsOrUseCapture.once);
98
+ signal = optionsOrUseCapture.signal;
99
+ if (signal !== undefined && !(signal instanceof AbortSignal)) {
100
+ throw new TypeError(
101
+ "Failed to execute 'addEventListener' on 'EventTarget': Failed to read the 'signal' property from 'AddEventListenerOptions': Failed to convert value to 'AbortSignal'.",
102
+ );
103
+ }
104
+ } else {
105
+ capture = Boolean(optionsOrUseCapture);
106
+ passive = false;
107
+ once = false;
108
+ signal = null;
109
+ }
110
+
111
+ if (signal?.aborted) {
112
+ return;
113
+ }
114
+
115
+ let listenersByType = getListenersForPhase(this, capture);
116
+ let listeners = listenersByType?.get(processedType);
117
+ if (listeners == null) {
118
+ if (listenersByType == null) {
119
+ listenersByType = new Map();
120
+ setListenersMap(this, capture, listenersByType);
121
+ }
122
+ listeners = new Map();
123
+ listenersByType.set(processedType, listeners);
124
+ } else if (listeners.has(callback)) {
125
+ return;
126
+ }
127
+
128
+ const listener: EventListenerRegistration = {
129
+ callback,
130
+ passive,
131
+ once,
132
+ removed: false,
133
+ };
134
+ listeners.set(callback, listener);
135
+
136
+ const nonNullListeners = listeners;
137
+
138
+ if (signal != null) {
139
+ signal.addEventListener(
140
+ 'abort',
141
+ () => {
142
+ listener.removed = true;
143
+ if (nonNullListeners.get(callback) === listener) {
144
+ nonNullListeners.delete(callback);
145
+ }
146
+ },
147
+ {
148
+ once: true,
149
+ },
150
+ );
151
+ }
152
+ }
153
+
154
+ removeEventListener(
155
+ type: string,
156
+ callback: EventListener,
157
+ optionsOrUseCapture?: EventListenerOptions | boolean = {},
158
+ ): void {
159
+ if (arguments.length < 2) {
160
+ throw new TypeError(
161
+ `Failed to execute 'removeEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`,
162
+ );
163
+ }
164
+
165
+ if (callback == null) {
166
+ return;
167
+ }
168
+
169
+ validateCallback(callback, 'removeEventListener');
170
+
171
+ const processedType = String(type);
172
+
173
+ const capture =
174
+ typeof optionsOrUseCapture === 'boolean'
175
+ ? optionsOrUseCapture
176
+ : Boolean(optionsOrUseCapture.capture);
177
+
178
+ const listenersByType = getListenersForPhase(this, capture);
179
+ const listeners = listenersByType?.get(processedType);
180
+ if (listeners == null) {
181
+ return;
182
+ }
183
+
184
+ const listener = listeners.get(callback);
185
+ if (listener != null) {
186
+ listener.removed = true;
187
+ listeners.delete(callback);
188
+ }
189
+ }
190
+
191
+ dispatchEvent(event: Event): boolean {
192
+ if (!(event instanceof Event)) {
193
+ throw new TypeError(
194
+ "Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'.",
195
+ );
196
+ }
197
+
198
+ if (getEventDispatchFlag(event)) {
199
+ throw new Error(
200
+ "Failed to execute 'dispatchEvent' on 'EventTarget': The event is already being dispatched.",
201
+ );
202
+ }
203
+
204
+ setIsTrusted(event, false);
205
+
206
+ dispatch(this, event);
207
+
208
+ return !event.defaultPrevented;
209
+ }
210
+
211
+ /**
212
+ * This a "protected" method to be overridden by a subclass to allow event
213
+ * propagation.
214
+ *
215
+ * Should implement the "get the parent" algorithm
216
+ * (see https://dom.spec.whatwg.org/#get-the-parent).
217
+ */
218
+ // $FlowExpectedError[unsupported-syntax]
219
+ [EVENT_TARGET_GET_THE_PARENT_KEY](): EventTarget | null {
220
+ return null;
221
+ }
222
+
223
+ /**
224
+ * This is "protected" method to dispatch trusted events.
225
+ */
226
+ // $FlowExpectedError[unsupported-syntax]
227
+ [INTERNAL_DISPATCH_METHOD_KEY](event: Event): void {
228
+ dispatch(this, event);
229
+ }
230
+ }
231
+
232
+ function validateCallback(callback: EventListener, methodName: string): void {
233
+ if (typeof callback !== 'function' && typeof callback !== 'object') {
234
+ throw new TypeError(
235
+ `Failed to execute '${methodName}' on 'EventTarget': parameter 2 is not of type 'Object'.`,
236
+ );
237
+ }
238
+ }
239
+
240
+ function getDefaultPassiveValue(
241
+ type: string,
242
+ eventTarget: EventTarget,
243
+ ): boolean {
244
+ return false;
245
+ }
246
+
247
+ /**
248
+ * This internal version of `dispatchEvent` does not validate the input and
249
+ * does not reset the `isTrusted` flag, so it can be used for both trusted
250
+ * and not trusted events.
251
+ *
252
+ * Implements the "event dispatch" concept
253
+ * (see https://dom.spec.whatwg.org/#concept-event-dispatch).
254
+ */
255
+ function dispatch(eventTarget: EventTarget, event: Event): void {
256
+ setEventDispatchFlag(event, true);
257
+
258
+ const eventPath = getEventPath(eventTarget, event);
259
+ setComposedPath(event, eventPath);
260
+ setTarget(event, eventTarget);
261
+
262
+ for (let i = eventPath.length - 1; i >= 0; i--) {
263
+ if (getStopPropagationFlag(event)) {
264
+ break;
265
+ }
266
+
267
+ const target = eventPath[i];
268
+ setEventPhase(
269
+ event,
270
+ target === eventTarget ? Event.AT_TARGET : Event.CAPTURING_PHASE,
271
+ );
272
+ invoke(target, event, Event.CAPTURING_PHASE);
273
+ }
274
+
275
+ for (const target of eventPath) {
276
+ if (getStopPropagationFlag(event)) {
277
+ break;
278
+ }
279
+
280
+ // If the event does NOT bubble, we only dispatch the event to the
281
+ // target in the bubbling phase.
282
+ if (!event.bubbles && target !== eventTarget) {
283
+ break;
284
+ }
285
+
286
+ setEventPhase(
287
+ event,
288
+ target === eventTarget ? Event.AT_TARGET : Event.BUBBLING_PHASE,
289
+ );
290
+ invoke(target, event, Event.BUBBLING_PHASE);
291
+ }
292
+
293
+ setEventPhase(event, Event.NONE);
294
+ setCurrentTarget(event, null);
295
+ setComposedPath(event, []);
296
+
297
+ setEventDispatchFlag(event, false);
298
+ setStopImmediatePropagationFlag(event, false);
299
+ setStopPropagationFlag(event, false);
300
+ }
301
+
302
+ /**
303
+ * Builds the event path for an event about to be dispatched in this target
304
+ * (see https://dom.spec.whatwg.org/#event-path).
305
+ *
306
+ * The return value is also set as `composedPath` for the event.
307
+ */
308
+ function getEventPath(
309
+ eventTarget: EventTarget,
310
+ event: Event,
311
+ ): $ReadOnlyArray<EventTarget> {
312
+ const path = [];
313
+ let target: EventTarget | null = eventTarget;
314
+
315
+ while (target != null) {
316
+ path.push(target);
317
+ // $FlowExpectedError[prop-missing]
318
+ target = target[EVENT_TARGET_GET_THE_PARENT_KEY]();
319
+ }
320
+
321
+ return path;
322
+ }
323
+
324
+ /**
325
+ * Implements the event listener invoke concept
326
+ * (see https://dom.spec.whatwg.org/#concept-event-listener-invoke).
327
+ */
328
+ function invoke(
329
+ eventTarget: EventTarget,
330
+ event: Event,
331
+ eventPhase: EventPhase,
332
+ ) {
333
+ const listenersByType = getListenersForPhase(
334
+ eventTarget,
335
+ eventPhase === Event.CAPTURING_PHASE,
336
+ );
337
+
338
+ setCurrentTarget(event, eventTarget);
339
+
340
+ const maybeListeners = listenersByType?.get(event.type);
341
+ if (maybeListeners == null) {
342
+ return;
343
+ }
344
+
345
+ // This is a copy so listeners added during dispatch are NOT executed.
346
+ // Note that `maybeListeners.values()` is a live view of the map instead of an
347
+ // immutable copy.
348
+ const listeners = Array.from(maybeListeners.values());
349
+
350
+ setCurrentTarget(event, eventTarget);
351
+
352
+ for (const listener of listeners) {
353
+ if (listener.removed) {
354
+ continue;
355
+ }
356
+
357
+ if (listener.once) {
358
+ eventTarget.removeEventListener(
359
+ event.type,
360
+ listener.callback,
361
+ eventPhase === Event.CAPTURING_PHASE,
362
+ );
363
+ }
364
+
365
+ if (listener.passive) {
366
+ setInPassiveListenerFlag(event, true);
367
+ }
368
+
369
+ const currentEvent = global.event;
370
+ global.event = event;
371
+
372
+ const callback = listener.callback;
373
+
374
+ try {
375
+ if (typeof callback === 'function') {
376
+ callback.call(eventTarget, event);
377
+ // $FlowExpectedError[method-unbinding]
378
+ } else if (typeof callback.handleEvent === 'function') {
379
+ callback.handleEvent(event);
380
+ }
381
+ } catch (error) {
382
+ // TODO: replace with `reportError` when it's available.
383
+ console.error(error);
384
+ }
385
+
386
+ if (listener.passive) {
387
+ setInPassiveListenerFlag(event, false);
388
+ }
389
+
390
+ global.event = currentEvent;
391
+
392
+ if (getStopImmediatePropagationFlag(event)) {
393
+ break;
394
+ }
395
+ }
396
+ }
397
+
398
+ const CAPTURING_LISTENERS_KEY = Symbol('capturingListeners');
399
+ const BUBBLING_LISTENERS_KEY = Symbol('bubblingListeners');
400
+
401
+ function getListenersForPhase(
402
+ eventTarget: EventTarget,
403
+ isCapture: boolean,
404
+ ): ?ListenersMap {
405
+ return isCapture
406
+ ? // $FlowExpectedError[prop-missing]
407
+ eventTarget[CAPTURING_LISTENERS_KEY]
408
+ : // $FlowExpectedError[prop-missing]
409
+ eventTarget[BUBBLING_LISTENERS_KEY];
410
+ }
411
+
412
+ function setListenersMap(
413
+ eventTarget: EventTarget,
414
+ isCapture: boolean,
415
+ listenersMap: ListenersMap,
416
+ ): void {
417
+ if (isCapture) {
418
+ // $FlowExpectedError[prop-missing]
419
+ eventTarget[CAPTURING_LISTENERS_KEY] = listenersMap;
420
+ } else {
421
+ // $FlowExpectedError[prop-missing]
422
+ eventTarget[BUBBLING_LISTENERS_KEY] = listenersMap;
423
+ }
424
+ }
425
+
426
+ const EVENT_DISPATCH_FLAG = Symbol('Event.dispatch');
427
+
428
+ function getEventDispatchFlag(event: Event): boolean {
429
+ // $FlowExpectedError[prop-missing]
430
+ return event[EVENT_DISPATCH_FLAG];
431
+ }
432
+
433
+ function setEventDispatchFlag(event: Event, value: boolean): void {
434
+ // $FlowExpectedError[prop-missing]
435
+ event[EVENT_DISPATCH_FLAG] = value;
436
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ /**
12
+ * This method contains internal implementation details for the `Event` module
13
+ * and it is defined in a separate module to keep the exports in `Event` clean
14
+ * (only with public exports).
15
+ */
16
+
17
+ import type Event, {EventPhase} from '../Event';
18
+ import type EventTarget from '../EventTarget';
19
+
20
+ export const COMPOSED_PATH_KEY: symbol = Symbol('composedPath');
21
+ export const CURRENT_TARGET_KEY: symbol = Symbol('currentTarget');
22
+ export const EVENT_PHASE_KEY: symbol = Symbol('eventPhase');
23
+ export const IN_PASSIVE_LISTENER_FLAG_KEY: symbol = Symbol(
24
+ 'inPassiveListenerFlag',
25
+ );
26
+ export const IS_TRUSTED_KEY: symbol = Symbol('isTrusted');
27
+ export const STOP_IMMEDIATE_PROPAGATION_FLAG_KEY: symbol = Symbol(
28
+ 'stopPropagationFlag',
29
+ );
30
+ export const STOP_PROPAGATION_FLAG_KEY: symbol = Symbol('stopPropagationFlag');
31
+ export const TARGET_KEY: symbol = Symbol('target');
32
+
33
+ export function getCurrentTarget(event: Event): EventTarget | null {
34
+ // $FlowExpectedError[prop-missing]
35
+ return event[CURRENT_TARGET_KEY];
36
+ }
37
+
38
+ export function setCurrentTarget(
39
+ event: Event,
40
+ currentTarget: EventTarget | null,
41
+ ): void {
42
+ // $FlowExpectedError[prop-missing]
43
+ event[CURRENT_TARGET_KEY] = currentTarget;
44
+ }
45
+
46
+ export function getComposedPath(event: Event): $ReadOnlyArray<EventTarget> {
47
+ // $FlowExpectedError[prop-missing]
48
+ return event[COMPOSED_PATH_KEY];
49
+ }
50
+
51
+ export function setComposedPath(
52
+ event: Event,
53
+ composedPath: $ReadOnlyArray<EventTarget>,
54
+ ): void {
55
+ // $FlowExpectedError[prop-missing]
56
+ event[COMPOSED_PATH_KEY] = composedPath;
57
+ }
58
+
59
+ export function getEventPhase(event: Event): EventPhase {
60
+ // $FlowExpectedError[prop-missing]
61
+ return event[EVENT_PHASE_KEY];
62
+ }
63
+
64
+ export function setEventPhase(event: Event, eventPhase: EventPhase): void {
65
+ // $FlowExpectedError[prop-missing]
66
+ event[EVENT_PHASE_KEY] = eventPhase;
67
+ }
68
+
69
+ export function getInPassiveListenerFlag(event: Event): boolean {
70
+ // $FlowExpectedError[prop-missing]
71
+ return event[IN_PASSIVE_LISTENER_FLAG_KEY];
72
+ }
73
+
74
+ export function setInPassiveListenerFlag(event: Event, value: boolean): void {
75
+ // $FlowExpectedError[prop-missing]
76
+ event[IN_PASSIVE_LISTENER_FLAG_KEY] = value;
77
+ }
78
+
79
+ export function getIsTrusted(event: Event): boolean {
80
+ // $FlowExpectedError[prop-missing]
81
+ return event[IS_TRUSTED_KEY];
82
+ }
83
+
84
+ export function setIsTrusted(event: Event, isTrusted: boolean): void {
85
+ // $FlowExpectedError[prop-missing]
86
+ event[IS_TRUSTED_KEY] = isTrusted;
87
+ }
88
+
89
+ export function getStopImmediatePropagationFlag(event: Event): boolean {
90
+ // $FlowExpectedError[prop-missing]
91
+ return event[STOP_IMMEDIATE_PROPAGATION_FLAG_KEY];
92
+ }
93
+
94
+ export function setStopImmediatePropagationFlag(
95
+ event: Event,
96
+ value: boolean,
97
+ ): void {
98
+ // $FlowExpectedError[prop-missing]
99
+ event[STOP_IMMEDIATE_PROPAGATION_FLAG_KEY] = value;
100
+ }
101
+
102
+ export function getStopPropagationFlag(event: Event): boolean {
103
+ // $FlowExpectedError[prop-missing]
104
+ return event[STOP_PROPAGATION_FLAG_KEY];
105
+ }
106
+
107
+ export function setStopPropagationFlag(event: Event, value: boolean): void {
108
+ // $FlowExpectedError[prop-missing]
109
+ event[STOP_PROPAGATION_FLAG_KEY] = value;
110
+ }
111
+
112
+ export function getTarget(event: Event): EventTarget | null {
113
+ // $FlowExpectedError[prop-missing]
114
+ return event[TARGET_KEY];
115
+ }
116
+
117
+ export function setTarget(event: Event, target: EventTarget | null): void {
118
+ // $FlowExpectedError[prop-missing]
119
+ event[TARGET_KEY] = target;
120
+ }