{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\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; }\nimport { CommonActions } from '@react-navigation/routers';\nexport var NOT_INITIALIZED_ERROR = \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\nexport default function createNavigationContainerRef() {\n  var methods = [].concat(_toConsumableArray(Object.keys(CommonActions)), ['addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions']);\n  var listeners = {};\n  var removeListener = function removeListener(event, callback) {\n    if (listeners[event]) {\n      listeners[event] = listeners[event].filter(function (cb) {\n        return cb !== callback;\n      });\n    }\n  };\n  var current = null;\n  var ref = _objectSpread({\n    get current() {\n      return current;\n    },\n    set current(value) {\n      current = value;\n      if (value != null) {\n        Object.entries(listeners).forEach(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n            event = _ref2[0],\n            callbacks = _ref2[1];\n          callbacks.forEach(function (callback) {\n            value.addListener(event, callback);\n          });\n        });\n      }\n    },\n    isReady: function isReady() {\n      if (current == null) {\n        return false;\n      }\n      return current.isReady();\n    }\n  }, methods.reduce(function (acc, name) {\n    acc[name] = function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      if (current == null) {\n        switch (name) {\n          case 'addListener':\n            {\n              var event = args[0],\n                callback = args[1];\n              listeners[event] = listeners[event] || [];\n              listeners[event].push(callback);\n              return function () {\n                return removeListener(event, callback);\n              };\n            }\n          case 'removeListener':\n            {\n              var _event = args[0],\n                _callback = args[1];\n              removeListener(_event, _callback);\n              break;\n            }\n          default:\n            console.error(NOT_INITIALIZED_ERROR);\n        }\n      } else {\n        var _current;\n        return (_current = current)[name].apply(_current, args);\n      }\n    };\n    return acc;\n  }, {}));\n  return ref;\n}","map":{"version":3,"sources":["createNavigationContainerRef.tsx"],"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","current","ref","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"mappings":"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","sourceRoot":"../../src","sourcesContent":["import { CommonActions } from '@react-navigation/routers';\nexport const NOT_INITIALIZED_ERROR = \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\nexport default function createNavigationContainerRef() {\n  const methods = [...Object.keys(CommonActions), 'addListener', 'removeListener', 'resetRoot', 'dispatch', 'isFocused', 'canGoBack', 'getRootState', 'getState', 'getParent', 'getCurrentRoute', 'getCurrentOptions'];\n  const listeners = {};\n  const removeListener = (event, callback) => {\n    if (listeners[event]) {\n      listeners[event] = listeners[event].filter(cb => cb !== callback);\n    }\n  };\n  let current = null;\n  const ref = {\n    get current() {\n      return current;\n    },\n    set current(value) {\n      current = value;\n      if (value != null) {\n        Object.entries(listeners).forEach(_ref => {\n          let [event, callbacks] = _ref;\n          callbacks.forEach(callback => {\n            value.addListener(event, callback);\n          });\n        });\n      }\n    },\n    isReady: () => {\n      if (current == null) {\n        return false;\n      }\n      return current.isReady();\n    },\n    ...methods.reduce((acc, name) => {\n      acc[name] = function () {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        if (current == null) {\n          switch (name) {\n            case 'addListener':\n              {\n                const [event, callback] = args;\n                listeners[event] = listeners[event] || [];\n                listeners[event].push(callback);\n                return () => removeListener(event, callback);\n              }\n            case 'removeListener':\n              {\n                const [event, callback] = args;\n                removeListener(event, callback);\n                break;\n              }\n            default:\n              console.error(NOT_INITIALIZED_ERROR);\n          }\n        } else {\n          // @ts-expect-error: this is ok\n          return current[name](...args);\n        }\n      };\n      return acc;\n    }, {})\n  };\n  return ref;\n}\n//# sourceMappingURL=createNavigationContainerRef.js.map"]},"metadata":{},"sourceType":"module"}