react-native-navigation 7.23.1 → 7.24.0

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 (263) hide show
  1. package/.buildkite/pipeline.yml +51 -11
  2. package/.nvmrc +1 -0
  3. package/Mock.d.ts +1 -0
  4. package/Mock.js +4 -0
  5. package/Mock.ts +1 -1
  6. package/README.md +0 -1
  7. package/jest.config.js +40 -0
  8. package/lib/{src/Mock → Mock}/Application.tsx +0 -0
  9. package/lib/{src/Mock → Mock}/ComponentProps.tsx +0 -0
  10. package/lib/{src/Mock → Mock}/Components/BottomTabs.tsx +0 -0
  11. package/lib/{src/Mock → Mock}/Components/ComponentScreen.tsx +13 -2
  12. package/lib/{src/Mock → Mock}/Components/LayoutComponent.tsx +0 -0
  13. package/lib/{src/Mock → Mock}/Components/Modals.tsx +0 -0
  14. package/lib/{src/Mock → Mock}/Components/NavigationButton.tsx +1 -1
  15. package/lib/{src/Mock → Mock}/Components/Overlays.tsx +0 -0
  16. package/lib/{src/Mock → Mock}/Components/Stack.tsx +0 -0
  17. package/lib/{src/Mock → Mock}/Components/TopBar.tsx +2 -2
  18. package/lib/{src/Mock → Mock}/Layouts/BottomTabsNode.ts +1 -1
  19. package/lib/{src/Mock → Mock}/Layouts/ComponentNode.ts +1 -1
  20. package/lib/{src/Mock → Mock}/Layouts/LayoutNodeFactory.ts +0 -0
  21. package/lib/{src/Mock → Mock}/Layouts/Node.ts +1 -1
  22. package/lib/{src/Mock → Mock}/Layouts/ParentNode.ts +2 -2
  23. package/lib/{src/Mock → Mock}/Layouts/StackNode.ts +0 -0
  24. package/lib/{src/Mock → Mock}/Stores/EventsStore.ts +10 -2
  25. package/lib/{src/Mock → Mock}/Stores/LayoutStore.ts +3 -2
  26. package/lib/{src/Mock → Mock}/connect.ts +0 -0
  27. package/lib/Mock/constants.d.ts +2 -0
  28. package/lib/Mock/constants.js +5 -0
  29. package/lib/{src/Mock → Mock}/constants.ts +0 -0
  30. package/lib/Mock/index.d.ts +3 -0
  31. package/lib/Mock/index.js +14 -0
  32. package/lib/{src/Mock → Mock}/index.ts +0 -0
  33. package/lib/{src/Mock → Mock}/mocks/AppRegistryService.ts +0 -0
  34. package/lib/{src/Mock → Mock}/mocks/NativeCommandsSender.tsx +1 -1
  35. package/lib/{src/Mock → Mock}/mocks/NativeEventsReceiver.ts +7 -4
  36. package/lib/android/app/build.gradle +23 -21
  37. package/lib/android/app/src/main/java/com/reactnativenavigation/options/FontOptions.kt +2 -2
  38. package/lib/android/app/src/main/java/com/reactnativenavigation/options/HardwareBackButtonOptions.kt +35 -2
  39. package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutFactory.java +32 -17
  40. package/lib/android/app/src/main/java/com/reactnativenavigation/options/Options.java +1 -1
  41. package/lib/android/app/src/main/java/com/reactnativenavigation/options/parsers/TypefaceLoader.kt +16 -10
  42. package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java +5 -2
  43. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalFrameLayout.kt +3 -3
  44. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalViewManager.kt +11 -8
  45. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt +168 -0
  46. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +5 -2
  47. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +42 -2
  48. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildController.java +12 -16
  49. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +19 -11
  50. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewController.java +2 -2
  51. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenter.java +6 -4
  52. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManager.kt +8 -3
  53. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +15 -7
  54. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +127 -138
  55. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarController.kt +183 -22
  56. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonController.kt +25 -4
  57. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonPresenter.kt +9 -1
  58. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonSpan.kt +1 -1
  59. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +52 -71
  60. package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentLayout.java +2 -0
  61. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/ReactImageMatrixAnimator.kt +2 -3
  62. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBar.java +1 -2
  63. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/ButtonBar.kt +7 -12
  64. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleAndButtonsContainer.kt +0 -2
  65. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleSubTitleLayout.kt +0 -7
  66. package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +2 -1
  67. package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +7 -6
  68. package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +5 -0
  69. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +5 -4
  70. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +3 -2
  71. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +5 -1
  72. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +2 -3
  73. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +25 -10
  74. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +25 -2
  75. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +1 -1
  76. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/{TitleAndButtonsMeasurer.kt → TitleAndButtonsMeasurerTest.kt} +2 -2
  77. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +2 -2
  78. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +1 -1
  79. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +572 -0
  80. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +1 -1
  81. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +2 -1
  82. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +5 -5
  83. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +1 -1
  84. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +1 -1
  85. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +7 -3
  86. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +17 -4
  87. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +2 -2
  88. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +5 -5
  89. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +1 -0
  90. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +4 -0
  91. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +6 -2
  92. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +1 -1
  93. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +13 -8
  94. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +58 -51
  95. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +219 -41
  96. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +4 -1
  97. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +2 -2
  98. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +4 -4
  99. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +1 -1
  100. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +4 -4
  101. package/lib/dist/Mock/Application.js +2 -2
  102. package/lib/dist/Mock/Components/BottomTabs.js +2 -2
  103. package/lib/dist/Mock/Components/ComponentScreen.js +15 -5
  104. package/lib/dist/Mock/Components/LayoutComponent.js +3 -2
  105. package/lib/dist/Mock/Components/Modals.js +2 -2
  106. package/lib/dist/Mock/Components/NavigationButton.d.ts +1 -1
  107. package/lib/dist/Mock/Components/NavigationButton.js +8 -10
  108. package/lib/dist/Mock/Components/Overlays.js +2 -2
  109. package/lib/dist/Mock/Components/Stack.js +2 -2
  110. package/lib/dist/Mock/Components/TopBar.d.ts +2 -2
  111. package/lib/dist/Mock/Components/TopBar.js +7 -6
  112. package/lib/dist/Mock/Layouts/BottomTabsNode.d.ts +1 -1
  113. package/lib/dist/Mock/Layouts/BottomTabsNode.js +3 -3
  114. package/lib/dist/Mock/Layouts/ComponentNode.d.ts +1 -1
  115. package/lib/dist/Mock/Layouts/ComponentNode.js +4 -4
  116. package/lib/dist/Mock/Layouts/LayoutNodeFactory.js +3 -3
  117. package/lib/dist/Mock/Layouts/Node.d.ts +1 -1
  118. package/lib/dist/Mock/Layouts/Node.js +5 -0
  119. package/lib/dist/Mock/Layouts/ParentNode.d.ts +2 -2
  120. package/lib/dist/Mock/Layouts/ParentNode.js +4 -3
  121. package/lib/dist/Mock/Layouts/StackNode.js +1 -1
  122. package/lib/dist/Mock/Stores/EventsStore.d.ts +5 -2
  123. package/lib/dist/Mock/Stores/EventsStore.js +7 -0
  124. package/lib/dist/Mock/Stores/LayoutStore.js +6 -3
  125. package/lib/dist/Mock/connect.js +1 -1
  126. package/lib/dist/Mock/index.js +1 -1
  127. package/lib/dist/Mock/mocks/NativeCommandsSender.d.ts +1 -1
  128. package/lib/dist/Mock/mocks/NativeCommandsSender.js +2 -2
  129. package/lib/dist/Mock/mocks/NativeEventsReceiver.d.ts +3 -3
  130. package/lib/dist/Mock/mocks/NativeEventsReceiver.js +6 -3
  131. package/lib/dist/{Navigation.d.ts → src/Navigation.d.ts} +0 -0
  132. package/lib/dist/{Navigation.js → src/Navigation.js} +19 -3
  133. package/lib/dist/{NavigationDelegate.d.ts → src/NavigationDelegate.d.ts} +0 -0
  134. package/lib/dist/{NavigationDelegate.js → src/NavigationDelegate.js} +1 -0
  135. package/lib/dist/{adapters → src/adapters}/AppRegistryService.d.ts +0 -0
  136. package/lib/dist/{adapters → src/adapters}/AppRegistryService.js +0 -0
  137. package/lib/dist/{adapters → src/adapters}/AssetResolver.d.ts +0 -0
  138. package/lib/dist/{adapters → src/adapters}/AssetResolver.js +0 -0
  139. package/lib/dist/src/adapters/ColorService.d.ts +3 -0
  140. package/lib/dist/{adapters → src/adapters}/ColorService.js +1 -1
  141. package/lib/dist/{adapters → src/adapters}/Constants.d.ts +0 -0
  142. package/lib/dist/{adapters → src/adapters}/Constants.js +10 -6
  143. package/lib/dist/{adapters → src/adapters}/NativeCommandsSender.d.ts +0 -0
  144. package/lib/dist/{adapters → src/adapters}/NativeCommandsSender.js +1 -0
  145. package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.d.ts +0 -0
  146. package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.js +1 -0
  147. package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.mock.d.ts +0 -0
  148. package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.mock.js +0 -0
  149. package/lib/dist/{adapters → src/adapters}/TouchablePreview.d.ts +0 -0
  150. package/lib/dist/src/adapters/TouchablePreview.js +89 -0
  151. package/lib/dist/{adapters → src/adapters}/UniqueIdProvider.d.ts +0 -0
  152. package/lib/dist/{adapters → src/adapters}/UniqueIdProvider.js +2 -2
  153. package/lib/dist/{commands → src/commands}/Commands.d.ts +0 -0
  154. package/lib/dist/{commands → src/commands}/Commands.js +24 -10
  155. package/lib/dist/{commands → src/commands}/Deprecations.d.ts +0 -0
  156. package/lib/dist/src/commands/Deprecations.js +80 -0
  157. package/lib/dist/{commands → src/commands}/LayoutTreeCrawler.d.ts +0 -0
  158. package/lib/dist/{commands → src/commands}/LayoutTreeCrawler.js +4 -2
  159. package/lib/dist/{commands → src/commands}/LayoutTreeParser.d.ts +0 -0
  160. package/lib/dist/{commands → src/commands}/LayoutTreeParser.js +1 -0
  161. package/lib/dist/{commands → src/commands}/LayoutType.d.ts +0 -0
  162. package/lib/dist/{commands → src/commands}/LayoutType.js +0 -0
  163. package/lib/dist/{commands → src/commands}/OptionsCrawler.d.ts +0 -0
  164. package/lib/dist/{commands → src/commands}/OptionsCrawler.js +6 -4
  165. package/lib/dist/{commands → src/commands}/OptionsProcessor.d.ts +1 -1
  166. package/lib/dist/{commands → src/commands}/OptionsProcessor.js +50 -42
  167. package/lib/dist/{components → src/components}/ComponentRegistry.d.ts +0 -0
  168. package/lib/dist/{components → src/components}/ComponentRegistry.js +4 -0
  169. package/lib/dist/{components → src/components}/ComponentWrapper.d.ts +0 -0
  170. package/lib/dist/{components → src/components}/ComponentWrapper.js +17 -17
  171. package/lib/dist/{components → src/components}/Modal.d.ts +0 -0
  172. package/lib/dist/{components → src/components}/Modal.js +8 -8
  173. package/lib/dist/{components → src/components}/Store.d.ts +2 -0
  174. package/lib/dist/{components → src/components}/Store.js +13 -6
  175. package/lib/dist/{events → src/events}/CommandsObserver.d.ts +0 -0
  176. package/lib/dist/{events → src/events}/CommandsObserver.js +2 -1
  177. package/lib/dist/{events → src/events}/ComponentEventsObserver.d.ts +4 -2
  178. package/lib/dist/{events → src/events}/ComponentEventsObserver.js +16 -14
  179. package/lib/dist/{events → src/events}/EventsRegistry.d.ts +2 -2
  180. package/lib/dist/{events → src/events}/EventsRegistry.js +3 -0
  181. package/lib/dist/{index.d.ts → src/index.d.ts} +0 -0
  182. package/lib/dist/src/index.js +22 -0
  183. package/lib/dist/{interfaces → src/interfaces}/CommandName.d.ts +0 -0
  184. package/lib/dist/{interfaces → src/interfaces}/CommandName.js +0 -0
  185. package/lib/dist/{interfaces → src/interfaces}/ComponentEvents.d.ts +0 -0
  186. package/lib/dist/{interfaces → src/interfaces}/ComponentEvents.js +0 -0
  187. package/lib/dist/{interfaces → src/interfaces}/EventSubscription.d.ts +0 -0
  188. package/lib/dist/{interfaces → src/interfaces}/EventSubscription.js +0 -0
  189. package/lib/dist/{interfaces → src/interfaces}/Events.d.ts +0 -0
  190. package/lib/dist/{interfaces → src/interfaces}/Events.js +0 -0
  191. package/lib/dist/{interfaces → src/interfaces}/Layout.d.ts +0 -0
  192. package/lib/dist/{interfaces → src/interfaces}/Layout.js +0 -0
  193. package/lib/dist/{interfaces → src/interfaces}/NavigationComponent.d.ts +0 -0
  194. package/lib/dist/{interfaces → src/interfaces}/NavigationComponent.js +8 -1
  195. package/lib/dist/{interfaces → src/interfaces}/NavigationComponentListener.d.ts +0 -0
  196. package/lib/dist/{interfaces → src/interfaces}/NavigationComponentListener.js +0 -0
  197. package/lib/dist/{interfaces → src/interfaces}/NavigationComponentProps.d.ts +0 -0
  198. package/lib/dist/{interfaces → src/interfaces}/NavigationComponentProps.js +0 -0
  199. package/lib/dist/{interfaces → src/interfaces}/NavigationFunctionComponent.d.ts +0 -0
  200. package/lib/dist/{interfaces → src/interfaces}/NavigationFunctionComponent.js +0 -0
  201. package/lib/dist/{interfaces → src/interfaces}/Options.d.ts +9 -0
  202. package/lib/dist/{interfaces → src/interfaces}/Options.js +0 -0
  203. package/lib/dist/{interfaces → src/interfaces}/ProcessorSubscription.d.ts +0 -0
  204. package/lib/dist/{interfaces → src/interfaces}/ProcessorSubscription.js +0 -0
  205. package/lib/dist/{interfaces → src/interfaces}/Processors.d.ts +0 -0
  206. package/lib/dist/{interfaces → src/interfaces}/Processors.js +0 -0
  207. package/lib/dist/{processors → src/processors}/LayoutProcessor.d.ts +0 -0
  208. package/lib/dist/{processors → src/processors}/LayoutProcessor.js +1 -0
  209. package/lib/dist/{processors → src/processors}/LayoutProcessorsStore.d.ts +0 -0
  210. package/lib/dist/{processors → src/processors}/LayoutProcessorsStore.js +1 -3
  211. package/lib/dist/{processors → src/processors}/OptionProcessorsStore.d.ts +0 -0
  212. package/lib/dist/{processors → src/processors}/OptionProcessorsStore.js +1 -3
  213. package/lib/dist/{types.d.ts → src/types.d.ts} +0 -0
  214. package/lib/dist/{types.js → src/types.js} +0 -0
  215. package/lib/ios/AnimationObserver.h +17 -0
  216. package/lib/ios/AnimationObserver.m +41 -0
  217. package/lib/ios/BottomTabPresenter.h +0 -3
  218. package/lib/ios/BottomTabPresenter.m +0 -8
  219. package/lib/ios/RNNAssert.h +2 -2
  220. package/lib/ios/RNNBasePresenter.h +0 -4
  221. package/lib/ios/RNNBasePresenter.m +0 -12
  222. package/lib/ios/RNNBottomTabOptions.m +2 -1
  223. package/lib/ios/RNNBottomTabsController.m +8 -8
  224. package/lib/ios/RNNBridgeManager.mm +0 -1
  225. package/lib/ios/RNNButtonBuilder.m +2 -0
  226. package/lib/ios/RNNButtonOptions.h +1 -0
  227. package/lib/ios/RNNButtonOptions.m +4 -0
  228. package/lib/ios/RNNCommandsHandler.m +15 -8
  229. package/lib/ios/RNNComponentPresenter.m +0 -4
  230. package/lib/ios/RNNComponentViewController.m +2 -4
  231. package/lib/ios/RNNDotIndicatorPresenter.m +2 -1
  232. package/lib/ios/RNNExternalViewController.m +2 -4
  233. package/lib/ios/RNNModalManager.h +2 -1
  234. package/lib/ios/RNNModalManager.m +12 -21
  235. package/lib/ios/RNNSegmentedControl.h +1 -1
  236. package/lib/ios/RNNSideMenuChildVC.m +0 -4
  237. package/lib/ios/RNNSideMenuController.m +0 -4
  238. package/lib/ios/RNNSplitViewController.m +0 -4
  239. package/lib/ios/RNNStackController.m +0 -4
  240. package/lib/ios/RNNStackPresenter.m +3 -0
  241. package/lib/ios/RNNSwizzles.m +20 -0
  242. package/lib/ios/RNNTabBarItemCreator.m +3 -2
  243. package/lib/ios/RNNUIBarButtonItem.h +2 -0
  244. package/lib/ios/RNNUIBarButtonItem.m +17 -0
  245. package/lib/ios/ReactNativeNavigation.xcodeproj/project.pbxproj +8 -0
  246. package/lib/ios/TopBarPresenter.m +8 -4
  247. package/lib/ios/UIViewController+RNNOptions.m +1 -1
  248. package/lib/src/commands/Commands.ts +6 -1
  249. package/lib/src/commands/LayoutTreeCrawler.ts +2 -2
  250. package/lib/src/commands/OptionsCrawler.ts +2 -1
  251. package/lib/src/commands/OptionsProcessor.ts +15 -13
  252. package/lib/src/components/Store.ts +9 -0
  253. package/lib/src/events/ComponentEventsObserver.ts +5 -1
  254. package/lib/src/events/EventsRegistry.ts +2 -1
  255. package/lib/src/interfaces/Options.ts +10 -0
  256. package/package.json +19 -60
  257. package/tsconfig.mocks.json +7 -0
  258. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/StatusBarUtils.java +0 -41
  259. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.java +0 -511
  260. package/lib/dist/adapters/ColorService.d.ts +0 -3
  261. package/lib/dist/adapters/TouchablePreview.js +0 -91
  262. package/lib/dist/commands/Deprecations.js +0 -82
  263. package/lib/dist/index.js +0 -22
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { OptionsTopBarButton } from '../..';
3
- import { OptionsTopBar, OptionsTopBarBackButton } from '../../interfaces/Options';
2
+ import { OptionsTopBarButton } from '../../src';
3
+ import { OptionsTopBar, OptionsTopBarBackButton } from '../../src/interfaces/Options';
4
4
  import ParentNode from '../Layouts/ParentNode';
