{"ast":null,"code":"import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nconst _excluded = [\"component\"];\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nimport * as React from 'react';\nimport Animated from \"react-native-web/dist/exports/Animated\";\nimport Platform from \"react-native-web/dist/exports/Platform\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport View from \"react-native-web/dist/exports/View\";\nimport useLatestCallback from 'use-latest-callback';\nimport BottomNavigationBar from \"./BottomNavigationBar\";\nimport BottomNavigationRouteScreen from \"./BottomNavigationRouteScreen\";\nimport { useInternalTheme } from \"../../core/theming\";\nimport useAnimatedValueArray from \"../../utils/useAnimatedValueArray\";\nconst FAR_FAR_AWAY = Platform.OS === 'web' ? 0 : 9999;\nconst SceneComponent = React.memo(_ref => {\n  let {\n      component\n    } = _ref,\n    rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n  return React.createElement(component, rest);\n});\nconst BottomNavigation = ({\n  navigationState,\n  renderScene,\n  renderIcon,\n  renderLabel,\n  renderTouchable,\n  getLabelText,\n  getBadge,\n  getColor,\n  getAccessibilityLabel,\n  getTestID,\n  activeColor,\n  inactiveColor,\n  keyboardHidesNavigationBar = Platform.OS === 'android',\n  barStyle,\n  labeled = true,\n  style,\n  activeIndicatorStyle,\n  sceneAnimationEnabled = false,\n  sceneAnimationType = 'opacity',\n  sceneAnimationEasing,\n  onTabPress,\n  onTabLongPress,\n  onIndexChange,\n  shifting: shiftingProp,\n  safeAreaInsets,\n  labelMaxFontSizeMultiplier = 1,\n  compact: compactProp,\n  testID = 'bottom-navigation',\n  theme: themeOverrides,\n  getLazy = ({\n    route\n  }) => route.lazy\n}) => {\n  const theme = useInternalTheme(themeOverrides);\n  const {\n    scale\n  } = theme.animation;\n  const compact = compactProp ?? !theme.isV3;\n  let shifting = shiftingProp ?? (theme.isV3 ? false : navigationState.routes.length > 3);\n  if (shifting && navigationState.routes.length < 2) {\n    shifting = false;\n    console.warn('BottomNavigation needs at least 2 tabs to run shifting animation');\n  }\n  const focusedKey = navigationState.routes[navigationState.index].key;\n  const tabsPositionAnims = useAnimatedValueArray(navigationState.routes.map((_, i) => i === navigationState.index ? 0 : i >= navigationState.index ? 1 : -1));\n  const offsetsAnims = useAnimatedValueArray(navigationState.routes.map((_, i) => i === navigationState.index ? 0 : 1));\n  const [loaded, setLoaded] = React.useState([focusedKey]);\n  if (!loaded.includes(focusedKey)) {\n    setLoaded(loaded => [...loaded, focusedKey]);\n  }\n  const animateToIndex = React.useCallback(index => {\n    Animated.parallel([...navigationState.routes.map((_, i) => Animated.timing(tabsPositionAnims[i], {\n      toValue: i === index ? 0 : i >= index ? 1 : -1,\n      duration: theme.isV3 || shifting ? 150 * scale : 0,\n      useNativeDriver: true,\n      easing: sceneAnimationEasing\n    }))]).start(({\n      finished\n    }) => {\n      if (finished) {\n        offsetsAnims.forEach((offset, i) => {\n          if (i === index) {\n            offset.setValue(0);\n          } else {\n            offset.setValue(1);\n          }\n        });\n      }\n    });\n  }, [shifting, navigationState.routes, offsetsAnims, scale, tabsPositionAnims, sceneAnimationEasing, theme]);\n  React.useEffect(() => {\n    animateToIndex(navigationState.index);\n  }, []);\n  const prevNavigationState = React.useRef(undefined);\n  React.useEffect(() => {\n    offsetsAnims.forEach((offset, i) => {\n      var _prevNavigationState$;\n      if (i === navigationState.index || i === ((_prevNavigationState$ = prevNavigationState.current) === null || _prevNavigationState$ === void 0 ? void 0 : _prevNavigationState$.index)) {\n        offset.setValue(0);\n      }\n    });\n    animateToIndex(navigationState.index);\n  }, [navigationState.index, animateToIndex, offsetsAnims]);\n  const handleTabPress = useLatestCallback(event => {\n    onTabPress === null || onTabPress === void 0 || onTabPress(event);\n    if (event.defaultPrevented) {\n      return;\n    }\n    const index = navigationState.routes.findIndex(route => event.route.key === route.key);\n    if (index !== navigationState.index) {\n      prevNavigationState.current = navigationState;\n      onIndexChange(index);\n    }\n  });\n  const jumpTo = useLatestCallback(key => {\n    const index = navigationState.routes.findIndex(route => route.key === key);\n    prevNavigationState.current = navigationState;\n    onIndexChange(index);\n  });\n  const {\n    routes\n  } = navigationState;\n  const {\n    colors\n  } = theme;\n  return React.createElement(View, {\n    style: [styles.container, style],\n    testID: testID\n  }, React.createElement(View, {\n    style: [styles.content, {\n      backgroundColor: colors === null || colors === void 0 ? void 0 : colors.background\n    }]\n  }, routes.map((route, index) => {\n    var _prevNavigationState$2;\n    if (getLazy({\n      route\n    }) !== false && !loaded.includes(route.key)) {\n      return null;\n    }\n    const focused = navigationState.index === index;\n    const previouslyFocused = ((_prevNavigationState$2 = prevNavigationState.current) === null || _prevNavigationState$2 === void 0 ? void 0 : _prevNavigationState$2.index) === index;\n    const countAlphaOffscreen = sceneAnimationEnabled && (focused || previouslyFocused);\n    const renderToHardwareTextureAndroid = sceneAnimationEnabled && focused;\n    const opacity = sceneAnimationEnabled ? tabsPositionAnims[index].interpolate({\n      inputRange: [-1, 0, 1],\n      outputRange: [0, 1, 0]\n    }) : focused ? 1 : 0;\n    const offsetTarget = focused ? 0 : FAR_FAR_AWAY;\n    const top = sceneAnimationEnabled ? offsetsAnims[index].interpolate({\n      inputRange: [0, 1],\n      outputRange: [0, offsetTarget]\n    }) : offsetTarget;\n    const left = sceneAnimationType === 'shifting' ? tabsPositionAnims[index].interpolate({\n      inputRange: [-1, 0, 1],\n      outputRange: [-50, 0, 50]\n    }) : 0;\n    const zIndex = focused ? 1 : 0;\n    return React.createElement(BottomNavigationRouteScreen, {\n      key: route.key,\n      pointerEvents: focused ? 'auto' : 'none',\n      accessibilityElementsHidden: !focused,\n      importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',\n      index: index,\n      visibility: opacity,\n      style: [StyleSheet.absoluteFill, {\n        zIndex\n      }],\n      collapsable: false,\n      removeClippedSubviews: Platform.OS === 'ios' ? navigationState.index !== index : true\n    }, React.createElement(Animated.View, _extends({}, Platform.OS === 'android' && {\n      needsOffscreenAlphaCompositing: countAlphaOffscreen\n    }, {\n      renderToHardwareTextureAndroid: renderToHardwareTextureAndroid,\n      style: [styles.content, {\n        opacity,\n        transform: [{\n          translateX: left\n        }, {\n          translateY: top\n        }]\n      }]\n    }), renderScene({\n      route,\n      jumpTo\n    })));\n  })), React.createElement(BottomNavigationBar, {\n    navigationState: navigationState,\n    renderIcon: renderIcon,\n    renderLabel: renderLabel,\n    renderTouchable: renderTouchable,\n    getLabelText: getLabelText,\n    getBadge: getBadge,\n    getColor: getColor,\n    getAccessibilityLabel: getAccessibilityLabel,\n    getTestID: getTestID,\n    activeColor: activeColor,\n    inactiveColor: inactiveColor,\n    keyboardHidesNavigationBar: keyboardHidesNavigationBar,\n    style: barStyle,\n    activeIndicatorStyle: activeIndicatorStyle,\n    labeled: labeled,\n    animationEasing: sceneAnimationEasing,\n    onTabPress: handleTabPress,\n    onTabLongPress: onTabLongPress,\n    shifting: shifting,\n    safeAreaInsets: safeAreaInsets,\n    labelMaxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n    compact: compact,\n    testID: `${testID}-bar`,\n    theme: theme\n  }));\n};\nBottomNavigation.SceneMap = scenes => {\n  return ({\n    route,\n    jumpTo\n  }) => React.createElement(SceneComponent, {\n    key: route.key,\n    component: scenes[route.key ? route.key : ''],\n    route: route,\n    jumpTo: jumpTo\n  });\n};\nBottomNavigation.Bar = BottomNavigationBar;\nexport default BottomNavigation;\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    overflow: 'hidden'\n  },\n  content: {\n    flex: 1\n  }\n});","map":{"version":3,"names":["React","Animated","Platform","StyleSheet","View","useLatestCallback","BottomNavigationBar","BottomNavigationRouteScreen","useInternalTheme","useAnimatedValueArray","FAR_FAR_AWAY","OS","SceneComponent","memo","_ref","component","rest","_objectWithoutPropertiesLoose","_excluded","createElement","BottomNavigation","navigationState","renderScene","renderIcon","renderLabel","renderTouchable","getLabelText","getBadge","getColor","getAccessibilityLabel","getTestID","activeColor","inactiveColor","keyboardHidesNavigationBar","barStyle","labeled","style","activeIndicatorStyle","sceneAnimationEnabled","sceneAnimationType","sceneAnimationEasing","onTabPress","onTabLongPress","onIndexChange","shifting","shiftingProp","safeAreaInsets","labelMaxFontSizeMultiplier","compact","compactProp","testID","theme","themeOverrides","getLazy","route","lazy","scale","animation","isV3","routes","length","console","warn","focusedKey","index","key","tabsPositionAnims","map","_","i","offsetsAnims","loaded","setLoaded","useState","includes","animateToIndex","useCallback","parallel","timing","toValue","duration","useNativeDriver","easing","start","finished","forEach","offset","setValue","useEffect","prevNavigationState","useRef","undefined","_prevNavigationState$","current","handleTabPress","event","defaultPrevented","findIndex","jumpTo","colors","styles","container","content","backgroundColor","background","_prevNavigationState$2","focused","previouslyFocused","countAlphaOffscreen","renderToHardwareTextureAndroid","opacity","interpolate","inputRange","outputRange","offsetTarget","top","left","zIndex","pointerEvents","accessibilityElementsHidden","importantForAccessibility","visibility","absoluteFill","collapsable","removeClippedSubviews","_extends","needsOffscreenAlphaCompositing","transform","translateX","translateY","animationEasing","SceneMap","scenes","Bar","create","flex","overflow"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/BottomNavigation/BottomNavigation.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n  Animated,\n  ColorValue,\n  EasingFunction,\n  Platform,\n  StyleProp,\n  StyleSheet,\n  View,\n  ViewStyle,\n} from 'react-native';\n\nimport useLatestCallback from 'use-latest-callback';\n\nimport BottomNavigationBar from './BottomNavigationBar';\nimport BottomNavigationRouteScreen from './BottomNavigationRouteScreen';\nimport { useInternalTheme } from '../../core/theming';\nimport type { ThemeProp } from '../../types';\nimport useAnimatedValueArray from '../../utils/useAnimatedValueArray';\nimport type { IconSource } from '../Icon';\nimport { Props as TouchableRippleProps } from '../TouchableRipple/TouchableRipple';\n\nexport type BaseRoute = {\n  key: string;\n  title?: string;\n  focusedIcon?: IconSource;\n  unfocusedIcon?: IconSource;\n  badge?: string | number | boolean;\n  /**\n   * @deprecated In v5.x works only with theme version 2.\n   */\n  color?: string;\n  accessibilityLabel?: string;\n  testID?: string;\n  lazy?: boolean;\n};\n\ntype NavigationState<Route extends BaseRoute> = {\n  index: number;\n  routes: Route[];\n};\n\ntype TabPressEvent = {\n  defaultPrevented: boolean;\n  preventDefault(): void;\n};\n\ntype TouchableProps<Route extends BaseRoute> = TouchableRippleProps & {\n  key: string;\n  route: Route;\n  children: React.ReactNode;\n  borderless?: boolean;\n  centered?: boolean;\n  rippleColor?: ColorValue;\n};\n\nexport type Props<Route extends BaseRoute> = {\n  /**\n   * Whether the shifting style is used, the active tab icon shifts up to show the label and the inactive tabs won't have a label.\n   *\n   * By default, this is `false` with theme version 3 and `true` when you have more than 3 tabs.\n   * Pass `shifting={false}` to explicitly disable this animation, or `shifting={true}` to always use this animation.\n   * Note that you need at least 2 tabs be able to run this animation.\n   */\n  shifting?: boolean;\n  /**\n   * Whether to show labels in tabs. When `false`, only icons will be displayed.\n   */\n  labeled?: boolean;\n  /**\n   * Whether tabs should be spread across the entire width.\n   */\n  compact?: boolean;\n  /**\n   * State for the bottom navigation. The state should contain the following properties:\n   *\n   * - `index`: a number representing the index of the active route in the `routes` array\n   * - `routes`: an array containing a list of route objects used for rendering the tabs\n   *\n   * Each route object should contain the following properties:\n   *\n   * - `key`: a unique key to identify the route (required)\n   * - `title`: title of the route to use as the tab label\n   * - `focusedIcon`:  icon to use as the focused tab icon, can be a string, an image source or a react component @renamed Renamed from 'icon' to 'focusedIcon' in v5.x\n   * - `unfocusedIcon`:  icon to use as the unfocused tab icon, can be a string, an image source or a react component @supported Available in v5.x with theme version 3\n   * - `color`: color to use as background color for shifting bottom navigation @deprecatedProperty In v5.x works only with theme version 2.\n   * - `badge`: badge to show on the tab icon, can be `true` to show a dot, `string` or `number` to show text.\n   * - `accessibilityLabel`: accessibility label for the tab button\n   * - `testID`: test id for the tab button\n   *\n   * Example:\n   *\n   * ```js\n   * {\n   *   index: 1,\n   *   routes: [\n   *     { key: 'music', title: 'Favorites', focusedIcon: 'heart', unfocusedIcon: 'heart-outline'},\n   *     { key: 'albums', title: 'Albums', focusedIcon: 'album' },\n   *     { key: 'recents', title: 'Recents', focusedIcon: 'history' },\n   *     { key: 'notifications', title: 'Notifications', focusedIcon: 'bell', unfocusedIcon: 'bell-outline' },\n   *   ]\n   * }\n   * ```\n   *\n   * `BottomNavigation` is a controlled component, which means the `index` needs to be updated via the `onIndexChange` callback.\n   */\n  navigationState: NavigationState<Route>;\n  /**\n   * Callback which is called on tab change, receives the index of the new tab as argument.\n   * The navigation state needs to be updated when it's called, otherwise the change is dropped.\n   */\n  onIndexChange: (index: number) => void;\n  /**\n   * Callback which returns a react element to render as the page for the tab. Receives an object containing the route as the argument:\n   *\n   * ```js\n   * renderScene = ({ route, jumpTo }) => {\n   *   switch (route.key) {\n   *     case 'music':\n   *       return <MusicRoute jumpTo={jumpTo} />;\n   *     case 'albums':\n   *       return <AlbumsRoute jumpTo={jumpTo} />;\n   *   }\n   * }\n   * ```\n   *\n   * Pages are lazily rendered, which means that a page will be rendered the first time you navigate to it.\n   * After initial render, all the pages stay rendered to preserve their state.\n   *\n   * You need to make sure that your individual routes implement a `shouldComponentUpdate` to improve the performance.\n   * To make it easier to specify the components, you can use the `SceneMap` helper:\n   *\n   * ```js\n   * renderScene = BottomNavigation.SceneMap({\n   *   music: MusicRoute,\n   *   albums: AlbumsRoute,\n   * });\n   * ```\n   *\n   * Specifying the components this way is easier and takes care of implementing a `shouldComponentUpdate` method.\n   * Each component will receive the current route and a `jumpTo` method as it's props.\n   * The `jumpTo` method can be used to navigate to other tabs programmatically:\n   *\n   * ```js\n   * this.props.jumpTo('albums')\n   * ```\n   */\n  renderScene: (props: {\n    route: Route;\n    jumpTo: (key: string) => void;\n  }) => React.ReactNode | null;\n  /**\n   * Callback which returns a React Element to be used as tab icon.\n   */\n  renderIcon?: (props: {\n    route: Route;\n    focused: boolean;\n    color: string;\n  }) => React.ReactNode;\n  /**\n   * Callback which React Element to be used as tab label.\n   */\n  renderLabel?: (props: {\n    route: Route;\n    focused: boolean;\n    color: string;\n  }) => React.ReactNode;\n  /**\n   * Callback which returns a React element to be used as the touchable for the tab item.\n   * Renders a `TouchableRipple` on Android and `Pressable` on iOS.\n   */\n  renderTouchable?: (props: TouchableProps<Route>) => React.ReactNode;\n  /**\n   * Get accessibility label for the tab button. This is read by the screen reader when the user taps the tab.\n   * Uses `route.accessibilityLabel` by default.\n   */\n  getAccessibilityLabel?: (props: { route: Route }) => string | undefined;\n  /**\n   * Get badge for the tab, uses `route.badge` by default.\n   */\n  getBadge?: (props: { route: Route }) => boolean | number | string | undefined;\n  /**\n   * Get color for the tab, uses `route.color` by default.\n   */\n  getColor?: (props: { route: Route }) => string | undefined;\n  /**\n   * Get label text for the tab, uses `route.title` by default. Use `renderLabel` to replace label component.\n   */\n  getLabelText?: (props: { route: Route }) => string | undefined;\n  /**\n   * Get lazy for the current screen. Uses true by default.\n   */\n  getLazy?: (props: { route: Route }) => boolean | undefined;\n  /**\n   * Get the id to locate this tab button in tests, uses `route.testID` by default.\n   */\n  getTestID?: (props: { route: Route }) => string | undefined;\n  /**\n   * Function to execute on tab press. It receives the route for the pressed tab, useful for things like scroll to top.\n   */\n  onTabPress?: (props: { route: Route } & TabPressEvent) => void;\n  /**\n   * Function to execute on tab long press. It receives the route for the pressed tab, useful for things like custom action when longed pressed.\n   */\n  onTabLongPress?: (props: { route: Route } & TabPressEvent) => void;\n  /**\n   * Custom color for icon and label in the active tab.\n   */\n  activeColor?: string;\n  /**\n   * Custom color for icon and label in the inactive tab.\n   */\n  inactiveColor?: string;\n  /**\n   * Whether animation is enabled for scenes transitions in `shifting` mode.\n   * By default, the scenes cross-fade during tab change when `shifting` is enabled.\n   * Specify `sceneAnimationEnabled` as `false` to disable the animation.\n   */\n  sceneAnimationEnabled?: boolean;\n  /**\n   * The scene animation effect. Specify `'shifting'` for a different effect.\n   * By default, 'opacity' will be used.\n   */\n  sceneAnimationType?: 'opacity' | 'shifting';\n  /**\n   * The scene animation Easing.\n   */\n  sceneAnimationEasing?: EasingFunction | undefined;\n  /**\n   * Whether the bottom navigation bar is hidden when keyboard is shown.\n   * On Android, this works best when [`windowSoftInputMode`](https://developer.android.com/guide/topics/manifest/activity-element#wsoft) is set to `adjustResize`.\n   */\n  keyboardHidesNavigationBar?: boolean;\n  /**\n   * Safe area insets for the tab bar. This can be used to avoid elements like the navigation bar on Android and bottom safe area on iOS.\n   * The bottom insets for iOS is added by default. You can override the behavior with this option.\n   */\n  safeAreaInsets?: {\n    top?: number;\n    right?: number;\n    bottom?: number;\n    left?: number;\n  };\n  /**\n   * Style for the bottom navigation bar.  You can pass a custom background color here:\n   *\n   * ```js\n   * barStyle={{ backgroundColor: '#694fad' }}\n   * ```\n   */\n  barStyle?: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;\n  /**\n   * Specifies the largest possible scale a label font can reach.\n   */\n  labelMaxFontSizeMultiplier?: number;\n  style?: StyleProp<ViewStyle>;\n  activeIndicatorStyle?: StyleProp<ViewStyle>;\n  /**\n   * @optional\n   */\n  theme?: ThemeProp;\n  /**\n   * TestID used for testing purposes\n   */\n  testID?: string;\n};\n\nconst FAR_FAR_AWAY = Platform.OS === 'web' ? 0 : 9999;\n\nconst SceneComponent = React.memo(({ component, ...rest }: any) =>\n  React.createElement(component, rest)\n);\n\n/**\n * BottomNavigation provides quick navigation between top-level views of an app with a bottom navigation bar.\n * It is primarily designed for use on mobile. If you want to use the navigation bar only see [`BottomNavigation.Bar`](BottomNavigationBar).\n *\n * By default BottomNavigation uses primary color as a background, in dark theme with `adaptive` mode it will use surface colour instead.\n * See [Dark Theme](https://callstack.github.io/react-native-paper/docs/guides/theming#dark-theme) for more information.\n *\n * ## Usage\n * ```js\n * import * as React from 'react';\n * import { BottomNavigation, Text } from 'react-native-paper';\n *\n * const MusicRoute = () => <Text>Music</Text>;\n *\n * const AlbumsRoute = () => <Text>Albums</Text>;\n *\n * const RecentsRoute = () => <Text>Recents</Text>;\n *\n * const NotificationsRoute = () => <Text>Notifications</Text>;\n *\n * const MyComponent = () => {\n *   const [index, setIndex] = React.useState(0);\n *   const [routes] = React.useState([\n *     { key: 'music', title: 'Favorites', focusedIcon: 'heart', unfocusedIcon: 'heart-outline'},\n *     { key: 'albums', title: 'Albums', focusedIcon: 'album' },\n *     { key: 'recents', title: 'Recents', focusedIcon: 'history' },\n *     { key: 'notifications', title: 'Notifications', focusedIcon: 'bell', unfocusedIcon: 'bell-outline' },\n *   ]);\n *\n *   const renderScene = BottomNavigation.SceneMap({\n *     music: MusicRoute,\n *     albums: AlbumsRoute,\n *     recents: RecentsRoute,\n *     notifications: NotificationsRoute,\n *   });\n *\n *   return (\n *     <BottomNavigation\n *       navigationState={{ index, routes }}\n *       onIndexChange={setIndex}\n *       renderScene={renderScene}\n *     />\n *   );\n * };\n *\n * export default MyComponent;\n * ```\n */\nconst BottomNavigation = <Route extends BaseRoute>({\n  navigationState,\n  renderScene,\n  renderIcon,\n  renderLabel,\n  renderTouchable,\n  getLabelText,\n  getBadge,\n  getColor,\n  getAccessibilityLabel,\n  getTestID,\n  activeColor,\n  inactiveColor,\n  keyboardHidesNavigationBar = Platform.OS === 'android',\n  barStyle,\n  labeled = true,\n  style,\n  activeIndicatorStyle,\n  sceneAnimationEnabled = false,\n  sceneAnimationType = 'opacity',\n  sceneAnimationEasing,\n  onTabPress,\n  onTabLongPress,\n  onIndexChange,\n  shifting: shiftingProp,\n  safeAreaInsets,\n  labelMaxFontSizeMultiplier = 1,\n  compact: compactProp,\n  testID = 'bottom-navigation',\n  theme: themeOverrides,\n  getLazy = ({ route }: { route: Route }) => route.lazy,\n}: Props<Route>) => {\n  const theme = useInternalTheme(themeOverrides);\n  const { scale } = theme.animation;\n  const compact = compactProp ?? !theme.isV3;\n  let shifting =\n    shiftingProp ?? (theme.isV3 ? false : navigationState.routes.length > 3);\n\n  if (shifting && navigationState.routes.length < 2) {\n    shifting = false;\n    console.warn(\n      'BottomNavigation needs at least 2 tabs to run shifting animation'\n    );\n  }\n\n  const focusedKey = navigationState.routes[navigationState.index].key;\n\n  /**\n   * Active state of individual tab item positions:\n   * -1 if they're before the active tab, 0 if they're active, 1 if they're after the active tab\n   */\n  const tabsPositionAnims = useAnimatedValueArray(\n    navigationState.routes.map((_, i) =>\n      i === navigationState.index ? 0 : i >= navigationState.index ? 1 : -1\n    )\n  );\n\n  /**\n   * The top offset for each tab item to position it offscreen.\n   * Placing items offscreen helps to save memory usage for inactive screens with removeClippedSubviews.\n   * We use animated values for this to prevent unnecessary re-renders.\n   */\n  const offsetsAnims = useAnimatedValueArray(\n    navigationState.routes.map(\n      // offscreen === 1, normal === 0\n      (_, i) => (i === navigationState.index ? 0 : 1)\n    )\n  );\n\n  /**\n   * List of loaded tabs, tabs will be loaded when navigated to.\n   */\n  const [loaded, setLoaded] = React.useState<string[]>([focusedKey]);\n\n  if (!loaded.includes(focusedKey)) {\n    // Set the current tab to be loaded if it was not loaded before\n    setLoaded((loaded) => [...loaded, focusedKey]);\n  }\n\n  const animateToIndex = React.useCallback(\n    (index: number) => {\n      Animated.parallel([\n        ...navigationState.routes.map((_, i) =>\n          Animated.timing(tabsPositionAnims[i], {\n            toValue: i === index ? 0 : i >= index ? 1 : -1,\n            duration: theme.isV3 || shifting ? 150 * scale : 0,\n            useNativeDriver: true,\n            easing: sceneAnimationEasing,\n          })\n        ),\n      ]).start(({ finished }) => {\n        if (finished) {\n          // Position all inactive screens offscreen to save memory usage\n          // Only do it when animation has finished to avoid glitches mid-transition if switching fast\n          offsetsAnims.forEach((offset, i) => {\n            if (i === index) {\n              offset.setValue(0);\n            } else {\n              offset.setValue(1);\n            }\n          });\n        }\n      });\n    },\n    [\n      shifting,\n      navigationState.routes,\n      offsetsAnims,\n      scale,\n      tabsPositionAnims,\n      sceneAnimationEasing,\n      theme,\n    ]\n  );\n\n  React.useEffect(() => {\n    // Workaround for native animated bug in react-native@^0.57\n    // Context: https://github.com/callstack/react-native-paper/pull/637\n    animateToIndex(navigationState.index);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const prevNavigationState = React.useRef<NavigationState<Route> | undefined>(\n    undefined\n  );\n\n  React.useEffect(() => {\n    // Reset offsets of previous and current tabs before animation\n    offsetsAnims.forEach((offset, i) => {\n      if (\n        i === navigationState.index ||\n        i === prevNavigationState.current?.index\n      ) {\n        offset.setValue(0);\n      }\n    });\n\n    animateToIndex(navigationState.index);\n  }, [navigationState.index, animateToIndex, offsetsAnims]);\n\n  const handleTabPress = useLatestCallback(\n    (event: { route: Route } & TabPressEvent) => {\n      onTabPress?.(event);\n\n      if (event.defaultPrevented) {\n        return;\n      }\n\n      const index = navigationState.routes.findIndex(\n        (route) => event.route.key === route.key\n      );\n\n      if (index !== navigationState.index) {\n        prevNavigationState.current = navigationState;\n        onIndexChange(index);\n      }\n    }\n  );\n\n  const jumpTo = useLatestCallback((key: string) => {\n    const index = navigationState.routes.findIndex(\n      (route) => route.key === key\n    );\n\n    prevNavigationState.current = navigationState;\n    onIndexChange(index);\n  });\n\n  const { routes } = navigationState;\n  const { colors } = theme;\n\n  return (\n    <View style={[styles.container, style]} testID={testID}>\n      <View style={[styles.content, { backgroundColor: colors?.background }]}>\n        {routes.map((route, index) => {\n          if (getLazy({ route }) !== false && !loaded.includes(route.key)) {\n            // Don't render a screen if we've never navigated to it\n            return null;\n          }\n\n          const focused = navigationState.index === index;\n          const previouslyFocused =\n            prevNavigationState.current?.index === index;\n          const countAlphaOffscreen =\n            sceneAnimationEnabled && (focused || previouslyFocused);\n          const renderToHardwareTextureAndroid =\n            sceneAnimationEnabled && focused;\n\n          const opacity = sceneAnimationEnabled\n            ? tabsPositionAnims[index].interpolate({\n                inputRange: [-1, 0, 1],\n                outputRange: [0, 1, 0],\n              })\n            : focused\n            ? 1\n            : 0;\n\n          const offsetTarget = focused ? 0 : FAR_FAR_AWAY;\n\n          const top = sceneAnimationEnabled\n            ? offsetsAnims[index].interpolate({\n                inputRange: [0, 1],\n                outputRange: [0, offsetTarget],\n              })\n            : offsetTarget;\n\n          const left =\n            sceneAnimationType === 'shifting'\n              ? tabsPositionAnims[index].interpolate({\n                  inputRange: [-1, 0, 1],\n                  outputRange: [-50, 0, 50],\n                })\n              : 0;\n\n          const zIndex = focused ? 1 : 0;\n\n          return (\n            <BottomNavigationRouteScreen\n              key={route.key}\n              pointerEvents={focused ? 'auto' : 'none'}\n              accessibilityElementsHidden={!focused}\n              importantForAccessibility={\n                focused ? 'auto' : 'no-hide-descendants'\n              }\n              index={index}\n              visibility={opacity}\n              style={[StyleSheet.absoluteFill, { zIndex }]}\n              collapsable={false}\n              removeClippedSubviews={\n                // On iOS, set removeClippedSubviews to true only when not focused\n                // This is an workaround for a bug where the clipped view never re-appears\n                Platform.OS === 'ios' ? navigationState.index !== index : true\n              }\n            >\n              <Animated.View\n                {...(Platform.OS === 'android' && {\n                  needsOffscreenAlphaCompositing: countAlphaOffscreen,\n                })}\n                renderToHardwareTextureAndroid={renderToHardwareTextureAndroid}\n                style={[\n                  styles.content,\n                  {\n                    opacity,\n                    transform: [{ translateX: left }, { translateY: top }],\n                  },\n                ]}\n              >\n                {renderScene({ route, jumpTo })}\n              </Animated.View>\n            </BottomNavigationRouteScreen>\n          );\n        })}\n      </View>\n      <BottomNavigationBar\n        navigationState={navigationState}\n        renderIcon={renderIcon}\n        renderLabel={renderLabel}\n        renderTouchable={renderTouchable}\n        getLabelText={getLabelText}\n        getBadge={getBadge}\n        getColor={getColor}\n        getAccessibilityLabel={getAccessibilityLabel}\n        getTestID={getTestID}\n        activeColor={activeColor}\n        inactiveColor={inactiveColor}\n        keyboardHidesNavigationBar={keyboardHidesNavigationBar}\n        style={barStyle}\n        activeIndicatorStyle={activeIndicatorStyle}\n        labeled={labeled}\n        animationEasing={sceneAnimationEasing}\n        onTabPress={handleTabPress}\n        onTabLongPress={onTabLongPress}\n        shifting={shifting}\n        safeAreaInsets={safeAreaInsets}\n        labelMaxFontSizeMultiplier={labelMaxFontSizeMultiplier}\n        compact={compact}\n        testID={`${testID}-bar`}\n        theme={theme}\n      />\n    </View>\n  );\n};\n\n/**\n * Function which takes a map of route keys to components.\n * Pure components are used to minimize re-rendering of the pages.\n * This drastically improves the animation performance.\n */\nBottomNavigation.SceneMap = <Route extends BaseRoute>(scenes: {\n  [key: string]: React.ComponentType<{\n    route: Route;\n    jumpTo: (key: string) => void;\n  }>;\n}) => {\n  return ({\n    route,\n    jumpTo,\n  }: {\n    route: Route;\n    jumpTo: (key: string) => void;\n  }) => (\n    <SceneComponent\n      key={route.key}\n      component={scenes[route.key ? route.key : '']}\n      route={route}\n      jumpTo={jumpTo}\n    />\n  );\n};\n\n// @component ./BottomNavigationBar.tsx\nBottomNavigation.Bar = BottomNavigationBar;\n\nexport default BottomNavigation;\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    overflow: 'hidden',\n  },\n  content: {\n    flex: 1,\n  },\n});\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}