{"ast":null,"code":"\"use strict\";\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nconst _excluded = [\"id\", \"initialRouteName\", \"children\", \"layout\", \"screenListeners\", \"screenOptions\", \"screenLayout\", \"UNSTABLE_router\"];\nimport { createNavigatorFactory, StackActions, StackRouter, useNavigationBuilder } from '@react-navigation/native';\nimport * as React from 'react';\nimport { NativeStackView } from \"../views/NativeStackView\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction NativeStackNavigator(_ref) {\n  let {\n      id,\n      initialRouteName,\n      children,\n      layout,\n      screenListeners,\n      screenOptions,\n      screenLayout,\n      UNSTABLE_router\n    } = _ref,\n    rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n  const {\n    state,\n    describe,\n    descriptors,\n    navigation,\n    NavigationContent\n  } = useNavigationBuilder(StackRouter, {\n    id,\n    initialRouteName,\n    children,\n    layout,\n    screenListeners,\n    screenOptions,\n    screenLayout,\n    UNSTABLE_router\n  });\n  React.useEffect(() => navigation?.addListener?.('tabPress', e => {\n    const isFocused = navigation.isFocused();\n    requestAnimationFrame(() => {\n      if (state.index > 0 && isFocused && !e.defaultPrevented) {\n        navigation.dispatch(Object.assign({}, StackActions.popToTop(), {\n          target: state.key\n        }));\n      }\n    });\n  }), [navigation, state.index, state.key]);\n  return _jsx(NavigationContent, {\n    children: _jsx(NativeStackView, Object.assign({}, rest, {\n      state: state,\n      navigation: navigation,\n      descriptors: descriptors,\n      describe: describe\n    }))\n  });\n}\nexport function createNativeStackNavigator(config) {\n  return createNavigatorFactory(NativeStackNavigator)(config);\n}","map":{"version":3,"names":["createNavigatorFactory","StackActions","StackRouter","useNavigationBuilder","React","NativeStackView","jsx","_jsx","NativeStackNavigator","_ref","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","UNSTABLE_router","rest","_objectWithoutPropertiesLoose","_excluded","state","describe","descriptors","navigation","NavigationContent","useEffect","addListener","e","isFocused","requestAnimationFrame","index","defaultPrevented","dispatch","Object","assign","popToTop","target","key","createNativeStackNavigator","config"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/native-stack/src/navigators/createNativeStackNavigator.tsx"],"sourcesContent":["import {\n  createNavigatorFactory,\n  type EventArg,\n  type NavigatorTypeBagBase,\n  type ParamListBase,\n  type StackActionHelpers,\n  StackActions,\n  type StackNavigationState,\n  StackRouter,\n  type StackRouterOptions,\n  type StaticConfig,\n  type TypedNavigator,\n  useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\n\nimport type {\n  NativeStackNavigationEventMap,\n  NativeStackNavigationOptions,\n  NativeStackNavigationProp,\n  NativeStackNavigatorProps,\n} from '../types';\nimport { NativeStackView } from '../views/NativeStackView';\n\nfunction NativeStackNavigator({\n  id,\n  initialRouteName,\n  children,\n  layout,\n  screenListeners,\n  screenOptions,\n  screenLayout,\n  UNSTABLE_router,\n  ...rest\n}: NativeStackNavigatorProps) {\n  const { state, describe, descriptors, navigation, NavigationContent } =\n    useNavigationBuilder<\n      StackNavigationState<ParamListBase>,\n      StackRouterOptions,\n      StackActionHelpers<ParamListBase>,\n      NativeStackNavigationOptions,\n      NativeStackNavigationEventMap\n    >(StackRouter, {\n      id,\n      initialRouteName,\n      children,\n      layout,\n      screenListeners,\n      screenOptions,\n      screenLayout,\n      UNSTABLE_router,\n    });\n\n  React.useEffect(\n    () =>\n      // @ts-expect-error: there may not be a tab navigator in parent\n      navigation?.addListener?.('tabPress', (e: any) => {\n        const isFocused = navigation.isFocused();\n\n        // Run the operation in the next frame so we're sure all listeners have been run\n        // This is necessary to know if preventDefault() has been called\n        requestAnimationFrame(() => {\n          if (\n            state.index > 0 &&\n            isFocused &&\n            !(e as EventArg<'tabPress', true>).defaultPrevented\n          ) {\n            // When user taps on already focused tab and we're inside the tab,\n            // reset the stack to replicate native behaviour\n            navigation.dispatch({\n              ...StackActions.popToTop(),\n              target: state.key,\n            });\n          }\n        });\n      }),\n    [navigation, state.index, state.key]\n  );\n\n  return (\n    <NavigationContent>\n      <NativeStackView\n        {...rest}\n        state={state}\n        navigation={navigation}\n        descriptors={descriptors}\n        describe={describe}\n      />\n    </NavigationContent>\n  );\n}\n\nexport function createNativeStackNavigator<\n  const ParamList extends ParamListBase,\n  const NavigatorID extends string | undefined = undefined,\n  const TypeBag extends NavigatorTypeBagBase = {\n    ParamList: ParamList;\n    NavigatorID: NavigatorID;\n    State: StackNavigationState<ParamList>;\n    ScreenOptions: NativeStackNavigationOptions;\n    EventMap: NativeStackNavigationEventMap;\n    NavigationList: {\n      [RouteName in keyof ParamList]: NativeStackNavigationProp<\n        ParamList,\n        RouteName,\n        NavigatorID\n      >;\n    };\n    Navigator: typeof NativeStackNavigator;\n  },\n  const Config extends StaticConfig<TypeBag> = StaticConfig<TypeBag>,\n>(config?: Config): TypedNavigator<TypeBag, Config> {\n  return createNavigatorFactory(NativeStackNavigator)(config);\n}\n"],"mappings":";;;;AAAA,SACEA,sBAAsB,EAKtBC,YAAY,EAEZC,WAAW,EAIXC,oBAAoB,QACf,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAQ9B,SAASC,eAAe;AAAmC,SAAAC,GAAA,IAAAC,IAAA;AAE3D,SAASC,oBAAoBA,CAAAC,IAAA,EAUC;EAAA,IAVA;MAC5BC,EAAE;MACFC,gBAAgB;MAChBC,QAAQ;MACRC,MAAM;MACNC,eAAe;MACfC,aAAa;MACbC,YAAY;MACZC;IAEyB,CAAC,GAAAR,IAAA;IADvBS,IAAA,GAAAC,6BAAA,CAAAV,IAAA,EAAAW,SAAA;EAEH,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GACnEtB,oBAAoB,CAMlBD,WAAW,EAAE;IACbQ,EAAE;IACFC,gBAAgB;IAChBC,QAAQ;IACRC,MAAM;IACNC,eAAe;IACfC,aAAa;IACbC,YAAY;IACZC;EACF,CAAC,CAAC;EAEJb,KAAK,CAACsB,SAAS,CACb,MAEEF,UAAU,EAAEG,WAAW,GAAG,UAAU,EAAGC,CAAM,IAAK;IAChD,MAAMC,SAAS,GAAGL,UAAU,CAACK,SAAS,CAAC,CAAC;IAIxCC,qBAAqB,CAAC,MAAM;MAC1B,IACET,KAAK,CAACU,KAAK,GAAG,CAAC,IACfF,SAAS,IACT,CAAED,CAAC,CAAgCI,gBAAgB,EACnD;QAGAR,UAAU,CAACS,QAAQ,CAAAC,MAAA,CAAAC,MAAA,KACdlC,YAAY,CAACmC,QAAQ,CAAC,CAAC;UAC1BC,MAAM,EAAEhB,KAAK,CAACiB;QAAA,EACf,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,EACJ,CAACd,UAAU,EAAEH,KAAK,CAACU,KAAK,EAAEV,KAAK,CAACiB,GAAG,CACrC,CAAC;EAED,OACE/B,IAAA,CAACkB,iBAAiB;IAAAb,QAAA,EAChBL,IAAA,CAACF,eAAe,EAAA6B,MAAA,CAAAC,MAAA,KACVjB,IAAI;MACRG,KAAK,EAAEA,KAAM;MACbG,UAAU,EAAEA,UAAW;MACvBD,WAAW,EAAEA,WAAY;MACzBD,QAAQ,EAAEA;IAAA,EACX;EAAC,CACe,CAAC;AAExB;AAEA,OAAO,SAASiB,0BAA0BA,CAmBxCC,MAAe,EAAmC;EAClD,OAAOxC,sBAAsB,CAACQ,oBAAoB,CAAC,CAACgC,MAAM,CAAC;AAC7D","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}