{"ast":null,"code":"\"use strict\";\n\nimport { 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 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 = Object.assign({\n    get current() {\n      return current;\n    },\n    set current(value) {\n      current = value;\n      if (value != null) {\n        Object.entries(listeners).forEach(([event, callbacks]) => {\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] = (...args) => {\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        return current[name](...args);\n      }\n    };\n    return acc;\n  }, {}));\n  return ref;\n}","map":{"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","current","ref","assign","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/core/src/createNavigationContainerRef.tsx"],"sourcesContent":["import { CommonActions } from '@react-navigation/routers';\n\nimport type {\n  NavigationContainerEventMap,\n  NavigationContainerRef,\n  NavigationContainerRefWithCurrent,\n} from './types';\n\nexport const NOT_INITIALIZED_ERROR =\n  \"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.\";\n\nexport function createNavigationContainerRef<\n  ParamList extends {} = ReactNavigation.RootParamList,\n>(): NavigationContainerRefWithCurrent<ParamList> {\n  const methods = [\n    ...Object.keys(CommonActions),\n    'addListener',\n    'removeListener',\n    'resetRoot',\n    'dispatch',\n    'isFocused',\n    'canGoBack',\n    'getRootState',\n    'getState',\n    'getParent',\n    'getCurrentRoute',\n    'getCurrentOptions',\n  ] as const;\n\n  const listeners: Record<string, ((...args: any[]) => void)[]> = {};\n\n  const removeListener = (\n    event: string,\n    callback: (...args: any[]) => void\n  ) => {\n    if (listeners[event]) {\n      listeners[event] = listeners[event].filter((cb) => cb !== callback);\n    }\n  };\n\n  let current: NavigationContainerRef<ParamList> | null = null;\n\n  const ref: NavigationContainerRefWithCurrent<ParamList> = {\n    get current() {\n      return current;\n    },\n    set current(value: NavigationContainerRef<ParamList> | null) {\n      current = value;\n\n      if (value != null) {\n        Object.entries(listeners).forEach(([event, callbacks]) => {\n          callbacks.forEach((callback) => {\n            value.addListener(\n              event as keyof NavigationContainerEventMap,\n              callback\n            );\n          });\n        });\n      }\n    },\n    isReady: () => {\n      if (current == null) {\n        return false;\n      }\n\n      return current.isReady();\n    },\n    ...methods.reduce<any>((acc, name) => {\n      acc[name] = (...args: any[]) => {\n        if (current == null) {\n          switch (name) {\n            case 'addListener': {\n              const [event, callback] = args;\n\n              listeners[event] = listeners[event] || [];\n              listeners[event].push(callback);\n\n              return () => removeListener(event, callback);\n            }\n            case 'removeListener': {\n              const [event, callback] = args;\n\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\n  return ref;\n}\n"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAQzD,OAAO,MAAMC,qBAAqB,GAChC,+QAA+Q;AAEjR,OAAO,SAASC,4BAA4BA,CAAA,EAEM;EAChD,MAAMC,OAAO,GAAG,CACd,GAAGC,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC,EAC7B,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,CACX;EAEV,MAAMM,SAAuD,GAAG,CAAC,CAAC;EAElE,MAAMC,cAAc,GAAGA,CACrBC,KAAa,EACbC,QAAkC,KAC/B;IACH,IAAIH,SAAS,CAACE,KAAK,CAAC,EAAE;MACpBF,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKF,QAAQ,CAAC;IACrE;EACF,CAAC;EAED,IAAIG,OAAiD,GAAG,IAAI;EAE5D,MAAMC,GAAiD,GAAAT,MAAA,CAAAU,MAAA;IACrD,IAAIF,OAAOA,CAAA,EAAG;MACZ,OAAOA,OAAO;IAChB,CAAC;IACD,IAAIA,OAAOA,CAACG,KAA+C,EAAE;MAC3DH,OAAO,GAAGG,KAAK;MAEf,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjBX,MAAM,CAACY,OAAO,CAACV,SAAS,CAAC,CAACW,OAAO,CAAC,CAAC,CAACT,KAAK,EAAEU,SAAS,CAAC,KAAK;UACxDA,SAAS,CAACD,OAAO,CAAER,QAAQ,IAAK;YAC9BM,KAAK,CAACI,WAAW,CACfX,KAAK,EACLC,QACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC;IACDW,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIR,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,KAAK;MACd;MAEA,OAAOA,OAAO,CAACQ,OAAO,CAAC,CAAC;IAC1B;EAAC,GACEjB,OAAO,CAACkB,MAAM,CAAM,CAACC,GAAG,EAAEC,IAAI,KAAK;IACpCD,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGC,IAAW,KAAK;MAC9B,IAAIZ,OAAO,IAAI,IAAI,EAAE;QACnB,QAAQW,IAAI;UACV,KAAK,aAAa;YAAE;cAClB,MAAM,CAACf,KAAK,EAAEC,QAAQ,CAAC,GAAGe,IAAI;cAE9BlB,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,IAAI,EAAE;cACzCF,SAAS,CAACE,KAAK,CAAC,CAACiB,IAAI,CAAChB,QAAQ,CAAC;cAE/B,OAAO,MAAMF,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;YAC9C;UACA,KAAK,gBAAgB;YAAE;cACrB,MAAM,CAACD,KAAK,EAAEC,QAAQ,CAAC,GAAGe,IAAI;cAE9BjB,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;cAC/B;YACF;UACA;YACEiB,OAAO,CAACC,KAAK,CAAC1B,qBAAqB,CAAC;QACxC;MACF,CAAC,MAAM;QAEL,OAAOW,OAAO,CAACW,IAAI,CAAC,CAAC,GAAGC,IAAI,CAAC;MAC/B;IACF,CAAC;IACD,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,EACN;EAED,OAAOT,GAAG;AACZ","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}