@office-iss/react-native-win32 0.68.0-preview.3 → 0.69.0-preview.2

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 (180) hide show
  1. package/.flowconfig +1 -3
  2. package/CHANGELOG.json +388 -22
  3. package/CHANGELOG.md +162 -13
  4. package/IntegrationTests/BUCK +4 -1
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  6. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  7. package/Libraries/Alert/Alert.win32.js +1 -1
  8. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  9. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  10. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  11. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  12. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  13. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  14. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  16. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  18. package/Libraries/AppState/AppState.js +1 -1
  19. package/Libraries/Blob/URL.js +7 -1
  20. package/Libraries/Components/Button.js +3 -0
  21. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  22. package/Libraries/Components/Pressable/Pressable.js +3 -3
  23. package/Libraries/Components/Pressable/Pressable.win32.js +3 -3
  24. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  25. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  26. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  27. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  28. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  29. package/Libraries/Components/Slider/Slider.js +0 -2
  30. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  31. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  32. package/Libraries/Components/Switch/Switch.js +13 -2
  33. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  34. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  35. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  36. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  37. package/Libraries/Components/TextInput/TextInput.js +1 -8
  38. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  39. package/Libraries/Components/TextInput/TextInputState.win32.js +10 -2
  40. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  41. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  42. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  43. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  44. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  45. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +3 -1
  46. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  47. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  48. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  49. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  50. package/Libraries/Components/View/View.win32.js +33 -1
  51. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  52. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  53. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -4
  54. package/Libraries/Components/View/ViewWin32.Props.d.ts +1 -1
  55. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  56. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  57. package/Libraries/Core/ExceptionsManager.js +1 -1
  58. package/Libraries/Core/RawEventEmitter.js +38 -0
  59. package/Libraries/Core/ReactNativeVersion.js +2 -2
  60. package/Libraries/Core/polyfillPromise.js +32 -0
  61. package/Libraries/Core/setUpReactDevTools.js +3 -2
  62. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  63. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  64. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  65. package/Libraries/Events/CustomEvent.js +32 -0
  66. package/Libraries/Events/EventPolyfill.js +239 -0
  67. package/Libraries/Image/Image.android.js +0 -6
  68. package/Libraries/Image/Image.ios.js +0 -6
  69. package/Libraries/Image/Image.win32.js +2 -8
  70. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  71. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  72. package/Libraries/Image/resolveAssetSource.win32.js +1 -1
  73. package/Libraries/Inspector/Inspector.js +2 -4
  74. package/Libraries/Inspector/Inspector.win32.js +7 -9
  75. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  76. package/Libraries/Interaction/InteractionManager.js +1 -12
  77. package/Libraries/Interaction/TaskQueue.js +5 -4
  78. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  79. package/Libraries/Linking/Linking.js +1 -1
  80. package/Libraries/Lists/FlatList.js +27 -6
  81. package/Libraries/Lists/VirtualizedList.js +71 -55
  82. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  83. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  84. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  85. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  86. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  87. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  88. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +92 -43
  89. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +16 -14
  90. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  91. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  92. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  93. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  94. package/Libraries/LogBox/LogBox.js +2 -21
  95. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  96. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  97. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.win32.js +334 -0
  100. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  101. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  102. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  103. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  104. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  105. package/Libraries/Network/FormData.js +7 -1
  106. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  107. package/Libraries/Pressability/Pressability.js +115 -46
  108. package/Libraries/Pressability/Pressability.win32.js +174 -69
  109. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  110. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  111. package/Libraries/ReactNative/AppContainer.js +1 -1
  112. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  113. package/Libraries/ReactNative/PaperUIManager.win32.js +5 -5
  114. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  115. package/Libraries/ReactNative/UIManager.js +2 -3
  116. package/Libraries/ReactNative/renderApplication.js +4 -0
  117. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  118. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  119. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  120. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  121. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  124. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  125. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  126. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  127. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  128. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  129. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  130. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  131. package/Libraries/Text/Text.js +13 -7
  132. package/Libraries/Text/TextNativeComponent.js +2 -0
  133. package/Libraries/Text/TextNativeComponent.win32.js +2 -0
  134. package/Libraries/Text/TextProps.js +10 -0
  135. package/Libraries/Types/CoreEventTypes.js +13 -1
  136. package/Libraries/Types/CoreEventTypes.win32.js +26 -1
  137. package/Libraries/Utilities/Appearance.js +0 -8
  138. package/Libraries/Utilities/HMRClient.js +1 -1
  139. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  140. package/Libraries/Utilities/codegenNativeComponent.js +17 -6
  141. package/Libraries/Utilities/stringifySafe.js +4 -1
  142. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  143. package/Libraries/WebSocket/WebSocket.js +1 -1
  144. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  145. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  146. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  147. package/index.js +30 -25
  148. package/index.win32.js +30 -25
  149. package/jest/preprocessor.js +24 -107
  150. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  151. package/metro.config.js +3 -47
  152. package/overrides.json +39 -46
  153. package/package.json +28 -27
  154. package/rntypes/index.d.ts +19 -7
  155. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +1 -1
  156. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +3 -1
  157. package/src/Libraries/Components/View/ViewWin32.Props.ts +1 -0
  158. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +427 -0
  159. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +391 -0
  160. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizeUtils-test.js.snap +3 -0
  161. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +4565 -0
  162. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +1153 -0
  163. package/src/rntypes/index.d.ts +19 -7
  164. package/typings-index.js +5 -1
  165. package/typings-index.js.map +1 -1
  166. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  167. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  168. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  169. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -45
  170. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  171. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -401
  172. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  173. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  174. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  175. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  176. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  177. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  178. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  179. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  180. package/flow/Promise.js +0 -47
