create-expo-stack 2.4.0-next.9d605d9 → 2.4.0-next.a135475

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 (23) hide show
  1. package/build/commands/create-expo-stack.js +30 -16
  2. package/build/templates/base/babel.config.js.ejs +1 -1
  3. package/build/templates/base/package.json.ejs +2 -1
  4. package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/_layout.tsx.ejs +41 -0
  5. package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/index.tsx.ejs +88 -0
  6. package/build/templates/packages/expo-router/drawer/app/(drawer)/(tabs)/two.tsx.ejs +88 -0
  7. package/build/templates/packages/expo-router/drawer/app/(drawer)/_layout.tsx.ejs +43 -19
  8. package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +1 -0
  9. package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +32 -30
  10. package/build/templates/packages/expo-router/drawer/app/modal.tsx.ejs +96 -0
  11. package/build/templates/packages/expo-router/drawer/components/edit-screen-info.tsx.ejs +153 -0
  12. package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +1 -0
  13. package/build/templates/packages/react-navigation/navigation/drawer-navigator.tsx.ejs +41 -5
  14. package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +3 -2
  15. package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +28 -25
  16. package/build/templates/packages/react-navigation/screens/home.tsx.ejs +83 -0
  17. package/build/types/types.d.ts +1 -1
  18. package/build/utilities/configureProjectFiles.js +12 -6
  19. package/build/utilities/generateProjectFiles.js +2 -2
  20. package/build/utilities/runCLI.js +2 -2
  21. package/build/utilities/showHelp.js +2 -1
  22. package/package.json +2 -2
  23. package/build/templates/packages/expo-router/drawer/app/(drawer)/news.tsx.ejs +0 -83
