react-native-navigation 8.7.4 → 8.7.5

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 (301) hide show
  1. package/ios/RNNNavigationOptions.h +1 -0
  2. package/ios/RNNNavigationOptions.mm +4 -0
  3. package/ios/RNNOverlayManager.mm +4 -0
  4. package/ios/ScreenAnimationController.mm +29 -24
  5. package/ios/StackControllerDelegate.mm +21 -3
  6. package/lib/module/Mock/Application.js +33 -0
  7. package/lib/module/Mock/Application.js.map +1 -0
  8. package/lib/module/Mock/ComponentProps.js +4 -0
  9. package/lib/module/Mock/ComponentProps.js.map +1 -0
  10. package/lib/module/Mock/Components/BottomTabs.js +16 -0
  11. package/lib/module/Mock/Components/BottomTabs.js.map +1 -0
  12. package/lib/module/Mock/Components/ComponentScreen.js +101 -0
  13. package/lib/module/Mock/Components/ComponentScreen.js.map +1 -0
  14. package/lib/module/Mock/Components/LayoutComponent.js +50 -0
  15. package/lib/module/Mock/Components/LayoutComponent.js.map +1 -0
  16. package/lib/module/Mock/Components/Modals.js +22 -0
  17. package/lib/module/Mock/Components/Modals.js.map +1 -0
  18. package/lib/module/Mock/Components/NavigationButton.js +72 -0
  19. package/lib/module/Mock/Components/NavigationButton.js.map +1 -0
  20. package/lib/module/Mock/Components/Overlays.js +23 -0
  21. package/lib/module/Mock/Components/Overlays.js.map +1 -0
  22. package/lib/module/Mock/Components/SideMenu.js +29 -0
  23. package/lib/module/Mock/Components/SideMenu.js.map +1 -0
  24. package/lib/module/Mock/Components/Stack.js +18 -0
  25. package/lib/module/Mock/Components/Stack.js.map +1 -0
  26. package/lib/module/Mock/Components/TopBar.js +81 -0
  27. package/lib/module/Mock/Components/TopBar.js.map +1 -0
  28. package/lib/module/Mock/Layouts/BottomTabsNode.js +30 -0
  29. package/lib/module/Mock/Layouts/BottomTabsNode.js.map +1 -0
  30. package/lib/module/Mock/Layouts/ComponentNode.js +102 -0
  31. package/lib/module/Mock/Layouts/ComponentNode.js.map +1 -0
  32. package/lib/module/Mock/Layouts/LayoutNodeFactory.js +28 -0
  33. package/lib/module/Mock/Layouts/LayoutNodeFactory.js.map +1 -0
  34. package/lib/module/Mock/Layouts/Node.js +14 -0
  35. package/lib/module/Mock/Layouts/Node.js.map +1 -0
  36. package/lib/module/Mock/Layouts/ParentNode.js +66 -0
  37. package/lib/module/Mock/Layouts/ParentNode.js.map +1 -0
  38. package/lib/module/Mock/Layouts/SideMenu.js +72 -0
  39. package/lib/module/Mock/Layouts/SideMenu.js.map +1 -0
  40. package/lib/module/Mock/Layouts/StackNode.js +12 -0
  41. package/lib/module/Mock/Layouts/StackNode.js.map +1 -0
  42. package/lib/module/Mock/Stores/EventsStore.js +53 -0
  43. package/lib/module/Mock/Stores/EventsStore.js.map +1 -0
  44. package/lib/module/Mock/Stores/LayoutStore.js +176 -0
  45. package/lib/module/Mock/Stores/LayoutStore.js.map +1 -0
  46. package/lib/module/Mock/actions/layoutActions.js +19 -0
  47. package/lib/module/Mock/actions/layoutActions.js.map +1 -0
  48. package/lib/module/Mock/connect.js +8 -0
  49. package/lib/module/Mock/connect.js.map +1 -0
  50. package/lib/module/Mock/constants.js +5 -0
  51. package/lib/module/Mock/constants.js.map +1 -0
  52. package/lib/module/Mock/index.js +20 -0
  53. package/lib/module/Mock/index.js.map +1 -0
  54. package/lib/module/Mock/mocks/AppRegistryService.js +6 -0
  55. package/lib/module/Mock/mocks/AppRegistryService.js.map +1 -0
  56. package/lib/module/Mock/mocks/NativeCommandsSender.js +146 -0
  57. package/lib/module/Mock/mocks/NativeCommandsSender.js.map +1 -0
  58. package/lib/module/Mock/mocks/NativeEventsReceiver.js +103 -0
  59. package/lib/module/Mock/mocks/NativeEventsReceiver.js.map +1 -0
  60. package/lib/typescript/Mock/Application.d.ts.map +1 -1
  61. package/lib/typescript/Mock/ComponentProps.d.ts.map +1 -1
  62. package/lib/typescript/Mock/Components/BottomTabs.d.ts.map +1 -1
  63. package/lib/typescript/Mock/Components/ComponentScreen.d.ts.map +1 -1
  64. package/lib/typescript/Mock/Components/LayoutComponent.d.ts.map +1 -1
  65. package/lib/typescript/Mock/Components/Modals.d.ts.map +1 -1
  66. package/lib/typescript/Mock/Components/NavigationButton.d.ts +1 -1
  67. package/lib/typescript/Mock/Components/NavigationButton.d.ts.map +1 -1
  68. package/lib/typescript/Mock/Components/Overlays.d.ts.map +1 -1
  69. package/lib/typescript/Mock/Components/SideMenu.d.ts.map +1 -1
  70. package/lib/typescript/Mock/Components/Stack.d.ts.map +1 -1
  71. package/lib/typescript/Mock/Components/TopBar.d.ts +1 -1
  72. package/lib/typescript/Mock/Components/TopBar.d.ts.map +1 -1
  73. package/lib/typescript/Mock/Layouts/BottomTabsNode.d.ts +1 -1
  74. package/lib/typescript/Mock/Layouts/BottomTabsNode.d.ts.map +1 -1
  75. package/lib/typescript/Mock/Layouts/ComponentNode.d.ts +1 -1
  76. package/lib/typescript/Mock/Layouts/ComponentNode.d.ts.map +1 -1
  77. package/lib/typescript/Mock/Layouts/LayoutNodeFactory.d.ts.map +1 -1
  78. package/lib/typescript/Mock/Layouts/Node.d.ts +1 -1
  79. package/lib/typescript/Mock/Layouts/Node.d.ts.map +1 -1
  80. package/lib/typescript/Mock/Layouts/ParentNode.d.ts +2 -2
  81. package/lib/typescript/Mock/Layouts/ParentNode.d.ts.map +1 -1
  82. package/lib/typescript/Mock/Layouts/SideMenu.d.ts +1 -1
  83. package/lib/typescript/Mock/Layouts/SideMenu.d.ts.map +1 -1
  84. package/lib/typescript/Mock/Layouts/StackNode.d.ts.map +1 -1
  85. package/lib/typescript/Mock/Stores/EventsStore.d.ts +3 -3
  86. package/lib/typescript/Mock/Stores/EventsStore.d.ts.map +1 -1
  87. package/lib/typescript/Mock/Stores/LayoutStore.d.ts.map +1 -1
  88. package/lib/typescript/Mock/actions/layoutActions.d.ts.map +1 -1
  89. package/lib/typescript/Mock/connect.d.ts.map +1 -1
  90. package/lib/typescript/Mock/constants.d.ts.map +1 -1
  91. package/lib/typescript/Mock/index.d.ts.map +1 -1
  92. package/lib/typescript/Mock/mocks/AppRegistryService.d.ts.map +1 -1
  93. package/lib/typescript/Mock/mocks/NativeCommandsSender.d.ts +2 -2
  94. package/lib/typescript/Mock/mocks/NativeCommandsSender.d.ts.map +1 -1
  95. package/lib/typescript/Mock/mocks/NativeEventsReceiver.d.ts +2 -2
  96. package/lib/typescript/Mock/mocks/NativeEventsReceiver.d.ts.map +1 -1
  97. package/lib/typescript/Navigation.d.ts.map +1 -0
  98. package/lib/typescript/NavigationDelegate.d.ts.map +1 -0
  99. package/lib/typescript/adapters/AppRegistryService.d.ts.map +1 -0
  100. package/lib/typescript/adapters/AssetResolver.d.ts.map +1 -0
  101. package/lib/typescript/adapters/ColorService.d.ts.map +1 -0
  102. package/lib/typescript/adapters/Constants.d.ts.map +1 -0
  103. package/lib/typescript/adapters/NativeCommandsSender.d.ts.map +1 -0
  104. package/lib/typescript/adapters/NativeEventsReceiver.d.ts.map +1 -0
  105. package/lib/typescript/adapters/NativeEventsReceiver.mock.d.ts.map +1 -0
  106. package/lib/typescript/adapters/NativeRNNTurboEventEmitter.d.ts.map +1 -0
  107. package/lib/typescript/adapters/NativeRNNTurboModule.d.ts.map +1 -0
  108. package/lib/typescript/adapters/TouchablePreview.d.ts.map +1 -0
  109. package/lib/typescript/adapters/UniqueIdProvider.d.ts.map +1 -0
  110. package/lib/typescript/commands/Commands.d.ts.map +1 -0
  111. package/lib/typescript/commands/Commands.test.d.ts.map +1 -0
  112. package/lib/typescript/commands/Deprecations.d.ts.map +1 -0
  113. package/lib/typescript/commands/LayoutTreeCrawler.d.ts.map +1 -0
  114. package/lib/typescript/commands/LayoutTreeCrawler.test.d.ts.map +1 -0
  115. package/lib/typescript/commands/LayoutTreeParser.d.ts.map +1 -0
  116. package/lib/typescript/commands/LayoutTreeParser.test.d.ts.map +1 -0
  117. package/lib/typescript/commands/LayoutType.d.ts.map +1 -0
  118. package/lib/typescript/commands/LayoutType.test.d.ts.map +1 -0
  119. package/lib/typescript/commands/OptionsCrawler.d.ts.map +1 -0
  120. package/lib/typescript/commands/OptionsCrawler.test.d.ts.map +1 -0
  121. package/lib/typescript/commands/OptionsProcessor.d.ts.map +1 -0
  122. package/lib/typescript/commands/OptionsProcessor.test.d.ts.map +1 -0
  123. package/lib/typescript/components/ComponentRegistry.d.ts.map +1 -0
  124. package/lib/typescript/components/ComponentRegistry.test.d.ts.map +1 -0
  125. package/lib/typescript/components/ComponentWrapper.d.ts.map +1 -0
  126. package/lib/typescript/components/ComponentWrapper.test.d.ts.map +1 -0
  127. package/lib/typescript/components/Modal.d.ts.map +1 -0
  128. package/lib/typescript/components/Store.d.ts.map +1 -0
  129. package/lib/typescript/components/Store.test.d.ts.map +1 -0
  130. package/lib/typescript/events/CommandsObserver.d.ts.map +1 -0
  131. package/lib/typescript/events/CommandsObserver.test.d.ts.map +1 -0
  132. package/lib/typescript/events/ComponentEventsObserver.d.ts.map +1 -0
  133. package/lib/typescript/events/ComponentEventsObserver.test.d.ts.map +1 -0
  134. package/lib/typescript/events/EventsRegistry.d.ts.map +1 -0
  135. package/lib/typescript/events/EventsRegistry.test.d.ts.map +1 -0
  136. package/lib/typescript/index.d.ts.map +1 -0
  137. package/lib/typescript/interfaces/CommandName.d.ts.map +1 -0
  138. package/lib/typescript/interfaces/ComponentEvents.d.ts.map +1 -0
  139. package/lib/typescript/interfaces/EventSubscription.d.ts.map +1 -0
  140. package/lib/typescript/interfaces/Events.d.ts.map +1 -0
  141. package/lib/typescript/interfaces/Layout.d.ts.map +1 -0
  142. package/lib/typescript/interfaces/NavigationComponent.d.ts.map +1 -0
  143. package/lib/typescript/interfaces/NavigationComponentListener.d.ts.map +1 -0
  144. package/lib/typescript/interfaces/NavigationComponentProps.d.ts.map +1 -0
  145. package/lib/typescript/interfaces/NavigationFunctionComponent.d.ts.map +1 -0
  146. package/lib/typescript/interfaces/Options.d.ts.map +1 -0
  147. package/lib/typescript/interfaces/ProcessorSubscription.d.ts.map +1 -0
  148. package/lib/typescript/interfaces/Processors.d.ts.map +1 -0
  149. package/lib/typescript/processors/LayoutProcessor.d.ts.map +1 -0
  150. package/lib/typescript/processors/LayoutProcessor.test.d.ts.map +1 -0
  151. package/lib/typescript/processors/LayoutProcessorsStore.d.ts.map +1 -0
  152. package/lib/typescript/processors/LayoutProcessorsStore.test.d.ts.map +1 -0
  153. package/lib/typescript/processors/OptionProcessorsStore.d.ts.map +1 -0
  154. package/lib/typescript/processors/OptionProcessorsStore.test.d.ts.map +1 -0
  155. package/lib/typescript/types.d.ts.map +1 -0
  156. package/package.json +12 -6
  157. package/src/Mock/Application.tsx +30 -0
  158. package/src/Mock/ComponentProps.tsx +6 -0
  159. package/src/Mock/Components/BottomTabs.tsx +14 -0
  160. package/src/Mock/Components/ComponentScreen.tsx +107 -0
  161. package/src/Mock/Components/LayoutComponent.tsx +37 -0
  162. package/src/Mock/Components/Modals.tsx +22 -0
  163. package/src/Mock/Components/NavigationButton.tsx +86 -0
  164. package/src/Mock/Components/Overlays.tsx +23 -0
  165. package/src/Mock/Components/SideMenu.tsx +27 -0
  166. package/src/Mock/Components/Stack.tsx +16 -0
  167. package/src/Mock/Components/TopBar.tsx +96 -0
  168. package/src/Mock/Layouts/BottomTabsNode.ts +34 -0
  169. package/src/Mock/Layouts/ComponentNode.ts +124 -0
  170. package/src/Mock/Layouts/LayoutNodeFactory.ts +31 -0
  171. package/src/Mock/Layouts/Node.ts +35 -0
  172. package/src/Mock/Layouts/ParentNode.ts +86 -0
  173. package/src/Mock/Layouts/SideMenu.ts +87 -0
  174. package/src/Mock/Layouts/StackNode.ts +11 -0
  175. package/src/Mock/Stores/EventsStore.ts +68 -0
  176. package/src/Mock/Stores/LayoutStore.ts +200 -0
  177. package/src/Mock/actions/layoutActions.ts +21 -0
  178. package/src/Mock/connect.ts +6 -0
  179. package/src/Mock/constants.ts +2 -0
  180. package/src/Mock/index.ts +16 -0
  181. package/src/Mock/mocks/AppRegistryService.ts +5 -0
  182. package/src/Mock/mocks/NativeCommandsSender.tsx +168 -0
  183. package/src/Mock/mocks/NativeEventsReceiver.ts +162 -0
  184. package/lib/typescript/src/Navigation.d.ts.map +0 -1
  185. package/lib/typescript/src/NavigationDelegate.d.ts.map +0 -1
  186. package/lib/typescript/src/adapters/AppRegistryService.d.ts.map +0 -1
  187. package/lib/typescript/src/adapters/AssetResolver.d.ts.map +0 -1
  188. package/lib/typescript/src/adapters/ColorService.d.ts.map +0 -1
  189. package/lib/typescript/src/adapters/Constants.d.ts.map +0 -1
  190. package/lib/typescript/src/adapters/NativeCommandsSender.d.ts.map +0 -1
  191. package/lib/typescript/src/adapters/NativeEventsReceiver.d.ts.map +0 -1
  192. package/lib/typescript/src/adapters/NativeEventsReceiver.mock.d.ts.map +0 -1
  193. package/lib/typescript/src/adapters/NativeRNNTurboEventEmitter.d.ts.map +0 -1
  194. package/lib/typescript/src/adapters/NativeRNNTurboModule.d.ts.map +0 -1
  195. package/lib/typescript/src/adapters/TouchablePreview.d.ts.map +0 -1
  196. package/lib/typescript/src/adapters/UniqueIdProvider.d.ts.map +0 -1
  197. package/lib/typescript/src/commands/Commands.d.ts.map +0 -1
  198. package/lib/typescript/src/commands/Commands.test.d.ts.map +0 -1
  199. package/lib/typescript/src/commands/Deprecations.d.ts.map +0 -1
  200. package/lib/typescript/src/commands/LayoutTreeCrawler.d.ts.map +0 -1
  201. package/lib/typescript/src/commands/LayoutTreeCrawler.test.d.ts.map +0 -1
  202. package/lib/typescript/src/commands/LayoutTreeParser.d.ts.map +0 -1
  203. package/lib/typescript/src/commands/LayoutTreeParser.test.d.ts.map +0 -1
  204. package/lib/typescript/src/commands/LayoutType.d.ts.map +0 -1
  205. package/lib/typescript/src/commands/LayoutType.test.d.ts.map +0 -1
  206. package/lib/typescript/src/commands/OptionsCrawler.d.ts.map +0 -1
  207. package/lib/typescript/src/commands/OptionsCrawler.test.d.ts.map +0 -1
  208. package/lib/typescript/src/commands/OptionsProcessor.d.ts.map +0 -1
  209. package/lib/typescript/src/commands/OptionsProcessor.test.d.ts.map +0 -1
  210. package/lib/typescript/src/components/ComponentRegistry.d.ts.map +0 -1
  211. package/lib/typescript/src/components/ComponentRegistry.test.d.ts.map +0 -1
  212. package/lib/typescript/src/components/ComponentWrapper.d.ts.map +0 -1
  213. package/lib/typescript/src/components/ComponentWrapper.test.d.ts.map +0 -1
  214. package/lib/typescript/src/components/Modal.d.ts.map +0 -1
  215. package/lib/typescript/src/components/Store.d.ts.map +0 -1
  216. package/lib/typescript/src/components/Store.test.d.ts.map +0 -1
  217. package/lib/typescript/src/events/CommandsObserver.d.ts.map +0 -1
  218. package/lib/typescript/src/events/CommandsObserver.test.d.ts.map +0 -1
  219. package/lib/typescript/src/events/ComponentEventsObserver.d.ts.map +0 -1
  220. package/lib/typescript/src/events/ComponentEventsObserver.test.d.ts.map +0 -1
  221. package/lib/typescript/src/events/EventsRegistry.d.ts.map +0 -1
  222. package/lib/typescript/src/events/EventsRegistry.test.d.ts.map +0 -1
  223. package/lib/typescript/src/index.d.ts.map +0 -1
  224. package/lib/typescript/src/interfaces/CommandName.d.ts.map +0 -1
  225. package/lib/typescript/src/interfaces/ComponentEvents.d.ts.map +0 -1
  226. package/lib/typescript/src/interfaces/EventSubscription.d.ts.map +0 -1
  227. package/lib/typescript/src/interfaces/Events.d.ts.map +0 -1
  228. package/lib/typescript/src/interfaces/Layout.d.ts.map +0 -1
  229. package/lib/typescript/src/interfaces/NavigationComponent.d.ts.map +0 -1
  230. package/lib/typescript/src/interfaces/NavigationComponentListener.d.ts.map +0 -1
  231. package/lib/typescript/src/interfaces/NavigationComponentProps.d.ts.map +0 -1
  232. package/lib/typescript/src/interfaces/NavigationFunctionComponent.d.ts.map +0 -1
  233. package/lib/typescript/src/interfaces/Options.d.ts.map +0 -1
  234. package/lib/typescript/src/interfaces/ProcessorSubscription.d.ts.map +0 -1
  235. package/lib/typescript/src/interfaces/Processors.d.ts.map +0 -1
  236. package/lib/typescript/src/processors/LayoutProcessor.d.ts.map +0 -1
  237. package/lib/typescript/src/processors/LayoutProcessor.test.d.ts.map +0 -1
  238. package/lib/typescript/src/processors/LayoutProcessorsStore.d.ts.map +0 -1
  239. package/lib/typescript/src/processors/LayoutProcessorsStore.test.d.ts.map +0 -1
  240. package/lib/typescript/src/processors/OptionProcessorsStore.d.ts.map +0 -1
  241. package/lib/typescript/src/processors/OptionProcessorsStore.test.d.ts.map +0 -1
  242. package/lib/typescript/src/types.d.ts.map +0 -1
  243. /package/lib/typescript/{src/Navigation.d.ts → Navigation.d.ts} +0 -0
  244. /package/lib/typescript/{src/NavigationDelegate.d.ts → NavigationDelegate.d.ts} +0 -0
  245. /package/lib/typescript/{src/adapters → adapters}/AppRegistryService.d.ts +0 -0
  246. /package/lib/typescript/{src/adapters → adapters}/AssetResolver.d.ts +0 -0
  247. /package/lib/typescript/{src/adapters → adapters}/ColorService.d.ts +0 -0
  248. /package/lib/typescript/{src/adapters → adapters}/Constants.d.ts +0 -0
  249. /package/lib/typescript/{src/adapters → adapters}/NativeCommandsSender.d.ts +0 -0
  250. /package/lib/typescript/{src/adapters → adapters}/NativeEventsReceiver.d.ts +0 -0
  251. /package/lib/typescript/{src/adapters → adapters}/NativeEventsReceiver.mock.d.ts +0 -0
  252. /package/lib/typescript/{src/adapters → adapters}/NativeRNNTurboEventEmitter.d.ts +0 -0
  253. /package/lib/typescript/{src/adapters → adapters}/NativeRNNTurboModule.d.ts +0 -0
  254. /package/lib/typescript/{src/adapters → adapters}/TouchablePreview.d.ts +0 -0
  255. /package/lib/typescript/{src/adapters → adapters}/UniqueIdProvider.d.ts +0 -0
  256. /package/lib/typescript/{src/commands → commands}/Commands.d.ts +0 -0
  257. /package/lib/typescript/{src/commands → commands}/Commands.test.d.ts +0 -0
  258. /package/lib/typescript/{src/commands → commands}/Deprecations.d.ts +0 -0
  259. /package/lib/typescript/{src/commands → commands}/LayoutTreeCrawler.d.ts +0 -0
  260. /package/lib/typescript/{src/commands → commands}/LayoutTreeCrawler.test.d.ts +0 -0
  261. /package/lib/typescript/{src/commands → commands}/LayoutTreeParser.d.ts +0 -0
  262. /package/lib/typescript/{src/commands → commands}/LayoutTreeParser.test.d.ts +0 -0
  263. /package/lib/typescript/{src/commands → commands}/LayoutType.d.ts +0 -0
  264. /package/lib/typescript/{src/commands → commands}/LayoutType.test.d.ts +0 -0
  265. /package/lib/typescript/{src/commands → commands}/OptionsCrawler.d.ts +0 -0
  266. /package/lib/typescript/{src/commands → commands}/OptionsCrawler.test.d.ts +0 -0
  267. /package/lib/typescript/{src/commands → commands}/OptionsProcessor.d.ts +0 -0
  268. /package/lib/typescript/{src/commands → commands}/OptionsProcessor.test.d.ts +0 -0
  269. /package/lib/typescript/{src/components → components}/ComponentRegistry.d.ts +0 -0
  270. /package/lib/typescript/{src/components → components}/ComponentRegistry.test.d.ts +0 -0
  271. /package/lib/typescript/{src/components → components}/ComponentWrapper.d.ts +0 -0
  272. /package/lib/typescript/{src/components → components}/ComponentWrapper.test.d.ts +0 -0
  273. /package/lib/typescript/{src/components → components}/Modal.d.ts +0 -0
  274. /package/lib/typescript/{src/components → components}/Store.d.ts +0 -0
  275. /package/lib/typescript/{src/components → components}/Store.test.d.ts +0 -0
  276. /package/lib/typescript/{src/events → events}/CommandsObserver.d.ts +0 -0
  277. /package/lib/typescript/{src/events → events}/CommandsObserver.test.d.ts +0 -0
  278. /package/lib/typescript/{src/events → events}/ComponentEventsObserver.d.ts +0 -0
  279. /package/lib/typescript/{src/events → events}/ComponentEventsObserver.test.d.ts +0 -0
  280. /package/lib/typescript/{src/events → events}/EventsRegistry.d.ts +0 -0
  281. /package/lib/typescript/{src/events → events}/EventsRegistry.test.d.ts +0 -0
  282. /package/lib/typescript/{src/index.d.ts → index.d.ts} +0 -0
  283. /package/lib/typescript/{src/interfaces → interfaces}/CommandName.d.ts +0 -0
  284. /package/lib/typescript/{src/interfaces → interfaces}/ComponentEvents.d.ts +0 -0
  285. /package/lib/typescript/{src/interfaces → interfaces}/EventSubscription.d.ts +0 -0
  286. /package/lib/typescript/{src/interfaces → interfaces}/Events.d.ts +0 -0
  287. /package/lib/typescript/{src/interfaces → interfaces}/Layout.d.ts +0 -0
  288. /package/lib/typescript/{src/interfaces → interfaces}/NavigationComponent.d.ts +0 -0
  289. /package/lib/typescript/{src/interfaces → interfaces}/NavigationComponentListener.d.ts +0 -0
  290. /package/lib/typescript/{src/interfaces → interfaces}/NavigationComponentProps.d.ts +0 -0
  291. /package/lib/typescript/{src/interfaces → interfaces}/NavigationFunctionComponent.d.ts +0 -0
  292. /package/lib/typescript/{src/interfaces → interfaces}/Options.d.ts +0 -0
  293. /package/lib/typescript/{src/interfaces → interfaces}/ProcessorSubscription.d.ts +0 -0
  294. /package/lib/typescript/{src/interfaces → interfaces}/Processors.d.ts +0 -0
  295. /package/lib/typescript/{src/processors → processors}/LayoutProcessor.d.ts +0 -0
  296. /package/lib/typescript/{src/processors → processors}/LayoutProcessor.test.d.ts +0 -0
  297. /package/lib/typescript/{src/processors → processors}/LayoutProcessorsStore.d.ts +0 -0
  298. /package/lib/typescript/{src/processors → processors}/LayoutProcessorsStore.test.d.ts +0 -0
  299. /package/lib/typescript/{src/processors → processors}/OptionProcessorsStore.d.ts +0 -0
  300. /package/lib/typescript/{src/processors → processors}/OptionProcessorsStore.test.d.ts +0 -0
  301. /package/lib/typescript/{src/types.d.ts → types.d.ts} +0 -0