5
5
  export interface TopBarProps {
6
6
  layoutNode: ParentNode;
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TopBar = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const react_1 = tslib_1.__importStar(require("react"));
5
+ const react_1 = (0, tslib_1.__importStar)(require("react"));
6
6
  const react_native_1 = require("react-native");
7
- const __1 = require("../..");
7
+ const src_1 = require("../../src");
8
8
  const LayoutStore_1 = require("../Stores/LayoutStore");
9
9
  const NavigationButton_1 = require("./NavigationButton");
10
10
  const EventsStore_1 = require("../Stores/EventsStore");
11
11
  const DEFAULT_BACK_BUTTON_ID = 'RNN.back';
12
- exports.TopBar = class extends react_1.Component {
12
+ const TopBar = class extends react_1.Component {
13
13
  constructor(props) {
14
14
  super(props);
15
15
  }
@@ -54,9 +54,10 @@ exports.TopBar = class extends react_1.Component {
54
54
  } }));
55
55
  }
56
56
  renderComponent(id, name, testID) {
57
- const Component = __1.Navigation.mock.store.getComponentClassForName(name)();
58
- const props = __1.Navigation.mock.store.getPropsForId(id);
57
+ const Component = src_1.Navigation.mock.store.getComponentClassForName(name)();
58
+ const props = src_1.Navigation.mock.store.getPropsForId(id);
59
59
  return (react_1.default.createElement(react_native_1.View, { key: id, testID: testID },
60
- react_1.default.createElement(Component, Object.assign({}, props, { componentId: id }))));
60
+ react_1.default.createElement(Component, { ...props, componentId: id })));
61
61
  }