@@ -0,0 +1,96 @@
1
+ <% if (props.stylingPackage?.name === 'nativewind') { %>
2
+ import { Platform, Text, View } from 'react-native';
3
+ <% } else if (props.stylingPackage?.name === 'tamagui') { %>
4
+ import { YStack, Paragraph, Separator, Theme } from 'tamagui';
5
+ import { Platform } from 'react-native'
6
+ <% } else if (props.stylingPackage?.name === 'restyle') { %>
7
+ import { Platform } from 'react-native';
8
+ import { Box, Text } from 'theme';
9
+ <% } else if (props.stylingPackage?.name === 'unistyles') { %>
10
+ import { useStyles } from 'react-native-unistyles'
11
+ import { Platform, Text, View } from 'react-native';
12
+ <% } else { %>
13
+ import { Platform, StyleSheet, Text, View } from 'react-native';
14
+ <% } %>
15
+ import { StatusBar } from 'expo-status-bar';
16
+
17
+ import EditScreenInfo from '../components/edit-screen-info';
18
+
19
+ export default function ModalScreen() {
20
+ <% if (props.stylingPackage?.name === 'unistyles') { %>
21
+ const { theme } = useStyles()
22
+
23
+ return (
24
+ <View style={theme.components.container}>
25
+ <StatusBar style={Platform.OS === 'ios' ? 'light' : 'auto'} />
26
+ <Text style={theme.components.title}>Modal</Text>
27
+ <View style={theme.components.separator} />
28
+ <EditScreenInfo path='app/modal.tsx' />
29
+ </View>
30
+ );
31
+ <% } else if (props.stylingPackage?.name === 'nativewind') { %>
32
+ return (
33
+ <View className={styles.container}>
34
+ <StatusBar style={Platform.OS === 'ios' ? 'light' : 'auto'} />
35
+ <Text className={styles.title}>Modal</Text>
36
+ <View className={styles.separator} />
37
+ <EditScreenInfo path='app/modal.tsx' />
38
+ </View>
39
+ );
40
+ <% } else if (props.stylingPackage?.name === 'tamagui') { %>
41
+ return (
42
+ <Theme name='light'>
43
+ <YStack flex={1} alignItems='center' justifyContent='center'>
44
+ <StatusBar style={Platform.OS === 'ios' ? 'light' : 'auto'} />
45
+ <Paragraph>Modal</Paragraph>
46
+ <Separator />
47
+ <EditScreenInfo path='app/modal.tsx' />
48
+ </YStack>
49
+ </Theme>
50
+ );
51
+ <% } else if (props.stylingPackage?.name === 'restyle') { %>
52
+ return (
53
+ <Box flex={1} alignItems='center' justifyContent='center'>
54
+ <StatusBar style={Platform.OS === 'ios' ? 'light' : 'auto'} />
55
+ <Text variant='title'>Modal</Text>
56
+ <Box height={1} marginVertical='l_32' width='80%' />
57
+ <EditScreenInfo path='app/modal.tsx' />
58
+ </Box>
59
+ );
60
+ <% } else { %>
61
+ return (
62
+ <View style={styles.container}>
63
+ <StatusBar style={Platform.OS === 'ios' ? 'light' : 'auto'} />
64
+ <Text style={styles.title}>Modal</Text>
65
+ <View style={styles.separator} />
66
+ <EditScreenInfo path='app/modal.tsx' />
67
+ </View>
68
+ );
69
+ <% } %>
70
+ }
71
+
72
+ <% if (props.stylingPackage?.name === 'nativewind') { %>
73
+ const styles = {
74
+ container: `items-center flex-1 justify-center`,
75
+ separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
76
+ title: `text-xl font-bold`
77
+ };
78
+ <% } else if (props.stylingPackage?.name === 'stylesheet') { %>
79
+ const styles = StyleSheet.create({
80
+ container: {
81
+ alignItems: 'center',
82
+ flex: 1,
83
+ justifyContent: 'center'
84
+ },
85
+ separator: {
86
+ backgroundColor: '#d1d5db',
87
+ height: 1,
88
+ marginVertical: 30,
89
+ width: '80%'
90
+ },
91
+ title: {
92
+ fontSize: 20,
93
+ fontWeight: 'bold'
94
+ }
95
+ });
96
+ <% } %>
@@ -0,0 +1,153 @@
1
+ <% if (props.stylingPackage?.name === 'nativewind') { %>
2
+ import { Text, View } from 'react-native';
3
+ <% } else if (props.stylingPackage?.name === 'tamagui') { %>
4
+ import { YStack, H4, Paragraph } from 'tamagui'
5
+ <% } else if (props.stylingPackage?.name === 'restyle') { %>
6
+ import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === 'unistyles') { %>
8
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from 'react-native';
10
+ <% } else { %>
11
+ import { StyleSheet, Text, View } from 'react-native';
12
+ <% } %>
13
+
14
+ export default function EditScreenInfo({ path }: { path: string }) {
15
+ <% if (props.stylingPackage?.name === 'unistyles') { %>
16
+ const { styles } = useStyles(stylesheet);
17
+ <% } %>
18
+ <% if (props.stylingPackage?.name === 'nativewind') { %>
19
+ return (
20
+ <View>
21
+ <View className={styles.getStartedContainer}>
22
+ <Text className={styles.getStartedText}>
23
+ Open up the code for this screen:
24
+ </Text>
25
+ <View className={styles.codeHighlightContainer + styles.homeScreenFilename}>
26
+ <Text>{path}</Text>
27
+ </View>
28
+ <Text className={styles.getStartedText}>
29
+ Change any of the text, save the file, and your app will automatically update.
30
+ </Text>
31
+ </View>
32
+ </View>
33
+ );
34
+ <% } else if (props.stylingPackage?.name === 'tamagui') { %>
35
+ return (
36
+ <YStack>
37
+ <YStack alignItems='center' marginHorizontal='$6'>
38
+ <H4>
39
+ Open up the code for this screen:
40
+ </H4>
41
+ <YStack borderRadius='$3' marginVertical='$1'>
42
+ <Paragraph>{path}</Paragraph>
43
+ </YStack>
44
+ <Paragraph>
45
+ Change any of the text, save the file, and your app will automatically update.
46
+ </Paragraph>
47
+ </YStack>
48
+ </YStack>
49
+ );
50
+ <% } else if (props.stylingPackage?.name === 'restyle') { %>
51
+ return (
52
+ <Box alignItems='center' marginHorizontal='xl_64'>
53
+ <Text variant='body' lineHeight={24} textAlign='center'>
54
+ Open up the code for this screen:
55
+ </Text>
56
+ <Box borderRadius='s_3' paddingHorizontal='xs_4' marginVertical='s_8'>
57
+ <Text>{path}</Text>
58
+ </Box>
59
+ <Text variant='body' lineHeight={24} textAlign='center'>
60
+ Change any of the text, save the file, and your app will automatically update.
61
+ </Text>
62
+ </Box>
63
+ );
64
+ <% } else { %>
65
+ return (
66
+ <View>
67
+ <View style={styles.getStartedContainer}>
68
+ <Text style={styles.getStartedText}>
69
+ Open up the code for this screen:
70
+ </Text>
71
+ <View style={[styles.codeHighlightContainer, styles.homeScreenFilename]}>
72
+ <Text>{path}</Text>
73
+ </View>
74
+ <Text style={styles.getStartedText}>
75
+ Change any of the text, save the file, and your app will automatically update.
76
+ </Text>
77
+ </View>
78
+ </View>
79
+ );
80
+ <% } %>
81
+ }
82
+
83
+ <% if (props.stylingPackage?.name === 'nativewind') { %>
84
+ const styles = {
85
+ codeHighlightContainer: `rounded-md px-1`,
86
+ getStartedContainer: `items-center mx-12`,
87
+ getStartedText: `text-lg leading-6 text-center`,
88
+ helpContainer: `items-center mx-5 mt-4`,
89
+ helpLink: `py-4`,
90
+ helpLinkText: `text-center`,
91
+ homeScreenFilename: `my-2`,
92
+ };
93
+ <% } else if (props.stylingPackage?.name === 'unistyles') { %>
94
+ const stylesheet = createStyleSheet({
95
+ codeHighlightContainer: {
96
+ borderRadius: 3,
97
+ paddingHorizontal: 4
98
+ },
99
+ getStartedContainer: {
100
+ alignItems: 'center',
101
+ marginHorizontal: 50
102
+ },
103
+ getStartedText: {
104
+ fontSize: 17,
105
+ lineHeight: 24,
106
+ textAlign: 'center'
107
+ },
108
+ helpContainer: {
109
+ alignItems: 'center',
110
+ marginHorizontal: 20,
111
+ marginTop: 15
112
+ },
113
+ helpLink: {
114
+ paddingVertical: 15
115
+ },
116
+ helpLinkText: {
117
+ textAlign: 'center'
118
+ },
119
+ homeScreenFilename: {
120
+ marginVertical: 7
121
+ }
122
+ });
123
+ <% } else if (props.stylingPackage?.name === 'stylesheet') { %>
124
+ const styles = StyleSheet.create({
125
+ codeHighlightContainer: {
126
+ borderRadius: 3,
127
+ paddingHorizontal: 4
128
+ },
129
+ getStartedContainer: {
130
+ alignItems: 'center',
131
+ marginHorizontal: 50
132
+ },
133
+ getStartedText: {
134
+ fontSize: 17,
135
+ lineHeight: 24,
136
+ textAlign: 'center'
137
+ },
138
+ helpContainer: {
139
+ alignItems: 'center',
140
+ marginHorizontal: 20,
141
+ marginTop: 15
142
+ },
143
+ helpLink: {
144
+ paddingVertical: 15
145
+ },
146
+ helpLinkText: {
147
+ textAlign: 'center'
148
+ },
149
+ homeScreenFilename: {
150
+ marginVertical: 7
151
+ }
152
+ });
153
+ <% } %>
@@ -75,6 +75,7 @@ export default function TabOneScreen() {
75
75
  justifyContent: "center",
76
76
  },
