repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 55.6 kB
JSON
{"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":";;AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAE1C,SAASC,UAAU;AA4HnB,OAAO,MAAMC,YAAY,GAAG;EAC1BC,OAAOA,CAACC,IAAY,EAAEC,MAAe,EAAE;IACrC,OAAO;MACLC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE;QAAEH,IAAI;QAAEC;MAAO;IAC1B,CAAC;EACH,CAAC;EACDG,IAAIA,CAACJ,IAAY,EAAEC,MAAe,EAAE;IAClC,OAAO;MACLC,IAAI,EAAE,MAAM;MACZC,OAAO,EAAE;QAAEH,IAAI;QAAEC;MAAO;IAC1B,CAAC;EACH,CAAC;EACDI,GAAGA,CAACC,KAAa,GAAG,CAAC,EAAE;IACrB,OAAO;MACLJ,IAAI,EAAE,KAAK;MACXC,OAAO,EAAE;QAAEG;MAAM;IACnB,CAAC;EACH,CAAC;EACDC,QAAQA,CAAA,EAAG;IACT,OAAO;MAAEL,IAAI,EAAE;IAAa,CAAC;EAC/B,CAAC;EACDM,KAAKA,CAACR,IAAY,EAAEC,MAAe,EAAEQ,OAA6B,EAAE;IAClE,IAAI,OAAOA,OAAO,KAAK,SAAS,EAAE;MAChCC,OAAO,CAACC,IAAI,CACV,mGACF,CAAC;IACH;IAEA,OAAO;MACLT,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;QACPH,IAAI;QACJC,MAAM;QACNW,KAAK,EAAE,OAAOH,OAAO,KAAK,SAAS,GAAGA,OAAO,GAAGA,OAAO,EAAEG;MAC3D;IACF,CAAC;EACH;AACF,CAAC;AAED,OAAO,SAASC,WAAWA,CAACJ,OAA2B,EAAE;EACvD,MAAMK,MAGL,GAAAC,MAAA,CAAAC,MAAA,KACInB,UAAU;IAEbK,IAAI,EAAE,OAAO;IAEbe,eAAeA,CAAC;MAAEC,UAAU;MAAEC;IAAe,CAAC,EAAE;MAC9C,MAAMC,gBAAgB,GACpBX,OAAO,CAACW,gBAAgB,KAAKC,SAAS,IACtCH,UAAU,CAACI,QAAQ,CAACb,OAAO,CAACW,gBAAgB,CAAC,GACzCX,OAAO,CAACW,gBAAgB,GACxBF,UAAU,CAAC,CAAC,CAAC;MAEnB,OAAO;QACLK,KAAK,EAAE,KAAK;QACZrB,IAAI,EAAE,OAAO;QACbsB,GAAG,EAAE,SAAS5B,MAAM,CAAC,CAAC,EAAE;QACxB6B,KAAK,EAAE,CAAC;QACRP,UAAU;QACVQ,eAAe,EAAE,EAAE;QACnBC,MAAM,EAAE,CACN;UACEH,GAAG,EAAE,GAAGJ,gBAAgB,IAAIxB,MAAM,CAAC,CAAC,EAAE;UACtCI,IAAI,EAAEoB,gBAAgB;UACtBnB,MAAM,EAAEkB,cAAc,CAACC,gBAAgB;QACzC,CAAC;MAEL,CAAC;IACH,CAAC;IAEDQ,kBAAkBA,CAACC,YAAY,EAAE;MAAEX,UAAU;MAAEC;IAAe,CAAC,EAAE;MAC/D,MAAMW,KAAK,GAAGD,YAAY;MAE1B,IAAIC,KAAK,CAACP,KAAK,KAAK,KAAK,EAAE;QACzB,OAAOO,KAAK;MACd;MAEA,MAAMH,MAAM,GAAGG,KAAK,CAACH,MAAM,CACxBI,MAAM,CAAEC,KAAK,IAAKd,UAAU,CAACI,QAAQ,CAACU,KAAK,CAAChC,IAAI,CAAC,CAAC,CAClDiC,GAAG,CAAED,KAAK,IAAAjB,MAAA,CAAAC,MAAA,KACNgB,KAAK;QACRR,GAAG,EAAEQ,KAAK,CAACR,GAAG,IAAI,GAAGQ,KAAK,CAAChC,IAAI,IAAIJ,MAAM,CAAC,CAAC,EAAE;QAC7CK,MAAM,EACJkB,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAE/BG,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,EAC1BgC,KAAK,CAAC/B,MAAA,IAEX+B,KAAK,CAAC/B;MAAA,EACZ,CAAC;MAEL,MAAMyB,eAAe,GACnBI,KAAK,CAACJ,eAAe,EACjBK,MAAM,CAAEC,KAAK,IAAKd,UAAU,CAACI,QAAQ,CAACU,KAAK,CAAChC,IAAI,CAAC,CAAC,CACnDiC,GAAG,CACDD,KAAK,IAAAjB,MAAA,CAAAC,MAAA,KAECgB,KAAK;QACRR,GAAG,EAAEQ,KAAK,CAACR,GAAG,IAAI,GAAGQ,KAAK,CAAChC,IAAI,IAAIJ,MAAM,CAAC,CAAC,EAAE;QAC7CK,MAAM,EACJkB,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAE/BG,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,EAC1BgC,KAAK,CAAC/B,MAAA,IAEX+B,KAAK,CAAC/B;MAAA,EAElB,CAAC,IAAI,EAAE;MAEX,IAAI0B,MAAM,CAACO,MAAM,KAAK,CAAC,EAAE;QACvB,MAAMd,gBAAgB,GACpBX,OAAO,CAACW,gBAAgB,KAAKC,SAAS,GAClCZ,OAAO,CAACW,gBAAgB,GACxBF,UAAU,CAAC,CAAC,CAAC;QAEnBS,MAAM,CAACvB,IAAI,CAAC;UACVoB,GAAG,EAAE,GAAGJ,gBAAgB,IAAIxB,MAAM,CAAC,CAAC,EAAE;UACtCI,IAAI,EAAEoB,gBAAgB;UACtBnB,MAAM,EAAEkB,cAAc,CAACC,gBAAgB;QACzC,CAAC,CAAC;MACJ;MAEA,OAAO;QACLG,KAAK,EAAE,KAAK;QACZrB,IAAI,EAAE,OAAO;QACbsB,GAAG,EAAE,SAAS5B,MAAM,CAAC,CAAC,EAAE;QACxB6B,KAAK,EAAEE,MAAM,CAACO,MAAM,GAAG,CAAC;QACxBhB,UAAU;QACVS,MAAM;QACND;MACF,CAAC;IACH,CAAC;IAEDS,2BAA2BA,CACzBL,KAAK,EACL;MAAEZ,UAAU;MAAEC,cAAc;MAAEiB;IAAgB,CAAC,EAC/C;MACA,MAAMT,MAAM,GAAGG,KAAK,CAACH,MAAM,CAACI,MAAM,CAC/BC,KAAK,IACJd,UAAU,CAACI,QAAQ,CAACU,KAAK,CAAChC,IAAI,CAAC,IAC/B,CAACoC,eAAe,CAACd,QAAQ,CAACU,KAAK,CAAChC,IAAI,CACxC,CAAC;MAED,IAAI2B,MAAM,CAACO,MAAM,KAAK,CAAC,EAAE;QACvB,MAAMd,gBAAgB,GACpBX,OAAO,CAACW,gBAAgB,KAAKC,SAAS,IACtCH,UAAU,CAACI,QAAQ,CAACb,OAAO,CAACW,gBAAgB,CAAC,GACzCX,OAAO,CAACW,gBAAgB,GACxBF,UAAU,CAAC,CAAC,CAAC;QAEnBS,MAAM,CAACvB,IAAI,CAAC;UACVoB,GAAG,EAAE,GAAGJ,gBAAgB,IAAIxB,MAAM,CAAC,CAAC,EAAE;UACtCI,IAAI,EAAEoB,gBAAgB;UACtBnB,MAAM,EAAEkB,cAAc,CAACC,gBAAgB;QACzC,CAAC,CAAC;MACJ;MAEA,OAAAL,MAAA,CAAAC,MAAA,KACKc,KAAK;QACRZ,UAAU;QACVS,MAAM;QACNF,KAAK,EAAEY,IAAI,CAACC,GAAG,CAACR,KAAK,CAACL,KAAK,EAAEE,MAAM,CAACO,MAAM,GAAG,CAAC;MAAA;IAElD,CAAC;IAEDK,qBAAqBA,CAACT,KAAK,EAAEN,GAAG,EAAE;MAChC,MAAMC,KAAK,GAAGK,KAAK,CAACH,MAAM,CAACa,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACjB,GAAG,KAAKA,GAAG,CAAC;MAE1D,IAAIC,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,KAAKK,KAAK,CAACL,KAAK,EAAE;QACzC,OAAOK,KAAK;MACd;MAEA,OAAAf,MAAA,CAAAC,MAAA,KACKc,KAAK;QACRL,KAAK;QACLE,MAAM,EAAEG,KAAK,CAACH,MAAM,CAACe,KAAK,CAAC,CAAC,EAAEjB,KAAK,GAAG,CAAC;MAAA;IAE3C,CAAC;IAEDkB,iBAAiBA,CAACb,KAAK,EAAEc,MAAM,EAAEnC,OAAO,EAAE;MACxC,MAAM;QAAEU;MAAe,CAAC,GAAGV,OAAO;MAElC,QAAQmC,MAAM,CAAC1C,IAAI;QACjB,KAAK,SAAS;UAAE;YACd,MAAMuB,KAAK,GACTmB,MAAM,CAACC,MAAM,KAAKf,KAAK,CAACN,GAAG,IAAIoB,MAAM,CAACE,MAAM,GACxChB,KAAK,CAACH,MAAM,CAACa,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACjB,GAAG,KAAKoB,MAAM,CAACE,MAAM,CAAC,GACtDhB,KAAK,CAACL,KAAK;YAEjB,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;cAChB,OAAO,IAAI;YACb;YAEA,MAAM;cAAEzB,IAAI;cAAEC;YAAO,CAAC,GAAG2C,MAAM,CAACzC,OAAO;YAEvC,IAAI,CAAC2B,KAAK,CAACZ,UAAU,CAACI,QAAQ,CAACtB,IAAI,CAAC,EAAE;cACpC,OAAO,IAAI;YACb;YAEA,OAAAe,MAAA,CAAAC,MAAA,KACKc,KAAK;cACRH,MAAM,EAAEG,KAAK,CAACH,MAAM,CAACM,GAAG,CAAC,CAACD,KAAK,EAAEe,CAAC,KAChCA,CAAC,KAAKtB,KAAK,GACP;gBACED,GAAG,EAAE,GAAGxB,IAAI,IAAIJ,MAAM,CAAC,CAAC,EAAE;gBAC1BI,IAAI;gBACJC,MAAM,EACJkB,cAAc,CAACnB,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAEzBG,cAAc,CAACnB,IAAI,CAAC,EACpBC,MAAA,IAELA;cACR,CAAC,GACD+B,KACN;YAAA;UAEJ;QAEA,KAAK,MAAM;QACX,KAAK,UAAU;UAAE;YACf,IAAI,CAACF,KAAK,CAACZ,UAAU,CAACI,QAAQ,CAACsB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EAAE;cACnD,OAAO,IAAI;YACb;YAEA,MAAMgD,KAAK,GAAGvC,OAAO,CAACwC,cAAc,CAACL,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC;YACzD,MAAMkD,EAAE,GAAGF,KAAK,GAAG;cAAE/C,MAAM,EAAE2C,MAAM,CAACzC,OAAO,CAACF;YAAO,CAAC,CAAC;YAErD,IAAI+B,KAAgC;YAEpC,IAAIkB,EAAE,KAAK7B,SAAS,EAAE;cACpBW,KAAK,GAAGF,KAAK,CAACH,MAAM,CAACwB,QAAQ,CAC1BnB,KAAK,IACJA,KAAK,CAAChC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,IAClCkD,EAAE,KAAKF,KAAK,GAAG;gBAAE/C,MAAM,EAAE+B,KAAK,CAAC/B;cAAO,CAAC,CAC3C,CAAC;YACH,CAAC,MAAM,IAAI2C,MAAM,CAAC1C,IAAI,KAAK,UAAU,EAAE;cACrC,MAAMkD,YAAY,GAAGtB,KAAK,CAACH,MAAM,CAACG,KAAK,CAACL,KAAK,CAAC;cAG9C,IAAImB,MAAM,CAACzC,OAAO,CAACH,IAAI,KAAKoD,YAAY,CAACpD,IAAI,EAAE;gBAC7CgC,KAAK,GAAGoB,YAAY;cACtB,CAAC,MAAM,IAAIR,MAAM,CAACzC,OAAO,CAACE,GAAG,EAAE;gBAC7B2B,KAAK,GAAGF,KAAK,CAACH,MAAM,CAACwB,QAAQ,CAC1BnB,KAAK,IAAKA,KAAK,CAAChC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAC3C,CAAC;cACH;YACF;YAEA,IAAI,CAACgC,KAAK,EAAE;cACVA,KAAK,GAAGF,KAAK,CAACJ,eAAe,CAAC2B,IAAI,CAC/BrB,KAAK,IACJA,KAAK,CAAChC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,IAClCkD,EAAE,KAAKF,KAAK,GAAG;gBAAE/C,MAAM,EAAE+B,KAAK,CAAC/B;cAAO,CAAC,CAC3C,CAAC;YACH;YAEA,IAAIA,MAAM;YAEV,IAAI2C,MAAM,CAAC1C,IAAI,KAAK,UAAU,IAAI0C,MAAM,CAACzC,OAAO,CAACS,KAAK,IAAIoB,KAAK,EAAE;cAC/D/B,MAAM,GACJ2C,MAAM,CAACzC,OAAO,CAACF,MAAM,KAAKoB,SAAS,IACnCF,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAExCG,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EACnCgC,KAAK,CAAC/B,MAAM,EACZ2C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB+B,KAAK,CAAC/B,MAAM;YACpB,CAAC,MAAM;cACLA,MAAM,GACJkB,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAExCG,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EACnC4C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB2C,MAAM,CAACzC,OAAO,CAACF,MAAM;YAC7B;YAEA,IAAI0B,MAAuB;YAE3B,IAAIK,KAAK,EAAE;cACT,IAAIY,MAAM,CAAC1C,IAAI,KAAK,UAAU,IAAI0C,MAAM,CAACzC,OAAO,CAACE,GAAG,EAAE;gBACpDsB,MAAM,GAAG,EAAE;gBAGX,KAAK,MAAMc,CAAC,IAAIX,KAAK,CAACH,MAAM,EAAE;kBAC5B,IAAIc,CAAC,CAACjB,GAAG,KAAKQ,KAAK,CAACR,GAAG,EAAE;oBACvBG,MAAM,CAACvB,IAAI,CAAAW,MAAA,CAAAC,MAAA,KACNgB,KAAK;sBACRsB,IAAI,EACFV,MAAM,CAACzC,OAAO,CAACmD,IAAI,KAAKjC,SAAS,GAC7BuB,MAAM,CAACzC,OAAO,CAACmD,IAAI,GACnBtB,KAAK,CAACsB,IAAI;sBAChBrD;oBAAA,EACD,CAAC;oBACF;kBACF;kBAEA0B,MAAM,CAACvB,IAAI,CAACqC,CAAC,CAAC;gBAChB;cACF,CAAC,MAAM;gBACLd,MAAM,GAAGG,KAAK,CAACH,MAAM,CAACI,MAAM,CAAEU,CAAC,IAAKA,CAAC,CAACjB,GAAG,KAAKQ,KAAK,CAACR,GAAG,CAAC;gBACxDG,MAAM,CAACvB,IAAI,CAAAW,MAAA,CAAAC,MAAA,KACNgB,KAAK;kBACRsB,IAAI,EACFV,MAAM,CAAC1C,IAAI,KAAK,UAAU,IAC1B0C,MAAM,CAACzC,OAAO,CAACmD,IAAI,KAAKjC,SAAS,GAC7BuB,MAAM,CAACzC,OAAO,CAACmD,IAAI,GACnBtB,KAAK,CAACsB,IAAI;kBAChBrD;gBAAA,EACD,CAAC;cACJ;YACF,CAAC,MAAM;cACL0B,MAAM,GAAG,CACP,GAAGG,KAAK,CAACH,MAAM,EACf;gBACEH,GAAG,EAAE,GAAGoB,MAAM,CAACzC,OAAO,CAACH,IAAI,IAAIJ,MAAM,CAAC,CAAC,EAAE;gBACzCI,IAAI,EAAE4C,MAAM,CAACzC,OAAO,CAACH,IAAI;gBACzBsD,IAAI,EACFV,MAAM,CAAC1C,IAAI,KAAK,UAAU,GAAG0C,MAAM,CAACzC,OAAO,CAACmD,IAAI,GAAGjC,SAAS;gBAC9DpB;cACF,CAAC,CACF;YACH;YAEA,OAAAc,MAAA,CAAAC,MAAA,KACKc,KAAK;cACRL,KAAK,EAAEE,MAAM,CAACO,MAAM,GAAG,CAAC;cACxBR,eAAe,EAAEI,KAAK,CAACJ,eAAe,CAACK,MAAM,CAC1CC,KAAK,IAAKL,MAAM,CAACA,MAAM,CAACO,MAAM,GAAG,CAAC,CAAC,CAACV,GAAG,KAAKQ,KAAK,CAACR,GACrD,CAAC;cACDG;YAAA;UAEJ;QAEA,KAAK,qBAAqB;UAAE;YAC1B,IACEG,KAAK,CAACJ,eAAe,CAAC2B,IAAI,CACvBrB,KAAK,IACJA,KAAK,CAAChC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,IAClCkD,EAAE,KAAKF,KAAK,GAAG;cAAE/C,MAAM,EAAE+B,KAAK,CAAC/B;YAAO,CAAC,CAC3C,CAAC,EACD;cACA,OAAO,IAAI;YACb;YACA,IAAI,CAAC6B,KAAK,CAACZ,UAAU,CAACI,QAAQ,CAACsB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EAAE;cACnD,OAAO,IAAI;YACb;YAGA,IAAIyB,KAAK,GAAG,CAAC,CAAC;YAEd,MAAMuB,KAAK,GAAGvC,OAAO,CAACwC,cAAc,CAACL,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC;YACzD,MAAMkD,EAAE,GAAGF,KAAK,GAAG;cAAE/C,MAAM,EAAE2C,MAAM,CAACzC,OAAO,CAACF;YAAO,CAAC,CAAC;YAErD,IAAIiD,EAAE,EAAE;cACNzB,KAAK,GAAGK,KAAK,CAACH,MAAM,CAACa,SAAS,CAC3BR,KAAK,IACJA,KAAK,CAAChC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,IAClCkD,EAAE,KAAKF,KAAK,GAAG;gBAAE/C,MAAM,EAAE+B,KAAK,CAAC/B;cAAO,CAAC,CAC3C,CAAC;YACH,CAAC,MAAM,IAAI6B,KAAK,CAACH,MAAM,CAACG,KAAK,CAACL,KAAK,CAAC,CAACzB,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,EAAE;cACjEyB,KAAK,GAAGK,KAAK,CAACL,KAAK;YACrB,CAAC,MAAM;cACL,KAAK,IAAIsB,CAAC,GAAGjB,KAAK,CAACH,MAAM,CAACO,MAAM,GAAG,CAAC,EAAEa,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;gBACjD,IAAIjB,KAAK,CAACH,MAAM,CAACoB,CAAC,CAAC,CAAC/C,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,EAAE;kBAChDyB,KAAK,GAAGsB,CAAC;kBACT;gBACF;cACF;YACF;YAEA,IAAItB,KAAK,KAAK,CAAC,CAAC,EAAE;cAChB,MAAME,MAAM,GAAG,CACb,GAAGG,KAAK,CAACH,MAAM,EACf;gBACEH,GAAG,EAAE,GAAGoB,MAAM,CAACzC,OAAO,CAACH,IAAI,IAAIJ,MAAM,CAAC,CAAC,EAAE;gBACzCI,IAAI,EAAE4C,MAAM,CAACzC,OAAO,CAACH,IAAI;gBACzBC,MAAM,EACJkB,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAExCG,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EACnC4C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB2C,MAAM,CAACzC,OAAO,CAACF;cACvB,CAAC,CACF;cAED,OAAAc,MAAA,CAAAC,MAAA,KACKc,KAAK;gBACRH,MAAM;gBACNF,KAAK,EAAEE,MAAM,CAACO,MAAM,GAAG;cAAA;YAE3B;YAEA,MAAMF,KAAK,GAAGF,KAAK,CAACH,MAAM,CAACF,KAAK,CAAC;YAEjC,IAAIxB,MAAM;YAEV,IAAI2C,MAAM,CAACzC,OAAO,CAACS,KAAK,EAAE;cACxBX,MAAM,GACJ2C,MAAM,CAACzC,OAAO,CAACF,MAAM,KAAKoB,SAAS,IACnCF,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAE/BG,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,EAC1BgC,KAAK,CAAC/B,MAAM,EACZ2C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB+B,KAAK,CAAC/B,MAAM;YACpB,CAAC,MAAM;cACLA,MAAM,GACJkB,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAE/BG,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,EAC1B4C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB2C,MAAM,CAACzC,OAAO,CAACF,MAAM;YAC7B;YAEA,OAAAc,MAAA,CAAAC,MAAA,KACKc,KAAK;cACRL,KAAK;cACLE,MAAM,EAAE,CACN,GAAGG,KAAK,CAACH,MAAM,CAACe,KAAK,CAAC,CAAC,EAAEjB,KAAK,CAAC,EAC/BxB,MAAM,KAAK+B,KAAK,CAAC/B,MAAM,GAAAc,MAAA,CAAAC,MAAA,KACdgB,KAAK;gBAAE/B;cAAA,KACZ6B,KAAK,CAACH,MAAM,CAACF,KAAK,CAAC;YAAA;UAG7B;QAEA,KAAK,KAAK;UAAE;YACV,MAAMA,KAAK,GACTmB,MAAM,CAACC,MAAM,KAAKf,KAAK,CAACN,GAAG,IAAIoB,MAAM,CAACE,MAAM,GACxChB,KAAK,CAACH,MAAM,CAACa,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACjB,GAAG,KAAKoB,MAAM,CAACE,MAAM,CAAC,GACtDhB,KAAK,CAACL,KAAK;YAEjB,IAAIA,KAAK,GAAG,CAAC,EAAE;cACb,MAAMnB,KAAK,GAAG+B,IAAI,CAACkB,GAAG,CAAC9B,KAAK,GAAGmB,MAAM,CAACzC,OAAO,CAACG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;cAC3D,MAAMqB,MAAM,GAAGG,KAAK,CAACH,MAAM,CACxBe,KAAK,CAAC,CAAC,EAAEpC,KAAK,CAAC,CACfkD,MAAM,CAAC1B,KAAK,CAACH,MAAM,CAACe,KAAK,CAACjB,KAAK,GAAG,CAAC,CAAC,CAAC;cAExC,OAAAV,MAAA,CAAAC,MAAA,KACKc,KAAK;gBACRL,KAAK,EAAEE,MAAM,CAACO,MAAM,GAAG,CAAC;gBACxBP;cAAA;YAEJ;YAEA,OAAO,IAAI;UACb;QAEA,KAAK,YAAY;UACf,OAAOb,MAAM,CAAC6B,iBAAiB,CAC7Bb,KAAK,EACL;YACE5B,IAAI,EAAE,KAAK;YACXC,OAAO,EAAE;cAAEG,KAAK,EAAEwB,KAAK,CAACH,MAAM,CAACO,MAAM,GAAG;YAAE;UAC5C,CAAC,EACDzB,OACF,CAAC;QAEH,KAAK,QAAQ;UAAE;YACb,IAAI,CAACqB,KAAK,CAACZ,UAAU,CAACI,QAAQ,CAACsB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EAAE;cACnD,OAAO,IAAI;YACb;YAGA,IAAIyB,KAAK,GAAG,CAAC,CAAC;YAEd,MAAMuB,KAAK,GAAGvC,OAAO,CAACwC,cAAc,CAACL,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC;YACzD,MAAMkD,EAAE,GAAGF,KAAK,GAAG;cAAE/C,MAAM,EAAE2C,MAAM,CAACzC,OAAO,CAACF;YAAO,CAAC,CAAC;YAErD,IAAIiD,EAAE,EAAE;cACNzB,KAAK,GAAGK,KAAK,CAACH,MAAM,CAACa,SAAS,CAC3BR,KAAK,IACJA,KAAK,CAAChC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,IAClCkD,EAAE,KAAKF,KAAK,GAAG;gBAAE/C,MAAM,EAAE+B,KAAK,CAAC/B;cAAO,CAAC,CAC3C,CAAC;YACH,CAAC,MAAM,IAAI6B,KAAK,CAACH,MAAM,CAACG,KAAK,CAACL,KAAK,CAAC,CAACzB,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,EAAE;cACjEyB,KAAK,GAAGK,KAAK,CAACL,KAAK;YACrB,CAAC,MAAM;cACL,KAAK,IAAIsB,CAAC,GAAGjB,KAAK,CAACH,MAAM,CAACO,MAAM,GAAG,CAAC,EAAEa,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;gBACjD,IAAIjB,KAAK,CAACH,MAAM,CAACoB,CAAC,CAAC,CAAC/C,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,EAAE;kBAChDyB,KAAK,GAAGsB,CAAC;kBACT;gBACF;cACF;YACF;YAGA,IAAItB,KAAK,KAAK,CAAC,CAAC,EAAE;cAChB,MAAME,MAAM,GAAG,CACb,GAAGG,KAAK,CAACH,MAAM,CAACe,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC5B;gBACElB,GAAG,EAAE,GAAGoB,MAAM,CAACzC,OAAO,CAACH,IAAI,IAAIJ,MAAM,CAAC,CAAC,EAAE;gBACzCI,IAAI,EAAE4C,MAAM,CAACzC,OAAO,CAACH,IAAI;gBACzBC,MAAM,EACJkB,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAExCG,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EACnC4C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB2C,MAAM,CAACzC,OAAO,CAACF;cACvB,CAAC,CACF;cAED,OAAAc,MAAA,CAAAC,MAAA,KACKc,KAAK;gBACRH,MAAM;gBACNF,KAAK,EAAEE,MAAM,CAACO,MAAM,GAAG;cAAA;YAE3B;YAEA,MAAMF,KAAK,GAAGF,KAAK,CAACH,MAAM,CAACF,KAAK,CAAC;YAEjC,IAAIxB,MAAM;YAEV,IAAI2C,MAAM,CAACzC,OAAO,CAACS,KAAK,EAAE;cACxBX,MAAM,GACJ2C,MAAM,CAACzC,OAAO,CAACF,MAAM,KAAKoB,SAAS,IACnCF,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAE/BG,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,EAC1BgC,KAAK,CAAC/B,MAAM,EACZ2C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB+B,KAAK,CAAC/B,MAAM;YACpB,CAAC,MAAM;cACLA,MAAM,GACJkB,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAE/BG,cAAc,CAACa,KAAK,CAAChC,IAAI,CAAC,EAC1B4C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB2C,MAAM,CAACzC,OAAO,CAACF,MAAM;YAC7B;YAEA,OAAAc,MAAA,CAAAC,MAAA,KACKc,KAAK;cACRL,KAAK;cACLE,MAAM,EAAE,CACN,GAAGG,KAAK,CAACH,MAAM,CAACe,KAAK,CAAC,CAAC,EAAEjB,KAAK,CAAC,EAC/BxB,MAAM,KAAK+B,KAAK,CAAC/B,MAAM,GAAAc,MAAA,CAAAC,MAAA,KACdgB,KAAK;gBAAE/B;cAAA,KACZ6B,KAAK,CAACH,MAAM,CAACF,KAAK,CAAC;YAAA;UAG7B;QAEA,KAAK,SAAS;UACZ,IAAIK,KAAK,CAACL,KAAK,GAAG,CAAC,EAAE;YACnB,OAAOX,MAAM,CAAC6B,iBAAiB,CAC7Bb,KAAK,EACL;cACE5B,IAAI,EAAE,KAAK;cACXC,OAAO,EAAE;gBAAEG,KAAK,EAAE;cAAE,CAAC;cACrBuC,MAAM,EAAED,MAAM,CAACC,MAAM;cACrBC,MAAM,EAAEF,MAAM,CAACE;YACjB,CAAC,EACDrC,OACF,CAAC;UACH;UAEA,OAAO,IAAI;QAEb,KAAK,SAAS;UAAE;YACd,MAAMuC,KAAK,GAAGvC,OAAO,CAACwC,cAAc,CAACL,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC;YACzD,MAAMkD,EAAE,GAAGF,KAAK,GAAG;cAAE/C,MAAM,EAAE2C,MAAM,CAACzC,OAAO,CAACF;YAAO,CAAC,CAAC;YAErD,IAAI+B,KAAgC;YAEpC,IAAIkB,EAAE,KAAK7B,SAAS,EAAE;cACpBW,KAAK,GAAGF,KAAK,CAACH,MAAM,CAAC0B,IAAI,CACtBrB,KAAK,IACJA,KAAK,CAAChC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,IAClCkD,EAAE,KAAKF,KAAK,GAAG;gBAAE/C,MAAM,EAAE+B,KAAK,CAAC/B;cAAO,CAAC,CAC3C,CAAC;YACH;YAEA,IAAI+B,KAAK,EAAE;cACT,OAAAjB,MAAA,CAAAC,MAAA,KACKc,KAAK;gBACRH,MAAM,EAAEG,KAAK,CAACH,MAAM,CAACM,GAAG,CAAEQ,CAAC,IAAK;kBAC9B,IAAIA,CAAC,CAACjB,GAAG,KAAKQ,KAAK,EAAER,GAAG,EAAE;oBACxB,OAAOiB,CAAC;kBACV;kBACA,OAAA1B,MAAA,CAAAC,MAAA,KACKyB,CAAC;oBACJxC,MAAM,EACJkB,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAExCG,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EACnC4C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB2C,MAAM,CAACzC,OAAO,CAACF;kBAAA;gBAEzB,CAAC;cAAA;YAEL,CAAC,MAAM;cACL,OAAAc,MAAA,CAAAC,MAAA,KACKc,KAAK;gBACRJ,eAAe,EAAEI,KAAK,CAACJ,eAAe,CACnCK,MAAM,CACJU,CAAC,IACAA,CAAC,CAACzC,IAAI,KAAK4C,MAAM,CAACzC,OAAO,CAACH,IAAI,IAC9BkD,EAAE,KAAKF,KAAK,GAAG;kBAAE/C,MAAM,EAAEwC,CAAC,CAACxC;gBAAO,CAAC,CACvC,CAAC,CACAuD,MAAM,CAAC;kBACNhC,GAAG,EAAE,GAAGoB,MAAM,CAACzC,OAAO,CAACH,IAAI,IAAIJ,MAAM,CAAC,CAAC,EAAE;kBACzCI,IAAI,EAAE4C,MAAM,CAACzC,OAAO,CAACH,IAAI;kBACzBC,MAAM,EACJkB,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,KAAKqB,SAAS,GAAAN,MAAA,CAAAC,MAAA,KAExCG,cAAc,CAACyB,MAAM,CAACzC,OAAO,CAACH,IAAI,CAAC,EACnC4C,MAAM,CAACzC,OAAO,CAACF,MAAA,IAEpB2C,MAAM,CAACzC,OAAO,CAACF;gBACvB,CAAC;cAAA;YAEP;UACF;QAEA;UACE,OAAOJ,UAAU,CAAC8C,iBAAiB,CAACb,KAAK,EAAEc,MAAM,CAAC;MACtD;IACF,CAAC;IAEDa,cAAc,EAAE3D;EAAA,EACjB;EAED,OAAOgB,MAAM;AACf","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}