@@ -1 +1 @@
1
- {"version":3,"file":"ViewWin32.Props.js","sourceRoot":"","sources":["../../../src/Libraries/Components/View/ViewWin32.Props.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAeb,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2CAAI,CAAA;IACJ,qDAAS,CAAA;IACT,mDAAQ,CAAA;IACR,mDAAQ,CAAA;AACV,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB","sourcesContent":["'use strict';\nimport React from 'react'\nimport RN = require('react-native');\n\n// removes from interface T the members of interface K\ntype Omit<T, K> = Pick<T, Exclude<keyof T, keyof K>>;\n\n// All of T becomes optional except for Keys\ntype PartiallyRequired<T, Keys extends keyof T = keyof T> = Pick<Partial<T>, Exclude<keyof T, Keys>> & Pick<T, Keys>;\n\n/**\n * All of TOrigin except Key from TUse\n */\nexport type UseFrom<TOrigin, TUse, Key extends keyof TUse> = Pick<TOrigin, Exclude<keyof TOrigin, Key>> & Pick<TUse, Key>;\n\nexport enum EventPhase {\n None,\n Capturing,\n AtTarget,\n Bubbling\n}\n\nexport interface INativeKeyboardEvent {\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n key: string;\n eventPhase: EventPhase;\n}\nexport type IKeyboardEvent = RN.NativeSyntheticEvent<INativeKeyboardEvent>;\nexport type IHandledKeyboardEvent = PartiallyRequired<INativeKeyboardEvent, 'key'>;\n\nexport interface IViewWin32 {\n focus: () => void;\n}\n\nexport type ARIARole =\n | 'alert'\n | 'alertdialog'\n | 'application'\n | 'button'\n | 'checkbox'\n | 'combobox'\n | 'dialog'\n | 'group'\n | 'link'\n | 'menu'\n | 'menubar'\n | 'menuitem'\n | 'none'\n | 'presentation'\n | 'progressbar'\n | 'radio'\n | 'radiogroup'\n | 'scrollbar'\n | 'search'\n | 'spinbutton'\n | 'switch'\n | 'tab'\n | 'tablist'\n | 'tabpanel'\n | 'textbox'\n | 'timer'\n | 'toolbar'\n | 'tree'\n | 'treeitem';\n\nexport type AnnotationType =\n | 'AdvanceProofingIssue'\n | 'Author'\n | 'CircularReferenceError'\n | 'Comment'\n | 'ConflictingChange'\n | 'DataValidationError'\n | 'DeletionChange'\n | 'EditingLockedChange'\n | 'Endnote'\n | 'ExternalChange'\n | 'Footer'\n | 'Footnote'\n | 'FormatChange'\n | 'FormulaError'\n | 'GrammarError'\n | 'Header'\n | 'Highlighted'\n | 'InsertionChange'\n | 'Mathematics'\n | 'MoveChange'\n | 'SpellingError'\n | 'TrackChanges'\n | 'Unknown'\n | 'UnsyncedChange';\n\nexport type AccessibilityAnnotationInfo = Readonly<{\n typeID: AnnotationType;\n typeName?: string;\n author?: string;\n dateTime?: string;\n target?: string;\n}>;\n\nexport type AccessibilityActionName =\n | RN.AccessibilityActionName\n | 'AddToSelection'\n | 'RemoveFromSelection'\n | 'Select'\n | 'Expand'\n | 'Collapse';\n\nexport type Cursor =\n | 'auto'\n | 'default'\n | 'pointer'\n | 'help'\n | 'not-allowed'\n | 'wait'\n | 'move'\n | 'nesw-resize'\n | 'ns-resize'\n | 'nwse-resize'\n | 'we-resize'\n | 'text'\n\nexport type AccessibilityActionInfo = Readonly<{\n name: AccessibilityActionName;\n label?: string;\n}>;\n\nexport type AccessibilityState = RN.AccessibilityState & { multiselectable?: boolean, required?: boolean };\n\nexport type SharedAccessibilityPropsIOSandWin32 = {\n onAccessibilityTap?: () => void;\n};\n\nexport type OmittedAccessibilityPropsWin32 = {\n accessibilityActions?: ReadonlyArray<RN.AccessibilityActionInfo>;\n accessibilityRole?: RN.AccessibilityRole;\n accessibilityState?: RN.AccessibilityState;\n};\n\nexport type BasePropsWin32 = {\n /**\n * Tells a person using a screen reader the type of element they are focused on.\n *\n * Overrides the `accessibilityRole` prop on React Native to accept a subset of ARIA roles.\n *\n * Possible values for ARIARole are: alert, alertdialog, application, button, checkbox,\n * comobox, dialog, group, link, menu, menubar, menuitem, none, presentation, progressbar,\n * radio, radiogroup, scrollbar, search, spinbutton, switch, tab, tablist, tabpanel, textbox,\n * timer, toolbar, tree, and treeitem.\n */\n accessibilityRole?: RN.AccessibilityRole | ARIARole;\n accessibilityState?: AccessibilityState;\n accessibilityActions?: ReadonlyArray<AccessibilityActionInfo>;\n\n /**\n * Windows Accessibility extensions for allowing other DOM elements to label or describe a given element.\n *\n * Defined as a reference to another DOM element inheriting from the primary base classes of React-Native elements.\n * The reference will be converted to a native reference (tag) before passing to the native platform.\n */\n accessibilityDescribedBy?: React.RefObject<any>;\n accessibilityLabeledBy?: React.RefObject<any>;\n\n /**\n * Identifies the element whose contents or presence are controlled by another element. \n * \n * This is mainly used for a Textbox with a Dropdown PeoplePicker-type list. This allows an \n * accessibility tool to query those other providers for properties and listen to their events.\n */\n accessibilityControls?: React.RefObject<any>; \n\n /**\n * Identifies the ItemType property, which is a text string describing the type of the automation element.\n * ItemType is used to obtain information about items in a list, tree view, or data grid. For example, an item in a file directory view might be a \"Document File\" or a \"Folder\".\n */\n accessibilityItemType?: string;\n};\n\nexport type ViewWin32OmitTypes = RN.ViewPropsAndroid &\n RN.ViewPropsIOS &\n RN.AccessibilityPropsAndroid &\n Omit<RN.AccessibilityPropsIOS, SharedAccessibilityPropsIOSandWin32> &\n OmittedAccessibilityPropsWin32;\n\n/**\n * Properties for ViewWin32 component\n */\nexport interface IViewWin32Props extends Omit<RN.ViewProps, ViewWin32OmitTypes>, BasePropsWin32 {\n type?: React.ElementType;\n children?: React.ReactNode;\n accessibilityActions?: ReadonlyArray<AccessibilityActionInfo>;\n /**\n * Tells a person using a screen reader what kind of annotation they\n * have selected. If available, it will also tell a person the author of the annotation and\n * the date and time the annotation was posted.\n *\n * Note: If typeID is 'Unknown', a typeName must be provided.\n */\n accessibilityAnnotation?: AccessibilityAnnotationInfo;\n /**\n * accessibilityDescription provides more detailed information specific to the element (i.e. last edit date, full location for a file)\n * while accessibilityHint provides infomation on what will happen when they perform an action.\n *\n */\n accessibilityDescription?: string;\n accessibilityLevel?: number;\n accessibilityPositionInSet?: number;\n\n accessibilitySetSize?: number;\n animationClass?: string;\n focusable?: boolean;\n enableFocusRing?: boolean;\n\n /**\n * The onBlur event occurs when an element loses focus. The opposite of onBlur is onFocus. Note that in React\n * Native, unlike in the web, the onBlur event bubbles (similar to onFocusOut in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onBlur?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n /**\n * The onBlur event occurs when an element loses focus. The opposite of onBlur is onFocus. Note that in React\n * Native, unlike in the web, the onBlur event bubbles (similar to onFocusOut in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onBlurCapture?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n /**\n * The onFocus event occurs when an element gets focus. The opposite of onFocus is onBlur. Note that in React\n * Native, unlike in the web, the onFocus event bubbles (similar to onFocusIn in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onFocus?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n /**\n * The onFocus event occurs when an element gets focus. The opposite of onFocus is onBlur. Note that in React\n * Native, unlike in the web, the onFocus event bubbles (similar to onFocusIn in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onFocusCapture?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n\n onKeyDown?: (args: IKeyboardEvent) => void;\n onKeyDownCapture?: (args: IKeyboardEvent) => void;\n onKeyUp?: (args: IKeyboardEvent) => void;\n onKeyUpCapture?: (args: IKeyboardEvent) => void;\n\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n\n keyDownEvents?: IHandledKeyboardEvent[];\n keyUpEvents?: IHandledKeyboardEvent[];\n\n /**\n * Provides a screentip to be used on hover of the view\n */\n tooltip?: string;\n cursor?: Cursor;\n}\n"]}
1
+ {"version":3,"file":"ViewWin32.Props.js","sourceRoot":"","sources":["../../../src/Libraries/Components/View/ViewWin32.Props.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAeb,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2CAAI,CAAA;IACJ,qDAAS,CAAA;IACT,mDAAQ,CAAA;IACR,mDAAQ,CAAA;AACV,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB","sourcesContent":["'use strict';\nimport React from 'react'\nimport RN = require('react-native');\n\n// removes from interface T the members of interface K\ntype Omit<T, K> = Pick<T, Exclude<keyof T, keyof K>>;\n\n// All of T becomes optional except for Keys\ntype PartiallyRequired<T, Keys extends keyof T = keyof T> = Pick<Partial<T>, Exclude<keyof T, Keys>> & Pick<T, Keys>;\n\n/**\n * All of TOrigin except Key from TUse\n */\nexport type UseFrom<TOrigin, TUse, Key extends keyof TUse> = Pick<TOrigin, Exclude<keyof TOrigin, Key>> & Pick<TUse, Key>;\n\nexport enum EventPhase {\n None,\n Capturing,\n AtTarget,\n Bubbling\n}\n\nexport interface INativeKeyboardEvent {\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n key: string;\n eventPhase: EventPhase;\n}\nexport type IKeyboardEvent = RN.NativeSyntheticEvent<INativeKeyboardEvent>;\nexport type IHandledKeyboardEvent = PartiallyRequired<INativeKeyboardEvent, 'key'>;\n\nexport interface IViewWin32 {\n focus: () => void;\n}\n\nexport type ARIARole =\n | 'alert'\n | 'alertdialog'\n | 'application'\n | 'button'\n | 'checkbox'\n | 'combobox'\n | 'dialog'\n | 'group'\n | 'link'\n | 'listitem'\n | 'menu'\n | 'menubar'\n | 'menuitem'\n | 'none'\n | 'presentation'\n | 'progressbar'\n | 'radio'\n | 'radiogroup'\n | 'scrollbar'\n | 'search'\n | 'spinbutton'\n | 'switch'\n | 'tab'\n | 'tablist'\n | 'tabpanel'\n | 'textbox'\n | 'timer'\n | 'toolbar'\n | 'tree'\n | 'treeitem';\n\nexport type AnnotationType =\n | 'AdvanceProofingIssue'\n | 'Author'\n | 'CircularReferenceError'\n | 'Comment'\n | 'ConflictingChange'\n | 'DataValidationError'\n | 'DeletionChange'\n | 'EditingLockedChange'\n | 'Endnote'\n | 'ExternalChange'\n | 'Footer'\n | 'Footnote'\n | 'FormatChange'\n | 'FormulaError'\n | 'GrammarError'\n | 'Header'\n | 'Highlighted'\n | 'InsertionChange'\n | 'Mathematics'\n | 'MoveChange'\n | 'SpellingError'\n | 'TrackChanges'\n | 'Unknown'\n | 'UnsyncedChange';\n\nexport type AccessibilityAnnotationInfo = Readonly<{\n typeID: AnnotationType;\n typeName?: string;\n author?: string;\n dateTime?: string;\n target?: string;\n}>;\n\nexport type AccessibilityActionName =\n | RN.AccessibilityActionName\n | 'AddToSelection'\n | 'RemoveFromSelection'\n | 'Select'\n | 'Expand'\n | 'Collapse';\n\nexport type Cursor =\n | 'auto'\n | 'default'\n | 'pointer'\n | 'help'\n | 'not-allowed'\n | 'wait'\n | 'move'\n | 'nesw-resize'\n | 'ns-resize'\n | 'nwse-resize'\n | 'we-resize'\n | 'text'\n\nexport type AccessibilityActionInfo = Readonly<{\n name: AccessibilityActionName;\n label?: string;\n}>;\n\nexport type AccessibilityState = RN.AccessibilityState & { multiselectable?: boolean, required?: boolean };\n\nexport type SharedAccessibilityPropsIOSandWin32 = {\n onAccessibilityTap?: () => void;\n};\n\nexport type OmittedAccessibilityPropsWin32 = {\n accessibilityActions?: ReadonlyArray<RN.AccessibilityActionInfo>;\n accessibilityRole?: RN.AccessibilityRole;\n accessibilityState?: RN.AccessibilityState;\n};\n\nexport type BasePropsWin32 = {\n /**\n * Tells a person using a screen reader the type of element they are focused on.\n *\n * Overrides the `accessibilityRole` prop on React Native to accept a subset of ARIA roles.\n *\n * Possible values for ARIARole are: alert, alertdialog, application, button, checkbox,\n * comobox, dialog, group, link, menu, menubar, menuitem, none, presentation, progressbar,\n * radio, radiogroup, scrollbar, search, spinbutton, switch, tab, tablist, tabpanel, textbox,\n * timer, toolbar, tree, and treeitem.\n */\n accessibilityRole?: RN.AccessibilityRole | ARIARole;\n accessibilityState?: AccessibilityState;\n accessibilityActions?: ReadonlyArray<AccessibilityActionInfo>;\n\n /**\n * Windows Accessibility extensions for allowing other DOM elements to label or describe a given element.\n *\n * Defined as a reference to another DOM element inheriting from the primary base classes of React-Native elements.\n * The reference will be converted to a native reference (tag) before passing to the native platform.\n */\n accessibilityDescribedBy?: React.RefObject<any>;\n accessibilityLabeledBy?: React.RefObject<any>;\n\n /**\n * Identifies the element whose contents or presence are controlled by another element. \n * \n * This is mainly used for a Textbox with a Dropdown PeoplePicker-type list. This allows an \n * accessibility tool to query those other providers for properties and listen to their events.\n */\n accessibilityControls?: React.RefObject<any>; \n\n /**\n * Identifies the ItemType property, which is a text string describing the type of the automation element.\n * ItemType is used to obtain information about items in a list, tree view, or data grid. For example, an item in a file directory view might be a \"Document File\" or a \"Folder\".\n */\n accessibilityItemType?: string;\n};\n\nexport type ViewWin32OmitTypes = RN.ViewPropsAndroid &\n RN.ViewPropsIOS &\n RN.AccessibilityPropsAndroid &\n Omit<RN.AccessibilityPropsIOS, SharedAccessibilityPropsIOSandWin32> &\n OmittedAccessibilityPropsWin32;\n\n/**\n * Properties for ViewWin32 component\n */\nexport interface IViewWin32Props extends Omit<RN.ViewProps, ViewWin32OmitTypes>, BasePropsWin32 {\n type?: React.ElementType;\n children?: React.ReactNode;\n accessibilityActions?: ReadonlyArray<AccessibilityActionInfo>;\n /**\n * Tells a person using a screen reader what kind of annotation they\n * have selected. If available, it will also tell a person the author of the annotation and\n * the date and time the annotation was posted.\n *\n * Note: If typeID is 'Unknown', a typeName must be provided.\n */\n accessibilityAnnotation?: AccessibilityAnnotationInfo;\n /**\n * accessibilityDescription provides more detailed information specific to the element (i.e. last edit date, full location for a file)\n * while accessibilityHint provides infomation on what will happen when they perform an action.\n *\n */\n accessibilityDescription?: string;\n accessibilityLevel?: number;\n accessibilityPositionInSet?: number;\n\n accessibilitySetSize?: number;\n animationClass?: string;\n focusable?: boolean;\n enableFocusRing?: boolean;\n\n /**\n * The onBlur event occurs when an element loses focus. The opposite of onBlur is onFocus. Note that in React\n * Native, unlike in the web, the onBlur event bubbles (similar to onFocusOut in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onBlur?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n /**\n * The onBlur event occurs when an element loses focus. The opposite of onBlur is onFocus. Note that in React\n * Native, unlike in the web, the onBlur event bubbles (similar to onFocusOut in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onBlurCapture?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n /**\n * The onFocus event occurs when an element gets focus. The opposite of onFocus is onBlur. Note that in React\n * Native, unlike in the web, the onFocus event bubbles (similar to onFocusIn in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onFocus?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n /**\n * The onFocus event occurs when an element gets focus. The opposite of onFocus is onBlur. Note that in React\n * Native, unlike in the web, the onFocus event bubbles (similar to onFocusIn in the web).\n *\n * `ev.target === ev.currentTarget` when the focus is being lost from this component.\n * `ev.target !== ev.currentTarget` when the focus is being lost from a descendant.\n */\n onFocusCapture?: (ev: RN.NativeSyntheticEvent<{}>) => void;\n\n onKeyDown?: (args: IKeyboardEvent) => void;\n onKeyDownCapture?: (args: IKeyboardEvent) => void;\n onKeyUp?: (args: IKeyboardEvent) => void;\n onKeyUpCapture?: (args: IKeyboardEvent) => void;\n\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n\n keyDownEvents?: IHandledKeyboardEvent[];\n keyUpEvents?: IHandledKeyboardEvent[];\n\n /**\n * Provides a screentip to be used on hover of the view\n */\n tooltip?: string;\n cursor?: Cursor;\n}\n"]}
@@ -100,7 +100,7 @@ function parseLine(line: string): ?HermesStackEntry {
100
100
 
101
101
  module.exports = function parseHermesStack(stack: string): HermesParsedStack {
102
102
  const lines = stack.split(/\n/);
103
- let entries = [];
103
+ let entries: Array<HermesStackEntryFrame | HermesStackEntrySkipped> = [];
104
104
  let lastMessageLine = -1;
105
105
  for (let i = 0; i < lines.length; ++i) {
106
106
  const line = lines[i];
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  * @format
8
- * @flow strict-local
8
+ * @flow strict
9
9
  */
10
10
 
11
11
  'use strict';
@@ -0,0 +1,38 @@
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-local
8
+ * @format
9
+ */
10
+
11
+ import EventEmitter from '../vendor/emitter/EventEmitter';
12
+ import type {IEventEmitter} from '../vendor/emitter/EventEmitter';
13
+
14
+ export type RawEventEmitterEvent = $ReadOnly<{|
15
+ eventName: string,
16
+ // We expect, but do not/cannot require, that nativeEvent is an object
17
+ // with the properties: key, elementType (string), type (string), tag (numeric),
18
+ // and a stateNode of the native element/Fiber the event was emitted to.
19
+ nativeEvent: {[string]: mixed},
20
+ |}>;
21
+
22
+ type RawEventDefinitions = {
23
+ [eventChannel: string]: [RawEventEmitterEvent],
24
+ };
25
+
26
+ const RawEventEmitter: IEventEmitter<RawEventDefinitions> =
27
+ new EventEmitter<RawEventDefinitions>();
28
+
29
+ // See the React renderer / react repo for how this is used.
30
+ // Raw events are emitted here when they are received in JS
31
+ // and before any event Plugins process them or before components
32
+ // have a chance to respond to them. This allows you to implement
33
+ // app-specific perf monitoring, which is unimplemented by default,
34
+ // making this entire RawEventEmitter do nothing by default until
35
+ // *you* add listeners for your own app.
36
+ // Besides perf monitoring and maybe debugging, this RawEventEmitter
37
+ // should not be used.
38
+ export default RawEventEmitter;
@@ -11,7 +11,7 @@
11
11
 
12
12
  exports.version = {
13
13
  major: 0,
14
- minor: 68,
14
+ minor: 69,
15
15
  patch: 0,
16
- prerelease: 'rc.2',
16
+ prerelease: 'rc.0',
17
17
  };
@@ -11,6 +11,7 @@
11
11
  'use strict';
12
12
 
13
13
  const {polyfillGlobal} = require('../Utilities/PolyfillFunctions');
14
+ const warnOnce = require('../Utilities/warnOnce');
14
15
 
15
16
  /**
16
17
  * Set up Promise. The native Promise implementation throws the following error:
@@ -36,3 +37,34 @@ if (global?.HermesInternal?.hasPromise?.()) {
36
37
  } else {
37
38
  polyfillGlobal('Promise', () => require('../Promise'));
38
39
  }
40
+
41
+ if (__DEV__) {
42
+ // $FlowFixMe
43
+ const done = Promise.prototype.done;
44
+ if (done != null) {
45
+ let depth = 0;
46
+ /* eslint-disable no-extend-native */
47
+ // $FlowFixMe
48
+ Promise.prototype.done = function () {
49
+ ++depth;
50
+ try {
51
+ // Avoid infinite recursion if done() happens to be triggered by warnOnce.
52
+ if (depth === 1) {
53
+ // Warn once per unique call stack. Not super efficient, but we're in
54
+ // __DEV__ and .done() calls are rare to begin with.
55
+ const key = new Error().stack;
56
+ warnOnce(
57
+ key,
58
+ 'Promise.prototype.done(): This nonstandard polyfill ' +
59
+ 'has been deprecated and will be removed in a future release. ' +
60
+ 'Please instead use `.then()`.',
61
+ );
62
+ }
63
+ } finally {
64
+ --depth;
65
+ }
66
+ return done.apply(this, arguments);
67
+ };
68
+ /* eslint-enable no-extend-native */
69
+ }
70
+ }
@@ -58,12 +58,13 @@ if (__DEV__) {
58
58
  isWebSocketOpen = true;
59
59
  });
60
60
 
61
- const viewConfig = require('../Components/View/ReactNativeViewViewConfig');
61
+ const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
62
+
62
63
  reactDevTools.connectToDevTools({
63
64
  isAppActive,
64
65
  resolveRNStyle: require('../StyleSheet/flattenStyle'),
65
66
  nativeStyleEditorValidAttributes: Object.keys(
66
- viewConfig.validAttributes.style,
67
+ ReactNativeStyleAttributes,
67
68
  ),
68
69
  websocket: ws,
69
70
  });
@@ -10,9 +10,9 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import {
14
- type EventSubscription,
15
- type IEventEmitter,
13
+ import type {
14
+ EventSubscription,
15
+ IEventEmitter,
16
16
  } from '../vendor/emitter/EventEmitter';
17
17
  import Platform from '../Utilities/Platform';
18
18
  import RCTDeviceEventEmitter from './RCTDeviceEventEmitter';
@@ -8,7 +8,8 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import EventEmitter, {type IEventEmitter} from '../vendor/emitter/EventEmitter';
11
+ import EventEmitter from '../vendor/emitter/EventEmitter';
12
+ import type {IEventEmitter} from '../vendor/emitter/EventEmitter';
12
13
 
13
14
  // FIXME: use typed events
14
15
  type RCTDeviceEventDefinitions = $FlowFixMe;
@@ -8,9 +8,9 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- import {
12
- type EventSubscription,
13
- type IEventEmitter,
11
+ import type {
12
+ EventSubscription,
13
+ IEventEmitter,
14
14
  } from '../../vendor/emitter/EventEmitter';
15
15
  import RCTDeviceEventEmitter from '../RCTDeviceEventEmitter';
16
16
 
@@ -0,0 +1,32 @@
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
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ // Make sure global Event is defined
12
+ import EventPolyfill from './EventPolyfill';
13
+
14
+ type CustomEvent$Options = $ReadOnly<{|
15
+ bubbles?: boolean,
16
+ cancelable?: boolean,
17
+ composed?: boolean,
18
+ detail?: {...},
19
+ |}>;
20
+
21
+ class CustomEvent extends EventPolyfill {
22
+ detail: ?{...};
23
+
24
+ constructor(typeArg: string, options: CustomEvent$Options) {
25
+ const {bubbles, cancelable, composed} = options;
26
+ super(typeArg, {bubbles, cancelable, composed});
27
+
28
+ this.detail = options.detail; // this would correspond to `NativeEvent` in SyntheticEvent
29
+ }
30
+ }
31
+
32
+ export default CustomEvent;
@@ -0,0 +1,239 @@
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
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ // https://dom.spec.whatwg.org/#dictdef-eventinit
12
+ type Event$Init = {
13
+ bubbles?: boolean,
14
+ cancelable?: boolean,
15
+ composed?: boolean,
16
+ /** Non-standard. See `composed` instead. */
17
+ scoped?: boolean,
18
+ ...
19
+ };
20
+
21
+ /**
22
+ * This is a copy of the Event interface defined in Flow:
23
+ * https://github.com/facebook/flow/blob/741104e69c43057ebd32804dd6bcc1b5e97548ea/lib/dom.js
24
+ * which is itself a faithful interface of the W3 spec:
25
+ * https://dom.spec.whatwg.org/#interface-event
26
+ *
27
+ * Since Flow assumes that Event is provided and is on the global object,
28
+ * we must provide an implementation of Event for CustomEvent (and future
29
+ * alignment of React Native's event system with the W3 spec).
30
+ */
31
+ interface IEvent {
32
+ constructor(type: string, eventInitDict?: Event$Init): void;
33
+ /**
34
+ * Returns the type of event, e.g. "click", "hashchange", or "submit".
35
+ */
36
+ +type: string;
37
+ /**
38
+ * Returns the object to which event is dispatched (its target).
39
+ */
40
+ +target: EventTarget; // TODO: nullable
41
+ /** @deprecated */
42
+ +srcElement: Element; // TODO: nullable
43
+ /**
44
+ * Returns the object whose event listener's callback is currently being invoked.
45
+ */
46
+ +currentTarget: EventTarget; // TODO: nullable
47
+ /**
48
+ * Returns the invocation target objects of event's path (objects on which
49
+ * listeners will be invoked), except for any nodes in shadow trees of which
50
+ * the shadow root's mode is "closed" that are not reachable from event's
51
+ * currentTarget.
52
+ */
53
+ composedPath(): Array<EventTarget>;
54
+
55
+ +NONE: number;
56
+ +AT_TARGET: number;
57
+ +BUBBLING_PHASE: number;
58
+ +CAPTURING_PHASE: number;
59
+ /**
60
+ * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET,
61
+ * and BUBBLING_PHASE.
62
+ */
63
+ +eventPhase: number;
64
+
65
+ /**
66
+ * When dispatched in a tree, invoking this method prevents event from reaching
67
+ * any objects other than the current object.
68
+ */
69
+ stopPropagation(): void;
70
+ /**
71
+ * Invoking this method prevents event from reaching any registered event
72
+ * listeners after the current one finishes running and, when dispatched in a
73
+ * tree, also prevents event from reaching any other objects.
74
+ */
75
+ stopImmediatePropagation(): void;
76
+
77
+ /**
78
+ * Returns true or false depending on how event was initialized. True if
79
+ * event goes through its target's ancestors in reverse tree order, and
80
+ * false otherwise.
81
+ */
82
+ +bubbles: boolean;
83
+ /**
84
+ * Returns true or false depending on how event was initialized. Its
85
+ * return value does not always carry meaning, but true can indicate
86
+ * that part of the operation during which event was dispatched, can
87
+ * be canceled by invoking the preventDefault() method.
88
+ */
89
+ +cancelable: boolean;
90
+ // returnValue: boolean; // legacy, and some subclasses still define it as a string!
91
+ /**
92
+ * If invoked when the cancelable attribute value is true, and while
93
+ * executing a listener for the event with passive set to false, signals to
94
+ * the operation that caused event to be dispatched that it needs to be
95
+ * canceled.
96
+ */
97
+ preventDefault(): void;
98
+ /**
99
+ * Returns true if preventDefault() was invoked successfully to indicate
100
+ * cancelation, and false otherwise.
101
+ */
102
+ +defaultPrevented: boolean;
103
+ /**
104
+ * Returns true or false depending on how event was initialized. True if
105
+ * event invokes listeners past a ShadowRoot node that is the root of its
106
+ * target, and false otherwise.
107
+ */
108
+ +composed: boolean;
109
+
110
+ /**
111
+ * Returns true if event was dispatched by the user agent, and false otherwise.
112
+ */
113
+ +isTrusted: boolean;
114
+ /**
115
+ * Returns the event's timestamp as the number of milliseconds measured relative
116
+ * to the time origin.
117
+ */
118
+ +timeStamp: number;
119
+
120
+ /** Non-standard. See Event.prototype.composedPath */
121
+ +deepPath?: () => EventTarget[];
122
+ /** Non-standard. See Event.prototype.composed */
123
+ +scoped: boolean;
124
+
125
+ /**
126
+ * @deprecated
127
+ */
128
+ initEvent(type: string, bubbles: boolean, cancelable: boolean): void;
129
+ }
130
+
131
+ class EventPolyfill implements IEvent {
132
+ type: string;
133
+ bubbles: boolean;
134
+ cancelable: boolean;
135
+ composed: boolean;
136
+ // Non-standard. See `composed` instead.
137
+ scoped: boolean;
138
+ isTrusted: boolean;
139
+ defaultPrevented: boolean;
140
+ timeStamp: number;
141
+
142
+ // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase
143
+ NONE: number;
144
+ AT_TARGET: number;
145
+ BUBBLING_PHASE: number;
146
+ CAPTURING_PHASE: number;
147
+
148
+ eventPhase: number;
149
+
150
+ currentTarget: EventTarget; // TODO: nullable
151
+ target: EventTarget; // TODO: nullable
152
+ /** @deprecated */
153
+ srcElement: Element; // TODO: nullable
154
+
155
+ // React Native-specific: proxy data to a SyntheticEvent when
156
+ // certain methods are called.
157
+ // SyntheticEvent will also have a reference to this instance -
158
+ // it is circular - and both classes use this reference to keep
159
+ // data with the other in sync.
160
+ _syntheticEvent: mixed;
161
+
162
+ constructor(type: string, eventInitDict?: Event$Init): void {
163
+ this.type = type;
164
+ this.bubbles = !!(eventInitDict?.bubbles || false);
165
+ this.cancelable = !!(eventInitDict?.cancelable || false);
166
+ this.composed = !!(eventInitDict?.composed || false);
167
+ this.scoped = !!(eventInitDict?.scoped || false);
168
+
169
+ // TODO: somehow guarantee that only "private" instantiations of Event
170
+ // can set this to true
171
+ this.isTrusted = false;
172
+
173
+ // TODO: in the future we'll want to make sure this has the same
174
+ // time-basis as events originating from native
175
+ this.timeStamp = Date.now();
176
+
177
+ this.defaultPrevented = false;
178
+
179
+ // https://developer.mozilla.org/en-US/docs/Web/API/Event/eventPhase
180
+ this.NONE = 0;
181
+ this.AT_TARGET = 1;
182
+ this.BUBBLING_PHASE = 2;
183
+ this.CAPTURING_PHASE = 3;
184
+ this.eventPhase = this.NONE;
185
+
186
+ // $FlowFixMe
187
+ this.currentTarget = null;
188
+ // $FlowFixMe
189
+ this.target = null;
190
+ // $FlowFixMe
191
+ this.srcElement = null;
192
+ }
193
+
194
+ composedPath(): Array<EventTarget> {
195
+ throw new Error('TODO: not yet implemented');
196
+ }
197
+
198
+ preventDefault(): void {
199
+ this.defaultPrevented = true;
200
+
201
+ if (this._syntheticEvent != null) {
202
+ // $FlowFixMe
203
+ this._syntheticEvent.preventDefault();
204
+ }
205
+ }
206
+
207
+ initEvent(type: string, bubbles: boolean, cancelable: boolean): void {
208
+ throw new Error(
209
+ 'TODO: not yet implemented. This method is also deprecated.',
210
+ );
211
+ }
212
+
213
+ stopImmediatePropagation(): void {
214
+ throw new Error('TODO: not yet implemented');
215
+ }
216
+
217
+ stopPropagation(): void {
218
+ if (this._syntheticEvent != null) {
219
+ // $FlowFixMe
220
+ this._syntheticEvent.stopPropagation();
221
+ }
222
+ }
223
+
224
+ setSyntheticEvent(value: mixed): void {
225
+ this._syntheticEvent = value;
226
+ }
227
+ }
228
+
229
+ // Assertion magic for polyfill follows.
230
+ declare var checkEvent: Event;
231
+
232
+ /*::
233
+ // This can be a strict mode error at runtime so put it in a Flow comment.
234
+ (checkEvent: IEvent);
235
+ */
236
+
237
+ global.Event = EventPolyfill;
238
+
239
+ export default EventPolyfill;
@@ -306,12 +306,6 @@ Image.queryCache = queryCache;
306
306
  * comment and run Flow. */
307
307
  Image.resolveAssetSource = resolveAssetSource;
308
308
 
309
- /**
310
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
311
- * releases. This is deprecated and will be removed in the future.
312
- */
313
- Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
314
-
315
309
  const styles = StyleSheet.create({
316
310
  base: {
317
311
  overflow: 'hidden',
@@ -232,12 +232,6 @@ Image.queryCache = queryCache;
232
232
  * delete this comment and run Flow. */
233
233
  Image.resolveAssetSource = resolveAssetSource;
234
234
 
235
- /**
236
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
237
- * releases. This is deprecated and will be removed in the future.
238
- */
239
- Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
240
-
241
235
  const styles = StyleSheet.create({
242
236
  base: {
243
237
  overflow: 'hidden',
@@ -164,7 +164,7 @@ let Image = (props: ImagePropsType, forwardedRef) => {
164
164
  return (
165
165
  // [Win32
166
166
  <TextAncestor.Consumer>
167
- {(hasTextAncestor) => {
167
+ {hasTextAncestor => {
168
168
  invariant(
169
169
  !hasTextAncestor,
170
170
  'Nesting of <Image> within <Text> is not currently supported.',
@@ -173,7 +173,7 @@ let Image = (props: ImagePropsType, forwardedRef) => {
173
173
 
174
174
  return (
175
175
  <ImageAnalyticsTagContext.Consumer>
176
- {(analyticTag) => {
176
+ {analyticTag => {
177
177
  return (
178
178
  <ImageViewNativeComponent
179
179
  {...props}
@@ -267,12 +267,6 @@ Image.queryCache = queryCache;
267
267
  * delete this comment and run Flow. */
268
268
  Image.resolveAssetSource = resolveAssetSource;
269
269
 
270
- /**
271
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
272
- * releases. This is deprecated and will be removed in the future.
273
- */
274
- Image.propTypes = require('deprecated-react-native-prop-types').ImagePropTypes;
275
-
276
270
  const styles = StyleSheet.create({
277
271
  base: {
278
272
  overflow: 'hidden',
@@ -12,7 +12,11 @@ import type {ResolvedAssetSource} from './AssetSourceResolver';
12
12
  import type {ImageProps} from './ImageProps';
13
13
  import type {ViewProps} from '../Components/View/ViewPropTypes';
14
14
  import * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';
15
- import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
15
+ import {ConditionallyIgnoredEventHandlers} from '../NativeComponent/ViewConfigIgnore';
16
+ import type {
17
+ HostComponent,
18
+ PartialViewConfig,
19
+ } from '../Renderer/shims/ReactNativeTypes';
16
20
  import type {
17
21
  ColorValue,
18
22
  DangerouslyImpreciseStyle,
@@ -37,7 +41,7 @@ type Props = $ReadOnly<{
37
41
  loadingIndicatorSrc?: ?string,
38
42
  }>;
39
43
 
40
- const ImageViewViewConfig =
44
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig =
41
45
  Platform.OS === 'android'
42
46
  ? {
43
47
  uiViewClassName: 'RCTImageView',
@@ -125,10 +129,21 @@ const ImageViewViewConfig =
125
129
  tintColor: {
126
130
  process: require('../StyleSheet/processColor'),
127
131
  },
132
+ ...ConditionallyIgnoredEventHandlers({
133
+ onLoadStart: true,
134
+ onLoad: true,
135
+ onLoadEnd: true,
136
+ onProgress: true,
137
+ onError: true,
138
+ onPartialLoad: true,
139
+ }),
128
140
  },
129
141
  };
130
142
 
131
143
  const ImageViewNativeComponent: HostComponent<Props> =
132
- NativeComponentRegistry.get<Props>('RCTImageView', () => ImageViewViewConfig);
144
+ NativeComponentRegistry.get<Props>(
145
+ 'RCTImageView',
146
+ () => __INTERNAL_VIEW_CONFIG,
147
+ );
133
148
 
134
149
  export default ImageViewNativeComponent;
@@ -10,7 +10,10 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
13
+ import type {
14
+ HostComponent,
15
+ PartialViewConfig,
16
+ } from '../Renderer/shims/ReactNativeTypes';
14
17
  import type {ViewProps} from '../Components/View/ViewPropTypes';
15
18
  import type {ImageResizeMode} from './ImageResizeMode';
16
19
  import * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';
@@ -24,19 +27,24 @@ type NativeProps = $ReadOnly<{
24
27
  headers?: ?{[string]: string},
25
28
  }>;
26
29
 
27
- const TextInlineImage: HostComponent<NativeProps> =
28
- NativeComponentRegistry.get<NativeProps>('RCTTextInlineImage', () => ({
29
- uiViewClassName: 'RCTTextInlineImage',
30
- bubblingEventTypes: {},
31
- directEventTypes: {},
32
- validAttributes: {
33
- resizeMode: true,
34
- src: true,
35
- tintColor: {
36
- process: require('../StyleSheet/processColor'),
37
- },
38
- headers: true,
30
+ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
31
+ uiViewClassName: 'RCTTextInlineImage',
32
+ bubblingEventTypes: {},
33
+ directEventTypes: {},
34
+ validAttributes: {
35
+ resizeMode: true,
36
+ src: true,
37
+ tintColor: {
38
+ process: require('../StyleSheet/processColor'),
39
39
  },
40
- }));
40
+ headers: true,
41
+ },
42
+ };
43
+
44
+ const TextInlineImage: HostComponent<NativeProps> =
45
+ NativeComponentRegistry.get<NativeProps>(
46
+ 'RCTTextInlineImage',
47
+ () => __INTERNAL_VIEW_CONFIG,
48
+ );
41
49
 
42
- module.exports = TextInlineImage;
50
+ export default TextInlineImage;
@@ -111,7 +111,7 @@ class AssetResolverLateScaleResolution {
111
111
 
112
112
  // We should leave the resource scale out of the URI, and do that lookup on the native side.
113
113
  // That way we can handle dynamic dpi changes and multimon scenarios better
114
- resolveAssetSource.setCustomSourceTransformer((resolver) => {
114
+ resolveAssetSource.setCustomSourceTransformer(resolver => {
115
115
  const lsrResolver = new AssetResolverLateScaleResolution(resolver);
116
116
  return lsrResolver.defaultAsset();
117
117
  });