{"ast":null,"code":"\"use strict\";\n\nimport { nanoid } from 'nanoid/non-secure';\nimport { BaseRouter } from \"./BaseRouter.js\";\nexport const StackActions = {\n  replace(name, params) {\n    return {\n      type: 'REPLACE',\n      payload: {\n        name,\n        params\n      }\n    };\n  },\n  push(name, params) {\n    return {\n      type: 'PUSH',\n      payload: {\n        name,\n        params\n      }\n    };\n  },\n  pop(count = 1) {\n    return {\n      type: 'POP',\n      payload: {\n        count\n      }\n    };\n  },\n  popToTop() {\n    return {\n      type: 'POP_TO_TOP'\n    };\n  },\n  popTo(name, params, options) {\n    if (typeof options === 'boolean') {\n      console.warn(`Passing a boolean as the third argument to 'popTo' is deprecated. Pass '{ merge: true }' instead.`);\n    }\n    return {\n      type: 'POP_TO',\n      payload: {\n        name,\n        params,\n        merge: typeof options === 'boolean' ? options : options?.merge\n      }\n    };\n  }\n};\nexport function StackRouter(options) {\n  const router = Object.assign({}, BaseRouter, {\n    type: 'stack',\n    getInitialState({\n      routeNames,\n      routeParamList\n    }) {\n      const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n      return {\n        stale: false,\n        type: 'stack',\n        key: `stack-${nanoid()}`,\n        index: 0,\n        routeNames,\n        preloadedRoutes: [],\n        routes: [{\n          key: `${initialRouteName}-${nanoid()}`,\n          name: initialRouteName,\n          params: routeParamList[initialRouteName]\n        }]\n      };\n    },\n    getRehydratedState(partialState, {\n      routeNames,\n      routeParamList\n    }) {\n      const state = partialState;\n      if (state.stale === false) {\n        return state;\n      }\n      const routes = state.routes.filter(route => routeNames.includes(route.name)).map(route => Object.assign({}, route, {\n        key: route.key || `${route.name}-${nanoid()}`,\n        params: routeParamList[route.name] !== undefined ? Object.assign({}, routeParamList[route.name], route.params) : route.params\n      }));\n      const preloadedRoutes = state.preloadedRoutes?.filter(route => routeNames.includes(route.name)).map(route => Object.assign({}, route, {\n        key: route.key || `${route.name}-${nanoid()}`,\n        params: routeParamList[route.name] !== undefined ? Object.assign({}, routeParamList[route.name], route.params) : route.params\n      })) ?? [];\n      if (routes.length === 0) {\n        const initialRouteName = options.initialRouteName !== undefined ? options.initialRouteName : routeNames[0];\n        routes.push({\n          key: `${initialRouteName}-${nanoid()}`,\n          name: initialRouteName,\n          params: routeParamList[initialRouteName]\n        });\n      }\n      return {\n        stale: false,\n        type: 'stack',\n        key: `stack-${nanoid()}`,\n        index: routes.length - 1,\n        routeNames,\n        routes,\n        preloadedRoutes\n      };\n    },\n    getStateForRouteNamesChange(state, {\n      routeNames,\n      routeParamList,\n      routeKeyChanges\n    }) {\n      const routes = state.routes.filter(route => routeNames.includes(route.name) && !routeKeyChanges.includes(route.name));\n      if (routes.length === 0) {\n        const initialRouteName = options.initialRouteName !== undefined && routeNames.includes(options.initialRouteName) ? options.initialRouteName : routeNames[0];\n        routes.push({\n          key: `${initialRouteName}-${nanoid()}`,\n          name: initialRouteName,\n          params: routeParamList[initialRouteName]\n        });\n      }\n      return Object.assign({}, state, {\n        routeNames,\n        routes,\n        index: Math.min(state.index, routes.length - 1)\n      });\n    },\n    getStateForRouteFocus(state, key) {\n      const index = state.routes.findIndex(r => r.key === key);\n      if (index === -1 || index === state.index) {\n        return state;\n      }\n      return Object.assign({}, state, {\n        index,\n        routes: state.routes.slice(0, index + 1)\n      });\n    },\n    getStateForAction(state, action, options) {\n      const {\n        routeParamList\n      } = options;\n      switch (action.type) {\n        case 'REPLACE':\n          {\n            const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n            if (index === -1) {\n              return null;\n            }\n            const {\n              name,\n              params\n            } = action.payload;\n            if (!state.routeNames.includes(name)) {\n              return null;\n            }\n            return Object.assign({}, state, {\n              routes: state.routes.map((route, i) => i === index ? {\n                key: `${name}-${nanoid()}`,\n                name,\n                params: routeParamList[name] !== undefined ? Object.assign({}, routeParamList[name], params) : params\n              } : route)\n            });\n          }\n        case 'PUSH':\n        case 'NAVIGATE':\n          {\n            if (!state.routeNames.includes(action.payload.name)) {\n              return null;\n            }\n            const getId = options.routeGetIdList[action.payload.name];\n            const id = getId?.({\n              params: action.payload.params\n            });\n            let route;\n            if (id !== undefined) {\n              route = state.routes.findLast(route => route.name === action.payload.name && id === getId?.({\n                params: route.params\n              }));\n            } else if (action.type === 'NAVIGATE') {\n              const currentRoute = state.routes[state.index];\n              if (action.payload.name === currentRoute.name) {\n                route = currentRoute;\n              } else if (action.payload.pop) {\n                route = state.routes.findLast(route => route.name === action.payload.name);\n              }\n            }\n            if (!route) {\n              route = state.preloadedRoutes.find(route => route.name === action.payload.name && id === getId?.({\n                params: route.params\n              }));\n            }\n            let params;\n            if (action.type === 'NAVIGATE' && action.payload.merge && route) {\n              params = action.payload.params !== undefined || routeParamList[action.payload.name] !== undefined ? Object.assign({}, routeParamList[action.payload.name], route.params, action.payload.params) : route.params;\n            } else {\n              params = routeParamList[action.payload.name] !== undefined ? Object.assign({}, routeParamList[action.payload.name], action.payload.params) : action.payload.params;\n            }\n            let routes;\n            if (route) {\n              if (action.type === 'NAVIGATE' && action.payload.pop) {\n                routes = [];\n                for (const r of state.routes) {\n                  if (r.key === route.key) {\n                    routes.push(Object.assign({}, route, {\n                      path: action.payload.path !== undefined ? action.payload.path : route.path,\n                      params\n                    }));\n                    break;\n                  }\n                  routes.push(r);\n                }\n              } else {\n                routes = state.routes.filter(r => r.key !== route.key);\n                routes.push(Object.assign({}, route, {\n                  path: action.type === 'NAVIGATE' && action.payload.path !== undefined ? action.payload.path : route.path,\n                  params\n                }));\n              }\n            } else {\n              routes = [...state.routes, {\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                path: action.type === 'NAVIGATE' ? action.payload.path : undefined,\n                params\n              }];\n            }\n            return Object.assign({}, state, {\n              index: routes.length - 1,\n              preloadedRoutes: state.preloadedRoutes.filter(route => routes[routes.length - 1].key !== route.key),\n              routes\n            });\n          }\n        case 'NAVIGATE_DEPRECATED':\n          {\n            if (state.preloadedRoutes.find(route => route.name === action.payload.name && id === getId?.({\n              params: route.params\n            }))) {\n              return null;\n            }\n            if (!state.routeNames.includes(action.payload.name)) {\n              return null;\n            }\n            let index = -1;\n            const getId = options.routeGetIdList[action.payload.name];\n            const id = getId?.({\n              params: action.payload.params\n            });\n            if (id) {\n              index = state.routes.findIndex(route => route.name === action.payload.name && id === getId?.({\n                params: route.params\n              }));\n            } else if (state.routes[state.index].name === action.payload.name) {\n              index = state.index;\n            } else {\n              for (let i = state.routes.length - 1; i >= 0; i--) {\n                if (state.routes[i].name === action.payload.name) {\n                  index = i;\n                  break;\n                }\n              }\n            }\n            if (index === -1) {\n              const routes = [...state.routes, {\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                params: routeParamList[action.payload.name] !== undefined ? Object.assign({}, routeParamList[action.payload.name], action.payload.params) : action.payload.params\n              }];\n              return Object.assign({}, state, {\n                routes,\n                index: routes.length - 1\n              });\n            }\n            const route = state.routes[index];\n            let params;\n            if (action.payload.merge) {\n              params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? Object.assign({}, routeParamList[route.name], route.params, action.payload.params) : route.params;\n            } else {\n              params = routeParamList[route.name] !== undefined ? Object.assign({}, routeParamList[route.name], action.payload.params) : action.payload.params;\n            }\n            return Object.assign({}, state, {\n              index,\n              routes: [...state.routes.slice(0, index), params !== route.params ? Object.assign({}, route, {\n                params\n              }) : state.routes[index]]\n            });\n          }\n        case 'POP':\n          {\n            const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;\n            if (index > 0) {\n              const count = Math.max(index - action.payload.count + 1, 1);\n              const routes = state.routes.slice(0, count).concat(state.routes.slice(index + 1));\n              return Object.assign({}, state, {\n                index: routes.length - 1,\n                routes\n              });\n            }\n            return null;\n          }\n        case 'POP_TO_TOP':\n          return router.getStateForAction(state, {\n            type: 'POP',\n            payload: {\n              count: state.routes.length - 1\n            }\n          }, options);\n        case 'POP_TO':\n          {\n            if (!state.routeNames.includes(action.payload.name)) {\n              return null;\n            }\n            let index = -1;\n            const getId = options.routeGetIdList[action.payload.name];\n            const id = getId?.({\n              params: action.payload.params\n            });\n            if (id) {\n              index = state.routes.findIndex(route => route.name === action.payload.name && id === getId?.({\n                params: route.params\n              }));\n            } else if (state.routes[state.index].name === action.payload.name) {\n              index = state.index;\n            } else {\n              for (let i = state.routes.length - 1; i >= 0; i--) {\n                if (state.routes[i].name === action.payload.name) {\n                  index = i;\n                  break;\n                }\n              }\n            }\n            if (index === -1) {\n              const routes = [...state.routes.slice(0, -1), {\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                params: routeParamList[action.payload.name] !== undefined ? Object.assign({}, routeParamList[action.payload.name], action.payload.params) : action.payload.params\n              }];\n              return Object.assign({}, state, {\n                routes,\n                index: routes.length - 1\n              });\n            }\n            const route = state.routes[index];\n            let params;\n            if (action.payload.merge) {\n              params = action.payload.params !== undefined || routeParamList[route.name] !== undefined ? Object.assign({}, routeParamList[route.name], route.params, action.payload.params) : route.params;\n            } else {\n              params = routeParamList[route.name] !== undefined ? Object.assign({}, routeParamList[route.name], action.payload.params) : action.payload.params;\n            }\n            return Object.assign({}, state, {\n              index,\n              routes: [...state.routes.slice(0, index), params !== route.params ? Object.assign({}, route, {\n                params\n              }) : state.routes[index]]\n            });\n          }\n        case 'GO_BACK':\n          if (state.index > 0) {\n            return router.getStateForAction(state, {\n              type: 'POP',\n              payload: {\n                count: 1\n              },\n              target: action.target,\n              source: action.source\n            }, options);\n          }\n          return null;\n        case 'PRELOAD':\n          {\n            const getId = options.routeGetIdList[action.payload.name];\n            const id = getId?.({\n              params: action.payload.params\n            });\n            let route;\n            if (id !== undefined) {\n              route = state.routes.find(route => route.name === action.payload.name && id === getId?.({\n                params: route.params\n              }));\n            }\n            if (route) {\n              return Object.assign({}, state, {\n                routes: state.routes.map(r => {\n                  if (r.key !== route?.key) {\n                    return r;\n                  }\n                  return Object.assign({}, r, {\n                    params: routeParamList[action.payload.name] !== undefined ? Object.assign({}, routeParamList[action.payload.name], action.payload.params) : action.payload.params\n                  });\n                })\n              });\n            } else {\n              return Object.assign({}, state, {\n                preloadedRoutes: state.preloadedRoutes.filter(r => r.name !== action.payload.name || id !== getId?.({\n                  params: r.params\n                })).concat({\n                  key: `${action.payload.name}-${nanoid()}`,\n                  name: action.payload.name,\n                  params: routeParamList[action.payload.name] !== undefined ? Object.assign({}, routeParamList[action.payload.name], action.payload.params) : action.payload.params\n                })\n              });\n            }\n          }\n        default:\n          return BaseRouter.getStateForAction(state, action);\n      }\n    },\n    actionCreators: StackActions\n  });\n  return router;\n}","map":{"version":3,"names":["nanoid","BaseRouter","StackActions","replace","name","params","type","payload","push","pop","count","popToTop","popTo","options","console","warn","merge","StackRouter","router","Object","assign","getInitialState","routeNames","routeParamList","initialRouteName","undefined","includes","stale","key","index","preloadedRoutes","routes","getRehydratedState","partialState","state","filter","route","map","length","getStateForRouteNamesChange","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","i","getId","routeGetIdList","id","findLast","currentRoute","find","path","max","concat","actionCreators"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/routers/src/StackRouter.tsx"],"sourcesContent":["import { nanoid } from 'nanoid/non-secure';\n\nimport { BaseRouter } from './BaseRouter';\nimport type {\n  CommonNavigationAction,\n  DefaultRouterOptions,\n  NavigationRoute,\n  NavigationState,\n  ParamListBase,\n  Route,\n  Router,\n} from './types';\n\nexport type StackActionType =\n  | {\n      type: 'REPLACE';\n      payload: { name: string; params?: object };\n      source?: string;\n      target?: string;\n    }\n  | {\n      type: 'PUSH';\n      payload: { name: string; params?: object };\n      source?: string;\n      target?: string;\n    }\n  | {\n      type: 'POP';\n      payload: { count: number };\n      source?: string;\n      target?: string;\n    }\n  | {\n      type: 'POP_TO_TOP';\n      source?: string;\n      target?: string;\n    }\n  | {\n      type: 'POP_TO';\n      payload: {\n        name: string;\n        params?: object;\n        merge?: boolean;\n      };\n      source?: string;\n      target?: string;\n    };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState<ParamList extends ParamListBase> =\n  NavigationState<ParamList> & {\n    /**\n     * Type of the router, in this case, it's stack.\n     */\n    type: 'stack';\n    /**\n     * List of routes, which are supposed to be preloaded before navigating to.\n     */\n    preloadedRoutes: NavigationRoute<ParamList, keyof ParamList>[];\n  };\n\nexport type StackActionHelpers<ParamList extends ParamListBase> = {\n  /**\n   * Replace the current route with a new one.\n   *\n   * @param screen Name of the new route that will replace the current one.\n   * @param [params] Params object for the new route.\n   */\n  replace<RouteName extends keyof ParamList>(\n    ...args: RouteName extends unknown\n      ? undefined extends ParamList[RouteName]\n        ? [screen: RouteName, params?: ParamList[RouteName]]\n        : [screen: RouteName, params: ParamList[RouteName]]\n      : never\n  ): void;\n\n  /**\n   * Push a new screen onto the stack.\n   *\n   * @param screen Name of the route to push onto the stack.\n   * @param [params] Params object for the route.\n   */\n  push<RouteName extends keyof ParamList>(\n    ...args: RouteName extends unknown\n      ? undefined extends ParamList[RouteName]\n        ? [screen: RouteName, params?: ParamList[RouteName]]\n        : [screen: RouteName, params: ParamList[RouteName]]\n      : never\n  ): void;\n\n  /**\n   * Pop a screen from the stack.\n   */\n  pop(count?: number): void;\n\n  /**\n   * Pop to the first route in the stack, dismissing all other screens.\n   */\n  popToTop(): void;\n\n  /**\n   * Pop any screens to go back to the specified screen.\n   * If the specified screen doesn't exist, it'll be added to the stack.\n   *\n   * @param screen Name of the route to pop to.\n   * @param [params] Params object for the route.\n   * @param [options.merge] Whether to merge the params onto the route. Defaults to `false`.\n   */\n  popTo<RouteName extends keyof ParamList>(\n    ...args: RouteName extends unknown\n      ? undefined extends ParamList[RouteName]\n        ? [\n            screen: RouteName,\n            params?: ParamList[RouteName],\n            options?: { merge?: boolean },\n          ]\n        : [\n            screen: RouteName,\n            params: ParamList[RouteName],\n            options?: { merge?: boolean },\n          ]\n      : never\n  ): void;\n};\n\nexport const StackActions = {\n  replace(name: string, params?: object) {\n    return {\n      type: 'REPLACE',\n      payload: { name, params },\n    } as const satisfies StackActionType;\n  },\n  push(name: string, params?: object) {\n    return {\n      type: 'PUSH',\n      payload: { name, params },\n    } as const satisfies StackActionType;\n  },\n  pop(count: number = 1) {\n    return {\n      type: 'POP',\n      payload: { count },\n    } as const satisfies StackActionType;\n  },\n  popToTop() {\n    return { type: 'POP_TO_TOP' } as const satisfies StackActionType;\n  },\n  popTo(name: string, params?: object, options?: { merge?: boolean }) {\n    if (typeof options === 'boolean') {\n      console.warn(\n        `Passing a boolean as the third argument to 'popTo' is deprecated. Pass '{ merge: true }' instead.`\n      );\n    }\n\n    return {\n      type: 'POP_TO',\n      payload: {\n        name,\n        params,\n        merge: typeof options === 'boolean' ? options : options?.merge,\n      },\n    } as const satisfies StackActionType;\n  },\n};\n\nexport function StackRouter(options: StackRouterOptions) {\n  const router: Router<\n    StackNavigationState<ParamListBase>,\n    CommonNavigationAction | StackActionType\n  > = {\n    ...BaseRouter,\n\n    type: 'stack',\n\n    getInitialState({ routeNames, routeParamList }) {\n      const initialRouteName =\n        options.initialRouteName !== undefined &&\n        routeNames.includes(options.initialRouteName)\n          ? options.initialRouteName\n          : routeNames[0];\n\n      return {\n        stale: false,\n        type: 'stack',\n        key: `stack-${nanoid()}`,\n        index: 0,\n        routeNames,\n        preloadedRoutes: [],\n        routes: [\n          {\n            key: `${initialRouteName}-${nanoid()}`,\n            name: initialRouteName,\n            params: routeParamList[initialRouteName],\n          },\n        ],\n      };\n    },\n\n    getRehydratedState(partialState, { routeNames, routeParamList }) {\n      const state = partialState;\n\n      if (state.stale === false) {\n        return state;\n      }\n\n      const routes = state.routes\n        .filter((route) => routeNames.includes(route.name))\n        .map((route) => ({\n          ...route,\n          key: route.key || `${route.name}-${nanoid()}`,\n          params:\n            routeParamList[route.name] !== undefined\n              ? {\n                  ...routeParamList[route.name],\n                  ...route.params,\n                }\n              : route.params,\n        }));\n\n      const preloadedRoutes =\n        state.preloadedRoutes\n          ?.filter((route) => routeNames.includes(route.name))\n          .map(\n            (route) =>\n              ({\n                ...route,\n                key: route.key || `${route.name}-${nanoid()}`,\n                params:\n                  routeParamList[route.name] !== undefined\n                    ? {\n                        ...routeParamList[route.name],\n                        ...route.params,\n                      }\n                    : route.params,\n              }) as Route<string>\n          ) ?? [];\n\n      if (routes.length === 0) {\n        const initialRouteName =\n          options.initialRouteName !== undefined\n            ? options.initialRouteName\n            : routeNames[0];\n\n        routes.push({\n          key: `${initialRouteName}-${nanoid()}`,\n          name: initialRouteName,\n          params: routeParamList[initialRouteName],\n        });\n      }\n\n      return {\n        stale: false,\n        type: 'stack',\n        key: `stack-${nanoid()}`,\n        index: routes.length - 1,\n        routeNames,\n        routes,\n        preloadedRoutes,\n      };\n    },\n\n    getStateForRouteNamesChange(\n      state,\n      { routeNames, routeParamList, routeKeyChanges }\n    ) {\n      const routes = state.routes.filter(\n        (route) =>\n          routeNames.includes(route.name) &&\n          !routeKeyChanges.includes(route.name)\n      );\n\n      if (routes.length === 0) {\n        const initialRouteName =\n          options.initialRouteName !== undefined &&\n          routeNames.includes(options.initialRouteName)\n            ? options.initialRouteName\n            : routeNames[0];\n\n        routes.push({\n          key: `${initialRouteName}-${nanoid()}`,\n          name: initialRouteName,\n          params: routeParamList[initialRouteName],\n        });\n      }\n\n      return {\n        ...state,\n        routeNames,\n        routes,\n        index: Math.min(state.index, routes.length - 1),\n      };\n    },\n\n    getStateForRouteFocus(state, key) {\n      const index = state.routes.findIndex((r) => r.key === key);\n\n      if (index === -1 || index === state.index) {\n        return state;\n      }\n\n      return {\n        ...state,\n        index,\n        routes: state.routes.slice(0, index + 1),\n      };\n    },\n\n    getStateForAction(state, action, options) {\n      const { routeParamList } = options;\n\n      switch (action.type) {\n        case 'REPLACE': {\n          const index =\n            action.target === state.key && 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          const { name, params } = action.payload;\n\n          if (!state.routeNames.includes(name)) {\n            return null;\n          }\n\n          return {\n            ...state,\n            routes: state.routes.map((route, i) =>\n              i === index\n                ? {\n                    key: `${name}-${nanoid()}`,\n                    name,\n                    params:\n                      routeParamList[name] !== undefined\n                        ? {\n                            ...routeParamList[name],\n                            ...params,\n                          }\n                        : params,\n                  }\n                : route\n            ),\n          };\n        }\n\n        case 'PUSH':\n        case 'NAVIGATE': {\n          if (!state.routeNames.includes(action.payload.name)) {\n            return null;\n          }\n\n          const getId = options.routeGetIdList[action.payload.name];\n          const id = getId?.({ params: action.payload.params });\n\n          let route: Route<string> | undefined;\n\n          if (id !== undefined) {\n            route = state.routes.findLast(\n              (route) =>\n                route.name === action.payload.name &&\n                id === getId?.({ params: route.params })\n            );\n          } else if (action.type === 'NAVIGATE') {\n            const currentRoute = state.routes[state.index];\n\n            // If the route matches the current one, then navigate to it\n            if (action.payload.name === currentRoute.name) {\n              route = currentRoute;\n            } else if (action.payload.pop) {\n              route = state.routes.findLast(\n                (route) => route.name === action.payload.name\n              );\n            }\n          }\n\n          if (!route) {\n            route = state.preloadedRoutes.find(\n              (route) =>\n                route.name === action.payload.name &&\n                id === getId?.({ params: route.params })\n            );\n          }\n\n          let params;\n\n          if (action.type === 'NAVIGATE' && action.payload.merge && route) {\n            params =\n              action.payload.params !== undefined ||\n              routeParamList[action.payload.name] !== undefined\n                ? {\n                    ...routeParamList[action.payload.name],\n                    ...route.params,\n                    ...action.payload.params,\n                  }\n                : route.params;\n          } else {\n            params =\n              routeParamList[action.payload.name] !== undefined\n                ? {\n                    ...routeParamList[action.payload.name],\n                    ...action.payload.params,\n                  }\n                : action.payload.params;\n          }\n\n          let routes: Route<string>[];\n\n          if (route) {\n            if (action.type === 'NAVIGATE' && action.payload.pop) {\n              routes = [];\n\n              // Get all routes until the matching one\n              for (const r of state.routes) {\n                if (r.key === route.key) {\n                  routes.push({\n                    ...route,\n                    path:\n                      action.payload.path !== undefined\n                        ? action.payload.path\n                        : route.path,\n                    params,\n                  });\n                  break;\n                }\n\n                routes.push(r);\n              }\n            } else {\n              routes = state.routes.filter((r) => r.key !== route.key);\n              routes.push({\n                ...route,\n                path:\n                  action.type === 'NAVIGATE' &&\n                  action.payload.path !== undefined\n                    ? action.payload.path\n                    : route.path,\n                params,\n              });\n            }\n          } else {\n            routes = [\n              ...state.routes,\n              {\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                path:\n                  action.type === 'NAVIGATE' ? action.payload.path : undefined,\n                params,\n              },\n            ];\n          }\n\n          return {\n            ...state,\n            index: routes.length - 1,\n            preloadedRoutes: state.preloadedRoutes.filter(\n              (route) => routes[routes.length - 1].key !== route.key\n            ),\n            routes,\n          };\n        }\n\n        case 'NAVIGATE_DEPRECATED': {\n          if (\n            state.preloadedRoutes.find(\n              (route) =>\n                route.name === action.payload.name &&\n                id === getId?.({ params: route.params })\n            )\n          ) {\n            return null;\n          }\n          if (!state.routeNames.includes(action.payload.name)) {\n            return null;\n          }\n\n          // If the route already exists, navigate to that\n          let index = -1;\n\n          const getId = options.routeGetIdList[action.payload.name];\n          const id = getId?.({ params: action.payload.params });\n\n          if (id) {\n            index = state.routes.findIndex(\n              (route) =>\n                route.name === action.payload.name &&\n                id === getId?.({ params: route.params })\n            );\n          } else if (state.routes[state.index].name === action.payload.name) {\n            index = state.index;\n          } else {\n            for (let i = state.routes.length - 1; i >= 0; i--) {\n              if (state.routes[i].name === action.payload.name) {\n                index = i;\n                break;\n              }\n            }\n          }\n\n          if (index === -1) {\n            const routes = [\n              ...state.routes,\n              {\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                params:\n                  routeParamList[action.payload.name] !== undefined\n                    ? {\n                        ...routeParamList[action.payload.name],\n                        ...action.payload.params,\n                      }\n                    : action.payload.params,\n              },\n            ];\n\n            return {\n              ...state,\n              routes,\n              index: routes.length - 1,\n            };\n          }\n\n          const route = state.routes[index];\n\n          let params;\n\n          if (action.payload.merge) {\n            params =\n              action.payload.params !== undefined ||\n              routeParamList[route.name] !== undefined\n                ? {\n                    ...routeParamList[route.name],\n                    ...route.params,\n                    ...action.payload.params,\n                  }\n                : route.params;\n          } else {\n            params =\n              routeParamList[route.name] !== undefined\n                ? {\n                    ...routeParamList[route.name],\n                    ...action.payload.params,\n                  }\n                : action.payload.params;\n          }\n\n          return {\n            ...state,\n            index,\n            routes: [\n              ...state.routes.slice(0, index),\n              params !== route.params\n                ? { ...route, params }\n                : state.routes[index],\n            ],\n          };\n        }\n\n        case 'POP': {\n          const index =\n            action.target === state.key && action.source\n              ? state.routes.findIndex((r) => r.key === action.source)\n              : state.index;\n\n          if (index > 0) {\n            const count = Math.max(index - action.payload.count + 1, 1);\n            const routes = state.routes\n              .slice(0, count)\n              .concat(state.routes.slice(index + 1));\n\n            return {\n              ...state,\n              index: routes.length - 1,\n              routes,\n            };\n          }\n\n          return null;\n        }\n\n        case 'POP_TO_TOP':\n          return router.getStateForAction(\n            state,\n            {\n              type: 'POP',\n              payload: { count: state.routes.length - 1 },\n            },\n            options\n          );\n\n        case 'POP_TO': {\n          if (!state.routeNames.includes(action.payload.name)) {\n            return null;\n          }\n\n          // If the route already exists, navigate to that\n          let index = -1;\n\n          const getId = options.routeGetIdList[action.payload.name];\n          const id = getId?.({ params: action.payload.params });\n\n          if (id) {\n            index = state.routes.findIndex(\n              (route) =>\n                route.name === action.payload.name &&\n                id === getId?.({ params: route.params })\n            );\n          } else if (state.routes[state.index].name === action.payload.name) {\n            index = state.index;\n          } else {\n            for (let i = state.routes.length - 1; i >= 0; i--) {\n              if (state.routes[i].name === action.payload.name) {\n                index = i;\n                break;\n              }\n            }\n          }\n\n          // If the route doesn't exist, remove the current route and add the new one\n          if (index === -1) {\n            const routes = [\n              ...state.routes.slice(0, -1),\n              {\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                params:\n                  routeParamList[action.payload.name] !== undefined\n                    ? {\n                        ...routeParamList[action.payload.name],\n                        ...action.payload.params,\n                      }\n                    : action.payload.params,\n              },\n            ];\n\n            return {\n              ...state,\n              routes,\n              index: routes.length - 1,\n            };\n          }\n\n          const route = state.routes[index];\n\n          let params;\n\n          if (action.payload.merge) {\n            params =\n              action.payload.params !== undefined ||\n              routeParamList[route.name] !== undefined\n                ? {\n                    ...routeParamList[route.name],\n                    ...route.params,\n                    ...action.payload.params,\n                  }\n                : route.params;\n          } else {\n            params =\n              routeParamList[route.name] !== undefined\n                ? {\n                    ...routeParamList[route.name],\n                    ...action.payload.params,\n                  }\n                : action.payload.params;\n          }\n\n          return {\n            ...state,\n            index,\n            routes: [\n              ...state.routes.slice(0, index),\n              params !== route.params\n                ? { ...route, params }\n                : state.routes[index],\n            ],\n          };\n        }\n\n        case 'GO_BACK':\n          if (state.index > 0) {\n            return router.getStateForAction(\n              state,\n              {\n                type: 'POP',\n                payload: { count: 1 },\n                target: action.target,\n                source: action.source,\n              },\n              options\n            );\n          }\n\n          return null;\n\n        case 'PRELOAD': {\n          const getId = options.routeGetIdList[action.payload.name];\n          const id = getId?.({ params: action.payload.params });\n\n          let route: Route<string> | undefined;\n\n          if (id !== undefined) {\n            route = state.routes.find(\n              (route) =>\n                route.name === action.payload.name &&\n                id === getId?.({ params: route.params })\n            );\n          }\n\n          if (route) {\n            return {\n              ...state,\n              routes: state.routes.map((r) => {\n                if (r.key !== route?.key) {\n                  return r;\n                }\n                return {\n                  ...r,\n                  params:\n                    routeParamList[action.payload.name] !== undefined\n                      ? {\n                          ...routeParamList[action.payload.name],\n                          ...action.payload.params,\n                        }\n                      : action.payload.params,\n                };\n              }),\n            };\n          } else {\n            return {\n              ...state,\n              preloadedRoutes: state.preloadedRoutes\n                .filter(\n                  (r) =>\n                    r.name !== action.payload.name ||\n                    id !== getId?.({ params: r.params })\n                )\n                .concat({\n                  key: `${action.payload.name}-${nanoid()}`,\n                  name: action.payload.name,\n                  params:\n                    routeParamList[action.payload.name] !== undefined\n                      ? {\n                          ...routeParamList[action.payload.name],\n                          ...action.payload.params,\n                        }\n                      : action.payload.params,\n                }),\n            };\n          }\n        }\n\n        default:\n          return BaseRouter.getStateForAction(state, action);\n      }\n    },\n\n    actionCreators: StackActions,\n  };\n\n  return router;\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}