@@ -0,0 +1,35 @@
1
+ import { Options } from '../../index';
2
+ import ParentNode from './ParentNode';
3
+
4
+ interface Data {
5
+ name: string;
6
+ options: Options;
7
+ }
8
+
9
+ export type NodeType =
10
+ | 'Component'
11
+ | 'ExternalComponent'
12
+ | 'Stack'
13
+ | 'BottomTabs'
14
+ | 'TopTabs'
15
+ | 'SideMenuRoot'
16
+ | 'SideMenuLeft'
17
+ | 'SideMenuRight'
18
+ | 'SideMenuCenter'
19
+ | 'SplitView';
20
+
21
+ export default class Node {
22
+ readonly nodeId: string;
23
+ readonly data: Data;
24
+ readonly type: NodeType;
25
+ // options: Options;
26
+ parentNode?: ParentNode;
27
+
28
+ constructor(layout: any, type: NodeType, parentNode?: ParentNode) {
29
+ this.nodeId = layout.id;
30
+ this.data = layout.data;
31
+ // this.options = layout.data.options;
32
+ this.parentNode = parentNode;
33
+ this.type = type;
34
+ }
35
+ }
@@ -0,0 +1,86 @@
1
+ import _ from 'lodash';
2
+ import { OptionsTopBarButton } from '../../interfaces/Options';
3
+ import { Options } from '../../index';
4
+ import { LayoutStore } from '../Stores/LayoutStore';
5
+ import ComponentNode from './ComponentNode';
6
+ import LayoutNodeFactory from './LayoutNodeFactory';
7
+ import Node, { NodeType } from './Node';
8
+
9
+ export default class ParentNode extends Node {
10
+ children: ParentNode[];
11
+
12
+ constructor(layout: any, type: NodeType, parentNode?: ParentNode) {
13
+ super(layout, type, parentNode);
14
+ this.children = layout.children.map((childLayout: any) =>
15
+ LayoutNodeFactory.create(childLayout, this)
16
+ );
17
+ }
18
+
19
+ componentDidMount() {}
20
+
21
+ componentDidAppear() {
22
+ this.getVisibleLayout().componentDidAppear();
23
+ }
24
+
25
+ componentDidDisappear() {
26
+ this.getVisibleLayout().componentDidDisappear();
27
+ }
28
+
29
+ getVisibleLayout(): ComponentNode {
30
+ return this.children[this.children.length - 1].getVisibleLayout();
31
+ }
32
+
33
+ getTopParent(): Node {
34
+ if (this.parentNode) return this.parentNode.getTopParent();
35
+ return this;
36
+ }
37
+
38
+ applyOptions(_options: Options) {
39
+ this.parentNode?.applyOptions(_options);
40
+ }
41
+
42
+ mergeOptions(options: Options) {
43
+ this.data.options = _.mergeWith(this.data.options, options, (objValue, srcValue, key) => {
44
+ if (_.isArray(objValue)) {
45
+ if (key === 'rightButtons' || key === 'leftButtons') {
46
+ this.buttonsChanged(objValue, srcValue);
47
+ }
48
+ return srcValue;
49
+ }
50
+ if (key === 'title' && srcValue.component) {
51
+ this.titleChanged(objValue, srcValue);
52
+ }
53
+ });
54
+
55
+ this.parentNode?.mergeOptions(options);
56
+ }
57
+
58
+ buttonsChanged(_oldButtons: OptionsTopBarButton[], _newButtons: OptionsTopBarButton[]) {}
59
+
60
+ titleChanged(_oldComponent: any, _newComponent: any) {}
61
+
62
+ resolveOptions(): Options {
63
+ const options = _.merge(_.cloneDeep(this.data.options), this.getVisibleLayout().data.options);
64
+ return _.merge(_.cloneDeep(LayoutStore.getDefaultOptions()), options);
65
+ }
66
+
67
+ public getStack(): ParentNode | undefined {
68
+ if (this.type === 'Stack') {
69
+ return this as ParentNode;
70
+ } else if (this.parentNode) {
71
+ return this.parentNode.getStack();
72
+ }
73
+
74
+ return undefined;
75
+ }
76
+
77
+ public getBottomTabs(): ParentNode | undefined {
78
+ if (this.type === 'BottomTabs') {
79
+ return this as ParentNode;
80
+ } else if (this.parentNode) {
81
+ return this.parentNode.getBottomTabs();
82
+ }
83
+
84
+ return undefined;
85
+ }
86
+ }
@@ -0,0 +1,87 @@
1
+ import ParentNode from './ParentNode';
2
+ import ComponentNode from './ComponentNode';
3
+ import { Options } from '../../index';
4
+ import * as layoutActions from '../actions/layoutActions';
5
+ import { NodeType } from './Node';
6
+
7
+ const isCenterChild = (child: ParentNode) => child.type === 'SideMenuCenter';
8
+ const isLeftChild = (child: ParentNode) => child.type === 'SideMenuLeft';
9
+ const isRightChild = (child: ParentNode) => child.type === 'SideMenuRight';
10
+
11
+ export default class SideMenuRootNode extends ParentNode {
12
+ visibleChild: ParentNode;
13
+
14
+ constructor(layout: any, parentNode?: ParentNode) {
15
+ super(layout, 'SideMenuRoot', parentNode);
16
+
17
+ this.visibleChild = this._getCenterChild();
18
+ if (!this.visibleChild) {
19
+ throw new Error('SideMenuRootNode must have a SideMenuCenter child');
20
+ }
21
+ }
22
+
23
+ applyOptions(_options: Options) {
24
+ super.applyOptions(_options);
25
+
26
+ this._updateVisibility(_options);
27
+ }
28
+
29
+ mergeOptions(options: Options) {
30
+ super.mergeOptions(options);
31
+
32
+ this._updateVisibility(options);
33
+ }
34
+
35
+ /**
36
+ * @override
37
+ */
38
+ getVisibleLayout(): ComponentNode {
39
+ return this.visibleChild.getVisibleLayout();
40
+ }
41
+
42
+ _updateVisibility(options: Options) {
43
+ if (options.sideMenu) {
44
+ if (options.sideMenu.left?.visible) {
45
+ this.visibleChild = this._getLeftChild();
46
+ layoutActions.openSideMenu(this.visibleChild);
47
+ } else if (options.sideMenu.right?.visible) {
48
+ this.visibleChild = this._getRightChild();
49
+ layoutActions.openSideMenu(this.visibleChild);
50
+ } else {
51
+ this.visibleChild = this._getCenterChild();
52
+ layoutActions.closeSideMenu(this.visibleChild);
53
+ }
54
+ }
55
+ }
56
+
57
+ _getCenterChild = () => this.children.find(isCenterChild) as ParentNode;
58
+ _getLeftChild = () => this.children.find(isLeftChild) as ParentNode;
59
+ _getRightChild = () => this.children.find(isRightChild) as ParentNode;
60
+ }
61
+
62
+ export class SideMenuNode extends ParentNode {
63
+ constructor(layout: any, type: NodeType, parentNode?: ParentNode) {
64
+ super(layout, type, parentNode);
65
+ }
66
+
67
+ getVisibleLayout() {
68
+ return this.children[0].getVisibleLayout();
69
+ }
70
+ }
71
+
72
+ export class SideMenuLeftNode extends SideMenuNode {
73
+ constructor(layout: any, parentNode?: ParentNode) {
74
+ super(layout, 'SideMenuLeft', parentNode);
75
+ }
76
+ }
77
+ export class SideMenuRightNode extends SideMenuNode {
78
+ constructor(layout: any, parentNode?: ParentNode) {
79
+ super(layout, 'SideMenuRight', parentNode);
80
+ }
81
+ }
82
+
83
+ export class SideMenuCenterNode extends SideMenuNode {
84
+ constructor(layout: any, parentNode?: ParentNode) {
85
+ super(layout, 'SideMenuCenter', parentNode);
86
+ }
87
+ }
@@ -0,0 +1,11 @@
1
+ import ParentNode from './ParentNode';
2
+
3
+ export default class StackNode extends ParentNode {
4
+ constructor(layout: any, parentNode?: ParentNode) {
5
+ super(layout, 'Stack', parentNode);
6
+ }
7
+
8
+ getVisibleLayout() {
9
+ return this.children[this.children.length - 1].getVisibleLayout();
10
+ }
11
+ }
@@ -0,0 +1,68 @@
1
+ import {
2
+ ComponentDidDisappearEvent,
3
+ ComponentWillAppearEvent,
4
+ ModalDismissedEvent,
5
+ ScreenPoppedEvent,
6
+ } from '../../interfaces/ComponentEvents';
7
+ import { ComponentDidAppearEvent, NavigationButtonPressedEvent } from '../../index';
8
+ import { BottomTabPressedEvent, CommandCompletedEvent } from '../../interfaces/Events';
9
+
10
+ export const events = {
11
+ navigationButtonPressed: [(_event: NavigationButtonPressedEvent) => {}],
12
+ componentWillAppear: [(_event: ComponentWillAppearEvent) => {}],
13
+ componentDidAppear: [(_event: ComponentDidAppearEvent) => {}],
14
+ componentDidDisappear: [(_event: ComponentDidDisappearEvent) => {}],
15
+ modalDismissed: [(_event: ModalDismissedEvent) => {}],
16
+ bottomTabPressed: [(_event: BottomTabPressedEvent) => {}],
17
+ commandCompleted: [(_event: CommandCompletedEvent) => {}],
18
+ screenPopped: [(_event: ScreenPoppedEvent) => {}],
19
+
20
+ invokeComponentWillAppear: (event: ComponentWillAppearEvent) => {
21
+ events.componentWillAppear &&
22
+ events.componentWillAppear.forEach((listener) => {
23
+ listener(event);
24
+ });
25
+ },
26
+ invokeComponentDidAppear: (event: ComponentDidAppearEvent) => {
27
+ events.componentDidAppear &&
28
+ events.componentDidAppear.forEach((listener) => {
29
+ listener(event);
30
+ });
31
+ },
32
+ invokeComponentDidDisappear: (event: ComponentDidDisappearEvent) => {
33
+ events.componentDidDisappear &&
34
+ events.componentDidDisappear.forEach((listener) => {
35
+ listener(event);
36
+ });
37
+ },
38
+ invokeModalDismissed: (event: ModalDismissedEvent) => {
39
+ events.modalDismissed &&
40
+ events.modalDismissed.forEach((listener) => {
41
+ listener(event);
42
+ });
43
+ },
44
+ invokeNavigationButtonPressed: (event: NavigationButtonPressedEvent) => {
45
+ events.navigationButtonPressed &&
46
+ events.navigationButtonPressed.forEach((listener) => {
47
+ listener(event);
48
+ });
49
+ },
50
+ invokeBottomTabPressed: (event: BottomTabPressedEvent) => {
51
+ events.bottomTabPressed &&
52
+ events.bottomTabPressed?.forEach((listener) => {
53
+ listener(event);
54
+ });
55
+ },
56
+ invokeCommandCompleted: (event: CommandCompletedEvent) => {
57
+ events.commandCompleted &&
58
+ events.commandCompleted.forEach((listener) => {
59
+ listener(event);
60
+ });
61
+ },
62
+ invokeScreenPopped: (event: ScreenPoppedEvent) => {
63
+ events.screenPopped &&
64
+ events.screenPopped.forEach((listener) => {
65
+ listener(event);
66
+ });
67
+ },
68
+ };
@@ -0,0 +1,200 @@
1
+ import _ from 'lodash';
2
+ import BottomTabsNode from '../Layouts/BottomTabsNode';
3
+ import ParentNode from '../Layouts/ParentNode';
4
+ import LayoutNodeFactory from '../Layouts/LayoutNodeFactory';
5
+ import { SideMenuNode } from '../Layouts/SideMenu';
6
+ import StackNode from '../Layouts/StackNode';
7
+ import { Options } from '../../interfaces/Options';
8
+
9
+ const remx = require('remx');
10
+
11
+ const state = remx.state({
12
+ root: {},
13
+ modals: [],
14
+ overlays: [],
15
+ sideMenu: undefined,
16
+ });
17
+
18
+ const setters = remx.setters({
19
+ setRoot(layout: ParentNode) {
20
+ state.modals = [];
21
+ state.root = layout;
22
+ },
23
+ push(layout: ParentNode, stack: StackNode) {
24
+ stack.children.push(layout);
25
+ },
26
+ pop(layoutId: string) {
27
+ const stack = getters.getLayoutById(layoutId).getStack();
28
+ if (stack.children.length === 1) return;
29
+ const poppedChild = stack.children.pop();
30
+ const newVisibleChild = stack.getVisibleLayout();
31
+ poppedChild.componentDidDisappear();
32
+ newVisibleChild.componentDidAppear();
33
+ return _.clone(poppedChild.nodeId);
34
+ },
35
+ popTo(layoutId: string) {
36
+ const stack = getters.getLayoutById(layoutId).getStack();
37
+ while (stack.getVisibleLayout().nodeId != layoutId) {
38
+ stack.children.pop();
39
+ }
40
+ },
41
+ popToRoot(layoutId: string) {
42
+ const stack = getters.getLayoutById(layoutId).getStack();
43
+ while (stack.children.length > 1) {
44
+ stack.children.pop();
45
+ }
46
+ },
47
+ setStackRoot(layoutId: string, layout: any) {
48
+ const currentLayout = getters.getLayoutById(layoutId);
49
+ if (currentLayout) {
50
+ const stack = currentLayout.getStack();
51
+ stack.children = layout.map((child: any) => LayoutNodeFactory.create(child, stack));
52
+ }
53
+ },
54
+ showOverlay(overlay: ParentNode) {
55
+ state.overlays.push(overlay);
56
+ },
57
+ dismissOverlay(overlayId: string) {
58
+ _.remove(state.overlays, (overlay: ParentNode) => overlay.nodeId === overlayId);
59
+ },
60
+ dismissAllOverlays() {
61
+ state.overlays = [];
62
+ },
63
+ showModal(modal: ParentNode) {
64
+ state.modals.push(modal);
65
+ },
66
+ dismissModal(componentId: string) {
67
+ const modal = getters.getModalById(componentId);
68
+ if (modal) {
69
+ const child = modal.getVisibleLayout();
70
+ const topParent = child.getTopParent();
71
+ _.remove(state.modals, (modal: ParentNode) => modal.nodeId === topParent.nodeId);
72
+ }
73
+ },
74
+ dismissAllModals() {
75
+ state.modals = [];
76
+ },
77
+ selectTabIndex(layout: BottomTabsNode, index: number) {
78
+ getters.getLayoutById(layout.nodeId).selectedIndex = index;
79
+ },
80
+ openSideMenu(layout: SideMenuNode) {
81
+ if (state.sideMenu) {
82
+ throw new Error(
83
+ 'A side-menu is already open; Mocked-testing of multiple side-menu scenarios is not supported yet.' +
84
+ ' You can submit a request in https://github.com/wix/react-native-navigation/issues/new/choose.'
85
+ );
86
+ }
87
+ state.sideMenu = layout;
88
+ },
89
+ closeSideMenu(_layout: SideMenuNode) {
90
+ state.sideMenu = undefined;
91
+ },
92
+ applyOptions(componentId: string, options: Options) {
93
+ const layout = getters.getLayoutById(componentId);
94
+ if (layout) layout.applyOptions(options);
95
+ else console.warn(`[RNN error] Merge options failure: cannot find layout for: ${componentId}`);
96
+ },
97
+ mergeOptions(componentId: string, options: Options) {
98
+ const layout = getters.getLayoutById(componentId);
99
+ if (layout) layout.mergeOptions(options);
100
+ else console.warn(`[RNN error] Merge options failure: cannot find layout for: ${componentId}`);
101
+ },
102
+ });
103
+
104
+ const getters = remx.getters({
105
+ getLayout() {
106
+ return state.root;
107
+ },
108
+ getVisibleLayout() {
109
+ let layout: ParentNode | undefined;
110
+ if (state.modals.length > 0) {
111
+ layout = _.last<ParentNode>(state.modals)!;
112
+ } else if (!_.isEqual(state.root, {})) {
113
+ layout = state.root;
114
+ }
115
+
116
+ // Note: While this logic should be fair for all use cases (i.e. even multiple side-menus across tabs),
117
+ // there is no current test case that justifies it. Nevertheless, it's required to pass the tests,
118
+ // because otherwise getVisibleLayout() would not be revisited whenever side-menus are opened/closed.
119
+ if (layout && state.sideMenu && findNode(state.sideMenu.nodeId, layout!)) {
120
+ layout = state.sideMenu.parentNode;
121
+ }
122
+
123
+ return layout?.getVisibleLayout();
124
+ },
125
+ isVisibleLayout(layout: ParentNode) {
126
+ const nodeId = layout.nodeId;
127
+ const visibleLayout = getters.getVisibleLayout();
128
+ return visibleLayout?.nodeId === nodeId;
129
+ },
130
+ getModals() {
131
+ return state.modals;
132
+ },
133
+ getOverlays() {
134
+ return state.overlays;
135
+ },
136
+ getLayoutById(layoutId: string) {
137
+ if (getters.getModalById(layoutId)) return findNode(layoutId, getters.getModalById(layoutId));
138
+
139
+ return findNode(layoutId, state.root);
140
+ },
141
+ getModalById(layoutId: string) {
142
+ return _.find(state.modals, (layout) => findNode(layoutId, layout));
143
+ },
144
+ getLayoutChildren(layoutId: string) {
145
+ return getters.getLayoutById(layoutId).children;
146
+ },
147
+ getStack(layoutId: string) {
148
+ return (
149
+ findStack(layoutId, state.root) ||
150
+ _.find(state.modals, (layout) => findStack(layoutId, layout))
151
+ );
152
+ },
153
+ });
154
+
155
+ function findNode(layoutId: string, layout: ParentNode): any | ParentNode {
156
+ if (layoutId === layout.nodeId) {
157
+ return layout;
158
+ } else if (layout.children) {
159
+ for (let i = 0; i < layout.children.length; i += 1) {
160
+ const child = layout.children[i];
161
+ const result = findNode(layoutId, child);
162
+
163
+ if (result !== false) {
164
+ return result;
165
+ }
166
+ }
167
+ }
168
+
169
+ return false;
170
+ }
171
+
172
+ function findStack(layoutId: string, layout: ParentNode): any | ParentNode {
173
+ if (layout.type === 'Stack' && _.find(layout.children, (child) => child.nodeId === layoutId)) {
174
+ return layout;
175
+ } else if (layout.children) {
176
+ for (let i = 0; i < layout.children.length; i += 1) {
177
+ const child = layout.children[i];
178
+ const result = findStack(layoutId, child);
179
+
180
+ if (result !== false) {
181
+ return result;
182
+ }
183
+ }
184
+ }
185
+
186
+ return false;
187
+ }
188
+
189
+ let defaultOptions: Options;
190
+
191
+ export const LayoutStore = {
192
+ ...getters,
193
+ ...setters,
194
+ setDefaultOptions(options: Options) {
195
+ defaultOptions = options;
196
+ },
197
+ getDefaultOptions() {
198
+ return defaultOptions;
199
+ },
200
+ };
@@ -0,0 +1,21 @@
1
+ import ParentNode from '../Layouts/ParentNode';
2
+ import { SideMenuNode } from '../Layouts/SideMenu';
3
+ import { LayoutStore } from '../Stores/LayoutStore';
4
+
5
+ export const switchTabByIndex = (bottomTabs: ParentNode | undefined, index: number) => {
6
+ if (bottomTabs) {
7
+ LayoutStore.getVisibleLayout().componentDidDisappear();
8
+ LayoutStore.selectTabIndex(bottomTabs, index);
9
+ LayoutStore.getVisibleLayout().componentDidAppear();
10
+ }
11
+ };
12
+
13
+ export const openSideMenu = (sideMenu: SideMenuNode) => {
14
+ LayoutStore.openSideMenu(sideMenu);
15
+ LayoutStore.getVisibleLayout().componentDidAppear();
16
+ };
17
+
18
+ export const closeSideMenu = (layout: SideMenuNode) => {
19
+ LayoutStore.getVisibleLayout().componentDidDisappear();
20
+ LayoutStore.closeSideMenu(layout);
21
+ };
@@ -0,0 +1,6 @@
1
+ import { connect as remxConnect } from 'remx';
2
+
3
+ export function connect<T>(component: T): T {
4
+ // @ts-ignore
5
+ return remxConnect()(component);
6
+ }
@@ -0,0 +1,2 @@
1
+ export const VISIBLE_SCREEN_TEST_ID = 'VISIBLE_SCREEN_TEST_ID';
2
+ export const VISIBLE_OVERLAY_TEST_ID = 'VISIBLE_OVERLAY_TEST_ID';
@@ -0,0 +1,16 @@
1
+ export const ApplicationMock = require('./Application').Application;
2
+
3
+ export * from './constants';
4
+
5
+ export function mockNativeComponents() {
6
+ const { NativeCommandsSender } = require('./mocks/NativeCommandsSender');
7
+ const { NativeEventsReceiver } = require('./mocks/NativeEventsReceiver');
8
+ const { AppRegistryService } = require('./mocks/AppRegistryService');
9
+ const { Navigation } = require('react-native-navigation');
10
+
11
+ Navigation.mockNativeComponents(
12
+ new NativeCommandsSender(),
13
+ new NativeEventsReceiver(),
14
+ new AppRegistryService()
15
+ );
16
+ }
@@ -0,0 +1,5 @@
1
+ import { ComponentProvider } from 'react-native';
2
+
3
+ export class AppRegistryService {
4
+ registerComponent(_appKey: string, _getComponentFunc: ComponentProvider) {}
5
+ }