{"ast":null,"code":"\"use strict\";\n\nimport { getHeaderTitle, Header, SafeAreaProviderCompat, Screen } from '@react-navigation/elements';\nimport { StackActions } from '@react-navigation/native';\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 { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { FadeTransition, ShiftTransition } from \"../TransitionConfigs/TransitionPresets.js\";\nimport { BottomTabBarHeightCallbackContext } from \"../utils/BottomTabBarHeightCallbackContext.js\";\nimport { BottomTabBarHeightContext } from \"../utils/BottomTabBarHeightContext.js\";\nimport { useAnimatedHashMap } from \"../utils/useAnimatedHashMap.js\";\nimport { BottomTabBar, getTabBarHeight } from \"./BottomTabBar.js\";\nimport { MaybeScreen, MaybeScreenContainer } from \"./ScreenFallback.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst EPSILON = 1e-5;\nconst STATE_INACTIVE = 0;\nconst STATE_TRANSITIONING_OR_BELOW_TOP = 1;\nconst STATE_ON_TOP = 2;\nconst NAMED_TRANSITIONS_PRESETS = {\n  fade: FadeTransition,\n  shift: ShiftTransition,\n  none: {\n    sceneStyleInterpolator: undefined,\n    transitionSpec: {\n      animation: 'timing',\n      config: {\n        duration: 0\n      }\n    }\n  }\n};\nconst useNativeDriver = Platform.OS !== 'web';\nconst hasAnimation = options => {\n  const {\n    animation,\n    transitionSpec\n  } = options;\n  if (animation) {\n    return animation !== 'none';\n  }\n  return Boolean(transitionSpec);\n};\nconst renderTabBarDefault = props => _jsx(BottomTabBar, Object.assign({}, props));\nexport function BottomTabView(props) {\n  const {\n    tabBar = renderTabBarDefault,\n    state,\n    navigation,\n    descriptors,\n    safeAreaInsets,\n    detachInactiveScreens = Platform.OS === 'web' || Platform.OS === 'android' || Platform.OS === 'ios'\n  } = props;\n  const focusedRouteKey = state.routes[state.index].key;\n  const [loaded, setLoaded] = React.useState([focusedRouteKey]);\n  if (!loaded.includes(focusedRouteKey)) {\n    setLoaded([...loaded, focusedRouteKey]);\n  }\n  const previousRouteKeyRef = React.useRef(focusedRouteKey);\n  const tabAnims = useAnimatedHashMap(state);\n  React.useEffect(() => {\n    const previousRouteKey = previousRouteKeyRef.current;\n    let popToTopAction;\n    if (previousRouteKey !== focusedRouteKey && descriptors[previousRouteKey]?.options.popToTopOnBlur) {\n      const prevRoute = state.routes.find(route => route.key === previousRouteKey);\n      if (prevRoute?.state?.type === 'stack' && prevRoute.state.key) {\n        popToTopAction = Object.assign({}, StackActions.popToTop(), {\n          target: prevRoute.state.key\n        });\n      }\n    }\n    const animateToIndex = () => {\n      if (previousRouteKey !== focusedRouteKey) {\n        navigation.emit({\n          type: 'transitionStart',\n          target: focusedRouteKey\n        });\n      }\n      Animated.parallel(state.routes.map((route, index) => {\n        const {\n          options\n        } = descriptors[route.key];\n        const {\n          animation = 'none',\n          transitionSpec = NAMED_TRANSITIONS_PRESETS[animation].transitionSpec\n        } = options;\n        let spec = transitionSpec;\n        if (route.key !== previousRouteKey && route.key !== focusedRouteKey) {\n          spec = NAMED_TRANSITIONS_PRESETS.none.transitionSpec;\n        }\n        spec = spec ?? NAMED_TRANSITIONS_PRESETS.none.transitionSpec;\n        const toValue = index === state.index ? 0 : index >= state.index ? 1 : -1;\n        return Animated[spec.animation](tabAnims[route.key], Object.assign({}, spec.config, {\n          toValue,\n          useNativeDriver\n        }));\n      }).filter(Boolean)).start(({\n        finished\n      }) => {\n        if (finished && popToTopAction) {\n          navigation.dispatch(popToTopAction);\n        }\n        if (previousRouteKey !== focusedRouteKey) {\n          navigation.emit({\n            type: 'transitionEnd',\n            target: focusedRouteKey\n          });\n        }\n      });\n    };\n    animateToIndex();\n    previousRouteKeyRef.current = focusedRouteKey;\n  }, [descriptors, focusedRouteKey, navigation, state.index, state.routes, tabAnims]);\n  const dimensions = SafeAreaProviderCompat.initialMetrics.frame;\n  const [tabBarHeight, setTabBarHeight] = React.useState(() => getTabBarHeight({\n    state,\n    descriptors,\n    dimensions,\n    insets: Object.assign({}, SafeAreaProviderCompat.initialMetrics.insets, props.safeAreaInsets),\n    style: descriptors[state.routes[state.index].key].options.tabBarStyle\n  }));\n  const renderTabBar = () => {\n    return _jsx(SafeAreaInsetsContext.Consumer, {\n      children: insets => tabBar({\n        state: state,\n        descriptors: descriptors,\n        navigation: navigation,\n        insets: {\n          top: safeAreaInsets?.top ?? insets?.top ?? 0,\n          right: safeAreaInsets?.right ?? insets?.right ?? 0,\n          bottom: safeAreaInsets?.bottom ?? insets?.bottom ?? 0,\n          left: safeAreaInsets?.left ?? insets?.left ?? 0\n        }\n      })\n    });\n  };\n  const {\n    routes\n  } = state;\n  const hasTwoStates = !routes.some(route => hasAnimation(descriptors[route.key].options));\n  const {\n    tabBarPosition = 'bottom'\n  } = descriptors[focusedRouteKey].options;\n  const tabBarElement = _jsx(BottomTabBarHeightCallbackContext.Provider, {\n    value: setTabBarHeight,\n    children: renderTabBar()\n  }, \"tabbar\");\n  return _jsxs(SafeAreaProviderCompat, {\n    style: {\n      flexDirection: tabBarPosition === 'left' || tabBarPosition === 'right' ? 'row' : 'column'\n    },\n    children: [tabBarPosition === 'top' || tabBarPosition === 'left' ? tabBarElement : null, _jsx(MaybeScreenContainer, {\n      enabled: detachInactiveScreens,\n      hasTwoStates: hasTwoStates,\n      style: styles.screens,\n      children: routes.map((route, index) => {\n        const descriptor = descriptors[route.key];\n        const {\n          lazy = true,\n          animation = 'none',\n          sceneStyleInterpolator = NAMED_TRANSITIONS_PRESETS[animation].sceneStyleInterpolator\n        } = descriptor.options;\n        const isFocused = state.index === index;\n        const isPreloaded = state.preloadedRouteKeys.includes(route.key);\n        if (lazy && !loaded.includes(route.key) && !isFocused && !isPreloaded) {\n          return null;\n        }\n        const {\n          freezeOnBlur,\n          header = ({\n            layout,\n            options\n          }) => _jsx(Header, Object.assign({}, options, {\n            layout: layout,\n            title: getHeaderTitle(options, route.name)\n          })),\n          headerShown,\n          headerStatusBarHeight,\n          headerTransparent,\n          sceneStyle: customSceneStyle\n        } = descriptor.options;\n        const {\n          sceneStyle\n        } = sceneStyleInterpolator?.({\n          current: {\n            progress: tabAnims[route.key]\n          }\n        }) ?? {};\n        const animationEnabled = hasAnimation(descriptor.options);\n        const activityState = isFocused ? STATE_ON_TOP : animationEnabled ? tabAnims[route.key].interpolate({\n          inputRange: [0, 1 - EPSILON, 1],\n          outputRange: [STATE_TRANSITIONING_OR_BELOW_TOP, STATE_TRANSITIONING_OR_BELOW_TOP, STATE_INACTIVE],\n          extrapolate: 'extend'\n        }) : STATE_INACTIVE;\n        return _jsx(MaybeScreen, {\n          style: [StyleSheet.absoluteFill, {\n            zIndex: isFocused ? 0 : -1\n          }],\n          active: activityState,\n          enabled: detachInactiveScreens,\n          freezeOnBlur: freezeOnBlur,\n          shouldFreeze: activityState === STATE_INACTIVE && !isPreloaded,\n          children: _jsx(BottomTabBarHeightContext.Provider, {\n            value: tabBarPosition === 'bottom' ? tabBarHeight : 0,\n            children: _jsx(Screen, {\n              focused: isFocused,\n              route: descriptor.route,\n              navigation: descriptor.navigation,\n              headerShown: headerShown,\n              headerStatusBarHeight: headerStatusBarHeight,\n              headerTransparent: headerTransparent,\n              header: header({\n                layout: dimensions,\n                route: descriptor.route,\n                navigation: descriptor.navigation,\n                options: descriptor.options\n              }),\n              style: [customSceneStyle, animationEnabled && sceneStyle],\n              children: descriptor.render()\n            })\n          })\n        }, route.key);\n      })\n    }, \"screens\"), tabBarPosition === 'bottom' || tabBarPosition === 'right' ? tabBarElement : null]\n  });\n}\nconst styles = StyleSheet.create({\n  screens: {\n    flex: 1,\n    overflow: 'hidden'\n  }\n});","map":{"version":3,"names":["getHeaderTitle","Header","SafeAreaProviderCompat","Screen","StackActions","React","Animated","Platform","StyleSheet","SafeAreaInsetsContext","FadeTransition","ShiftTransition","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","useAnimatedHashMap","BottomTabBar","getTabBarHeight","MaybeScreen","MaybeScreenContainer","jsx","_jsx","jsxs","_jsxs","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","NAMED_TRANSITIONS_PRESETS","fade","shift","none","sceneStyleInterpolator","undefined","transitionSpec","animation","config","duration","useNativeDriver","OS","hasAnimation","options","Boolean","renderTabBarDefault","props","Object","assign","BottomTabView","tabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","includes","previousRouteKeyRef","useRef","tabAnims","useEffect","previousRouteKey","current","popToTopAction","popToTopOnBlur","prevRoute","find","route","type","popToTop","target","animateToIndex","emit","parallel","map","spec","toValue","filter","start","finished","dispatch","dimensions","initialMetrics","frame","tabBarHeight","setTabBarHeight","insets","style","tabBarStyle","renderTabBar","Consumer","children","top","right","bottom","left","hasTwoStates","some","tabBarPosition","tabBarElement","Provider","value","flexDirection","enabled","styles","screens","descriptor","lazy","isFocused","isPreloaded","preloadedRouteKeys","freezeOnBlur","header","layout","title","name","headerShown","headerStatusBarHeight","headerTransparent","sceneStyle","customSceneStyle","progress","animationEnabled","activityState","interpolate","inputRange","outputRange","extrapolate","absoluteFill","zIndex","active","shouldFreeze","focused","render","create","flex","overflow"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/bottom-tabs/src/views/BottomTabView.tsx"],"sourcesContent":["import {\n  getHeaderTitle,\n  Header,\n  SafeAreaProviderCompat,\n  Screen,\n} from '@react-navigation/elements';\nimport {\n  type NavigationAction,\n  type ParamListBase,\n  StackActions,\n  type TabNavigationState,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Animated, Platform, StyleSheet } from 'react-native';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\n\nimport {\n  FadeTransition,\n  ShiftTransition,\n} from '../TransitionConfigs/TransitionPresets';\nimport type {\n  BottomTabBarProps,\n  BottomTabDescriptorMap,\n  BottomTabHeaderProps,\n  BottomTabNavigationConfig,\n  BottomTabNavigationHelpers,\n  BottomTabNavigationOptions,\n  BottomTabNavigationProp,\n} from '../types';\nimport { BottomTabBarHeightCallbackContext } from '../utils/BottomTabBarHeightCallbackContext';\nimport { BottomTabBarHeightContext } from '../utils/BottomTabBarHeightContext';\nimport { useAnimatedHashMap } from '../utils/useAnimatedHashMap';\nimport { BottomTabBar, getTabBarHeight } from './BottomTabBar';\nimport { MaybeScreen, MaybeScreenContainer } from './ScreenFallback';\n\ntype Props = BottomTabNavigationConfig & {\n  state: TabNavigationState<ParamListBase>;\n  navigation: BottomTabNavigationHelpers;\n  descriptors: BottomTabDescriptorMap;\n};\n\nconst EPSILON = 1e-5;\nconst STATE_INACTIVE = 0;\nconst STATE_TRANSITIONING_OR_BELOW_TOP = 1;\nconst STATE_ON_TOP = 2;\n\nconst NAMED_TRANSITIONS_PRESETS = {\n  fade: FadeTransition,\n  shift: ShiftTransition,\n  none: {\n    sceneStyleInterpolator: undefined,\n    transitionSpec: {\n      animation: 'timing',\n      config: { duration: 0 },\n    },\n  },\n} as const;\n\nconst useNativeDriver = Platform.OS !== 'web';\n\nconst hasAnimation = (options: BottomTabNavigationOptions) => {\n  const { animation, transitionSpec } = options;\n\n  if (animation) {\n    return animation !== 'none';\n  }\n\n  return Boolean(transitionSpec);\n};\n\nconst renderTabBarDefault = (props: BottomTabBarProps) => (\n  <BottomTabBar {...props} />\n);\n\nexport function BottomTabView(props: Props) {\n  const {\n    tabBar = renderTabBarDefault,\n    state,\n    navigation,\n    descriptors,\n    safeAreaInsets,\n    detachInactiveScreens = Platform.OS === 'web' ||\n      Platform.OS === 'android' ||\n      Platform.OS === 'ios',\n  } = props;\n\n  const focusedRouteKey = state.routes[state.index].key;\n\n  /**\n   * List of loaded tabs, tabs will be loaded when navigated to.\n   */\n  const [loaded, setLoaded] = React.useState([focusedRouteKey]);\n\n  if (!loaded.includes(focusedRouteKey)) {\n    // Set the current tab to be loaded if it was not loaded before\n    setLoaded([...loaded, focusedRouteKey]);\n  }\n\n  const previousRouteKeyRef = React.useRef(focusedRouteKey);\n  const tabAnims = useAnimatedHashMap(state);\n\n  React.useEffect(() => {\n    const previousRouteKey = previousRouteKeyRef.current;\n\n    let popToTopAction: NavigationAction | undefined;\n\n    if (\n      previousRouteKey !== focusedRouteKey &&\n      descriptors[previousRouteKey]?.options.popToTopOnBlur\n    ) {\n      const prevRoute = state.routes.find(\n        (route) => route.key === previousRouteKey\n      );\n\n      if (prevRoute?.state?.type === 'stack' && prevRoute.state.key) {\n        popToTopAction = {\n          ...StackActions.popToTop(),\n          target: prevRoute.state.key,\n        };\n      }\n    }\n\n    const animateToIndex = () => {\n      if (previousRouteKey !== focusedRouteKey) {\n        navigation.emit({\n          type: 'transitionStart',\n          target: focusedRouteKey,\n        });\n      }\n\n      Animated.parallel(\n        state.routes\n          .map((route, index) => {\n            const { options } = descriptors[route.key];\n            const {\n              animation = 'none',\n              transitionSpec = NAMED_TRANSITIONS_PRESETS[animation]\n                .transitionSpec,\n            } = options;\n\n            let spec = transitionSpec;\n\n            if (\n              route.key !== previousRouteKey &&\n              route.key !== focusedRouteKey\n            ) {\n              // Don't animate if the screen is not previous one or new one\n              // This will avoid flicker for screens not involved in the transition\n              spec = NAMED_TRANSITIONS_PRESETS.none.transitionSpec;\n            }\n\n            spec = spec ?? NAMED_TRANSITIONS_PRESETS.none.transitionSpec;\n\n            const toValue =\n              index === state.index ? 0 : index >= state.index ? 1 : -1;\n\n            return Animated[spec.animation](tabAnims[route.key], {\n              ...spec.config,\n              toValue,\n              useNativeDriver,\n            });\n          })\n          .filter(Boolean) as Animated.CompositeAnimation[]\n      ).start(({ finished }) => {\n        if (finished && popToTopAction) {\n          navigation.dispatch(popToTopAction);\n        }\n\n        if (previousRouteKey !== focusedRouteKey) {\n          navigation.emit({\n            type: 'transitionEnd',\n            target: focusedRouteKey,\n          });\n        }\n      });\n    };\n\n    animateToIndex();\n\n    previousRouteKeyRef.current = focusedRouteKey;\n  }, [\n    descriptors,\n    focusedRouteKey,\n    navigation,\n    state.index,\n    state.routes,\n    tabAnims,\n  ]);\n\n  const dimensions = SafeAreaProviderCompat.initialMetrics.frame;\n  const [tabBarHeight, setTabBarHeight] = React.useState(() =>\n    getTabBarHeight({\n      state,\n      descriptors,\n      dimensions,\n      insets: {\n        ...SafeAreaProviderCompat.initialMetrics.insets,\n        ...props.safeAreaInsets,\n      },\n      style: descriptors[state.routes[state.index].key].options.tabBarStyle,\n    })\n  );\n\n  const renderTabBar = () => {\n    return (\n      <SafeAreaInsetsContext.Consumer>\n        {(insets) =>\n          tabBar({\n            state: state,\n            descriptors: descriptors,\n            navigation: navigation,\n            insets: {\n              top: safeAreaInsets?.top ?? insets?.top ?? 0,\n              right: safeAreaInsets?.right ?? insets?.right ?? 0,\n              bottom: safeAreaInsets?.bottom ?? insets?.bottom ?? 0,\n              left: safeAreaInsets?.left ?? insets?.left ?? 0,\n            },\n          })\n        }\n      </SafeAreaInsetsContext.Consumer>\n    );\n  };\n\n  const { routes } = state;\n\n  // If there is no animation, we only have 2 states: visible and invisible\n  const hasTwoStates = !routes.some((route) =>\n    hasAnimation(descriptors[route.key].options)\n  );\n\n  const { tabBarPosition = 'bottom' } = descriptors[focusedRouteKey].options;\n\n  const tabBarElement = (\n    <BottomTabBarHeightCallbackContext.Provider\n      key=\"tabbar\"\n      value={setTabBarHeight}\n    >\n      {renderTabBar()}\n    </BottomTabBarHeightCallbackContext.Provider>\n  );\n\n  return (\n    <SafeAreaProviderCompat\n      style={{\n        flexDirection:\n          tabBarPosition === 'left' || tabBarPosition === 'right'\n            ? 'row'\n            : 'column',\n      }}\n    >\n      {tabBarPosition === 'top' || tabBarPosition === 'left'\n        ? tabBarElement\n        : null}\n      <MaybeScreenContainer\n        key=\"screens\"\n        enabled={detachInactiveScreens}\n        hasTwoStates={hasTwoStates}\n        style={styles.screens}\n      >\n        {routes.map((route, index) => {\n          const descriptor = descriptors[route.key];\n          const {\n            lazy = true,\n            animation = 'none',\n            sceneStyleInterpolator = NAMED_TRANSITIONS_PRESETS[animation]\n              .sceneStyleInterpolator,\n          } = descriptor.options;\n          const isFocused = state.index === index;\n          const isPreloaded = state.preloadedRouteKeys.includes(route.key);\n\n          if (\n            lazy &&\n            !loaded.includes(route.key) &&\n            !isFocused &&\n            !isPreloaded\n          ) {\n            // Don't render a lazy screen if we've never navigated to it or it wasn't preloaded\n            return null;\n          }\n\n          const {\n            freezeOnBlur,\n            header = ({ layout, options }: BottomTabHeaderProps) => (\n              <Header\n                {...options}\n                layout={layout}\n                title={getHeaderTitle(options, route.name)}\n              />\n            ),\n            headerShown,\n            headerStatusBarHeight,\n            headerTransparent,\n            sceneStyle: customSceneStyle,\n          } = descriptor.options;\n\n          const { sceneStyle } =\n            sceneStyleInterpolator?.({\n              current: {\n                progress: tabAnims[route.key],\n              },\n            }) ?? {};\n\n          const animationEnabled = hasAnimation(descriptor.options);\n          const activityState = isFocused\n            ? STATE_ON_TOP // the screen is on top after the transition\n            : animationEnabled // is animation is not enabled, immediately move to inactive state\n              ? tabAnims[route.key].interpolate({\n                  inputRange: [0, 1 - EPSILON, 1],\n                  outputRange: [\n                    STATE_TRANSITIONING_OR_BELOW_TOP, // screen visible during transition\n                    STATE_TRANSITIONING_OR_BELOW_TOP,\n                    STATE_INACTIVE, // the screen is detached after transition\n                  ],\n                  extrapolate: 'extend',\n                })\n              : STATE_INACTIVE;\n\n          return (\n            <MaybeScreen\n              key={route.key}\n              style={[StyleSheet.absoluteFill, { zIndex: isFocused ? 0 : -1 }]}\n              active={activityState}\n              enabled={detachInactiveScreens}\n              freezeOnBlur={freezeOnBlur}\n              shouldFreeze={activityState === STATE_INACTIVE && !isPreloaded}\n            >\n              <BottomTabBarHeightContext.Provider\n                value={tabBarPosition === 'bottom' ? tabBarHeight : 0}\n              >\n                <Screen\n                  focused={isFocused}\n                  route={descriptor.route}\n                  navigation={descriptor.navigation}\n                  headerShown={headerShown}\n                  headerStatusBarHeight={headerStatusBarHeight}\n                  headerTransparent={headerTransparent}\n                  header={header({\n                    layout: dimensions,\n                    route: descriptor.route,\n                    navigation:\n                      descriptor.navigation as BottomTabNavigationProp<ParamListBase>,\n                    options: descriptor.options,\n                  })}\n                  style={[customSceneStyle, animationEnabled && sceneStyle]}\n                >\n                  {descriptor.render()}\n                </Screen>\n              </BottomTabBarHeightContext.Provider>\n            </MaybeScreen>\n          );\n        })}\n      </MaybeScreenContainer>\n      {tabBarPosition === 'bottom' || tabBarPosition === 'right'\n        ? tabBarElement\n        : null}\n    </SafeAreaProviderCompat>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screens: {\n    flex: 1,\n    overflow: 'hidden',\n  },\n});\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}