62
62
  };
63
+ exports.TopBar = TopBar;
@@ -1,4 +1,4 @@
1
- import { Options } from '../../index';
1
+ import { Options } from '../../src/index';
2
2
  import ParentNode from './ParentNode';
3
3
  export default class BottomTabsNode extends ParentNode {
4
4
  selectedIndex: number;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
4
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
5
5
  const LayoutStore_1 = require("../Stores/LayoutStore");
6
- const ParentNode_1 = tslib_1.__importDefault(require("./ParentNode"));
6
+ const ParentNode_1 = (0, tslib_1.__importDefault)(require("./ParentNode"));
7
7
  class BottomTabsNode extends ParentNode_1.default {
8
+ selectedIndex = 0;
8
9
  constructor(layout, parentNode) {
9
10
  super(layout, 'BottomTabs', parentNode);
10
- this.selectedIndex = 0;
11
11
  }
12
12
  mergeOptions(options) {
13
13
  super.mergeOptions(options);
@@ -1,4 +1,4 @@
1
- import { OptionsTopBarButton } from 'react-native-navigation/interfaces/Options';
1
+ import { OptionsTopBarButton } from '../../src';
2
2
  import ParentNode from './ParentNode';
3
3
  export default class ComponentNode extends ParentNode {
4
4
  componentDidMountOnce: boolean;
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
4
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
5
5
  const EventsStore_1 = require("../Stores/EventsStore");
6
- const ParentNode_1 = tslib_1.__importDefault(require("./ParentNode"));
6
+ const ParentNode_1 = (0, tslib_1.__importDefault)(require("./ParentNode"));
7
7
  class ComponentNode extends ParentNode_1.default {
8
+ componentDidMountOnce = false;
9
+ componentDidAppearPending = false;
8
10
  constructor(layout, parentNode) {
9
11
  super(layout, 'Component', parentNode);
10
- this.componentDidMountOnce = false;
11
- this.componentDidAppearPending = false;
12
12
  }
13
13
  componentDidMount() {
14
14
  this.componentDidMountOnce = true;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const BottomTabsNode_1 = tslib_1.__importDefault(require("./BottomTabsNode"));
5
- const ComponentNode_1 = tslib_1.__importDefault(require("./ComponentNode"));
6
- const StackNode_1 = tslib_1.__importDefault(require("./StackNode"));
4
+ const BottomTabsNode_1 = (0, tslib_1.__importDefault)(require("./BottomTabsNode"));
5
+ const ComponentNode_1 = (0, tslib_1.__importDefault)(require("./ComponentNode"));
6
+ const StackNode_1 = (0, tslib_1.__importDefault)(require("./StackNode"));
7
7
  class LayoutNodeFactory {
8
8
  static create(layout, parentNode) {
9
9
  switch (layout.type) {
@@ -1,4 +1,4 @@
1
- import { Options } from '../../index';
1
+ import { Options } from '../../src/index';
2
2
  import ParentNode from './ParentNode';
3
3
  interface Data {
4
4
  name: string;
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class Node {
4
+ nodeId;
5
+ data;
6
+ type;
7
+ // options: Options;
8
+ parentNode;
4
9
  constructor(layout, type, parentNode) {
5
10
  this.nodeId = layout.id;
6
11
  this.data = layout.data;
@@ -1,5 +1,5 @@
1
- import { OptionsTopBarButton } from '../../interfaces/Options';
2
- import { Options } from '../../index';
1
+ import { OptionsTopBarButton } from '../../src/interfaces/Options';
2
+ import { Options } from '../../src/index';
3
3
  import ComponentNode from './ComponentNode';
4
4
  import Node, { NodeType } from './Node';
5
5
  export default class ParentNode extends Node {
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
4
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
5
5
  const LayoutStore_1 = require("../Stores/LayoutStore");
6
- const LayoutNodeFactory_1 = tslib_1.__importDefault(require("./LayoutNodeFactory"));
7
- const Node_1 = tslib_1.__importDefault(require("./Node"));
6
+ const LayoutNodeFactory_1 = (0, tslib_1.__importDefault)(require("./LayoutNodeFactory"));
7
+ const Node_1 = (0, tslib_1.__importDefault)(require("./Node"));
8
8
  class ParentNode extends Node_1.default {
9
+ children;
9
10
  constructor(layout, type, parentNode) {
10
11
  super(layout, type, parentNode);
11
12
  this.children = layout.children.map((childLayout) => LayoutNodeFactory_1.default.create(childLayout, this));
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const ParentNode_1 = tslib_1.__importDefault(require("./ParentNode"));
4
+ const ParentNode_1 = (0, tslib_1.__importDefault)(require("./ParentNode"));
5
5
  class StackNode extends ParentNode_1.default {
6
6
  constructor(layout, parentNode) {
7
7
  super(layout, 'Stack', parentNode);
@@ -1,14 +1,17 @@
1
- import { ComponentDidDisappearEvent, ComponentWillAppearEvent, ModalDismissedEvent } from '../../interfaces/ComponentEvents';
2
- import { ComponentDidAppearEvent, NavigationButtonPressedEvent } from '../../index';
1
+ import { ComponentDidDisappearEvent, ComponentWillAppearEvent, ModalDismissedEvent } from '../../src/interfaces/ComponentEvents';
2
+ import { ComponentDidAppearEvent, NavigationButtonPressedEvent } from '../../src/index';
3
+ import { BottomTabPressedEvent } from '../../src/interfaces/Events';
3
4
  export declare const events: {
4
5
  navigationButtonPressed: ((_event: NavigationButtonPressedEvent) => void)[];
5
6
  componentWillAppear: ((_event: ComponentWillAppearEvent) => void)[];
6
7
  componentDidAppear: ((_event: ComponentDidAppearEvent) => void)[];
7
8
  componentDidDisappear: ((_event: ComponentDidDisappearEvent) => void)[];
8
9
  modalDismissed: ((_event: ModalDismissedEvent) => void)[];
10
+ bottomTabPressed: ((_event: BottomTabPressedEvent) => void)[];
9
11
  invokeComponentWillAppear: (event: ComponentWillAppearEvent) => void;
10
12
  invokeComponentDidAppear: (event: ComponentDidAppearEvent) => void;
11
13
  invokeComponentDidDisappear: (event: ComponentDidDisappearEvent) => void;
12
14
  invokeModalDismissed: (event: ModalDismissedEvent) => void;
13
15
  invokeNavigationButtonPressed: (event: NavigationButtonPressedEvent) => void;
16
+ invokeBottomTabPressed: (event: BottomTabPressedEvent) => void;
14
17
  };
@@ -7,6 +7,7 @@ exports.events = {
7
7
  componentDidAppear: [(_event) => { }],
8
8
  componentDidDisappear: [(_event) => { }],
9
9
  modalDismissed: [(_event) => { }],
10
+ bottomTabPressed: [(_event) => { }],
10
11
  invokeComponentWillAppear: (event) => {
11
12
  exports.events.componentWillAppear &&
12
13
  exports.events.componentWillAppear.forEach((listener) => {
@@ -37,4 +38,10 @@ exports.events = {
37
38
  listener(event);
38
39
  });
39
40
  },
41
+ invokeBottomTabPressed: (event) => {
42
+ exports.events.bottomTabPressed &&
43
+ exports.events.bottomTabPressed?.forEach((listener) => {
44
+ listener(event);
45
+ });
46
+ },
40
47
  };
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LayoutStore = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
- const LayoutNodeFactory_1 = tslib_1.__importDefault(require("../Layouts/LayoutNodeFactory"));
5
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
6
+ const LayoutNodeFactory_1 = (0, tslib_1.__importDefault)(require("../Layouts/LayoutNodeFactory"));
7
7
  const remx = require('remx');
8
8
  const state = remx.state({
9
9
  root: {},
@@ -75,7 +75,10 @@ const setters = remx.setters({
75
75
  },
76
76
  mergeOptions(componentId, options) {
77
77
  const layout = getters.getLayoutById(componentId);
78
- layout.mergeOptions(options);
78
+ if (layout)
79
+ layout.mergeOptions(options);
80
+ else
81
+ console.warn(`[RNN error] Merge options failure: cannot find layout for: ${componentId}`);
79
82
  },
80
83
  });
81
84
  const getters = remx.getters({
@@ -4,6 +4,6 @@ exports.connect = void 0;
4
4
  const remx_1 = require("remx");
5
5
  function connect(component) {
6
6
  // @ts-ignore
7
- return remx_1.connect()(component);
7
+ return (0, remx_1.connect)()(component);
8
8
  }
9
9
  exports.connect = connect;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mockNativeComponents = exports.ApplicationMock = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  exports.ApplicationMock = require('./Application').Application;
6
- tslib_1.__exportStar(require("./constants"), exports);
6
+ (0, tslib_1.__exportStar)(require("./constants"), exports);
7
7
  function mockNativeComponents() {
8
8
  const { NativeCommandsSender } = require('./mocks/NativeCommandsSender');
9
9
  const { NativeEventsReceiver } = require('./mocks/NativeEventsReceiver');
@@ -1,4 +1,4 @@
1
- import { LayoutNode } from 'react-native-navigation/commands/LayoutTreeCrawler';
1
+ import { LayoutNode } from '../../src/commands/LayoutTreeCrawler';
2
2
  export declare class NativeCommandsSender {
3
3
  constructor();
4
4
  setRoot(_commandId: string, layout: {
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NativeCommandsSender = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const LayoutStore_1 = require("../Stores/LayoutStore");
6
- const LayoutNodeFactory_1 = tslib_1.__importDefault(require("../Layouts/LayoutNodeFactory"));
6
+ const LayoutNodeFactory_1 = (0, tslib_1.__importDefault)(require("../Layouts/LayoutNodeFactory"));
7
7
  const EventsStore_1 = require("../Stores/EventsStore");
8
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
8
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
9
9
  class NativeCommandsSender {
10
10
  constructor() { }
11
11
  setRoot(_commandId, layout) {
@@ -1,13 +1,13 @@
1
1
  import { EmitterSubscription } from 'react-native';
2
- import { ComponentWillAppearEvent, ComponentDidAppearEvent, ComponentDidDisappearEvent, NavigationButtonPressedEvent, SearchBarUpdatedEvent, SearchBarCancelPressedEvent, PreviewCompletedEvent, ModalDismissedEvent, ScreenPoppedEvent, ModalAttemptedToDismissEvent } from '../../interfaces/ComponentEvents';
3
- import { CommandCompletedEvent, BottomTabSelectedEvent, BottomTabLongPressedEvent, BottomTabPressedEvent } from '../../interfaces/Events';
2
+ import { ComponentWillAppearEvent, ComponentDidAppearEvent, ComponentDidDisappearEvent, NavigationButtonPressedEvent, SearchBarUpdatedEvent, SearchBarCancelPressedEvent, PreviewCompletedEvent, ModalDismissedEvent, ScreenPoppedEvent, ModalAttemptedToDismissEvent } from '../../src/interfaces/ComponentEvents';
3
+ import { CommandCompletedEvent, BottomTabSelectedEvent, BottomTabLongPressedEvent, BottomTabPressedEvent } from '../../src/interfaces/Events';
4
4
  export declare class NativeEventsReceiver {
5
5
  registerAppLaunchedListener(callback: () => void): EmitterSubscription;
6
6
  registerComponentWillAppearListener(callback: (event: ComponentWillAppearEvent) => void): EmitterSubscription;
7
7
  registerComponentDidAppearListener(callback: (event: ComponentDidAppearEvent) => void): EmitterSubscription;
8
8
  registerComponentDidDisappearListener(callback: (event: ComponentDidDisappearEvent) => void): EmitterSubscription;
9
9
  registerNavigationButtonPressedListener(callback: (event: NavigationButtonPressedEvent) => void): EmitterSubscription;
10
- registerBottomTabPressedListener(_callback: (data: BottomTabPressedEvent) => void): EmitterSubscription;
10
+ registerBottomTabPressedListener(callback: (data: BottomTabPressedEvent) => void): EmitterSubscription;
11
11
  registerModalDismissedListener(callback: (event: ModalDismissedEvent) => void): EmitterSubscription;
12
12
  registerModalAttemptedToDismissListener(_callback: (event: ModalAttemptedToDismissEvent) => void): EmitterSubscription;
13
13
  registerSearchBarUpdatedListener(_callback: (event: SearchBarUpdatedEvent) => void): EmitterSubscription;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NativeEventsReceiver = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
5
+ const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
6
6
  const EventsStore_1 = require("./../Stores/EventsStore");
7
7
  class NativeEventsReceiver {
8
8
  registerAppLaunchedListener(callback) {
@@ -43,9 +43,12 @@ class NativeEventsReceiver {
43
43
  },
44
44
  };
45
45
  }
46
- registerBottomTabPressedListener(_callback) {
46
+ registerBottomTabPressedListener(callback) {
47
+ EventsStore_1.events.bottomTabPressed.push(callback);
47
48
  return {
48
- remove: () => { },
49
+ remove: () => {
50
+ lodash_1.default.remove(EventsStore_1.events.bottomTabPressed, (value) => value === callback);
51
+ },
49
52
  };
50
53
  }
51
54
  registerModalDismissedListener(callback) {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NavigationRoot = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const isArray_1 = tslib_1.__importDefault(require("lodash/isArray"));
5
+ const isArray_1 = (0, tslib_1.__importDefault)(require("lodash/isArray"));
6
6
  const UniqueIdProvider_1 = require("./adapters/UniqueIdProvider");
7
7
  const Store_1 = require("./components/Store");
8
8
  const OptionProcessorsStore_1 = require("./processors/OptionProcessorsStore");
@@ -24,11 +24,27 @@ const LayoutProcessor_1 = require("./processors/LayoutProcessor");
24
24
  const LayoutProcessorsStore_1 = require("./processors/LayoutProcessorsStore");
25
25
  const OptionsCrawler_1 = require("./commands/OptionsCrawler");
26
26
  class NavigationRoot {
27
+ nativeCommandsSender;
28
+ nativeEventsReceiver;
29
+ appRegistryService;
30
+ TouchablePreview = TouchablePreview_1.TouchablePreview;
31
+ store;
32
+ optionProcessorsStore;
33
+ layoutProcessorsStore;
34
+ uniqueIdProvider;
35
+ componentRegistry;
36
+ layoutTreeParser;
37
+ layoutTreeCrawler;
38
+ commands;
39
+ eventsRegistry;
40
+ commandsObserver;
41
+ componentEventsObserver;
42
+ componentWrapper;
43
+ optionsCrawler;
27
44
  constructor(nativeCommandsSender, nativeEventsReceiver, appRegistryService) {
28
45
  this.nativeCommandsSender = nativeCommandsSender;
29
46
  this.nativeEventsReceiver = nativeEventsReceiver;
30
47
  this.appRegistryService = appRegistryService;
31
- this.TouchablePreview = TouchablePreview_1.TouchablePreview;
32
48
  this.componentWrapper = new ComponentWrapper_1.ComponentWrapper();
33
49
  this.store = new Store_1.Store();
34
50
  this.optionProcessorsStore = new OptionProcessorsStore_1.OptionProcessorsStore();
@@ -147,7 +163,7 @@ class NavigationRoot {
147
163
  * Sets new root component to stack.
148
164
  */
149
165
  setStackRoot(componentId, layout) {
150
- const children = isArray_1.default(layout) ? layout : [layout];
166
+ const children = (0, isArray_1.default)(layout) ? layout : [layout];
151
167
  return this.commands.setStackRoot(componentId, children);
152
168
  }
153
169
  /**
@@ -6,6 +6,7 @@ const NativeCommandsSender_1 = require("./adapters/NativeCommandsSender");
6
6
  const NativeEventsReceiver_1 = require("./adapters/NativeEventsReceiver");
7
7
  const AppRegistryService_1 = require("./adapters/AppRegistryService");
8
8
  class NavigationDelegate {
9
+ concreteNavigation;
9
10
  constructor() {
10
11
  this.concreteNavigation = this.createConcreteNavigation(new NativeCommandsSender_1.NativeCommandsSender(), new NativeEventsReceiver_1.NativeEventsReceiver(), new AppRegistryService_1.AppRegistryService());
11
12
  }
@@ -0,0 +1,3 @@
1
+ export declare class ColorService {
2
+ toNativeColor(inputColor: string): import("react-native").ProcessedColorValue | null | undefined;
3
+ }
@@ -4,7 +4,7 @@ exports.ColorService = void 0;
4
4
  const react_native_1 = require("react-native");
5
5
  class ColorService {
6
6
  toNativeColor(inputColor) {
7
- return react_native_1.processColor(inputColor);
7
+ return (0, react_native_1.processColor)(inputColor);
8
8
  }
9
9
  }
10
10
  exports.ColorService = ColorService;
@@ -3,12 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Constants = void 0;
4
4
  const react_native_1 = require("react-native");
5
5
  class Constants {
6
- constructor(constants) {
7
- this.statusBarHeight = constants.statusBarHeight;
8
- this.topBarHeight = constants.topBarHeight;
9
- this.backButtonId = constants.backButtonId;
10
- this.bottomTabsHeight = constants.bottomTabsHeight;
11
- }
12
6
  static async get() {
13
7
  const constants = await react_native_1.NativeModules.RNNBridgeModule.getNavigationConstants();
14
8
  return new Constants(constants);
@@ -16,5 +10,15 @@ class Constants {
16
10
  static getSync() {
17
11
  return new Constants(react_native_1.NativeModules.RNNBridgeModule.getNavigationConstantsSync());
18
12
  }
13
+ statusBarHeight;
14
+ backButtonId;
15
+ topBarHeight;
16
+ bottomTabsHeight;
17
+ constructor(constants) {
18
+ this.statusBarHeight = constants.statusBarHeight;
19
+ this.topBarHeight = constants.topBarHeight;
20
+ this.backButtonId = constants.backButtonId;
21
+ this.bottomTabsHeight = constants.bottomTabsHeight;
22
+ }
19
23
  }
20
24
  exports.Constants = Constants;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NativeCommandsSender = void 0;
4
4
  const react_native_1 = require("react-native");
5
5
  class NativeCommandsSender {
6
+ nativeCommandsModule;
6
7
  constructor() {
7
8
  this.nativeCommandsModule = react_native_1.NativeModules.RNNBridgeModule;
8
9
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NativeEventsReceiver = void 0;
4
4
  const react_native_1 = require("react-native");
5
5
  class NativeEventsReceiver {
6
+ emitter;
6
7
  constructor() {
7
8
  // NOTE: This try catch is workaround for integration tests
8
9
  // TODO: mock NativeEventEmitter in integration tests rather done adding try catch in source code
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TouchablePreview = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = (0, tslib_1.__importStar)(require("react"));
6
+ const PropTypes = (0, tslib_1.__importStar)(require("prop-types"));
7
+ const react_native_1 = require("react-native");
8
+ const PREVIEW_DELAY = 350;
9
+ const PREVIEW_MIN_FORCE = 0.1;
10
+ const PREVIEW_TIMEOUT = 1250;
11
+ class TouchablePreview extends React.PureComponent {
12
+ static propTypes = {
13
+ children: PropTypes.node,
14
+ touchableComponent: PropTypes.func,
15
+ onPress: PropTypes.func,
16
+ onPressIn: PropTypes.func,
17
+ onPeekIn: PropTypes.func,
18
+ onPeekOut: PropTypes.func,
19
+ label: PropTypes.string,
20
+ };
21
+ static defaultProps = {
22
+ touchableComponent: react_native_1.TouchableWithoutFeedback,
23
+ };
24
+ static peeking = false;
25
+ timeout;
26
+ touchStartedAt = 0;
27
+ onRef = React.createRef();
28
+ onPress = () => {
29
+ const { onPress } = this.props;
30
+ if (typeof onPress !== 'function' || TouchablePreview.peeking) {
31
+ return;
32
+ }
33
+ return onPress();
34
+ };
35
+ onPressIn = () => {
36
+ if (react_native_1.Platform.OS === 'ios') {
37
+ const { onPressIn } = this.props;
38
+ if (!onPressIn) {
39
+ return;
40
+ }
41
+ const reactTag = (0, react_native_1.findNodeHandle)(this.onRef.current);
42
+ return onPressIn({ reactTag });
43
+ }
44
+ // Other platforms don't support 3D Touch Preview API
45
+ return null;
46
+ };
47
+ onTouchStart = (event) => {
48
+ // Store a timestamp of the initial touch start
49
+ this.touchStartedAt = event.nativeEvent.timestamp;
50
+ };
51
+ onTouchMove = (event) => {
52
+ clearTimeout(this.timeout);
53
+ const { force, timestamp } = event.nativeEvent;
54
+ const diff = timestamp - this.touchStartedAt;
55
+ if (force > PREVIEW_MIN_FORCE && diff > PREVIEW_DELAY) {
56
+ TouchablePreview.peeking = true;
57
+ if (typeof this.props.onPeekIn === 'function') {
58
+ this.props.onPeekIn();
59
+ }
60
+ }
61
+ //@ts-ignore
62
+ this.timeout = setTimeout(this.onTouchEnd, PREVIEW_TIMEOUT);
63
+ };
64
+ onTouchEnd = () => {
65
+ clearTimeout(this.timeout);
66
+ TouchablePreview.peeking = false;
67
+ if (typeof this.props.onPeekOut === 'function') {
68
+ this.props.onPeekOut();
69
+ }
70
+ };
71
+ render() {
72
+ const { children, touchableComponent, ...props } = this.props;
73
+ // Default to TouchableWithoutFeedback for iOS if set to TouchableNativeFeedback
74
+ const Touchable = react_native_1.Platform.OS === 'ios' && touchableComponent instanceof react_native_1.TouchableNativeFeedback
75
+ ? react_native_1.TouchableWithoutFeedback
76
+ : touchableComponent;
77
+ // Wrap component with Touchable for handling platform touches
78
+ // and a single react View for detecting force and timing.
79
+ return (
80
+ /**
81
+ * @TODO (Jin Shin 25 June 2020)
82
+ * Ignoring this for now so that it builds.
83
+ */
84
+ // @ts-ignore
85
+ React.createElement(Touchable, { ...props, ref: this.onRef, onPress: this.onPress, onPressIn: this.onPressIn },
86
+ React.createElement(react_native_1.View, { onTouchStart: this.onTouchStart, onTouchMove: this.onTouchMove, onTouchEnd: this.onTouchEnd }, children)));
87
+ }
88
+ }
89
+ exports.TouchablePreview = TouchablePreview;
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniqueIdProvider = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const uniqueId_1 = tslib_1.__importDefault(require("lodash/uniqueId"));
5
+ const uniqueId_1 = (0, tslib_1.__importDefault)(require("lodash/uniqueId"));
6
6
  class UniqueIdProvider {
7
7
  generate(prefix) {
8
- return uniqueId_1.default(prefix);
8
+ return (0, uniqueId_1.default)(prefix);
9
9
  }
10
10
  }
11
11
  exports.UniqueIdProvider = UniqueIdProvider;