77
77
  separator: {
78
+ backgroundColor: '#d1d5db',
78
79
  height: 1,
79
80
  marginVertical: 30,
80
81
  width: "80%",
@@ -1,15 +1,51 @@
1
+ import { FontAwesome, Ionicons, MaterialIcons } from '@expo/vector-icons';
1
2
  import { createDrawerNavigator } from '@react-navigation/drawer';
3
+ import { Pressable } from 'react-native';
4
+ import { StackScreenProps } from '@react-navigation/stack';
2
5
 
3
- import One from '../screens/one';
4
- import Two from '../screens/two';
6
+ import TabNavigator from './tab-navigator';
7
+ import Home from '../screens/home';
8
+ import { RootStackParamList } from '.';
9
+ import { useNavigation } from '@react-navigation/native';
5
10
 
6
11
  const Drawer = createDrawerNavigator();
7
12
 
8
13
  export default function DrawerNavigator() {
14
+ const { navigation } = useNavigation<StackScreenProps<RootStackParamList>>();
15
+
9
16
  return (
10
- <Drawer.Navigator initialRouteName="One">
11
- <Drawer.Screen name="One" component={One} />
12
- <Drawer.Screen name="Two" component={Two} />
17
+ <Drawer.Navigator>
18
+ <Drawer.Screen
19
+ name="Home"
20
+ component={Home}
21
+ options={{
22
+ drawerIcon: ({ size, color }) => <Ionicons name="home-outline" size={size} color={color} />,
23
+ }}
24
+ />
25
+ <Drawer.Screen name="Tabs" component={TabNavigator}
26
+ options={{
27
+ headerRight: () => (
28
+ <Pressable onPress={() => navigation.navigate('Modal')}>
29
+ {({ pressed }) => (
30
+ <FontAwesome
31
+ name="info-circle"
32
+ size={25}
33
+ color="gray"
34
+ style={[
35
+ {
36
+ marginRight: 16,
37
+ opacity: pressed ? 0.5 : 1,
38
+ },
39
+ ]}
40
+ />
41
+ )}
42
+ </Pressable>
43
+ ),
44
+ drawerIcon: ({ size, color }) => (
45
+ <MaterialIcons name="border-bottom" size={size} color={color} />
46
+ ),
47
+ }}
48
+ />
13
49
  </Drawer.Navigator>
14
50
  );
15
51
  }
@@ -162,7 +162,7 @@
162
162
  </NavigationContainer>
163
163
  );
