{"version":3,"file":"findRouteNode.js","names":[],"sources":["esm/router/findRouteNode.js"],"sourcesContent":["import { getReactNavigationRouteName } from \"../getReactNavigationConfig\";\nfunction findRouteNodeFromState(state, rootNode) {\n  if (!state || !state.routes || !rootNode) {\n    return null;\n  }\n  const currentRoute = state.routes[state.index ?? state.routes.length - 1];\n  if (!currentRoute) {\n    return null;\n  }\n  const matchingNode = findNodeByRouteName(rootNode, currentRoute.name);\n  if (!matchingNode) {\n    return null;\n  }\n  if (currentRoute.state && currentRoute.state.routes) {\n    const nestedResult = findRouteNodeFromState(currentRoute.state, matchingNode);\n    if (nestedResult) {\n      return nestedResult;\n    }\n  }\n  return matchingNode;\n}\nfunction findNodeByRouteName(node, routeName) {\n  if (getReactNavigationRouteName(node) === routeName) {\n    return node;\n  }\n  for (const child of node.children) {\n    const found = findNodeByRouteName(child, routeName);\n    if (found) {\n      return found;\n    }\n  }\n  return null;\n}\nfunction extractParamsFromState(state) {\n  if (!state || !state.routes) {\n    return {};\n  }\n  const params = {};\n  const route = state.routes[state.index ?? state.routes.length - 1];\n  if (route?.params) {\n    Object.assign(params, route.params);\n  }\n  if (route?.state) {\n    Object.assign(params, extractParamsFromState(route.state));\n  }\n  return params;\n}\nfunction extractSearchFromHref(href) {\n  const searchIndex = href.indexOf(\"?\");\n  if (searchIndex === -1) {\n    return {};\n  }\n  const searchString = href.slice(searchIndex + 1);\n  const params = {};\n  const searchParams = new URLSearchParams(searchString);\n  searchParams.forEach((value, key) => {\n    const existing = params[key];\n    if (existing === void 0) {\n      params[key] = value;\n    } else if (Array.isArray(existing)) {\n      existing.push(value);\n    } else {\n      params[key] = [existing, value];\n    }\n  });\n  return params;\n}\nfunction extractPathnameFromHref(href) {\n  const searchIndex = href.indexOf(\"?\");\n  const hashIndex = href.indexOf(\"#\");\n  let endIndex = href.length;\n  if (searchIndex !== -1) endIndex = Math.min(endIndex, searchIndex);\n  if (hashIndex !== -1) endIndex = Math.min(endIndex, hashIndex);\n  return href.slice(0, endIndex);\n}\nfunction findAllRouteNodesFromState(state, rootNode) {\n  if (!state || !state.routes || !rootNode) {\n    return [];\n  }\n  const nodes = [];\n  function collectNodes(currentState, parentNode) {\n    if (!currentState || !currentState.routes || !parentNode) {\n      return;\n    }\n    const currentRoute = currentState.routes[currentState.index ?? currentState.routes.length - 1];\n    if (!currentRoute) {\n      return;\n    }\n    const matchingNode = findNodeByRouteName(parentNode, currentRoute.name);\n    if (!matchingNode) {\n      if (process.env.NODE_ENV === \"development\") {\n        console.log(\n          \"[one] findAllRouteNodesFromState: could not find node for\",\n          currentRoute.name,\n          \"in\",\n          parentNode.route\n        );\n      }\n      return;\n    }\n    nodes.push(matchingNode);\n    if (currentRoute.state && currentRoute.state.routes) {\n      collectNodes(currentRoute.state, matchingNode);\n    } else if (currentRoute.params?.screen) {\n      const childRouteName = currentRoute.params.screen;\n      const childNode = matchingNode.children.find((c) => c.route === childRouteName);\n      if (childNode) {\n        nodes.push(childNode);\n        if (currentRoute.params.params && currentRoute.params.params.screen) {\n          collectNodes(\n            { routes: [{ name: childRouteName, params: currentRoute.params.params }] },\n            childNode\n          );\n        }\n      }\n    }\n  }\n  collectNodes(state, rootNode);\n  return nodes;\n}\nexport {\n  extractParamsFromState,\n  extractPathnameFromHref,\n  extractSearchFromHref,\n  findAllRouteNodesFromState,\n  findRouteNodeFromState\n};\n//# sourceMappingURL=findRouteNode.js.map\n"],"mappings":"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"}