UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 61.1 kB
{"ast":null,"code":"\"use strict\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { nanoid } from 'nanoid/non-secure';\nimport { BaseRouter } from \"./BaseRouter.js\";\nexport var StackActions = {\n  replace: function replace(name, params) {\n    return {\n      type: 'REPLACE',\n      payload: {\n        name: name,\n        params: params\n      }\n    };\n  },\n  push: function push(name, params) {\n    return {\n      type: 'PUSH',\n      payload: {\n        name: name,\n        params: params\n      }\n    };\n  },\n  pop: function pop() {\n    var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n    return {\n      type: 'POP',\n      payload: {\n        count: count\n      }\n    };\n  },\n  popToTop: function popToTop() {\n    return {\n      type: 'POP_TO_TOP'\n    };\n  },\n  popTo: function 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: name,\n        params: params,\n        merge: typeof options === 'boolean' ? options : options == null ? void 0 : options.merge\n      }\n    };\n  }\n};\nexport function StackRouter(options) {\n  var router = _objectSpread(_objectSpread({}, BaseRouter), {}, {\n    type: 'stack',\n    getInitialState: function getInitialState(_ref) {\n      var routeNames = _ref.routeNames,\n        routeParamList = _ref.routeParamList;\n      var 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: routeNames,\n        preloadedRoutes: [],\n        routes: [{\n          key: `${initialRouteName}-${nanoid()}`,\n          name: initialRouteName,\n          params: routeParamList[initialRouteName]\n        }]\n      };\n    },\n    getRehydratedState: function getRehydratedState(partialState, _ref2) {\n      var _state$preloadedRoute, _state$preloadedRoute2;\n      var routeNames = _ref2.routeNames,\n        routeParamList = _ref2.routeParamList;\n      var state = partialState;\n      if (state.stale === false) {\n        return state;\n      }\n      var routes = state.routes.filter(function (route) {\n        return routeNames.includes(route.name);\n      }).map(function (route) {\n        return _objectSpread(_objectSpread({}, route), {}, {\n          key: route.key || `${route.name}-${nanoid()}`,\n          params: routeParamList[route.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[route.name]), route.params) : route.params\n        });\n      });\n      var preloadedRoutes = (_state$preloadedRoute = (_state$preloadedRoute2 = state.preloadedRoutes) == null ? void 0 : _state$preloadedRoute2.filter(function (route) {\n        return routeNames.includes(route.name);\n      }).map(function (route) {\n        return _objectSpread(_objectSpread({}, route), {}, {\n          key: route.key || `${route.name}-${nanoid()}`,\n          params: routeParamList[route.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[route.name]), route.params) : route.params\n        });\n      })) != null ? _state$preloadedRoute : [];\n      if (routes.length === 0) {\n        var 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: routeNames,\n        routes: routes,\n        preloadedRoutes: preloadedRoutes\n      };\n    },\n    getStateForRouteNamesChange: function getStateForRouteNamesChange(state, _ref3) {\n      var routeNames = _ref3.routeNames,\n        routeParamList = _ref3.routeParamList,\n        routeKeyChanges = _ref3.routeKeyChanges;\n      var routes = state.routes.filter(function (route) {\n        return routeNames.includes(route.name) && !routeKeyChanges.includes(route.name);\n      });\n      if (routes.length === 0) {\n        var 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 _objectSpread(_objectSpread({}, state), {}, {\n        routeNames: routeNames,\n        routes: routes,\n        index: Math.min(state.index, routes.length - 1)\n      });\n    },\n    getStateForRouteFocus: function getStateForRouteFocus(state, key) {\n      var index = state.routes.findIndex(function (r) {\n        return r.key === key;\n      });\n      if (index === -1 || index === state.index) {\n        return state;\n      }\n      return _objectSpread(_objectSpread({}, state), {}, {\n        index: index,\n        routes: state.routes.slice(0, index + 1)\n      });\n    },\n    getStateForAction: function getStateForAction(state, action, options) {\n      var routeParamList = options.routeParamList;\n      switch (action.type) {\n        case 'REPLACE':\n          {\n            var index = action.target === state.key && action.source ? state.routes.findIndex(function (r) {\n              return r.key === action.source;\n            }) : state.index;\n            if (index === -1) {\n              return null;\n            }\n            var _action$payload = action.payload,\n              name = _action$payload.name,\n              params = _action$payload.params;\n            if (!state.routeNames.includes(name)) {\n              return null;\n            }\n            return _objectSpread(_objectSpread({}, state), {}, {\n              routes: state.routes.map(function (route, i) {\n                return i === index ? {\n                  key: `${name}-${nanoid()}`,\n                  name: name,\n                  params: routeParamList[name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[name]), params) : params\n                } : route;\n              })\n            });\n          }\n        case 'PUSH':\n        case 'NAVIGATE':\n          {\n            if (!state.routeNames.includes(action.payload.name)) {\n              return null;\n            }\n            var getId = options.routeGetIdList[action.payload.name];\n            var id = getId == null ? void 0 : getId({\n              params: action.payload.params\n            });\n            var route;\n            if (id !== undefined) {\n              route = state.routes.findLast(function (route) {\n                return route.name === action.payload.name && id === (getId == null ? void 0 : getId({\n                  params: route.params\n                }));\n              });\n            } else if (action.type === 'NAVIGATE') {\n              var 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(function (route) {\n                  return route.name === action.payload.name;\n                });\n              }\n            }\n            if (!route) {\n              route = state.preloadedRoutes.find(function (route) {\n                return route.name === action.payload.name && id === (getId == null ? void 0 : getId({\n                  params: route.params\n                }));\n              });\n            }\n            var _params;\n            if (action.type === 'NAVIGATE' && action.payload.merge && route) {\n              _params = action.payload.params !== undefined || routeParamList[action.payload.name] !== undefined ? _objectSpread(_objectSpread(_objectSpread({}, routeParamList[action.payload.name]), route.params), action.payload.params) : route.params;\n            } else {\n              _params = routeParamList[action.payload.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[action.payload.name]), action.payload.params) : action.payload.params;\n            }\n            var routes;\n            if (route) {\n              if (action.type === 'NAVIGATE' && action.payload.pop) {\n                routes = [];\n                for (var r of state.routes) {\n                  if (r.key === route.key) {\n                    routes.push(_objectSpread(_objectSpread({}, route), {}, {\n                      path: action.payload.path !== undefined ? action.payload.path : route.path,\n                      params: _params\n                    }));\n                    break;\n                  }\n                  routes.push(r);\n                }\n              } else {\n                routes = state.routes.filter(function (r) {\n                  return r.key !== route.key;\n                });\n                routes.push(_objectSpread(_objectSpread({}, route), {}, {\n                  path: action.type === 'NAVIGATE' && action.payload.path !== undefined ? action.payload.path : route.path,\n                  params: _params\n                }));\n              }\n            } else {\n              routes = [].concat(_toConsumableArray(state.routes), [{\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                path: action.type === 'NAVIGATE' ? action.payload.path : undefined,\n                params: _params\n              }]);\n            }\n            return _objectSpread(_objectSpread({}, state), {}, {\n              index: routes.length - 1,\n              preloadedRoutes: state.preloadedRoutes.filter(function (route) {\n                return routes[routes.length - 1].key !== route.key;\n              }),\n              routes: routes\n            });\n          }\n        case 'NAVIGATE_DEPRECATED':\n          {\n            if (state.preloadedRoutes.find(function (route) {\n              return route.name === action.payload.name && _id === (_getId == null ? void 0 : _getId({\n                params: route.params\n              }));\n            })) {\n              return null;\n            }\n            if (!state.routeNames.includes(action.payload.name)) {\n              return null;\n            }\n            var _index = -1;\n            var _getId = options.routeGetIdList[action.payload.name];\n            var _id = _getId == null ? void 0 : _getId({\n              params: action.payload.params\n            });\n            if (_id) {\n              _index = state.routes.findIndex(function (route) {\n                return route.name === action.payload.name && _id === (_getId == null ? void 0 : _getId({\n                  params: route.params\n                }));\n              });\n            } else if (state.routes[state.index].name === action.payload.name) {\n              _index = state.index;\n            } else {\n              for (var 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              var _routes = [].concat(_toConsumableArray(state.routes), [{\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                params: routeParamList[action.payload.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[action.payload.name]), action.payload.params) : action.payload.params\n              }]);\n              return _objectSpread(_objectSpread({}, state), {}, {\n                routes: _routes,\n                index: _routes.length - 1\n              });\n            }\n            var _route = state.routes[_index];\n            var _params2;\n            if (action.payload.merge) {\n              _params2 = action.payload.params !== undefined || routeParamList[_route.name] !== undefined ? _objectSpread(_objectSpread(_objectSpread({}, routeParamList[_route.name]), _route.params), action.payload.params) : _route.params;\n            } else {\n              _params2 = routeParamList[_route.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[_route.name]), action.payload.params) : action.payload.params;\n            }\n            return _objectSpread(_objectSpread({}, state), {}, {\n              index: _index,\n              routes: [].concat(_toConsumableArray(state.routes.slice(0, _index)), [_params2 !== _route.params ? _objectSpread(_objectSpread({}, _route), {}, {\n                params: _params2\n              }) : state.routes[_index]])\n            });\n          }\n        case 'POP':\n          {\n            var _index2 = action.target === state.key && action.source ? state.routes.findIndex(function (r) {\n              return r.key === action.source;\n            }) : state.index;\n            if (_index2 > 0) {\n              var count = Math.max(_index2 - action.payload.count + 1, 1);\n              var _routes2 = state.routes.slice(0, count).concat(state.routes.slice(_index2 + 1));\n              return _objectSpread(_objectSpread({}, state), {}, {\n                index: _routes2.length - 1,\n                routes: _routes2\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            var _index3 = -1;\n            var _getId2 = options.routeGetIdList[action.payload.name];\n            var _id2 = _getId2 == null ? void 0 : _getId2({\n              params: action.payload.params\n            });\n            if (_id2) {\n              _index3 = state.routes.findIndex(function (route) {\n                return route.name === action.payload.name && _id2 === (_getId2 == null ? void 0 : _getId2({\n                  params: route.params\n                }));\n              });\n            } else if (state.routes[state.index].name === action.payload.name) {\n              _index3 = state.index;\n            } else {\n              for (var _i = state.routes.length - 1; _i >= 0; _i--) {\n                if (state.routes[_i].name === action.payload.name) {\n                  _index3 = _i;\n                  break;\n                }\n              }\n            }\n            if (_index3 === -1) {\n              var _routes3 = [].concat(_toConsumableArray(state.routes.slice(0, -1)), [{\n                key: `${action.payload.name}-${nanoid()}`,\n                name: action.payload.name,\n                params: routeParamList[action.payload.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[action.payload.name]), action.payload.params) : action.payload.params\n              }]);\n              return _objectSpread(_objectSpread({}, state), {}, {\n                routes: _routes3,\n                index: _routes3.length - 1\n              });\n            }\n            var _route2 = state.routes[_index3];\n            var _params3;\n            if (action.payload.merge) {\n              _params3 = action.payload.params !== undefined || routeParamList[_route2.name] !== undefined ? _objectSpread(_objectSpread(_objectSpread({}, routeParamList[_route2.name]), _route2.params), action.payload.params) : _route2.params;\n            } else {\n              _params3 = routeParamList[_route2.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[_route2.name]), action.payload.params) : action.payload.params;\n            }\n            return _objectSpread(_objectSpread({}, state), {}, {\n              index: _index3,\n              routes: [].concat(_toConsumableArray(state.routes.slice(0, _index3)), [_params3 !== _route2.params ? _objectSpread(_objectSpread({}, _route2), {}, {\n                params: _params3\n              }) : state.routes[_index3]])\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            var _getId3 = options.routeGetIdList[action.payload.name];\n            var _id3 = _getId3 == null ? void 0 : _getId3({\n              params: action.payload.params\n            });\n            var _route3;\n            if (_id3 !== undefined) {\n              _route3 = state.routes.find(function (route) {\n                return route.name === action.payload.name && _id3 === (_getId3 == null ? void 0 : _getId3({\n                  params: route.params\n                }));\n              });\n            }\n            if (_route3) {\n              return _objectSpread(_objectSpread({}, state), {}, {\n                routes: state.routes.map(function (r) {\n                  var _route4;\n                  if (r.key !== ((_route4 = _route3) == null ? void 0 : _route4.key)) {\n                    return r;\n                  }\n                  return _objectSpread(_objectSpread({}, r), {}, {\n                    params: routeParamList[action.payload.name] !== undefined ? _objectSpread(_objectSpread({}, routeParamList[action.payload.name]), action.payload.params) : action.payload.params\n                  });\n                })\n              });\n            } else {\n              return _objectSpread(_objectSpread({}, state), {}, {\n                preloadedRoutes: state.preloadedRoutes.filter(function (r) {\n                  return r.name !== action.payload.name || _id3 !== (_getId3 == null ? void 0 : _getId3({\n                    params: r.params\n                  }));\n                }).concat({\n                  key: `${action.payload.name}-${nanoid()}`,\n                  name: action.payload.name,\n                  params: routeParamList[action.payload.name] !== undefined ? _objectSpread(_objectSpread({}, 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","arguments","length","undefined","popToTop","popTo","options","console","warn","merge","StackRouter","router","_objectSpread","getInitialState","_ref","routeNames","routeParamList","initialRouteName","includes","stale","key","index","preloadedRoutes","routes","getRehydratedState","partialState","_ref2","_state$preloadedRoute","_state$preloadedRoute2","state","filter","route","map","getStateForRouteNamesChange","_ref3","routeKeyChanges","Math","min","getStateForRouteFocus","findIndex","r","slice","getStateForAction","action","target","source","_action$payload","i","getId","routeGetIdList","id","findLast","currentRoute","find","path","concat","_toConsumableArray","max","_route4","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":{},"sourceType":"module","externalDependencies":[]}