164
164
  }
165
- <% } else if (props.navigationPackage?.options.type === 'drawer') { %>
165
+ <% } else if (props.navigationPackage?.options.type === 'drawer + tabs') { %>
166
166
  import { NavigationContainer } from "@react-navigation/native";
167
167
  import { createStackNavigator } from '@react-navigation/stack';
168
168
 
@@ -172,6 +172,7 @@
172
172
  export type RootStackParamList = {
173
173
  DrawerNavigator: undefined;
174
174
  Modal: undefined;
175
+ TabNavigator: undefined;
175
176
  };
176
177
 
177
178
  const Stack = createStackNavigator<RootStackParamList>();
@@ -188,7 +189,7 @@
188
189
  <Stack.Screen
189
190
  name="Modal"
190
191
  component={Modal}
191
- options={{ presentation: "modal" }}
192
+ options={{ presentation: "modal", headerLeft: () => null }}
192
193
  />
193
194
  </Stack.Navigator>
194
195
  </NavigationContainer>
@@ -1,74 +1,77 @@
1
- import FontAwesome from "@expo/vector-icons/FontAwesome";
1
+ import FontAwesome from '@expo/vector-icons/FontAwesome';
2
2
  import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
3
- import { StackScreenProps } from '@react-navigation/stack';
4
- <% if (props.stylingPackage?.name === "unistyles") {%>
3
+ <% if (props.stylingPackage?.name === 'unistyles') { %>
5
4
  import { createStyleSheet, useStyles } from 'react-native-unistyles'
6
5
  import { Pressable } from 'react-native';
6
+ <% } else if (props.navigationPackage?.options.type === 'drawer + tabs' ) { %>
7
+ import { StyleSheet } from 'react-native';
7
8
  <% } else { %>
8
- import { Pressable, StyleSheet } from "react-native";
9
+ import { Pressable, StyleSheet } from 'react-native';
9
10
  <% } %>
10
11
 
11
- import { RootStackParamList } from '.';
12
- import One from "../screens/one";
13
- import Two from "../screens/two";
12
+ import One from '../screens/one';
13
+ import Two from '../screens/two';
14
14
 
15
15
  const Tab = createBottomTabNavigator();
16
16
 
17
17
  function TabBarIcon(props: {
18
- name: React.ComponentProps<typeof FontAwesome>["name"];
18
+ name: React.ComponentProps<typeof FontAwesome>['name'];
19
19
  color: string;
20
20
  }) {
21
- <% if (props.stylingPackage?.name === "unistyles") {%>
21
+ <% if (props.stylingPackage?.name === 'unistyles') {%>
22
22
  const { styles } = useStyles(stylesheet)
23
23
  <% } %>
24
24
  return <FontAwesome size={28} style={styles.tabBarIcon} {...props} />;
25
25
  }
26
26
 
27
- type Props = StackScreenProps<RootStackParamList, 'TabNavigator'>;
28
-
29
- export default function TabLayout({ navigation }: Props) {
30
- <% if (props.stylingPackage?.name === "unistyles") {%>
27
+ export default function TabLayout() {
28
+ <% if (props.stylingPackage?.name === 'unistyles') {%>
31
29
  const { styles } = useStyles(stylesheet)
32
30
  <% } %>
33
31
 
34
32
  return (
35
33
  <Tab.Navigator
36
34
  screenOptions={{
37
- tabBarActiveTintColor: "black",
35
+ tabBarActiveTintColor: 'black',
36
+ <% if (props.navigationPackage?.options.type === 'drawer + tabs') { %>
37
+ headerShown: false,
38
+ <% } %>
38
39
  }}>
39
40
  <Tab.Screen
40
- name="One"
41
+ name='One'
41
42
  component={One}
42
43
  options={{
43
- title: "Tab One",
44
- tabBarIcon: ({ color }) => <TabBarIcon name="code" color={color} />,
44
+ title: 'Tab One',
45
+ tabBarIcon: ({ color }) => <TabBarIcon name='code' color={color} />,
46
+ <% if (props.navigationPackage?.options.type === 'tabs') { %>
45
47
  headerRight: () => (
46
- <Pressable onPress={() => navigation.navigate("Modal")}>
48
+ <Pressable onPress={() => navigation.navigate('Modal')}>
47
49
  {({ pressed }) => (
48
50
  <FontAwesome
49
- name="info-circle"
51
+ name='info-circle'
50
52
  size={25}
51
- color="gray"
53
+ color='gray'
52
54
  style={[styles.headerRight, { opacity: pressed ? 0.5 : 1 }]}
53
55
  />
54
56
  )}
55
57
  </Pressable>
56
- ),
58
+ )
59
+ <% } %>
57
60
  }}
58
61
  />
59
62
  <Tab.Screen
60
- name="Two"
63
+ name='Two'
61
64
  component={Two}
62
65
  options={{
63
- title: "Tab Two",
64
- tabBarIcon: ({ color }) => <TabBarIcon name="code" color={color} />,
66
+ title: 'Tab Two',
67
+ tabBarIcon: ({ color }) => <TabBarIcon name='code' color={color} />,
65
68
  }}
66
69
  />
67
70
  </Tab.Navigator>
68
71
  );
69
72
  }
70
73
 
71
- <% if (props.stylingPackage?.name === "unistyles") {%>
74
+ <% if (props.stylingPackage?.name === 'unistyles') { %>
72
75
  const stylesheet = createStyleSheet({
73
76
  headerRight: {
74
77
  marginRight: 15
@@ -0,0 +1,83 @@
1
+ <% if (props.stylingPackage?.name === 'nativewind') { %>
2
+ import { Text, View } from 'react-native';
3
+ <% } else if (props.stylingPackage?.name === 'tamagui') { %>
4
+ import { YStack, H2, Separator, Theme } from 'tamagui';
5
+ <% } else if (props.stylingPackage?.name === 'restyle') { %>
6
+ import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === 'unistyles') { %>
8
+ import { useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from 'react-native';
10
+ <% } else if (props.stylingPackage?.name === 'stylesheet') { %>
11
+ import { StyleSheet, Text, View } from 'react-native';
12
+ <% } %>
13
+
14
+ const Page = () => {
15
+ <% if (props.stylingPackage?.name === 'unistyles') { %>
16
+ const { theme } = useStyles();
17
+
18
+ return (
19
+ <View style={theme.components.container}>
20
+ <Text style={theme.components.title}>News</Text>
21
+ <View style={theme.components.separator} />
22
+ </View>
23
+ );
24
+ <% } else if (props.stylingPackage?.name === 'nativewind') { %>
25
+ return (
26
+ <View className={styles.container}>
27
+ <Text className={styles.title}>Home</Text>
28
+ <View className={styles.separator} />
29
+ <EditScreenInfo path='app/(tabs)/index.tsx' />
30
+ </View>
31
+ );
32
+ <% } else if (props.stylingPackage?.name === 'tamagui') { %>
33
+ return (
34
+ <Theme name='light'>
35
+ <YStack flex={1} alignItems='center' justifyContent='center'>
36
+ <H2>Home</H2>
37
+ <Separator />
38
+ </YStack>
39
+ </Theme>
40
+ );
41
+ <% } else if (props.stylingPackage?.name === 'restyle') { %>
42
+ return (
43
+ <Box flex={1} alignItems='center' justifyContent='center'>
44
+ <Text variant='title'>Home</Text>
45
+ <Box height={1} marginVertical='l_32' width='80%' />
46
+ </Box>
47
+ );
48
+ <% } else { %>
49
+ return (
50
+ <View style={styles.container}>
51
+ <Text style={styles.title}>Home</Text>
52
+ <View style={styles.separator} />
53
+ </View>
54
+ );
55
+ <% } %>
56
+ }
57
+
58
+ export default Page;
59
+
60
+ <% if (props.stylingPackage?.name === 'nativewind') { %>
61
+ const styles = {
62
+ container: `items-center flex-1 justify-center`,
63
+ separator: `h-[1px] my-7 w-4/5 bg-gray-200`,
64
+ title: `text-xl font-bold`
65
+ };
66
+ <% } else if (props.stylingPackage?.name === 'stylesheet') { %>
67
+ const styles = StyleSheet.create({
68
+ container: {
69
+ alignItems: 'center',
70
+ flex: 1,
71
+ justifyContent: 'center',
72
+ },
73
+ separator: {
74
+ height: 1,
75
+ marginVertical: 30,
76
+ width: '80%',
77
+ },
78
+ title: {
79
+ fontSize: 20,
80
+ fontWeight: 'bold',
81
+ }
82
+ });
83
+ <% } %>
@@ -6,7 +6,7 @@ export interface CliFlags {
6
6
  packageManager: PackageManager;
7
7
  }
8
8
  export declare const availablePackages: readonly ["@react-navigation/drawer", "expo-router", "expoRouter", "firebase", "nativewind", "react-navigation", "reactNavigation", "react-native-gesture-handler", "react-native-reanimated", "reactnavigation", "stylesheet", "supabase", "tamagui", "restyle", "unistyles"];
9
- export type NavigationTypes = 'stack' | 'tabs' | 'drawer' | undefined;
9
+ export type NavigationTypes = 'stack' | 'tabs' | 'drawer + tabs' | undefined;
10
10
  export type PackageManager = 'yarn' | 'npm' | 'pnpm' | 'bun';
11
11
  export type AvailablePackages = {
12
12
  name: (typeof availablePackages)[number];
@@ -86,11 +86,13 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
86
86
  'packages/react-navigation/screens/two.tsx.ejs'
87
87
  ], false);
88
88
  }
89
- else if (((_c = navigationPackage === null || navigationPackage === void 0 ? void 0 : navigationPackage.options) === null || _c === void 0 ? void 0 : _c.type) === 'drawer') {
89
+ else if (((_c = navigationPackage === null || navigationPackage === void 0 ? void 0 : navigationPackage.options) === null || _c === void 0 ? void 0 : _c.type) === 'drawer + tabs') {
90
90
  // it's a drawer navigator
91
91
  reactNavigationFiles = __spreadArray(__spreadArray([], reactNavigationFiles, true), [
92
92
  'packages/react-navigation/components/edit-screen-info.tsx.ejs',
93
93
  'packages/react-navigation/navigation/drawer-navigator.tsx.ejs',
94
+ 'packages/react-navigation/navigation/tab-navigator.tsx.ejs',
95
+ 'packages/react-navigation/screens/home.tsx.ejs',
94
96
  'packages/react-navigation/screens/modal.tsx.ejs',
95
97
  'packages/react-navigation/screens/one.tsx.ejs',
96
98
  'packages/react-navigation/screens/two.tsx.ejs'
@@ -134,12 +136,16 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
134
136
  else {
135
137
  // it's a drawer navigator
136
138
  expoRouterFiles = __spreadArray(__spreadArray([], expoRouterFiles, true), [
137
- 'packages/expo-router/drawer/app/(drawer)/_layout.tsx.ejs',
138
- 'packages/expo-router/drawer/app/(drawer)/index.tsx.ejs',
139
- 'packages/expo-router/drawer/app/(drawer)/news.tsx.ejs',
140
139
  'packages/expo-router/drawer/app/_layout.tsx.ejs',
141
140
  'packages/expo-router/drawer/app/[...unmatched].tsx.ejs',
142
- 'packages/expo-router/drawer/app/+html.tsx.ejs'
141
+ 'packages/expo-router/drawer/app/+html.tsx.ejs',
142
+ 'packages/expo-router/drawer/app/(drawer)/_layout.tsx.ejs',
143
+ 'packages/expo-router/drawer/app/(drawer)/index.tsx.ejs',
144
+ 'packages/expo-router/drawer/app/(drawer)/(tabs)/_layout.tsx.ejs',
145
+ 'packages/expo-router/drawer/app/(drawer)/(tabs)/index.tsx.ejs',
146
+ 'packages/expo-router/drawer/app/(drawer)/(tabs)/two.tsx.ejs',
147
+ 'packages/expo-router/drawer/app/modal.tsx.ejs',
148
+ 'packages/expo-router/drawer/components/edit-screen-info.tsx.ejs'
143
149
  ], false);
144
150
  }
145
151
  // Remove the base App.tsx.ejs file since we'll be using index.tsx from expo-router
@@ -163,4 +169,4 @@ function configureProjectFiles(authenticationPackage, files, navigationPackage,
163
169
  return files;
164
170
  }
165
171
  exports.configureProjectFiles = configureProjectFiles;
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlUHJvamVjdEZpbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9jb25maWd1cmVQcm9qZWN0RmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUEseURBQXdEO0FBRXhELFNBQWdCLHFCQUFxQixDQUNuQyxxQkFBb0QsRUFDcEQsS0FBZSxFQUNmLGlCQUFnRCxFQUNoRCxjQUE2QyxFQUM3QyxPQUFnQixFQUNoQixVQUFzQjs7SUFFdEIsMkRBQTJEO0lBQzNELElBQU0sU0FBUyxHQUFHO1FBQ2hCLHdCQUF3QjtRQUN4QixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLGtCQUFrQjtLQUNuQixDQUFDO0lBRUYsSUFBTSxjQUFjLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsdURBQXVEO0lBQ3ZELElBQUksY0FBYyxLQUFLLE1BQU0sSUFBSSxDQUFBLGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLElBQUksTUFBSyxhQUFhLEVBQUUsQ0FBQztRQUMzRSxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUsscUJBQU8sU0FBUyxPQUFDLENBQUM7SUFFdkIsaUNBQWlDO0lBQ2pDLG1EQUFtRDtJQUNuRCxJQUFJLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLElBQUksTUFBSyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxJQUFNLGVBQWUsR0FBRyxDQUFDLDRDQUE0QyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFFM0csS0FBSyxtQ0FBTyxLQUFLLFNBQUssZUFBZSxPQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixnREFBZ0Q7SUFDaEQsSUFBSSxD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
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlUHJvamVjdEZpbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9jb25maWd1cmVQcm9qZWN0RmlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUEseURBQXdEO0FBRXhELFNBQWdCLHFCQUFxQixDQUNuQyxxQkFBb0QsRUFDcEQsS0FBZSxFQUNmLGlCQUFnRCxFQUNoRCxjQUE2QyxFQUM3QyxPQUFnQixFQUNoQixVQUFzQjs7SUFFdEIsMkRBQTJEO0lBQzNELElBQU0sU0FBUyxHQUFHO1FBQ2hCLHdCQUF3QjtRQUN4QixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLGtCQUFrQjtLQUNuQixDQUFDO0lBRUYsSUFBTSxjQUFjLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsdURBQXVEO0lBQ3ZELElBQUksY0FBYyxLQUFLLE1BQU0sSUFBSSxDQUFBLGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLElBQUksTUFBSyxhQUFhLEVBQUUsQ0FBQztRQUMzRSxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUsscUJBQU8sU0FBUyxPQUFDLENBQUM7SUFFdkIsaUNBQWlDO0lBQ2pDLG1EQUFtRDtJQUNuRCxJQUFJLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLElBQUksTUFBSyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxJQUFNLGVBQWUsR0FBRyxDQUFDLDRDQUE0QyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFFM0csS0FBSyxtQ0FBTyxLQUFLLFNBQUssZUFBZSxPQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixnREFBZ0Q7SUFDaEQsSUFBSSxD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
@@ -38,7 +38,7 @@ function generateProjectFiles(authenticationPackage, cliResults, files, formatte
38
38
  if (((_b = navigationPackage === null || navigationPackage === void 0 ? void 0 : navigationPackage.options) === null || _b === void 0 ? void 0 : _b.type) === 'tabs') {
39
39
  target = target.replace('tabs/', '');
40
40
  }
41
- if (((_c = navigationPackage === null || navigationPackage === void 0 ? void 0 : navigationPackage.options) === null || _c === void 0 ? void 0 : _c.type) === 'drawer') {
41
+ if (((_c = navigationPackage === null || navigationPackage === void 0 ? void 0 : navigationPackage.options) === null || _c === void 0 ? void 0 : _c.type) === 'drawer + tabs') {
42
42
  target = target.replace('drawer/', '');
43
43
  }
44
44
  }
@@ -59,4 +59,4 @@ function generateProjectFiles(authenticationPackage, cliResults, files, formatte
59
59
  }, formattedFiles);
60
60
  }
61
61
  exports.generateProjectFiles = generateProjectFiles;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0RmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2dlbmVyYXRlUHJvamVjdEZpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFNBQWdCLG9CQUFvQixDQUNsQyxxQkFBb0QsRUFDcEQsVUFBc0IsRUFDdEIsS0FBZSxFQUNmLGNBQXFCLEVBQ3JCLGlCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixjQUE2QyxFQUM3QyxPQUFnQjtJQUVSLElBQUEsV0FBVyxHQUFzQixVQUFVLFlBQWhDLEVBQUUsUUFBUSxHQUFZLFVBQVUsU0FBdEIsRUFBRSxLQUFLLEdBQUssVUFBVSxNQUFmLENBQWdCO0lBRXBELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJOztRQUM3QixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFFLElBQUksTUFBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxDQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFFLElBQUksTUFBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQSxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsSUFBSSxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxJQUFJLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLElBQUksTUFBSyxXQUFXLEVBQUUsQ0FBQztZQUNoRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxJQUFJLE1BQUssWUFBWSxFQUFFLENBQUM7WUFDakQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQzthQUFNLElBQUksQ0FBQSxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsSUFBSSxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsSUFBSSxNQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDbkQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUNBQW1DLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELElBQUksQ0FBQSxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxJQUFJLE1BQUssYUFBYSxFQUFFLENBQUM7WUFDOUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFBLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsT0FBTywwQ0FBRSxJQUFJLE1BQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsSUFBSSxDQUFBLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsT0FBTywwQ0FBRSxJQUFJLE1BQUssTUFBTSxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsSUFBSSxDQUFBLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsT0FBTywwQ0FBRSxJQUFJLE1BQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2xELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3BDLFFBQVEsVUFBQTtZQUNSLE1BQU0sRUFBRSxZQUFLLFdBQVcsTUFBRyxHQUFHLE1BQU07WUFDcEMsS0FBSyxFQUFFO2dCQUNMLHFCQUFxQix1QkFBQTtnQkFDckIsS0FBSyxPQUFBO2dCQUNMLGlCQUFpQixtQkFBQTtnQkFDakIsV0FBVyxhQUFBO2dCQUNYLGNBQWMsZ0JBQUE7Z0JBQ2QsUUFBUSxVQUFBO2dCQUNSLGNBQWMsZ0JBQUE7YUFDZjtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUF0RUQsb0RBc0VDIn0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQcm9qZWN0RmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2dlbmVyYXRlUHJvamVjdEZpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFNBQWdCLG9CQUFvQixDQUNsQyxxQkFBb0QsRUFDcEQsVUFBc0IsRUFDdEIsS0FBZSxFQUNmLGNBQXFCLEVBQ3JCLGlCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixjQUE2QyxFQUM3QyxPQUFnQjtJQUVSLElBQUEsV0FBVyxHQUFzQixVQUFVLFlBQWhDLEVBQUUsUUFBUSxHQUFZLFVBQVUsU0FBdEIsRUFBRSxLQUFLLEdBQUssVUFBVSxNQUFmLENBQWdCO0lBRXBELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJOztRQUM3QixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFFLElBQUksTUFBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxDQUFBLHFCQUFxQixhQUFyQixxQkFBcUIsdUJBQXJCLHFCQUFxQixDQUFFLElBQUksTUFBSyxVQUFVLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQSxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsSUFBSSxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxJQUFJLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLElBQUksTUFBSyxXQUFXLEVBQUUsQ0FBQztZQUNoRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO2FBQU0sSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxJQUFJLE1BQUssWUFBWSxFQUFFLENBQUM7WUFDakQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQzthQUFNLElBQUksQ0FBQSxjQUFjLGFBQWQsY0FBYyx1QkFBZCxjQUFjLENBQUUsSUFBSSxNQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsSUFBSSxNQUFLLGtCQUFrQixFQUFFLENBQUM7WUFDbkQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUNBQW1DLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELElBQUksQ0FBQSxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxJQUFJLE1BQUssYUFBYSxFQUFFLENBQUM7WUFDOUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFBLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsT0FBTywwQ0FBRSxJQUFJLE1BQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsSUFBSSxDQUFBLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsT0FBTywwQ0FBRSxJQUFJLE1BQUssTUFBTSxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsSUFBSSxDQUFBLE1BQUEsaUJBQWlCLGFBQWpCLGlCQUFpQix1QkFBakIsaUJBQWlCLENBQUUsT0FBTywwQ0FBRSxJQUFJLE1BQUssZUFBZSxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3BDLFFBQVEsVUFBQTtZQUNSLE1BQU0sRUFBRSxZQUFLLFdBQVcsTUFBRyxHQUFHLE1BQU07WUFDcEMsS0FBSyxFQUFFO2dCQUNMLHFCQUFxQix1QkFBQTtnQkFDckIsS0FBSyxPQUFBO2dCQUNMLGlCQUFpQixtQkFBQTtnQkFDakIsV0FBVyxhQUFBO2dCQUNYLGNBQWMsZ0JBQUE7Z0JBQ2QsUUFBUSxVQUFBO2dCQUNSLGNBQWMsZ0JBQUE7YUFDZjtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUF0RUQsb0RBc0VDIn0=