@ohos-ports/react-native-navigation 8.9.0-beta.11 → 8.9.0-beta.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 (271) hide show
  1. package/README.md +13 -11
  2. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/statusbar/StatusBarPresenter.kt +212 -0
  3. package/lib/module/ARCHITECTURE.md +331 -0
  4. package/lib/module/Mock/Application.js +33 -0
  5. package/lib/module/Mock/Application.js.map +1 -0
  6. package/lib/module/Mock/ComponentProps.js +4 -0
  7. package/lib/module/Mock/ComponentProps.js.map +1 -0
  8. package/lib/module/Mock/Components/BottomTabs.js +16 -0
  9. package/lib/module/Mock/Components/BottomTabs.js.map +1 -0
  10. package/lib/module/Mock/Components/ComponentScreen.js +101 -0
  11. package/lib/module/Mock/Components/ComponentScreen.js.map +1 -0
  12. package/lib/module/Mock/Components/LayoutComponent.js +50 -0
  13. package/lib/module/Mock/Components/LayoutComponent.js.map +1 -0
  14. package/lib/module/Mock/Components/Modals.js +22 -0
  15. package/lib/module/Mock/Components/Modals.js.map +1 -0
  16. package/lib/module/Mock/Components/NavigationButton.js +72 -0
  17. package/lib/module/Mock/Components/NavigationButton.js.map +1 -0
  18. package/lib/module/Mock/Components/Overlays.js +23 -0
  19. package/lib/module/Mock/Components/Overlays.js.map +1 -0
  20. package/lib/module/Mock/Components/SideMenu.js +29 -0
  21. package/lib/module/Mock/Components/SideMenu.js.map +1 -0
  22. package/lib/module/Mock/Components/Stack.js +18 -0
  23. package/lib/module/Mock/Components/Stack.js.map +1 -0
  24. package/lib/module/Mock/Components/TopBar.js +81 -0
  25. package/lib/module/Mock/Components/TopBar.js.map +1 -0
  26. package/lib/module/Mock/Layouts/BottomTabsNode.js +30 -0
  27. package/lib/module/Mock/Layouts/BottomTabsNode.js.map +1 -0
  28. package/lib/module/Mock/Layouts/ComponentNode.js +102 -0
  29. package/lib/module/Mock/Layouts/ComponentNode.js.map +1 -0
  30. package/lib/module/Mock/Layouts/LayoutNodeFactory.js +28 -0
  31. package/lib/module/Mock/Layouts/LayoutNodeFactory.js.map +1 -0
  32. package/lib/module/Mock/Layouts/Node.js +14 -0
  33. package/lib/module/Mock/Layouts/Node.js.map +1 -0
  34. package/lib/module/Mock/Layouts/ParentNode.js +66 -0
  35. package/lib/module/Mock/Layouts/ParentNode.js.map +1 -0
  36. package/lib/module/Mock/Layouts/SideMenu.js +72 -0
  37. package/lib/module/Mock/Layouts/SideMenu.js.map +1 -0
  38. package/lib/module/Mock/Layouts/StackNode.js +12 -0
  39. package/lib/module/Mock/Layouts/StackNode.js.map +1 -0
  40. package/lib/module/Mock/Stores/EventsStore.js +53 -0
  41. package/lib/module/Mock/Stores/EventsStore.js.map +1 -0
  42. package/lib/{cjs → module}/Mock/Stores/LayoutStore.js +24 -56
  43. package/lib/module/Mock/Stores/LayoutStore.js.map +1 -0
  44. package/lib/module/Mock/actions/layoutActions.js +19 -0
  45. package/lib/module/Mock/actions/layoutActions.js.map +1 -0
  46. package/lib/module/Mock/connect.js +8 -0
  47. package/lib/module/Mock/connect.js.map +1 -0
  48. package/lib/module/Mock/constants.js +5 -0
  49. package/lib/module/Mock/constants.js.map +1 -0
  50. package/lib/module/Mock/index.js +20 -0
  51. package/lib/module/Mock/index.js.map +1 -0
  52. package/lib/module/Mock/mocks/AppRegistryService.js +6 -0
  53. package/lib/module/Mock/mocks/AppRegistryService.js.map +1 -0
  54. package/lib/module/Mock/mocks/NativeCommandsSender.js +146 -0
  55. package/lib/module/Mock/mocks/NativeCommandsSender.js.map +1 -0
  56. package/lib/module/Mock/mocks/NativeEventsReceiver.js +103 -0
  57. package/lib/module/Mock/mocks/NativeEventsReceiver.js.map +1 -0
  58. package/lib/module/Navigation.js +250 -0
  59. package/lib/module/Navigation.js.map +1 -0
  60. package/lib/{cjs → module}/NavigationDelegate.js +34 -33
  61. package/lib/module/NavigationDelegate.js.map +1 -0
  62. package/lib/module/adapters/AndroidCustomRowForwarder.js +75 -0
  63. package/lib/module/adapters/AndroidCustomRowForwarder.js.map +1 -0
  64. package/lib/module/adapters/AppRegistryService.js +9 -0
  65. package/lib/module/adapters/AppRegistryService.js.map +1 -0
  66. package/lib/module/adapters/AssetResolver.js +9 -0
  67. package/lib/module/adapters/AssetResolver.js.map +1 -0
  68. package/lib/module/adapters/ColorService.js +9 -0
  69. package/lib/module/adapters/ColorService.js.map +1 -0
  70. package/lib/module/adapters/Constants.js +19 -0
  71. package/lib/module/adapters/Constants.js.map +1 -0
  72. package/lib/{cjs → module}/adapters/NativeCommandsSender.js +5 -39
  73. package/lib/module/adapters/NativeCommandsSender.js.map +1 -0
  74. package/lib/module/adapters/NativeEventsReceiver.js +65 -0
  75. package/lib/module/adapters/NativeEventsReceiver.js.map +1 -0
  76. package/lib/module/adapters/NativeEventsReceiver.mock.js +6 -0
  77. package/lib/module/adapters/NativeEventsReceiver.mock.js.map +1 -0
  78. package/lib/module/adapters/NativeRNNTurboEventEmitter.js +7 -0
  79. package/lib/module/adapters/NativeRNNTurboEventEmitter.js.map +1 -0
  80. package/lib/module/adapters/NativeRNNTurboModule.js +6 -0
  81. package/lib/module/adapters/NativeRNNTurboModule.js.map +1 -0
  82. package/lib/module/adapters/TouchablePreview.js +115 -0
  83. package/lib/module/adapters/TouchablePreview.js.map +1 -0
  84. package/lib/module/adapters/UniqueIdProvider.js +9 -0
  85. package/lib/module/adapters/UniqueIdProvider.js.map +1 -0
  86. package/lib/module/commands/Commands.js +241 -0
  87. package/lib/module/commands/Commands.js.map +1 -0
  88. package/lib/module/commands/Commands.test.js +759 -0
  89. package/lib/module/commands/Commands.test.js.map +1 -0
  90. package/lib/module/commands/Deprecations.js +66 -0
  91. package/lib/module/commands/Deprecations.js.map +1 -0
  92. package/lib/module/commands/LayoutTreeCrawler.js +32 -0
  93. package/lib/module/commands/LayoutTreeCrawler.js.map +1 -0
  94. package/lib/module/commands/LayoutTreeCrawler.test.js +82 -0
  95. package/lib/module/commands/LayoutTreeCrawler.test.js.map +1 -0
  96. package/lib/module/commands/LayoutTreeParser.js +130 -0
  97. package/lib/module/commands/LayoutTreeParser.js.map +1 -0
  98. package/lib/module/commands/LayoutTreeParser.test.js +359 -0
  99. package/lib/module/commands/LayoutTreeParser.test.js.map +1 -0
  100. package/lib/module/commands/LayoutType.js +16 -0
  101. package/lib/module/commands/LayoutType.js.map +1 -0
  102. package/lib/module/commands/LayoutType.test.js +12 -0
  103. package/lib/module/commands/LayoutType.test.js.map +1 -0
  104. package/lib/module/commands/OptionsCrawler.js +72 -0
  105. package/lib/module/commands/OptionsCrawler.js.map +1 -0
  106. package/lib/module/commands/OptionsCrawler.test.js +351 -0
  107. package/lib/module/commands/OptionsCrawler.test.js.map +1 -0
  108. package/lib/{cjs → module}/commands/OptionsProcessor.js +67 -102
  109. package/lib/module/commands/OptionsProcessor.js.map +1 -0
  110. package/lib/module/commands/OptionsProcessor.test.js +1234 -0
  111. package/lib/module/commands/OptionsProcessor.test.js.map +1 -0
  112. package/lib/{cjs → module}/components/ComponentRegistry.js +3 -27
  113. package/lib/module/components/ComponentRegistry.js.map +1 -0
  114. package/lib/module/components/ComponentRegistry.test.js +57 -0
  115. package/lib/module/components/ComponentRegistry.test.js.map +1 -0
  116. package/lib/module/components/ComponentWrapper.js +80 -0
  117. package/lib/module/components/ComponentWrapper.js.map +1 -0
  118. package/lib/module/components/ComponentWrapper.test.js +333 -0
  119. package/lib/module/components/ComponentWrapper.test.js.map +1 -0
  120. package/lib/module/components/Modal.js +125 -0
  121. package/lib/module/components/Modal.js.map +1 -0
  122. package/lib/{cjs → module}/components/Store.js +3 -27
  123. package/lib/module/components/Store.js.map +1 -0
  124. package/lib/module/components/Store.test.js +148 -0
  125. package/lib/module/components/Store.test.js.map +1 -0
  126. package/lib/module/events/CommandsObserver.js +19 -0
  127. package/lib/module/events/CommandsObserver.js.map +1 -0
  128. package/lib/module/events/CommandsObserver.test.js +43 -0
  129. package/lib/module/events/CommandsObserver.test.js.map +1 -0
  130. package/lib/module/events/ComponentEventsObserver.js +94 -0
  131. package/lib/module/events/ComponentEventsObserver.js.map +1 -0
  132. package/lib/module/events/ComponentEventsObserver.test.js +391 -0
  133. package/lib/module/events/ComponentEventsObserver.test.js.map +1 -0
  134. package/lib/{cjs → module}/events/EventsRegistry.js +3 -27
  135. package/lib/module/events/EventsRegistry.js.map +1 -0
  136. package/lib/module/events/EventsRegistry.test.js +131 -0
  137. package/lib/module/events/EventsRegistry.test.js.map +1 -0
  138. package/lib/module/index.js +22 -0
  139. package/lib/module/index.js.map +1 -0
  140. package/lib/module/interfaces/CommandName.js +22 -0
  141. package/lib/module/interfaces/CommandName.js.map +1 -0
  142. package/lib/module/interfaces/ComponentEvents.js +2 -0
  143. package/lib/module/interfaces/ComponentEvents.js.map +1 -0
  144. package/lib/module/interfaces/EventSubscription.js +2 -0
  145. package/lib/module/interfaces/EventSubscription.js.map +1 -0
  146. package/lib/module/interfaces/Events.js +2 -0
  147. package/lib/module/interfaces/Events.js.map +1 -0
  148. package/lib/module/interfaces/Layout.js +4 -0
  149. package/lib/module/interfaces/Layout.js.map +1 -0
  150. package/lib/module/interfaces/NavigationComponent.js +21 -0
  151. package/lib/module/interfaces/NavigationComponent.js.map +1 -0
  152. package/lib/module/interfaces/NavigationComponentListener.js +4 -0
  153. package/lib/module/interfaces/NavigationComponentListener.js.map +1 -0
  154. package/lib/module/interfaces/NavigationComponentProps.js +2 -0
  155. package/lib/module/interfaces/NavigationComponentProps.js.map +1 -0
  156. package/lib/module/interfaces/NavigationFunctionComponent.js +4 -0
  157. package/lib/module/interfaces/NavigationFunctionComponent.js.map +1 -0
  158. package/lib/module/interfaces/Options.js +47 -0
  159. package/lib/module/interfaces/Options.js.map +1 -0
  160. package/lib/module/interfaces/ProcessorSubscription.js +2 -0
  161. package/lib/module/interfaces/ProcessorSubscription.js.map +1 -0
  162. package/lib/module/interfaces/Processors.js +4 -0
  163. package/lib/module/interfaces/Processors.js.map +1 -0
  164. package/lib/module/linking/DeferredLinkQueue.js +52 -0
  165. package/lib/module/linking/DeferredLinkQueue.js.map +1 -0
  166. package/lib/module/linking/DeferredLinkQueue.test.js +54 -0
  167. package/lib/module/linking/DeferredLinkQueue.test.js.map +1 -0
  168. package/lib/{cjs → module}/linking/LinkingHandler.js +43 -40
  169. package/lib/module/linking/LinkingHandler.js.map +1 -0
  170. package/lib/module/linking/LinkingHandler.test.js +384 -0
  171. package/lib/module/linking/LinkingHandler.test.js.map +1 -0
  172. package/lib/module/linking/ModalLayoutBuilder.js +56 -0
  173. package/lib/module/linking/ModalLayoutBuilder.js.map +1 -0
  174. package/lib/module/linking/ModalLayoutBuilder.test.js +154 -0
  175. package/lib/module/linking/ModalLayoutBuilder.test.js.map +1 -0
  176. package/lib/{cjs → module}/linking/RouteMatcher.js +15 -31
  177. package/lib/module/linking/RouteMatcher.js.map +1 -0
  178. package/lib/module/linking/RouteMatcher.test.js +164 -0
  179. package/lib/module/linking/RouteMatcher.test.js.map +1 -0
  180. package/lib/module/linking/URLParser.js +56 -0
  181. package/lib/module/linking/URLParser.js.map +1 -0
  182. package/lib/module/linking/URLParser.test.js +100 -0
  183. package/lib/module/linking/URLParser.test.js.map +1 -0
  184. package/lib/module/linking/types.js +4 -0
  185. package/lib/module/linking/types.js.map +1 -0
  186. package/lib/module/package.json +1 -0
  187. package/lib/module/processors/LayoutProcessor.js +15 -0
  188. package/lib/module/processors/LayoutProcessor.js.map +1 -0
  189. package/lib/module/processors/LayoutProcessor.test.js +53 -0
  190. package/lib/module/processors/LayoutProcessor.test.js.map +1 -0
  191. package/lib/module/processors/LayoutProcessorsStore.js +18 -0
  192. package/lib/module/processors/LayoutProcessorsStore.js.map +1 -0
  193. package/lib/module/processors/LayoutProcessorsStore.test.js +31 -0
  194. package/lib/module/processors/LayoutProcessorsStore.test.js.map +1 -0
  195. package/lib/module/processors/OptionProcessorsStore.js +19 -0
  196. package/lib/module/processors/OptionProcessorsStore.js.map +1 -0
  197. package/lib/module/processors/OptionProcessorsStore.test.js +31 -0
  198. package/lib/module/processors/OptionProcessorsStore.test.js.map +1 -0
  199. package/lib/module/types.js +2 -0
  200. package/lib/module/types.js.map +1 -0
  201. package/package.json +7 -12
  202. package/lib/cjs/Mock/Application.js +0 -67
  203. package/lib/cjs/Mock/ComponentProps.js +0 -16
  204. package/lib/cjs/Mock/Components/BottomTabs.js +0 -50
  205. package/lib/cjs/Mock/Components/ComponentScreen.js +0 -135
  206. package/lib/cjs/Mock/Components/LayoutComponent.js +0 -85
  207. package/lib/cjs/Mock/Components/Modals.js +0 -56
  208. package/lib/cjs/Mock/Components/NavigationButton.js +0 -104
  209. package/lib/cjs/Mock/Components/Overlays.js +0 -57
  210. package/lib/cjs/Mock/Components/SideMenu.js +0 -69
  211. package/lib/cjs/Mock/Components/Stack.js +0 -52
  212. package/lib/cjs/Mock/Components/TopBar.js +0 -115
  213. package/lib/cjs/Mock/Layouts/BottomTabsNode.js +0 -60
  214. package/lib/cjs/Mock/Layouts/ComponentNode.js +0 -132
  215. package/lib/cjs/Mock/Layouts/LayoutNodeFactory.js +0 -59
  216. package/lib/cjs/Mock/Layouts/Node.js +0 -32
  217. package/lib/cjs/Mock/Layouts/ParentNode.js +0 -99
  218. package/lib/cjs/Mock/Layouts/SideMenu.js +0 -112
  219. package/lib/cjs/Mock/Layouts/StackNode.js +0 -42
  220. package/lib/cjs/Mock/Stores/EventsStore.js +0 -85
  221. package/lib/cjs/Mock/actions/layoutActions.js +0 -47
  222. package/lib/cjs/Mock/connect.js +0 -31
  223. package/lib/cjs/Mock/constants.js +0 -31
  224. package/lib/cjs/Mock/index.js +0 -48
  225. package/lib/cjs/Mock/mocks/AppRegistryService.js +0 -31
  226. package/lib/cjs/Mock/mocks/NativeCommandsSender.js +0 -181
  227. package/lib/cjs/Mock/mocks/NativeEventsReceiver.js +0 -146
  228. package/lib/cjs/Navigation.js +0 -259
  229. package/lib/cjs/adapters/AndroidCustomRowForwarder.js +0 -84
  230. package/lib/cjs/adapters/AppRegistryService.js +0 -33
  231. package/lib/cjs/adapters/AssetResolver.js +0 -33
  232. package/lib/cjs/adapters/ColorService.js +0 -33
  233. package/lib/cjs/adapters/Constants.js +0 -43
  234. package/lib/cjs/adapters/NativeEventsReceiver.js +0 -99
  235. package/lib/cjs/adapters/NativeEventsReceiver.mock.js +0 -30
  236. package/lib/cjs/adapters/NativeRNNTurboEventEmitter.js +0 -27
  237. package/lib/cjs/adapters/NativeRNNTurboModule.js +0 -26
  238. package/lib/cjs/adapters/TouchablePreview.js +0 -137
  239. package/lib/cjs/adapters/UniqueIdProvider.js +0 -43
  240. package/lib/cjs/commands/Commands.js +0 -276
  241. package/lib/cjs/commands/Deprecations.js +0 -101
  242. package/lib/cjs/commands/LayoutTreeCrawler.js +0 -56
  243. package/lib/cjs/commands/LayoutTreeParser.js +0 -154
  244. package/lib/cjs/commands/LayoutType.js +0 -40
  245. package/lib/cjs/commands/OptionsCrawler.js +0 -106
  246. package/lib/cjs/components/ComponentWrapper.js +0 -114
  247. package/lib/cjs/components/Modal.js +0 -159
  248. package/lib/cjs/events/CommandsObserver.js +0 -43
  249. package/lib/cjs/events/ComponentEventsObserver.js +0 -128
  250. package/lib/cjs/index.js +0 -63
  251. package/lib/cjs/interfaces/CommandName.js +0 -46
  252. package/lib/cjs/interfaces/ComponentEvents.js +0 -1
  253. package/lib/cjs/interfaces/EventSubscription.js +0 -1
  254. package/lib/cjs/interfaces/Events.js +0 -1
  255. package/lib/cjs/interfaces/Layout.js +0 -16
  256. package/lib/cjs/interfaces/NavigationComponent.js +0 -62
  257. package/lib/cjs/interfaces/NavigationComponentListener.js +0 -16
  258. package/lib/cjs/interfaces/NavigationComponentProps.js +0 -1
  259. package/lib/cjs/interfaces/NavigationFunctionComponent.js +0 -16
  260. package/lib/cjs/interfaces/Options.js +0 -47
  261. package/lib/cjs/interfaces/ProcessorSubscription.js +0 -1
  262. package/lib/cjs/interfaces/Processors.js +0 -16
  263. package/lib/cjs/linking/DeferredLinkQueue.js +0 -66
  264. package/lib/cjs/linking/ModalLayoutBuilder.js +0 -59
  265. package/lib/cjs/linking/URLParser.js +0 -70
  266. package/lib/cjs/linking/types.js +0 -16
  267. package/lib/cjs/processors/LayoutProcessor.js +0 -39
  268. package/lib/cjs/processors/LayoutProcessorsStore.js +0 -42
  269. package/lib/cjs/processors/OptionProcessorsStore.js +0 -43
  270. package/lib/cjs/types.js +0 -1
  271. package/postinstall.js +0 -53
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { View, Text, TouchableOpacity, Image } from 'react-native';
5
+ import { Navigation } from 'react-native-navigation';
6
+ import { VISIBLE_SCREEN_TEST_ID } from "../constants.js";
7
+ import { LayoutStore } from "../Stores/LayoutStore.js";
8
+ import { connect } from "../connect.js";
9
+ import { TopBar } from "./TopBar.js";
10
+ import { events } from "../Stores/EventsStore.js";
11
+ import _ from 'lodash';
12
+ import { switchTabByIndex } from "../actions/layoutActions.js";
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ function isURISource(src) {
15
+ return !!src && typeof src === 'object' && 'uri' in src;
16
+ }
17
+ export const ComponentScreen = connect(class extends Component {
18
+ constructor(props) {
19
+ super(props);
20
+ }
21
+ componentDidMount() {
22
+ this.props.layoutNode.componentDidMount();
23
+ }
24
+ isVisible() {
25
+ const isVisible = LayoutStore.isVisibleLayout(this.props.layoutNode);
26
+ return isVisible;
27
+ }
28
+ renderTabBar() {
29
+ const bottomTabs = this.props.layoutNode.getBottomTabs();
30
+ if (!bottomTabs) return null;
31
+ const bottomTabsOptions = bottomTabs.resolveOptions().bottomTabs;
32
+ if (bottomTabsOptions?.visible === false) return null;
33
+ const buttons = bottomTabs.children.map((child, i) => {
34
+ const bottomTabOptions = child.resolveOptions().bottomTab;
35
+ const icon = bottomTabs.selectedIndex === i ? bottomTabOptions?.selectedIcon : bottomTabOptions?.icon;
36
+ const iconURI = isURISource(icon) ? icon.uri : undefined;
37
+ return /*#__PURE__*/_jsx(View, {
38
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
39
+ style: {
40
+ padding: 10
41
+ },
42
+ testID: bottomTabOptions?.testID,
43
+ onPress: () => {
44
+ events.invokeBottomTabPressed({
45
+ tabIndex: i
46
+ });
47
+ if (_.defaultTo(bottomTabOptions?.selectTabOnPress, true)) switchTabByIndex(this.props.layoutNode.getBottomTabs(), i);
48
+ },
49
+ children: /*#__PURE__*/_jsxs(View, {
50
+ style: {
51
+ justifyContent: 'center',
52
+ alignItems: 'center'
53
+ },
54
+ children: [/*#__PURE__*/_jsx(Text, {
55
+ children: bottomTabOptions?.badge
56
+ }), iconURI && /*#__PURE__*/_jsx(Image, {
57
+ style: {
58
+ width: 18,
59
+ height: 18,
60
+ marginBottom: 5
61
+ },
62
+ source: {
63
+ uri: iconURI
64
+ }
65
+ }), /*#__PURE__*/_jsx(Text, {
66
+ style: {
67
+ fontSize: 12
68
+ },
69
+ children: bottomTabOptions?.text || ''
70
+ })]
71
+ })
72
+ })
73
+ }, `tab-${i}`);
74
+ });
75
+ return /*#__PURE__*/_jsx(View, {
76
+ testID: bottomTabsOptions?.testID,
77
+ style: {
78
+ flexDirection: 'row',
79
+ justifyContent: 'center',
80
+ width: '100%',
81
+ backgroundColor: '#F0F2F5'
82
+ },
83
+ children: buttons
84
+ });
85
+ }
86
+ render() {
87
+ const Component = Navigation.mock.store.getWrappedComponent(this.props.layoutNode.data.name);
88
+ if (!Component) throw new Error(`${this.props.layoutNode.data.name} has not been registered.`);
89
+ return /*#__PURE__*/_jsxs(View, {
90
+ testID: this.isVisible() ? VISIBLE_SCREEN_TEST_ID : undefined,
91
+ children: [this.props.layoutNode.getStack() && /*#__PURE__*/_jsx(TopBar, {
92
+ layoutNode: this.props.layoutNode,
93
+ topBarOptions: this.props.layoutNode.resolveOptions().topBar,
94
+ backButtonOptions: this.props.layoutNode.resolveOptions().topBar?.backButton
95
+ }), /*#__PURE__*/_jsx(Component, {
96
+ componentId: this.props.layoutNode.nodeId
97
+ }), this.renderTabBar()]
98
+ });
99
+ }
100
+ });
101
+ //# sourceMappingURL=ComponentScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","View","Text","TouchableOpacity","Image","Navigation","VISIBLE_SCREEN_TEST_ID","LayoutStore","connect","TopBar","events","_","switchTabByIndex","jsx","_jsx","jsxs","_jsxs","isURISource","src","ComponentScreen","constructor","props","componentDidMount","layoutNode","isVisible","isVisibleLayout","renderTabBar","bottomTabs","getBottomTabs","bottomTabsOptions","resolveOptions","visible","buttons","children","map","child","i","bottomTabOptions","bottomTab","icon","selectedIndex","selectedIcon","iconURI","uri","undefined","style","padding","testID","onPress","invokeBottomTabPressed","tabIndex","defaultTo","selectTabOnPress","justifyContent","alignItems","badge","width","height","marginBottom","source","fontSize","text","flexDirection","backgroundColor","render","mock","store","getWrappedComponent","data","name","Error","getStack","topBarOptions","topBar","backButtonOptions","backButton","componentId","nodeId"],"sourceRoot":"../../../../src","sources":["Mock/Components/ComponentScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { View } from 'react-native';
5
+ import { BottomTabs } from "./BottomTabs.js";
6
+ import { ComponentScreen } from "./ComponentScreen.js";
7
+ import { Stack } from "./Stack.js";
8
+ import { SideMenuRoot, SideMenuCenter, SideMenuLeft, SideMenuRight } from "./SideMenu.js";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ export const LayoutComponent = class extends Component {
11
+ render() {
12
+ switch (this.props.layoutNode.type) {
13
+ case 'BottomTabs':
14
+ return /*#__PURE__*/_jsx(BottomTabs, {
15
+ layoutNode: this.props.layoutNode
16
+ });
17
+ case 'Stack':
18
+ return /*#__PURE__*/_jsx(Stack, {
19
+ layoutNode: this.props.layoutNode
20
+ });
21
+ case 'Component':
22
+ return /*#__PURE__*/_jsx(ComponentScreen, {
23
+ layoutNode: this.props.layoutNode
24
+ });
25
+ case 'SideMenuRoot':
26
+ return /*#__PURE__*/_jsx(SideMenuRoot, {
27
+ layoutNode: this.props.layoutNode
28
+ });
29
+ case 'SideMenuLeft':
30
+ return /*#__PURE__*/_jsx(SideMenuLeft, {
31
+ layoutNode: this.props.layoutNode
32
+ });
33
+ case 'SideMenuCenter':
34
+ return /*#__PURE__*/_jsx(SideMenuCenter, {
35
+ layoutNode: this.props.layoutNode
36
+ });
37
+ case 'SideMenuRight':
38
+ return /*#__PURE__*/_jsx(SideMenuRight, {
39
+ layoutNode: this.props.layoutNode
40
+ });
41
+ }
42
+ return /*#__PURE__*/_jsx(View, {});
43
+ }
44
+ componentDidCatch(error, errorInfo) {
45
+ const err = new Error(`Error while trying to render layout ${this.props.layoutNode.nodeId} of type ${this.props.layoutNode.type}: ${error}\n${errorInfo?.componentStack}`);
46
+ err.cause = error;
47
+ throw err;
48
+ }
49
+ };
50
+ //# sourceMappingURL=LayoutComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","View","BottomTabs","ComponentScreen","Stack","SideMenuRoot","SideMenuCenter","SideMenuLeft","SideMenuRight","jsx","_jsx","LayoutComponent","render","props","layoutNode","type","componentDidCatch","error","errorInfo","err","Error","nodeId","componentStack","cause"],"sourceRoot":"../../../../src","sources":["Mock/Components/LayoutComponent.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,UAAU,QAAQ,iBAAc;AAEzC,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,YAAY,EAAEC,cAAc,EAAEC,YAAY,EAAEC,aAAa,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvF,OAAO,MAAMC,eAAe,GAAG,cAAcX,SAAS,CAAiB;EACrEY,MAAMA,CAAA,EAAG;IACP,QAAQ,IAAI,CAACC,KAAK,CAACC,UAAU,CAACC,IAAI;MAChC,KAAK,YAAY;QACf,oBAAOL,IAAA,CAACR,UAAU;UAACY,UAAU,EAAE,IAAI,CAACD,KAAK,CAACC;QAAW,CAAE,CAAC;MAC1D,KAAK,OAAO;QACV,oBAAOJ,IAAA,CAACN,KAAK;UAACU,UAAU,EAAE,IAAI,CAACD,KAAK,CAACC;QAAW,CAAE,CAAC;MACrD,KAAK,WAAW;QACd,oBAAOJ,IAAA,CAACP,eAAe;UAACW,UAAU,EAAE,IAAI,CAACD,KAAK,CAACC;QAAW,CAAE,CAAC;MAC/D,KAAK,cAAc;QACjB,oBAAOJ,IAAA,CAACL,YAAY;UAACS,UAAU,EAAE,IAAI,CAACD,KAAK,CAACC;QAAW,CAAE,CAAC;MAC5D,KAAK,cAAc;QACjB,oBAAOJ,IAAA,CAACH,YAAY;UAACO,UAAU,EAAE,IAAI,CAACD,KAAK,CAACC;QAAW,CAAE,CAAC;MAC5D,KAAK,gBAAgB;QACnB,oBAAOJ,IAAA,CAACJ,cAAc;UAACQ,UAAU,EAAE,IAAI,CAACD,KAAK,CAACC;QAAW,CAAE,CAAC;MAC9D,KAAK,eAAe;QAClB,oBAAOJ,IAAA,CAACF,aAAa;UAACM,UAAU,EAAE,IAAI,CAACD,KAAK,CAACC;QAAW,CAAE,CAAC;IAC/D;IAEA,oBAAOJ,IAAA,CAACT,IAAI,IAAE,CAAC;EACjB;EACAe,iBAAiBA,CAACC,KAAY,EAAEC,SAA0B,EAAE;IAC1D,MAAMC,GAAG,GAAG,IAAIC,KAAK,CACnB,uCAAuC,IAAI,CAACP,KAAK,CAACC,UAAU,CAACO,MAAM,YAAY,IAAI,CAACR,KAAK,CAACC,UAAU,CAACC,IAAI,KAAKE,KAAK,KAAKC,SAAS,EAAEI,cAAc,EACnJ,CAAC;IACAH,GAAG,CAASI,KAAK,GAAGN,KAAK;IAC1B,MAAME,GAAG;EACX;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { View } from 'react-native';
5
+ import { LayoutComponent } from "./LayoutComponent.js";
6
+ import { LayoutStore } from "../Stores/LayoutStore.js";
7
+ import { connect } from "../connect.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export const Modals = connect(class extends Component {
10
+ render() {
11
+ const children = LayoutStore.getModals();
12
+ return /*#__PURE__*/_jsx(View, {
13
+ testID: 'MODALS',
14
+ children: children.map(child => {
15
+ return /*#__PURE__*/_jsx(LayoutComponent, {
16
+ layoutNode: child
17
+ }, child.nodeId);
18
+ })
19
+ });
20
+ }
21
+ });
22
+ //# sourceMappingURL=Modals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","View","LayoutComponent","LayoutStore","connect","jsx","_jsx","Modals","render","children","getModals","testID","map","child","layoutNode","nodeId"],"sourceRoot":"../../../../src","sources":["Mock/Components/Modals.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,WAAW,QAAQ,0BAAuB;AACnD,SAASC,OAAO,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErC,OAAO,MAAMC,MAAM,GAAGH,OAAO,CAC3B,cAAcJ,SAAS,CAAiB;EACtCQ,MAAMA,CAAA,EAAG;IACP,MAAMC,QAAQ,GAAGN,WAAW,CAACO,SAAS,CAAC,CAAC;IACxC,oBACEJ,IAAA,CAACL,IAAI;MAACU,MAAM,EAAE,QAAS;MAAAF,QAAA,EACpBA,QAAQ,CAACG,GAAG,CAAEC,KAAiB,IAAK;QACnC,oBAAOP,IAAA,CAACJ,eAAe;UAAoBY,UAAU,EAAED;QAAM,GAAhCA,KAAK,CAACE,MAA4B,CAAC;MAClE,CAAC;IAAC,CACE,CAAC;EAEX;AACF,CACF,CAAC","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { Button, TouchableOpacity } from 'react-native';
5
+ import { Navigation } from 'react-native-navigation';
6
+ import { events } from "../Stores/EventsStore.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const NavigationButton = class extends Component {
9
+ ref = undefined;
10
+ render() {
11
+ const {
12
+ button,
13
+ componentId
14
+ } = this.props;
15
+ if (button.component) return this.renderButtonComponent();
16
+ return /*#__PURE__*/_jsx(Button, {
17
+ testID: button.testID,
18
+ title: button.text || '',
19
+ disabled: button.enabled === false,
20
+ onPress: () => button.enabled !== false && events.invokeNavigationButtonPressed({
21
+ buttonId: button.id,
22
+ componentId
23
+ })
24
+ }, button.id);
25
+ }
26
+ renderButtonComponent() {
27
+ const {
28
+ button,
29
+ componentId
30
+ } = this.props;
31
+ // @ts-ignore
32
+ const buttonComponentId = button.component.componentId;
33
+ // @ts-ignore
34
+ const ComponentClass = Navigation.mock.store.getComponentClassForName(button.component.name);
35
+ if (!ComponentClass) {
36
+ throw new Error(`Cannot find registered component for: ${button.component?.name}`);
37
+ }
38
+ const ButtonComponent = ComponentClass();
39
+ const props = Navigation.mock.store.getPropsForId(buttonComponentId);
40
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
41
+ onPress: () => {
42
+ if (this.ref) {
43
+ this.invokeOnClick(
44
+ // @ts-ignore
45
+ (this.ref._reactInternalFiber || this.ref._reactInternals).return.stateNode);
46
+ }
47
+ events.invokeNavigationButtonPressed({
48
+ buttonId: button.id,
49
+ componentId: componentId
50
+ });
51
+ },
52
+ testID: button.testID,
53
+ children: /*#__PURE__*/_jsx(ButtonComponent, {
54
+ ...props,
55
+ componentId: buttonComponentId,
56
+ ref: ref => this.ref = ref
57
+ }, buttonComponentId)
58
+ });
59
+ }
60
+ invokeOnClick(stateNode) {
61
+ if (stateNode.children) {
62
+ // @ts-ignore
63
+ stateNode.children.forEach(instance => {
64
+ if (instance.internalInstanceHandle && instance.internalInstanceHandle.stateNode.props.onClick) {
65
+ instance.internalInstanceHandle.stateNode.props.onClick();
66
+ }
67
+ this.invokeOnClick(instance);
68
+ });
69
+ }
70
+ }
71
+ };
72
+ //# sourceMappingURL=NavigationButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","Button","TouchableOpacity","Navigation","events","jsx","_jsx","NavigationButton","ref","undefined","render","button","componentId","props","component","renderButtonComponent","testID","title","text","disabled","enabled","onPress","invokeNavigationButtonPressed","buttonId","id","buttonComponentId","ComponentClass","mock","store","getComponentClassForName","name","Error","ButtonComponent","getPropsForId","invokeOnClick","_reactInternalFiber","_reactInternals","return","stateNode","children","forEach","instance","internalInstanceHandle","onClick"],"sourceRoot":"../../../../src","sources":["Mock/Components/NavigationButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { View } from 'react-native';
5
+ import { VISIBLE_OVERLAY_TEST_ID } from "../constants.js";
6
+ import { LayoutComponent } from "./LayoutComponent.js";
7
+ import { LayoutStore } from "../Stores/LayoutStore.js";
8
+ import { connect } from "../connect.js";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ export const Overlays = connect(class extends Component {
11
+ render() {
12
+ const children = LayoutStore.getOverlays();
13
+ return /*#__PURE__*/_jsx(View, {
14
+ testID: VISIBLE_OVERLAY_TEST_ID,
15
+ children: children.map(child => {
16
+ return /*#__PURE__*/_jsx(LayoutComponent, {
17
+ layoutNode: child
18
+ }, child.nodeId);
19
+ })
20
+ });
21
+ }
22
+ });
23
+ //# sourceMappingURL=Overlays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","View","VISIBLE_OVERLAY_TEST_ID","LayoutComponent","LayoutStore","connect","jsx","_jsx","Overlays","render","children","getOverlays","testID","map","child","layoutNode","nodeId"],"sourceRoot":"../../../../src","sources":["Mock/Components/Overlays.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,uBAAuB,QAAQ,iBAAc;AACtD,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,WAAW,QAAQ,0BAAuB;AACnD,SAASC,OAAO,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErC,OAAO,MAAMC,QAAQ,GAAGH,OAAO,CAC7B,cAAcL,SAAS,CAAiB;EACtCS,MAAMA,CAAA,EAAG;IACP,MAAMC,QAAQ,GAAGN,WAAW,CAACO,WAAW,CAAC,CAAC;IAC1C,oBACEJ,IAAA,CAACN,IAAI;MAACW,MAAM,EAAEV,uBAAwB;MAAAQ,QAAA,EACnCA,QAAQ,CAACG,GAAG,CAAEC,KAAiB,IAAK;QACnC,oBAAOP,IAAA,CAACJ,eAAe;UAAoBY,UAAU,EAAED;QAAM,GAAhCA,KAAK,CAACE,MAA4B,CAAC;MAClE,CAAC;IAAC,CACE,CAAC;EAEX;AACF,CACF,CAAC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { connect } from "../connect.js";
5
+ import { LayoutComponent } from "./LayoutComponent.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const SideMenuRoot = connect(class extends Component {
8
+ render() {
9
+ const children = this.props.layoutNode.children;
10
+ return children.map(child => {
11
+ return /*#__PURE__*/_jsx(LayoutComponent, {
12
+ layoutNode: child
13
+ }, child.nodeId);
14
+ });
15
+ }
16
+ });
17
+ const SideMenuComponent = connect(class extends Component {
18
+ render() {
19
+ const children = this.props.layoutNode.children;
20
+ const component = children[0];
21
+ return /*#__PURE__*/_jsx(LayoutComponent, {
22
+ layoutNode: component
23
+ }, component.nodeId);
24
+ }
25
+ });
26
+ export const SideMenuLeft = SideMenuComponent;
27
+ export const SideMenuCenter = SideMenuComponent;
28
+ export const SideMenuRight = SideMenuComponent;
29
+ //# sourceMappingURL=SideMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","connect","LayoutComponent","jsx","_jsx","SideMenuRoot","render","children","props","layoutNode","map","child","nodeId","SideMenuComponent","component","SideMenuLeft","SideMenuCenter","SideMenuRight"],"sourceRoot":"../../../../src","sources":["Mock/Components/SideMenu.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,OAAO,QAAQ,eAAY;AAEpC,SAASC,eAAe,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGpD,OAAO,MAAMC,YAAY,GAAGJ,OAAO,CACjC,cAAcD,SAAS,CAAiB;EACtCM,MAAMA,CAAA,EAAG;IACP,MAAMC,QAAQ,GAAG,IAAI,CAACC,KAAK,CAACC,UAAU,CAACF,QAAQ;IAC/C,OAAOA,QAAQ,CAACG,GAAG,CAAEC,KAAiB,IAAK;MACzC,oBAAOP,IAAA,CAACF,eAAe;QAAoBO,UAAU,EAAEE;MAAM,GAAhCA,KAAK,CAACC,MAA4B,CAAC;IAClE,CAAC,CAAC;EACJ;AACF,CACF,CAAC;AAED,MAAMC,iBAAiB,GAAGZ,OAAO,CAAC,cAAcD,SAAS,CAAiB;EACxEM,MAAMA,CAAA,EAAG;IACP,MAAMC,QAAQ,GAAG,IAAI,CAACC,KAAK,CAACC,UAAU,CAACF,QAAQ;IAC/C,MAAMO,SAAS,GAAGP,QAAQ,CAAC,CAAC,CAAC;IAC7B,oBAAOH,IAAA,CAACF,eAAe;MAAwBO,UAAU,EAAEK;IAAU,GAAxCA,SAAS,CAACF,MAAgC,CAAC;EAC1E;AACF,CAAC,CAAC;AACF,OAAO,MAAMG,YAAY,GAAGF,iBAAiB;AAC7C,OAAO,MAAMG,cAAc,GAAGH,iBAAiB;AAC/C,OAAO,MAAMI,aAAa,GAAGJ,iBAAiB","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { LayoutComponent } from "./LayoutComponent.js";
5
+ import { connect } from "../connect.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const Stack = connect(class extends Component {
8
+ render() {
9
+ const children = this.props.layoutNode.children;
10
+ return children.map((child, i) => {
11
+ return /*#__PURE__*/_jsx(LayoutComponent, {
12
+ layoutNode: child,
13
+ backButton: i > 0
14
+ }, child.nodeId);
15
+ });
16
+ }
17
+ });
18
+ //# sourceMappingURL=Stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","LayoutComponent","connect","jsx","_jsx","Stack","render","children","props","layoutNode","map","child","i","backButton","nodeId"],"sourceRoot":"../../../../src","sources":["Mock/Components/Stack.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AAExC,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,OAAO,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErC,OAAO,MAAMC,KAAK,GAAGH,OAAO,CAC1B,cAAcF,SAAS,CAAiB;EACtCM,MAAMA,CAAA,EAAG;IACP,MAAMC,QAAQ,GAAG,IAAI,CAACC,KAAK,CAACC,UAAU,CAACF,QAAQ;IAC/C,OAAOA,QAAQ,CAACG,GAAG,CAAC,CAACC,KAAiB,EAAEC,CAAS,KAAK;MACpD,oBAAOR,IAAA,CAACH,eAAe;QAAoBQ,UAAU,EAAEE,KAAM;QAACE,UAAU,EAAED,CAAC,GAAG;MAAE,GAAnDD,KAAK,CAACG,MAA+C,CAAC;IACrF,CAAC,CAAC;EACJ;AACF,CACF,CAAC","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ import React, { Component } from 'react';
4
+ import { Button, View, Text } from 'react-native';
5
+ import { Navigation } from 'react-native-navigation';
6
+ import { LayoutStore } from "../Stores/LayoutStore.js";
7
+ import { NavigationButton } from "./NavigationButton.js";
8
+ import { events } from "../Stores/EventsStore.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const DEFAULT_BACK_BUTTON_ID = 'RNN.back';
11
+ export const TopBar = class extends Component {
12
+ constructor(props) {
13
+ super(props);
14
+ }
15
+ render() {
16
+ const topBarOptions = this.props.topBarOptions;
17
+ const topbarTestId = topBarOptions?.testID;
18
+ const titleTestId = topbarTestId ? {
19
+ testID: `${topbarTestId}.title`
20
+ } : {};
21
+ const subtitleTestId = topbarTestId ? {
22
+ testID: `${topbarTestId}.subtitle`
23
+ } : {};
24
+ if (topBarOptions?.visible === false) return null;else {
25
+ const component = topBarOptions?.title?.component;
26
+ return /*#__PURE__*/_jsxs(View, {
27
+ testID: topbarTestId,
28
+ children: [/*#__PURE__*/_jsx(Text, {
29
+ ...titleTestId,
30
+ children: topBarOptions?.title?.text
31
+ }), /*#__PURE__*/_jsx(Text, {
32
+ ...subtitleTestId,
33
+ children: topBarOptions?.subtitle?.text
34
+ }), this.renderButtons(topBarOptions?.leftButtons), this.renderButtons(topBarOptions?.rightButtons), component &&
35
+ //@ts-ignore
36
+ this.renderComponent(component.componentId, component.name), this.shouldRenderBackButton(this.props.layoutNode) && this.renderBackButton()]
37
+ });
38
+ }
39
+ }
40
+ shouldRenderBackButton(layoutNode) {
41
+ const backButtonVisible = layoutNode.resolveOptions().topBar?.backButton?.visible;
42
+ return layoutNode.getStack().children.length > 1 && backButtonVisible !== false;
43
+ }
44
+ renderButtons(buttons = []) {
45
+ return buttons.map((button, i) => {
46
+ return /*#__PURE__*/_jsx(NavigationButton, {
47
+ button: button,
48
+ componentId: this.props.layoutNode.nodeId
49
+ }, button.id || i);
50
+ });
51
+ }
52
+ renderBackButton() {
53
+ const backButtonOptions = this.props.backButtonOptions;
54
+ return /*#__PURE__*/_jsx(Button, {
55
+ testID: backButtonOptions?.testID,
56
+ title: backButtonOptions && backButtonOptions.title ? backButtonOptions.title : '',
57
+ onPress: () => {
58
+ if (backButtonOptions?.popStackOnPress === false) {
59
+ events.invokeNavigationButtonPressed({
60
+ buttonId: backButtonOptions?.id || DEFAULT_BACK_BUTTON_ID,
61
+ componentId: this.props.layoutNode.nodeId
62
+ });
63
+ } else {
64
+ LayoutStore.pop(this.props.layoutNode.nodeId);
65
+ }
66
+ }
67
+ });
68
+ }
69
+ renderComponent(id, name, testID) {
70
+ const Component = Navigation.mock.store.getComponentClassForName(name)();
71
+ const props = Navigation.mock.store.getPropsForId(id);
72
+ return /*#__PURE__*/_jsx(View, {
73
+ testID: testID,
74
+ children: /*#__PURE__*/_jsx(Component, {
75
+ ...props,
76
+ componentId: id
77
+ })
78
+ }, id);
79
+ }
80
+ };
81
+ //# sourceMappingURL=TopBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","Button","View","Text","Navigation","LayoutStore","NavigationButton","events","jsx","_jsx","jsxs","_jsxs","DEFAULT_BACK_BUTTON_ID","TopBar","constructor","props","render","topBarOptions","topbarTestId","testID","titleTestId","subtitleTestId","visible","component","title","children","text","subtitle","renderButtons","leftButtons","rightButtons","renderComponent","componentId","name","shouldRenderBackButton","layoutNode","renderBackButton","backButtonVisible","resolveOptions","topBar","backButton","getStack","length","buttons","map","button","i","nodeId","id","backButtonOptions","onPress","popStackOnPress","invokeNavigationButtonPressed","buttonId","pop","mock","store","getComponentClassForName","getPropsForId"],"sourceRoot":"../../../../src","sources":["Mock/Components/TopBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import _ from 'lodash';
4
+ import { switchTabByIndex } from "../actions/layoutActions.js";
5
+ import ParentNode from "./ParentNode.js";
6
+ export default class BottomTabsNode extends ParentNode {
7
+ constructor(layout, parentNode) {
8
+ super(layout, 'BottomTabs', parentNode);
9
+ this.selectedIndex = layout.data?.options?.bottomTabs?.currentTabIndex || 0;
10
+ }
11
+ mergeOptions(_options) {
12
+ super.mergeOptions(_options);
13
+ const {
14
+ options
15
+ } = this.data;
16
+ if (options.bottomTabs?.currentTabIndex) {
17
+ this.selectedIndex = options.bottomTabs?.currentTabIndex;
18
+ switchTabByIndex(this, this.selectedIndex);
19
+ }
20
+ if (options.bottomTabs?.currentTabId) {
21
+ const index = _.findIndex(this.children, child => child.nodeId === options?.bottomTabs?.currentTabId);
22
+ if (index !== -1) this.selectedIndex = index;
23
+ switchTabByIndex(this, this.selectedIndex);
24
+ }
25
+ }
26
+ getVisibleLayout() {
27
+ return this.children[this.selectedIndex].getVisibleLayout();
28
+ }
29
+ }
30
+ //# sourceMappingURL=BottomTabsNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_","switchTabByIndex","ParentNode","BottomTabsNode","constructor","layout","parentNode","selectedIndex","data","options","bottomTabs","currentTabIndex","mergeOptions","_options","currentTabId","index","findIndex","children","child","nodeId","getVisibleLayout"],"sourceRoot":"../../../../src","sources":["Mock/Layouts/BottomTabsNode.ts"],"mappings":";;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAEtB,SAASC,gBAAgB,QAAQ,6BAA0B;AAC3D,OAAOC,UAAU,MAAM,iBAAc;AAErC,eAAe,MAAMC,cAAc,SAASD,UAAU,CAAC;EAErDE,WAAWA,CAACC,MAAW,EAAEC,UAAuB,EAAE;IAChD,KAAK,CAACD,MAAM,EAAE,YAAY,EAAEC,UAAU,CAAC;IACvC,IAAI,CAACC,aAAa,GAAGF,MAAM,CAACG,IAAI,EAAEC,OAAO,EAAEC,UAAU,EAAEC,eAAe,IAAI,CAAC;EAC7E;EAEAC,YAAYA,CAACC,QAAiB,EAAE;IAC9B,KAAK,CAACD,YAAY,CAACC,QAAQ,CAAC;IAE5B,MAAM;MAAEJ;IAAQ,CAAC,GAAG,IAAI,CAACD,IAAI;IAC7B,IAAIC,OAAO,CAACC,UAAU,EAAEC,eAAe,EAAE;MACvC,IAAI,CAACJ,aAAa,GAAGE,OAAO,CAACC,UAAU,EAAEC,eAAe;MACxDV,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAACM,aAAa,CAAC;IAC5C;IACA,IAAIE,OAAO,CAACC,UAAU,EAAEI,YAAY,EAAE;MACpC,MAAMC,KAAK,GAAGf,CAAC,CAACgB,SAAS,CACvB,IAAI,CAACC,QAAQ,EACZC,KAAK,IAAKA,KAAK,CAACC,MAAM,KAAKV,OAAO,EAAEC,UAAU,EAAEI,YACnD,CAAC;MACD,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE,IAAI,CAACR,aAAa,GAAGQ,KAAK;MAC5Cd,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAACM,aAAa,CAAC;IAC5C;EACF;EAEAa,gBAAgBA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACH,QAAQ,CAAC,IAAI,CAACV,aAAa,CAAC,CAACa,gBAAgB,CAAC,CAAC;EAC7D;AACF","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ import _ from 'lodash';
4
+ import { events } from "../Stores/EventsStore.js";
5
+ import ParentNode from "./ParentNode.js";
6
+ export default class ComponentNode extends ParentNode {
7
+ componentDidMountOnce = false;
8
+ componentDidAppearPending = false;
9
+ constructor(layout, parentNode) {
10
+ super(layout, 'Component', parentNode);
11
+ }
12
+ componentDidMount() {
13
+ this.componentDidMountOnce = true;
14
+ this.componentDidAppearPending && setImmediate(() => this.componentDidAppear());
15
+ }
16
+ componentDidAppear() {
17
+ if (this.componentDidMountOnce) {
18
+ events.invokeComponentWillAppear({
19
+ componentName: this.data.name,
20
+ componentId: this.nodeId,
21
+ componentType: 'Component'
22
+ });
23
+ events.invokeComponentDidAppear({
24
+ componentName: this.data.name,
25
+ componentId: this.nodeId,
26
+ componentType: 'Component'
27
+ });
28
+ this.buttonsDidAppear(_.concat(this.data.options.topBar?.rightButtons || [], this.data.options.topBar?.leftButtons || []));
29
+ this.titleChanged(undefined, this.data.options.topBar?.title);
30
+ } else {
31
+ this.componentDidAppearPending = true;
32
+ }
33
+ }
34
+ componentDidDisappear() {
35
+ events.invokeComponentDidDisappear({
36
+ componentName: this.data.name,
37
+ componentId: this.nodeId,
38
+ componentType: 'Component'
39
+ });
40
+ this.buttonsDidDisappear(_.concat(this.data.options.topBar?.rightButtons || [], this.data.options.topBar?.leftButtons || []));
41
+ this.titleChanged(this.data.options.topBar?.title);
42
+ }
43
+ titleChanged(oldTitle, newTitle) {
44
+ if (oldTitle && oldTitle.component) {
45
+ events.invokeComponentDidDisappear({
46
+ componentName: oldTitle.component.name,
47
+ componentId: oldTitle.component.componentId,
48
+ componentType: 'TopBarTitle'
49
+ });
50
+ }
51
+ if (newTitle && newTitle.component) {
52
+ events.invokeComponentWillAppear({
53
+ componentName: newTitle.component.name,
54
+ componentId: newTitle.component.componentId,
55
+ componentType: 'TopBarTitle'
56
+ });
57
+ events.invokeComponentDidAppear({
58
+ componentName: newTitle.component.name,
59
+ componentId: newTitle.component.componentId,
60
+ componentType: 'TopBarTitle'
61
+ });
62
+ }
63
+ }
64
+ buttonsChanged(oldButtons, newButtons) {
65
+ this.buttonsDidDisappear(oldButtons);
66
+ this.buttonsDidAppear(newButtons);
67
+ }
68
+ buttonsDidAppear(buttons = []) {
69
+ buttons.forEach(button => {
70
+ if (button.component) {
71
+ events.invokeComponentWillAppear({
72
+ componentName: button.component.name,
73
+ // @ts-ignore
74
+ componentId: button.component.componentId,
75
+ componentType: 'TopBarButton'
76
+ });
77
+ events.invokeComponentDidAppear({
78
+ componentName: button.component.name,
79
+ // @ts-ignore
80
+ componentId: button.component.componentId,
81
+ componentType: 'TopBarButton'
82
+ });
83
+ }
84
+ });
85
+ }
86
+ buttonsDidDisappear(buttons = []) {
87
+ buttons.forEach(button => {
88
+ if (button.component) {
89
+ events.invokeComponentDidDisappear({
90
+ componentName: button.component.name,
91
+ // @ts-ignore
92
+ componentId: button.component.componentId,
93
+ componentType: 'TopBarButton'
94
+ });
95
+ }
96
+ });
97
+ }
98
+ getVisibleLayout() {
99
+ return this;
100
+ }
101
+ }
102
+ //# sourceMappingURL=ComponentNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_","events","ParentNode","ComponentNode","componentDidMountOnce","componentDidAppearPending","constructor","layout","parentNode","componentDidMount","setImmediate","componentDidAppear","invokeComponentWillAppear","componentName","data","name","componentId","nodeId","componentType","invokeComponentDidAppear","buttonsDidAppear","concat","options","topBar","rightButtons","leftButtons","titleChanged","undefined","title","componentDidDisappear","invokeComponentDidDisappear","buttonsDidDisappear","oldTitle","newTitle","component","buttonsChanged","oldButtons","newButtons","buttons","forEach","button","getVisibleLayout"],"sourceRoot":"../../../../src","sources":["Mock/Layouts/ComponentNode.ts"],"mappings":";;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAEtB,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,OAAOC,UAAU,MAAM,iBAAc;AAErC,eAAe,MAAMC,aAAa,SAASD,UAAU,CAAC;EACpDE,qBAAqB,GAAG,KAAK;EAC7BC,yBAAyB,GAAG,KAAK;EAEjCC,WAAWA,CAACC,MAAW,EAAEC,UAAuB,EAAE;IAChD,KAAK,CAACD,MAAM,EAAE,WAAW,EAAEC,UAAU,CAAC;EACxC;EAEOC,iBAAiBA,CAAA,EAAG;IACzB,IAAI,CAACL,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACC,yBAAyB,IAAIK,YAAY,CAAC,MAAM,IAAI,CAACC,kBAAkB,CAAC,CAAC,CAAC;EACjF;EAEOA,kBAAkBA,CAAA,EAAG;IAC1B,IAAI,IAAI,CAACP,qBAAqB,EAAE;MAC9BH,MAAM,CAACW,yBAAyB,CAAC;QAC/BC,aAAa,EAAE,IAAI,CAACC,IAAI,CAACC,IAAI;QAC7BC,WAAW,EAAE,IAAI,CAACC,MAAM;QACxBC,aAAa,EAAE;MACjB,CAAC,CAAC;MACFjB,MAAM,CAACkB,wBAAwB,CAAC;QAC9BN,aAAa,EAAE,IAAI,CAACC,IAAI,CAACC,IAAI;QAC7BC,WAAW,EAAE,IAAI,CAACC,MAAM;QACxBC,aAAa,EAAE;MACjB,CAAC,CAAC;MAEF,IAAI,CAACE,gBAAgB,CACnBpB,CAAC,CAACqB,MAAM,CACN,IAAI,CAACP,IAAI,CAACQ,OAAO,CAACC,MAAM,EAAEC,YAAY,IAAI,EAAE,EAC5C,IAAI,CAACV,IAAI,CAACQ,OAAO,CAACC,MAAM,EAAEE,WAAW,IAAI,EAC3C,CACF,CAAC;MACD,IAAI,CAACC,YAAY,CAACC,SAAS,EAAE,IAAI,CAACb,IAAI,CAACQ,OAAO,CAACC,MAAM,EAAEK,KAAK,CAAC;IAC/D,CAAC,MAAM;MACL,IAAI,CAACvB,yBAAyB,GAAG,IAAI;IACvC;EACF;EAEOwB,qBAAqBA,CAAA,EAAG;IAC7B5B,MAAM,CAAC6B,2BAA2B,CAAC;MACjCjB,aAAa,EAAE,IAAI,CAACC,IAAI,CAACC,IAAI;MAC7BC,WAAW,EAAE,IAAI,CAACC,MAAM;MACxBC,aAAa,EAAE;IACjB,CAAC,CAAC;IAEF,IAAI,CAACa,mBAAmB,CACtB/B,CAAC,CAACqB,MAAM,CACN,IAAI,CAACP,IAAI,CAACQ,OAAO,CAACC,MAAM,EAAEC,YAAY,IAAI,EAAE,EAC5C,IAAI,CAACV,IAAI,CAACQ,OAAO,CAACC,MAAM,EAAEE,WAAW,IAAI,EAC3C,CACF,CAAC;IACD,IAAI,CAACC,YAAY,CAAC,IAAI,CAACZ,IAAI,CAACQ,OAAO,CAACC,MAAM,EAAEK,KAAK,CAAC;EACpD;EAEAF,YAAYA,CAACM,QAAa,EAAEC,QAAc,EAAE;IAC1C,IAAID,QAAQ,IAAIA,QAAQ,CAACE,SAAS,EAAE;MAClCjC,MAAM,CAAC6B,2BAA2B,CAAC;QACjCjB,aAAa,EAAEmB,QAAQ,CAACE,SAAS,CAACnB,IAAI;QACtCC,WAAW,EAAEgB,QAAQ,CAACE,SAAS,CAAClB,WAAW;QAC3CE,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ;IAEA,IAAIe,QAAQ,IAAIA,QAAQ,CAACC,SAAS,EAAE;MAClCjC,MAAM,CAACW,yBAAyB,CAAC;QAC/BC,aAAa,EAAEoB,QAAQ,CAACC,SAAS,CAACnB,IAAI;QACtCC,WAAW,EAAEiB,QAAQ,CAACC,SAAS,CAAClB,WAAW;QAC3CE,aAAa,EAAE;MACjB,CAAC,CAAC;MACFjB,MAAM,CAACkB,wBAAwB,CAAC;QAC9BN,aAAa,EAAEoB,QAAQ,CAACC,SAAS,CAACnB,IAAI;QACtCC,WAAW,EAAEiB,QAAQ,CAACC,SAAS,CAAClB,WAAW;QAC3CE,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ;EACF;EAEAiB,cAAcA,CAACC,UAAiC,EAAEC,UAAiC,EAAE;IACnF,IAAI,CAACN,mBAAmB,CAACK,UAAU,CAAC;IACpC,IAAI,CAAChB,gBAAgB,CAACiB,UAAU,CAAC;EACnC;EAEAjB,gBAAgBA,CAACkB,OAA8B,GAAG,EAAE,EAAE;IACpDA,OAAO,CAACC,OAAO,CAAEC,MAA2B,IAAK;MAC/C,IAAIA,MAAM,CAACN,SAAS,EAAE;QACpBjC,MAAM,CAACW,yBAAyB,CAAC;UAC/BC,aAAa,EAAE2B,MAAM,CAACN,SAAS,CAACnB,IAAI;UACpC;UACAC,WAAW,EAAEwB,MAAM,CAACN,SAAS,CAAClB,WAAW;UACzCE,aAAa,EAAE;QACjB,CAAC,CAAC;QAEFjB,MAAM,CAACkB,wBAAwB,CAAC;UAC9BN,aAAa,EAAE2B,MAAM,CAACN,SAAS,CAACnB,IAAI;UACpC;UACAC,WAAW,EAAEwB,MAAM,CAACN,SAAS,CAAClB,WAAW;UACzCE,aAAa,EAAE;QACjB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEAa,mBAAmBA,CAACO,OAA8B,GAAG,EAAE,EAAE;IACvDA,OAAO,CAACC,OAAO,CAAEC,MAA2B,IAAK;MAC/C,IAAIA,MAAM,CAACN,SAAS,EAAE;QACpBjC,MAAM,CAAC6B,2BAA2B,CAAC;UACjCjB,aAAa,EAAE2B,MAAM,CAACN,SAAS,CAACnB,IAAI;UACpC;UACAC,WAAW,EAAEwB,MAAM,CAACN,SAAS,CAAClB,WAAW;UACzCE,aAAa,EAAE;QACjB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEAuB,gBAAgBA,CAAA,EAAG;IACjB,OAAO,IAAI;EACb;AACF","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import BottomTabs from "./BottomTabsNode.js";
4
+ import ComponentNode from "./ComponentNode.js";
5
+ import Stack from "./StackNode.js";
6
+ import SideMenuRootNode, { SideMenuLeftNode, SideMenuRightNode, SideMenuCenterNode } from "./SideMenu.js";
7
+ export default class LayoutNodeFactory {
8
+ static create(layout, parentNode) {
9
+ switch (layout.type) {
10
+ case 'Component':
11
+ return new ComponentNode(layout, parentNode);
12
+ case 'Stack':
13
+ return new Stack(layout, parentNode);
14
+ case 'SideMenuRoot':
15
+ return new SideMenuRootNode(layout, parentNode);
16
+ case 'SideMenuLeft':
17
+ return new SideMenuLeftNode(layout, parentNode);
18
+ case 'SideMenuCenter':
19
+ return new SideMenuCenterNode(layout, parentNode);
20
+ case 'SideMenuRight':
21
+ return new SideMenuRightNode(layout, parentNode);
22
+ default: // TODO Undo
23
+ case 'BottomTabs':
24
+ return new BottomTabs(layout, parentNode);
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=LayoutNodeFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BottomTabs","ComponentNode","Stack","SideMenuRootNode","SideMenuLeftNode","SideMenuRightNode","SideMenuCenterNode","LayoutNodeFactory","create","layout","parentNode","type"],"sourceRoot":"../../../../src","sources":["Mock/Layouts/LayoutNodeFactory.ts"],"mappings":";;AAAA,OAAOA,UAAU,MAAM,qBAAkB;AACzC,OAAOC,aAAa,MAAM,oBAAiB;AAC3C,OAAOC,KAAK,MAAM,gBAAa;AAE/B,OAAOC,gBAAgB,IACrBC,gBAAgB,EAChBC,iBAAiB,EACjBC,kBAAkB,QACb,eAAY;AAEnB,eAAe,MAAMC,iBAAiB,CAAC;EACrC,OAAOC,MAAMA,CAACC,MAAW,EAAEC,UAAuB,EAAE;IAClD,QAAQD,MAAM,CAACE,IAAI;MACjB,KAAK,WAAW;QACd,OAAO,IAAIV,aAAa,CAACQ,MAAM,EAAEC,UAAU,CAAC;MAC9C,KAAK,OAAO;QACV,OAAO,IAAIR,KAAK,CAACO,MAAM,EAAEC,UAAU,CAAC;MACtC,KAAK,cAAc;QACjB,OAAO,IAAIP,gBAAgB,CAACM,MAAM,EAAEC,UAAU,CAAC;MACjD,KAAK,cAAc;QACjB,OAAO,IAAIN,gBAAgB,CAACK,MAAM,EAAEC,UAAU,CAAC;MACjD,KAAK,gBAAgB;QACnB,OAAO,IAAIJ,kBAAkB,CAACG,MAAM,EAAEC,UAAU,CAAC;MACnD,KAAK,eAAe;QAClB,OAAO,IAAIL,iBAAiB,CAACI,MAAM,EAAEC,UAAU,CAAC;MAClD,QAAQ,CAAC;MACT,KAAK,YAAY;QACf,OAAO,IAAIV,UAAU,CAACS,MAAM,EAAEC,UAAU,CAAC;IAC7C;EACF;AACF","ignoreList":[]}