{"ast":null,"code":"\"use strict\";\n\nimport { nanoid } from 'nanoid/non-secure';\nexport const BaseRouter = {\n  getStateForAction(state, action) {\n    switch (action.type) {\n      case 'SET_PARAMS':\n      case 'REPLACE_PARAMS':\n        {\n          const index = action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n          if (index === -1) {\n            return null;\n          }\n          return Object.assign({}, state, {\n            routes: state.routes.map((r, i) => i === index ? Object.assign({}, r, {\n              params: action.type === 'REPLACE_PARAMS' ? action.payload.params : Object.assign({}, r.params, action.payload.params)\n            }) : r)\n          });\n        }\n      case 'RESET':\n        {\n          const nextState = action.payload;\n          if (nextState.routes.length === 0 || nextState.routes.some(route => !state.routeNames.includes(route.name))) {\n            return null;\n          }\n          if (nextState.stale === false) {\n            if (state.routeNames.length !== nextState.routeNames.length || nextState.routeNames.some(name => !state.routeNames.includes(name))) {\n              return null;\n            }\n            return Object.assign({}, nextState, {\n              routes: nextState.routes.map(route => route.key ? route : Object.assign({}, route, {\n                key: `${route.name}-${nanoid()}`\n              }))\n            });\n          }\n          return nextState;\n        }\n      default:\n        return null;\n    }\n  },\n  shouldActionChangeFocus(action) {\n    return action.type === 'NAVIGATE' || action.type === 'NAVIGATE_DEPRECATED';\n  }\n};","map":{"version":3,"names":["nanoid","BaseRouter","getStateForAction","state","action","type","index","source","routes","findIndex","r","key","Object","assign","map","i","params","payload","nextState","length","some","route","routeNames","includes","name","stale","shouldActionChangeFocus"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/routers/src/BaseRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n  CommonNavigationAction,\n  NavigationState,\n  PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nexport const BaseRouter = {\n  getStateForAction<State extends NavigationState>(\n    state: State,\n    action: CommonNavigationAction\n  ): State | PartialState<State> | null {\n    switch (action.type) {\n      case 'SET_PARAMS':\n      case 'REPLACE_PARAMS': {\n        const index = action.source\n          ? state.routes.findIndex((r) => r.key === action.source)\n          : state.index;\n\n        if (index === -1) {\n          return null;\n        }\n\n        return {\n          ...state,\n          routes: state.routes.map((r, i) =>\n            i === index\n              ? {\n                  ...r,\n                  params:\n                    action.type === 'REPLACE_PARAMS'\n                      ? action.payload.params\n                      : { ...r.params, ...action.payload.params },\n                }\n              : r\n          ),\n        };\n      }\n\n      case 'RESET': {\n        const nextState = action.payload as State | PartialState<State>;\n\n        if (\n          nextState.routes.length === 0 ||\n          nextState.routes.some(\n            (route: { name: string }) => !state.routeNames.includes(route.name)\n          )\n        ) {\n          return null;\n        }\n\n        if (nextState.stale === false) {\n          if (\n            state.routeNames.length !== nextState.routeNames.length ||\n            nextState.routeNames.some(\n              (name) => !state.routeNames.includes(name)\n            )\n          ) {\n            return null;\n          }\n\n          return {\n            ...nextState,\n            routes: nextState.routes.map((route) =>\n              route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n            ),\n          };\n        }\n\n        return nextState;\n      }\n\n      default:\n        return null;\n    }\n  },\n\n  shouldActionChangeFocus(action: CommonNavigationAction) {\n    return action.type === 'NAVIGATE' || action.type === 'NAVIGATE_DEPRECATED';\n  },\n};\n"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAY1C,OAAO,MAAMC,UAAU,GAAG;EACxBC,iBAAiBA,CACfC,KAAY,EACZC,MAA8B,EACM;IACpC,QAAQA,MAAM,CAACC,IAAI;MACjB,KAAK,YAAY;MACjB,KAAK,gBAAgB;QAAE;UACrB,MAAMC,KAAK,GAAGF,MAAM,CAACG,MAAM,GACvBJ,KAAK,CAACK,MAAM,CAACC,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKP,MAAM,CAACG,MAAM,CAAC,GACtDJ,KAAK,CAACG,KAAK;UAEf,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO,IAAI;UACb;UAEA,OAAAM,MAAA,CAAAC,MAAA,KACKV,KAAK;YACRK,MAAM,EAAEL,KAAK,CAACK,MAAM,CAACM,GAAG,CAAC,CAACJ,CAAC,EAAEK,CAAC,KAC5BA,CAAC,KAAKT,KAAK,GAAAM,MAAA,CAAAC,MAAA,KAEFH,CAAC;cACJM,MAAM,EACJZ,MAAM,CAACC,IAAI,KAAK,gBAAgB,GAC5BD,MAAM,CAACa,OAAO,CAACD,MAAM,GAAAJ,MAAA,CAAAC,MAAA,KAChBH,CAAC,CAACM,MAAM,EAAKZ,MAAM,CAACa,OAAO,CAACD,MAAA;YAAO,KAEhDN,CACN;UAAA;QAEJ;MAEA,KAAK,OAAO;QAAE;UACZ,MAAMQ,SAAS,GAAGd,MAAM,CAACa,OAAsC;UAE/D,IACEC,SAAS,CAACV,MAAM,CAACW,MAAM,KAAK,CAAC,IAC7BD,SAAS,CAACV,MAAM,CAACY,IAAI,CAClBC,KAAuB,IAAK,CAAClB,KAAK,CAACmB,UAAU,CAACC,QAAQ,CAACF,KAAK,CAACG,IAAI,CACpE,CAAC,EACD;YACA,OAAO,IAAI;UACb;UAEA,IAAIN,SAAS,CAACO,KAAK,KAAK,KAAK,EAAE;YAC7B,IACEtB,KAAK,CAACmB,UAAU,CAACH,MAAM,KAAKD,SAAS,CAACI,UAAU,CAACH,MAAM,IACvDD,SAAS,CAACI,UAAU,CAACF,IAAI,CACtBI,IAAI,IAAK,CAACrB,KAAK,CAACmB,UAAU,CAACC,QAAQ,CAACC,IAAI,CAC3C,CAAC,EACD;cACA,OAAO,IAAI;YACb;YAEA,OAAAZ,MAAA,CAAAC,MAAA,KACKK,SAAS;cACZV,MAAM,EAAEU,SAAS,CAACV,MAAM,CAACM,GAAG,CAAEO,KAAK,IACjCA,KAAK,CAACV,GAAG,GAAGU,KAAK,GAAAT,MAAA,CAAAC,MAAA,KAAQQ,KAAK;gBAAEV,GAAG,EAAE,GAAGU,KAAK,CAACG,IAAI,IAAIxB,MAAM,CAAC,CAAC;cAAA,EAChE;YAAA;UAEJ;UAEA,OAAOkB,SAAS;QAClB;MAEA;QACE,OAAO,IAAI;IACf;EACF,CAAC;EAEDQ,uBAAuBA,CAACtB,MAA8B,EAAE;IACtD,OAAOA,MAAM,CAACC,IAAI,KAAK,UAAU,IAAID,MAAM,CAACC,IAAI,KAAK,qBAAqB;EAC5E;AACF,CAAC","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}