{"version":3,"file":"sortRoutes.js","names":[],"sources":["esm/router/sortRoutes.js"],"sourcesContent":["import { matchGroupName } from \"./matchers\";\nfunction sortDynamicConvention(a, b) {\n  if (a.deep && !b.deep) {\n    return 1;\n  }\n  if (!a.deep && b.deep) {\n    return -1;\n  }\n  return 0;\n}\nfunction sortRoutes(a, b) {\n  const aDynamicSegments = getDynamicSegments(a);\n  const bDynamicSegments = getDynamicSegments(b);\n  if (aDynamicSegments.length && !bDynamicSegments.length) {\n    return 1;\n  }\n  if (!aDynamicSegments.length && bDynamicSegments.length) {\n    return -1;\n  }\n  if (aDynamicSegments.length && bDynamicSegments.length) {\n    if (aDynamicSegments.length !== bDynamicSegments.length) {\n      return bDynamicSegments.length - aDynamicSegments.length;\n    }\n    for (let i = 0; i < aDynamicSegments.length; i++) {\n      const aDynamic = aDynamicSegments[i];\n      const bDynamic = bDynamicSegments[i];\n      if (aDynamic.notFound && bDynamic.notFound) {\n        const s2 = sortDynamicConvention(aDynamic, bDynamic);\n        if (s2) {\n          return s2;\n        }\n      }\n      if (aDynamic.notFound && !bDynamic.notFound) {\n        return 1;\n      }\n      if (!aDynamic.notFound && bDynamic.notFound) {\n        return -1;\n      }\n      const s = sortDynamicConvention(aDynamic, bDynamic);\n      if (s) {\n        return s;\n      }\n    }\n    return 0;\n  }\n  const aIndex = a.route === \"index\" || matchGroupName(a.route) != null;\n  const bIndex = b.route === \"index\" || matchGroupName(b.route) != null;\n  if (aIndex && !bIndex) {\n    return -1;\n  }\n  if (!aIndex && bIndex) {\n    return 1;\n  }\n  return a.route.length - b.route.length;\n}\nfunction getDynamicSegments(route) {\n  return [\n    ...route.dynamic || [],\n    ...route.layouts?.flatMap((layout) => layout.dynamic || []) || []\n  ];\n}\nfunction sortRoutesWithInitial(initialRouteName) {\n  return (a, b) => {\n    if (initialRouteName) {\n      if (a.route === initialRouteName) {\n        return -1;\n      }\n      if (b.route === initialRouteName) {\n        return 1;\n      }\n    }\n    return sortRoutes(a, b);\n  };\n}\nexport {\n  sortRoutes,\n  sortRoutesWithInitial\n};\n//# sourceMappingURL=sortRoutes.js.map\n"],"mappings":";;;AACA,SAAS,sBAAsB,GAAG,GAAG;CACnC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;EACrB,OAAO;CACT;CACA,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM;EACrB,OAAO,CAAC;CACV;CACA,OAAO;AACT;AACA,SAAS,WAAW,GAAG,GAAG;CACxB,MAAM,mBAAmB,mBAAmB,CAAC;CAC7C,MAAM,mBAAmB,mBAAmB,CAAC;CAC7C,IAAI,iBAAiB,UAAU,CAAC,iBAAiB,QAAQ;EACvD,OAAO;CACT;CACA,IAAI,CAAC,iBAAiB,UAAU,iBAAiB,QAAQ;EACvD,OAAO,CAAC;CACV;CACA,IAAI,iBAAiB,UAAU,iBAAiB,QAAQ;EACtD,IAAI,iBAAiB,WAAW,iBAAiB,QAAQ;GACvD,OAAO,iBAAiB,SAAS,iBAAiB;EACpD;EACA,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;GAChD,MAAM,WAAW,iBAAiB;GAClC,MAAM,WAAW,iBAAiB;GAClC,IAAI,SAAS,YAAY,SAAS,UAAU;IAC1C,MAAM,KAAK,sBAAsB,UAAU,QAAQ;IACnD,IAAI,IAAI;KACN,OAAO;IACT;GACF;GACA,IAAI,SAAS,YAAY,CAAC,SAAS,UAAU;IAC3C,OAAO;GACT;GACA,IAAI,CAAC,SAAS,YAAY,SAAS,UAAU;IAC3C,OAAO,CAAC;GACV;GACA,MAAM,IAAI,sBAAsB,UAAU,QAAQ;GAClD,IAAI,GAAG;IACL,OAAO;GACT;EACF;EACA,OAAO;CACT;CACA,MAAM,SAAS,EAAE,UAAU,WAAW,eAAe,EAAE,KAAK,KAAK;CACjE,MAAM,SAAS,EAAE,UAAU,WAAW,eAAe,EAAE,KAAK,KAAK;CACjE,IAAI,UAAU,CAAC,QAAQ;EACrB,OAAO,CAAC;CACV;CACA,IAAI,CAAC,UAAU,QAAQ;EACrB,OAAO;CACT;CACA,OAAO,EAAE,MAAM,SAAS,EAAE,MAAM;AAClC;AACA,SAAS,mBAAmB,OAAO;CACjC,OAAO,CACL,GAAG,MAAM,WAAW,CAAC,GACrB,GAAG,MAAM,SAAS,SAAS,WAAW,OAAO,WAAW,CAAC,CAAC,KAAK,CAAC,CAClE;AACF;AACA,SAAS,sBAAsB,kBAAkB;CAC/C,QAAQ,GAAG,MAAM;EACf,IAAI,kBAAkB;GACpB,IAAI,EAAE,UAAU,kBAAkB;IAChC,OAAO,CAAC;GACV;GACA,IAAI,EAAE,UAAU,kBAAkB;IAChC,OAAO;GACT;EACF;EACA,OAAO,WAAW,GAAG,CAAC;CACxB;AACF"}