{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"id\", \"initialRouteName\", \"children\", \"screenListeners\", \"screenOptions\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\nimport { createNavigatorFactory, StackActions, StackRouter, useNavigationBuilder } from '@react-navigation/native';\nimport * as React from 'react';\nimport NativeStackView from \"../views/NativeStackView\";\nfunction NativeStackNavigator(_ref) {\n  var id = _ref.id,\n    initialRouteName = _ref.initialRouteName,\n    children = _ref.children,\n    screenListeners = _ref.screenListeners,\n    screenOptions = _ref.screenOptions,\n    rest = _objectWithoutProperties(_ref, _excluded);\n  var _useNavigationBuilder = useNavigationBuilder(StackRouter, {\n      id: id,\n      initialRouteName: initialRouteName,\n      children: children,\n      screenListeners: screenListeners,\n      screenOptions: screenOptions\n    }),\n    state = _useNavigationBuilder.state,\n    descriptors = _useNavigationBuilder.descriptors,\n    navigation = _useNavigationBuilder.navigation,\n    NavigationContent = _useNavigationBuilder.NavigationContent;\n  React.useEffect(function () {\n    var _navigation$addListen;\n    return navigation === null || navigation === void 0 ? void 0 : (_navigation$addListen = navigation.addListener) === null || _navigation$addListen === void 0 ? void 0 : _navigation$addListen.call(navigation, 'tabPress', function (e) {\n      var isFocused = navigation.isFocused();\n      requestAnimationFrame(function () {\n        if (state.index > 0 && isFocused && !e.defaultPrevented) {\n          navigation.dispatch(_objectSpread(_objectSpread({}, StackActions.popToTop()), {}, {\n            target: state.key\n          }));\n        }\n      });\n    });\n  }, [navigation, state.index, state.key]);\n  return React.createElement(NavigationContent, null, React.createElement(NativeStackView, _extends({}, rest, {\n    state: state,\n    navigation: navigation,\n    descriptors: descriptors\n  })));\n}\nexport default createNavigatorFactory(NativeStackNavigator);","map":{"version":3,"sources":["navigators/createNativeStackNavigator.tsx"],"names":["createNavigatorFactory","StackActions","StackRouter","useNavigationBuilder","React","NativeStackView","NativeStackNavigator","id","initialRouteName","children","screenListeners","screenOptions","rest","state","descriptors","navigation","NavigationContent","useEffect","addListener","e","isFocused","requestAnimationFrame","index","defaultPrevented","dispatch","popToTop","target","key"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SACEA,sBAAsB,EAItBC,YAAY,EAEZC,WAAW,EAEXC,oBAAoB,QACf,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAO9B,OAAOC,eAAe;AAEtB,SAASC,oBAAoB,CAAA,IAAA,EAOC;EAPA,IAC5BC,EAAE,GAMwB,IAAA,CAN1BA,EAAE;IACFC,gBAAgB,GAKU,IAAA,CAL1BA,gBAAgB;IAChBC,QAAQ,GAIkB,IAAA,CAJ1BA,QAAQ;IACRC,eAAe,GAGW,IAAA,CAH1BA,eAAe;IACfC,aAAa,GAEa,IAAA,CAF1BA,aAAa;IACVC,IAAAA,GAAAA,wBAAAA,CACuB,IAAA,EAAA,SAAA;EAC1B,IAAA,qBAAA,GACET,oBAAoB,CAMlBD,WAAW,EAAE;MACbK,EAAE,EAAFA,EAAE;MACFC,gBAAgB,EAAhBA,gBAAgB;MAChBC,QAAQ,EAARA,QAAQ;MACRC,eAAe,EAAfA,eAAe;MACfC,aAAAA,EAAAA;IACF,CAAC,CAAC;IAbIE,KAAK,GAAA,qBAAA,CAALA,KAAK;IAAEC,WAAW,GAAA,qBAAA,CAAXA,WAAW;IAAEC,UAAU,GAAA,qBAAA,CAAVA,UAAU;IAAEC,iBAAAA,GAAAA,qBAAAA,CAAAA,iBAAAA;EAexCZ,KAAK,CAACa,SAAS,CACb,YAAA;IAAA,IAAA,qBAAA;IAAA,OAEEF,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAAVA,UAAU,CAAEG,WAAW,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAvBH,qBAAAA,CAAAA,IAAAA,CAAAA,UAAU,EAAgB,UAAU,EAAGI,UAAAA,CAAM,EAAK;MAChD,IAAMC,SAAS,GAAGL,UAAU,CAACK,SAAS,CAAA,CAAE;MAIxCC,qBAAqB,CAAC,YAAM;QAC1B,IACER,KAAK,CAACS,KAAK,GAAG,CAAC,IACfF,SAAS,IACT,CAAED,CAAC,CAAgCI,gBAAgB,EACnD;UAGAR,UAAU,CAACS,QAAQ,CAAA,aAAA,CAAA,aAAA,KACdvB,YAAY,CAACwB,QAAQ,CAAA,CAAE;YAC1BC,MAAM,EAAEb,KAAK,CAACc;UAAAA,EACf,CAAC;QACJ;MACF,CAAC,CAAC;IACJ,CAAC,CAAA;EAAC,CAAA,EACJ,CAACZ,UAAU,EAAEF,KAAK,CAACS,KAAK,EAAET,KAAK,CAACc,GAAG,CAAC,CACrC;EAED,OACE,KAAA,CAAA,aAAA,CAAC,iBAAiB,EAAA,IAAA,EAChB,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,QAAA,CAAA,CAAA,CAAA,EACVf,IAAI,EAAA;IACR,KAAK,EAAEC,KAAM;IACb,UAAU,EAAEE,UAAW;IACvB,WAAW,EAAED;EAAY,CAAA,CAAA,CACzB,CACgB;AAExB;AAEA,eAAed,sBAAsB,CAKnCM,oBAAoB,CAAC","sourceRoot":"../../../src","sourcesContent":["function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { createNavigatorFactory, StackActions, StackRouter, useNavigationBuilder } from '@react-navigation/native';\nimport * as React from 'react';\nimport NativeStackView from '../views/NativeStackView';\nfunction NativeStackNavigator(_ref) {\n  let {\n    id,\n    initialRouteName,\n    children,\n    screenListeners,\n    screenOptions,\n    ...rest\n  } = _ref;\n  const {\n    state,\n    descriptors,\n    navigation,\n    NavigationContent\n  } = useNavigationBuilder(StackRouter, {\n    id,\n    initialRouteName,\n    children,\n    screenListeners,\n    screenOptions\n  });\n  React.useEffect(() => {\n    var _navigation$addListen;\n    return (// @ts-expect-error: there may not be a tab navigator in parent\n      navigation === null || navigation === void 0 ? void 0 : (_navigation$addListen = navigation.addListener) === null || _navigation$addListen === void 0 ? void 0 : _navigation$addListen.call(navigation, 'tabPress', e => {\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 (state.index > 0 && isFocused && !e.defaultPrevented) {\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    );\n  }, [navigation, state.index, state.key]);\n  return /*#__PURE__*/React.createElement(NavigationContent, null, /*#__PURE__*/React.createElement(NativeStackView, _extends({}, rest, {\n    state: state,\n    navigation: navigation,\n    descriptors: descriptors\n  })));\n}\nexport default createNavigatorFactory(NativeStackNavigator);\n//# sourceMappingURL=createNativeStackNavigator.js.map"]},"metadata":{},"sourceType":"module"}