@tanstack/solid-router 1.131.7 → 1.132.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/cjs/Asset.cjs +2 -2
  2. package/dist/cjs/Asset.cjs.map +1 -1
  3. package/dist/cjs/CatchBoundary.cjs +1 -2
  4. package/dist/cjs/CatchBoundary.cjs.map +1 -1
  5. package/dist/cjs/ClientOnly.cjs.map +1 -1
  6. package/dist/cjs/HeadContent.cjs +10 -17
  7. package/dist/cjs/HeadContent.cjs.map +1 -1
  8. package/dist/cjs/Match.cjs +38 -65
  9. package/dist/cjs/Match.cjs.map +1 -1
  10. package/dist/cjs/Matches.cjs +4 -5
  11. package/dist/cjs/Matches.cjs.map +1 -1
  12. package/dist/cjs/RouterProvider.cjs.map +1 -1
  13. package/dist/cjs/SafeFragment.cjs.map +1 -1
  14. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  15. package/dist/cjs/Scripts.cjs +7 -11
  16. package/dist/cjs/Scripts.cjs.map +1 -1
  17. package/dist/cjs/ScrollRestoration.cjs +3 -4
  18. package/dist/cjs/ScrollRestoration.cjs.map +1 -1
  19. package/dist/cjs/Transitioner.cjs.map +1 -1
  20. package/dist/cjs/awaited.cjs.map +1 -1
  21. package/dist/cjs/fileRoute.cjs +5 -5
  22. package/dist/cjs/fileRoute.cjs.map +1 -1
  23. package/dist/cjs/index.cjs +0 -12
  24. package/dist/cjs/index.cjs.map +1 -1
  25. package/dist/cjs/index.d.cts +1 -4
  26. package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
  27. package/dist/cjs/link.cjs +10 -11
  28. package/dist/cjs/link.cjs.map +1 -1
  29. package/dist/cjs/not-found.cjs +2 -4
  30. package/dist/cjs/not-found.cjs.map +1 -1
  31. package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
  32. package/dist/cjs/route.cjs +12 -12
  33. package/dist/cjs/route.cjs.map +1 -1
  34. package/dist/cjs/router.cjs.map +1 -1
  35. package/dist/cjs/routerContext.cjs.map +1 -1
  36. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  37. package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
  38. package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
  39. package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -1
  40. package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -1
  41. package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
  42. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
  43. package/dist/cjs/useBlocker.cjs +2 -2
  44. package/dist/cjs/useBlocker.cjs.map +1 -1
  45. package/dist/cjs/useCanGoBack.cjs.map +1 -1
  46. package/dist/cjs/useLoaderData.cjs.map +1 -1
  47. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  48. package/dist/cjs/useLocation.cjs +1 -1
  49. package/dist/cjs/useLocation.cjs.map +1 -1
  50. package/dist/cjs/useMatch.cjs.map +1 -1
  51. package/dist/cjs/useNavigate.cjs +1 -1
  52. package/dist/cjs/useNavigate.cjs.map +1 -1
  53. package/dist/cjs/useParams.cjs.map +1 -1
  54. package/dist/cjs/useRouter.cjs +1 -1
  55. package/dist/cjs/useRouter.cjs.map +1 -1
  56. package/dist/cjs/useRouterState.cjs +3 -3
  57. package/dist/cjs/useRouterState.cjs.map +1 -1
  58. package/dist/cjs/useSearch.cjs.map +1 -1
  59. package/dist/cjs/utils.cjs +1 -1
  60. package/dist/cjs/utils.cjs.map +1 -1
  61. package/dist/esm/Asset.js +2 -2
  62. package/dist/esm/Asset.js.map +1 -1
  63. package/dist/esm/CatchBoundary.js +1 -2
  64. package/dist/esm/CatchBoundary.js.map +1 -1
  65. package/dist/esm/ClientOnly.js.map +1 -1
  66. package/dist/esm/HeadContent.js +10 -17
  67. package/dist/esm/HeadContent.js.map +1 -1
  68. package/dist/esm/Match.js +39 -66
  69. package/dist/esm/Match.js.map +1 -1
  70. package/dist/esm/Matches.js +4 -5
  71. package/dist/esm/Matches.js.map +1 -1
  72. package/dist/esm/RouterProvider.js.map +1 -1
  73. package/dist/esm/SafeFragment.js.map +1 -1
  74. package/dist/esm/ScriptOnce.js.map +1 -1
  75. package/dist/esm/Scripts.js +7 -11
  76. package/dist/esm/Scripts.js.map +1 -1
  77. package/dist/esm/ScrollRestoration.js +3 -4
  78. package/dist/esm/ScrollRestoration.js.map +1 -1
  79. package/dist/esm/Transitioner.js.map +1 -1
  80. package/dist/esm/awaited.js.map +1 -1
  81. package/dist/esm/fileRoute.js +5 -5
  82. package/dist/esm/fileRoute.js.map +1 -1
  83. package/dist/esm/index.d.ts +1 -4
  84. package/dist/esm/index.js +2 -8
  85. package/dist/esm/index.js.map +1 -1
  86. package/dist/esm/lazyRouteComponent.js.map +1 -1
  87. package/dist/esm/link.js +10 -11
  88. package/dist/esm/link.js.map +1 -1
  89. package/dist/esm/not-found.js +2 -4
  90. package/dist/esm/not-found.js.map +1 -1
  91. package/dist/esm/renderRouteNotFound.js.map +1 -1
  92. package/dist/esm/route.js +12 -12
  93. package/dist/esm/route.js.map +1 -1
  94. package/dist/esm/router.js.map +1 -1
  95. package/dist/esm/routerContext.js.map +1 -1
  96. package/dist/esm/scroll-restoration.js.map +1 -1
  97. package/dist/esm/ssr/RouterClient.js.map +1 -1
  98. package/dist/esm/ssr/RouterServer.js.map +1 -1
  99. package/dist/esm/ssr/defaultRenderHandler.js.map +1 -1
  100. package/dist/esm/ssr/defaultStreamHandler.js.map +1 -1
  101. package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
  102. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  103. package/dist/esm/useBlocker.js +2 -2
  104. package/dist/esm/useBlocker.js.map +1 -1
  105. package/dist/esm/useCanGoBack.js.map +1 -1
  106. package/dist/esm/useLoaderData.js.map +1 -1
  107. package/dist/esm/useLoaderDeps.js.map +1 -1
  108. package/dist/esm/useLocation.js +1 -1
  109. package/dist/esm/useLocation.js.map +1 -1
  110. package/dist/esm/useMatch.js.map +1 -1
  111. package/dist/esm/useNavigate.js +1 -1
  112. package/dist/esm/useNavigate.js.map +1 -1
  113. package/dist/esm/useParams.js.map +1 -1
  114. package/dist/esm/useRouter.js +1 -1
  115. package/dist/esm/useRouter.js.map +1 -1
  116. package/dist/esm/useRouterState.js +3 -3
  117. package/dist/esm/useRouterState.js.map +1 -1
  118. package/dist/esm/useSearch.js.map +1 -1
  119. package/dist/esm/utils.js +1 -1
  120. package/dist/esm/utils.js.map +1 -1
  121. package/dist/source/Match.jsx +33 -33
  122. package/dist/source/Match.jsx.map +1 -1
  123. package/dist/source/index.d.ts +1 -4
  124. package/dist/source/index.jsx +1 -4
  125. package/dist/source/index.jsx.map +1 -1
  126. package/dist/source/useBlocker.jsx +1 -1
  127. package/dist/source/useBlocker.jsx.map +1 -1
  128. package/package.json +4 -4
  129. package/src/Match.tsx +36 -35
  130. package/src/index.tsx +0 -5
  131. package/src/useBlocker.tsx +1 -1
@@ -40,7 +40,7 @@ function Script({
40
40
  children
41
41
  }) {
42
42
  Solid$1.onMount(() => {
43
- if (attrs == null ? void 0 : attrs.src) {
43
+ if (attrs?.src) {
44
44
  const script = document.createElement("script");
45
45
  for (const [key, value] of Object.entries(attrs)) {
46
46
  if (value !== void 0 && value !== false) {
@@ -71,7 +71,7 @@ function Script({
71
71
  });
72
72
  }
73
73
  });
74
- if ((attrs == null ? void 0 : attrs.src) && typeof attrs.src === "string") {
74
+ if (attrs?.src && typeof attrs.src === "string") {
75
75
  return (() => {
76
76
  var _el$2 = _tmpl$2();
77
77
  Solid.spread(_el$2, attrs, false, false);
@@ -1 +1 @@
1
- {"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport { onCleanup, onMount } from 'solid-js'\nimport type { RouterManagedTag } from '@tanstack/router-core'\nimport type { JSX } from 'solid-js'\n\nexport function Asset({\n tag,\n attrs,\n children,\n}: RouterManagedTag): JSX.Element | null {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n return <Script attrs={attrs}>{children}</Script>\n default:\n return null\n }\n}\n\ninterface ScriptAttrs {\n [key: string]: string | boolean | undefined\n src?: string\n}\n\nfunction Script({\n attrs,\n children,\n}: {\n attrs?: ScriptAttrs\n children?: string\n}): JSX.Element | null {\n onMount(() => {\n if (attrs?.src) {\n const script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n } else if (typeof children === 'string') {\n const script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n }\n })\n\n if (attrs?.src && typeof attrs.src === 'string') {\n return <script {...attrs} />\n }\n\n if (typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n return null\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","Script","onMount","src","script","document","createElement","key","value","Object","entries","undefined","setAttribute","String","head","appendChild","onCleanup","parentNode","removeChild","textContent","_el$2","_tmpl$2","_el$3"],"mappings":";;;;;;AAKO,SAASA,MAAM;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AACgB,GAAuB;AACvC,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,sBAAQC,KAAAA,OAAKC,MAAAA,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,MAAAA,gBAAQG,WAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,cAAAA,OAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,sBAAQM,KAAAA,OAAKJ,MAAAA,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACH,aAAAC,MAAAA,gBAAQQ,QAAM;AAAA,QAACV;AAAAA,QAAYC;AAAAA,MAAAA,CAAW;AAAA,IACxC;AACS,aAAA;AAAA,EAAA;AAEb;AAOA,SAASS,OAAO;AAAA,EACdV;AAAAA,EACAC;AAIF,GAAuB;AACrBU,UAAAA,QAAQ,MAAM;AACZ,QAAIX,+BAAOY,KAAK;AACRC,YAAAA,SAASC,SAASC,cAAc,QAAQ;AAE9C,iBAAW,CAACC,KAAKC,KAAK,KAAKC,OAAOC,QAAQnB,KAAK,GAAG;AAC5CiB,YAAAA,UAAUG,UAAaH,UAAU,OAAO;AACnCI,iBAAAA,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,QAAA;AAAA,MACF;AAGOM,eAAAA,KAAKC,YAAYX,MAAM;AAEhCY,cAAAA,UAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACdA,iBAAAA,WAAWC,YAAYd,MAAM;AAAA,QAAA;AAAA,MACtC,CACD;AAAA,IAAA,WACQ,OAAOZ,aAAa,UAAU;AACjCY,YAAAA,SAASC,SAASC,cAAc,QAAQ;AAC9CF,aAAOe,cAAc3B;AAErB,UAAID,OAAO;AACT,mBAAW,CAACgB,KAAKC,KAAK,KAAKC,OAAOC,QAAQnB,KAAK,GAAG;AAC5CiB,cAAAA,UAAUG,UAAaH,UAAU,OAAO;AACnCI,mBAAAA,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAGOM,eAAAA,KAAKC,YAAYX,MAAM;AAEhCY,cAAAA,UAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACdA,iBAAAA,WAAWC,YAAYd,MAAM;AAAA,QAAA;AAAA,MACtC,CACD;AAAA,IAAA;AAAA,EACH,CACD;AAED,OAAIb,+BAAOY,QAAO,OAAOZ,MAAMY,QAAQ,UAAU;AAC/C,YAAA,MAAA;AAAA,UAAAiB,QAAAC,QAAA;AAAAD,YAAAA,OAAAA,OAAmB7B,OAAK,OAAA,KAAA;AAAA6B,aAAAA;AAAAA,IAAAA,GAAA;AAAA,EAAA;AAGtB,MAAA,OAAO5B,aAAa,UAAU;AAChC,YAAA,MAAA;AAAA,UAAA8B,QAAAD,QAAA;AAAAC,mBAAAA,OAAA3B,iBAAmBJ,OAAK;AAAA,QAAA,aAAaC;AAAAA,MAAAA,CAAQ,GAAA,OAAA,KAAA;AAAA8B,aAAAA;AAAAA,IAAAA,GAAA;AAAA,EAAA;AAGxC,SAAA;AACT;;"}
1
+ {"version":3,"file":"Asset.cjs","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport { onCleanup, onMount } from 'solid-js'\nimport type { RouterManagedTag } from '@tanstack/router-core'\nimport type { JSX } from 'solid-js'\n\nexport function Asset({\n tag,\n attrs,\n children,\n}: RouterManagedTag): JSX.Element | null {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n return <Script attrs={attrs}>{children}</Script>\n default:\n return null\n }\n}\n\ninterface ScriptAttrs {\n [key: string]: string | boolean | undefined\n src?: string\n}\n\nfunction Script({\n attrs,\n children,\n}: {\n attrs?: ScriptAttrs\n children?: string\n}): JSX.Element | null {\n onMount(() => {\n if (attrs?.src) {\n const script = document.createElement('script')\n\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n } else if (typeof children === 'string') {\n const script = document.createElement('script')\n script.textContent = children\n\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (value !== undefined && value !== false) {\n script.setAttribute(\n key,\n typeof value === 'boolean' ? '' : String(value),\n )\n }\n }\n }\n\n document.head.appendChild(script)\n\n onCleanup(() => {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n }\n })\n\n if (attrs?.src && typeof attrs.src === 'string') {\n return <script {...attrs} />\n }\n\n if (typeof children === 'string') {\n return <script {...attrs} innerHTML={children} />\n }\n\n return null\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","_$spread","Style","innerHTML","Script","onMount","src","script","document","createElement","key","value","Object","entries","undefined","setAttribute","String","head","appendChild","onCleanup","parentNode","removeChild","textContent","_el$2","_tmpl$2","_el$3"],"mappings":";;;;;;AAKO,SAASA,MAAM;AAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AACgB,GAAuB;AACvC,UAAQF,KAAAA;AAAAA,IACN,KAAK;AACH,aAAAG,sBAAQC,KAAAA,OAAKC,MAAAA,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACH,aAAAC,MAAAA,gBAAQG,KAAAA,MAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAAA;AAAAC,cAAAA,OAAAF,MAAiBN,OAAK,OAAA,KAAA;AAAA,eAAAM;AAAAA,MAAA,GAAA;AAAA,IACxB,KAAK;AACH,aAAAJ,sBAAQO,KAAAA,OAAKL,MAAAA,WAAKJ,OAAK;AAAA,QAAEU,WAAWT;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACH,aAAAC,MAAAA,gBAAQS,QAAM;AAAA,QAACX;AAAAA,QAAYC;AAAAA,MAAAA,CAAW;AAAA,IACxC;AACE,aAAO;AAAA,EAAA;AAEb;AAOA,SAASU,OAAO;AAAA,EACdX;AAAAA,EACAC;AAIF,GAAuB;AACrBW,UAAAA,QAAQ,MAAM;AACZ,QAAIZ,OAAOa,KAAK;AACd,YAAMC,SAASC,SAASC,cAAc,QAAQ;AAE9C,iBAAW,CAACC,KAAKC,KAAK,KAAKC,OAAOC,QAAQpB,KAAK,GAAG;AAChD,YAAIkB,UAAUG,UAAaH,UAAU,OAAO;AAC1CJ,iBAAOQ,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,QACF;AAAA,MACF;AAEAH,eAASS,KAAKC,YAAYX,MAAM;AAEhCY,cAAAA,UAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACrBb,iBAAOa,WAAWC,YAAYd,MAAM;AAAA,QACtC;AAAA,MACF,CAAC;AAAA,IACH,WAAW,OAAOb,aAAa,UAAU;AACvC,YAAMa,SAASC,SAASC,cAAc,QAAQ;AAC9CF,aAAOe,cAAc5B;AAErB,UAAID,OAAO;AACT,mBAAW,CAACiB,KAAKC,KAAK,KAAKC,OAAOC,QAAQpB,KAAK,GAAG;AAChD,cAAIkB,UAAUG,UAAaH,UAAU,OAAO;AAC1CJ,mBAAOQ,aACLL,KACA,OAAOC,UAAU,YAAY,KAAKK,OAAOL,KAAK,CAChD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEAH,eAASS,KAAKC,YAAYX,MAAM;AAEhCY,cAAAA,UAAU,MAAM;AACd,YAAIZ,OAAOa,YAAY;AACrBb,iBAAOa,WAAWC,YAAYd,MAAM;AAAA,QACtC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,MAAId,OAAOa,OAAO,OAAOb,MAAMa,QAAQ,UAAU;AAC/C,YAAA,MAAA;AAAA,UAAAiB,QAAAC,QAAAA;AAAAvB,YAAAA,OAAAsB,OAAmB9B,OAAK,OAAA,KAAA;AAAA,aAAA8B;AAAAA,IAAA,GAAA;AAAA,EAC1B;AAEA,MAAI,OAAO7B,aAAa,UAAU;AAChC,YAAA,MAAA;AAAA,UAAA+B,QAAAD,QAAAA;AAAAvB,mBAAAwB,OAAA5B,MAAAA,WAAmBJ,OAAK;AAAA,QAAA,aAAaC;AAAAA,MAAAA,CAAQ,GAAA,OAAA,KAAA;AAAA,aAAA+B;AAAAA,IAAA,GAAA;AAAA,EAC/C;AAEA,SAAO;AACT;;"}
@@ -23,8 +23,7 @@ var _tmpl$ = /* @__PURE__ */ Solid.template(`<div><div><strong>Something went wr
23
23
  function CatchBoundary(props) {
24
24
  return Solid.createComponent(Solid__namespace.ErrorBoundary, {
25
25
  fallback: (error, reset) => {
26
- var _a;
27
- (_a = props.onCatch) == null ? void 0 : _a.call(props, error);
26
+ props.onCatch?.(error);
28
27
  Solid__namespace.createEffect(Solid__namespace.on([props.getResetKey], () => reset(), {
29
28
  defer: true
30
29
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"CatchBoundary.cjs","sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Dynamic } from 'solid-js/web'\nimport type { ErrorRouteComponent } from './route'\n\nexport function CatchBoundary(\n props: {\n getResetKey: () => number | string\n children: Solid.JSX.Element\n errorComponent?: ErrorRouteComponent\n onCatch?: (error: Error) => void\n } & Solid.ParentProps,\n) {\n return (\n <Solid.ErrorBoundary\n fallback={(error, reset) => {\n props.onCatch?.(error)\n\n Solid.createEffect(\n Solid.on([props.getResetKey], () => reset(), { defer: true }),\n )\n\n return (\n <Dynamic\n component={props.errorComponent ?? ErrorComponent}\n error={error}\n reset={reset}\n />\n )\n }}\n >\n {props.children}\n </Solid.ErrorBoundary>\n )\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = Solid.createSignal(\n process.env.NODE_ENV !== 'production',\n )\n\n return (\n <div style={{ padding: '.5rem', 'max-width': '100%' }}>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n <strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n 'font-size': '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n 'font-weight': 'bold',\n 'border-radius': '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show() ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show() ? (\n <div>\n <pre\n style={{\n 'font-size': '.7em',\n border: '1px solid red',\n 'border-radius': '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["CatchBoundary","props","_$createComponent","Solid","ErrorBoundary","fallback","error","reset","onCatch","createEffect","on","getResetKey","defer","Dynamic","component","errorComponent","ErrorComponent","children","show","setShow","createSignal","process","env","NODE_ENV","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","style","setProperty","$$click","d","_$insert","_c$","_$memo","_el$6","_tmpl$2","_el$7","_c$2","message","_el$8","_tmpl$3","_$delegateEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,SAASA,cACdC,OAMA;AACAC,SAAAA,MAAAA,gBACGC,iBAAMC,eAAa;AAAA,IAClBC,UAAUA,CAACC,OAAOC,UAAU;;AAC1BN,kBAAMO,YAANP,+BAAgBK;AAEVG,uBAAAA,aACJN,iBAAMO,GAAG,CAACT,MAAMU,WAAW,GAAG,MAAMJ,SAAS;AAAA,QAAEK,OAAO;AAAA,MAAA,CAAM,CAC9D;AAEA,aAAAV,MAAAA,gBACGW,MAAAA,SAAO;AAAA,QAAA,IACNC,YAAS;AAAA,iBAAEb,MAAMc,kBAAkBC;AAAAA,QAAc;AAAA,QACjDV;AAAAA,QACAC;AAAAA,MAAAA,CAAY;AAAA,IAGlB;AAAA,IAAC,IAAAU,WAAA;AAAA,aAEAhB,MAAMgB;AAAAA,IAAAA;AAAAA,EAAQ,CAAA;AAGrB;AAEO,SAASD,eAAe;AAAA,EAAEV;AAAsB,GAAG;AAClD,QAAA,CAACY,MAAMC,OAAO,IAAIhB,iBAAMiB,aAC5BC,QAAQC,IAAIC,aAAa,YAC3B;AAEA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAC,GAAAA,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAE,aAAAC,QAAAL,MAAAI;AAAAE,SAAAA,MAAAC,YAAA,WAAA,OAAA;AAAAD,SAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,WAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,eAAA,QAAA;AAAAD,UAAAA,MAAAC,YAAA,OAAA,OAAA;AAAAD,UAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAJ,UAAAK,UAaiB,MAAMf,QAASgB,CAAAA,MAAM,CAACA,CAAC;AAACH,UAAAA,MAAAC,YAAA,cAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,UAAA,wBAAA;AAAAD,UAAAA,MAAAC,YAAA,WAAA,aAAA;AAAAD,UAAAA,MAAAC,YAAA,eAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,iBAAA,QAAA;AAAAG,UAAAA,OAAAP,OAEhCX,MAAAA,KAAK,IAAI,eAAe,YAAY;AAAAc,UAAAA,MAAAC,YAAA,UAAA,QAAA;AAAAG,UAAAA,OAAAZ,OAAA,MAAA;AAAA,UAAAa,MAAAC,MAIxCpB,KAAAA,MAAAA,CAAAA,CAAAA,MAAM;AAAA,aAAA,MAANmB,IAAA,KAAA,MAAA;AAAA,YAAAE,QAAAC,QAAAA,GAAAC,QAAAF,MAAAZ;AAAAK,cAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,cAAAA,MAAAC,YAAA,UAAA,eAAA;AAAAD,cAAAA,MAAAC,YAAA,iBAAA,QAAA;AAAAD,cAAAA,MAAAC,YAAA,WAAA,OAAA;AAAAD,cAAAA,MAAAC,YAAA,SAAA,KAAA;AAAAD,cAAAA,MAAAC,YAAA,YAAA,MAAA;AAAAG,cAAAA,OAAAK,QAAA,MAAA;AAAA,cAAAC,OAAAJ,MAYMhC,KAAAA,MAAAA,CAAAA,CAAAA,MAAMqC,OAAO;AAAA,iBAAA,MAAbD,KAAA,KAAA,MAAA;AAAA,gBAAAE,QAAAC,QAAA;AAAAD,kBAAAA,OAAAA,OAAuBtC,MAAAA,MAAMqC,OAAO;AAAAC,mBAAAA;AAAAA,iBAAW;AAAA,QAAA,IAAI;AAAAL,eAAAA;AAAAA,aAGtD;AAAA,IAAI,GAAA,GAAA,IAAA;AAAAf,WAAAA;AAAAA,EAAAA,GAAA;AAGd;AAACsB,MAAAA,eAAA,CAAA,OAAA,CAAA;;;"}
1
+ {"version":3,"file":"CatchBoundary.cjs","sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Dynamic } from 'solid-js/web'\nimport type { ErrorRouteComponent } from './route'\n\nexport function CatchBoundary(\n props: {\n getResetKey: () => number | string\n children: Solid.JSX.Element\n errorComponent?: ErrorRouteComponent\n onCatch?: (error: Error) => void\n } & Solid.ParentProps,\n) {\n return (\n <Solid.ErrorBoundary\n fallback={(error, reset) => {\n props.onCatch?.(error)\n\n Solid.createEffect(\n Solid.on([props.getResetKey], () => reset(), { defer: true }),\n )\n\n return (\n <Dynamic\n component={props.errorComponent ?? ErrorComponent}\n error={error}\n reset={reset}\n />\n )\n }}\n >\n {props.children}\n </Solid.ErrorBoundary>\n )\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = Solid.createSignal(\n process.env.NODE_ENV !== 'production',\n )\n\n return (\n <div style={{ padding: '.5rem', 'max-width': '100%' }}>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n <strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n 'font-size': '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n 'font-weight': 'bold',\n 'border-radius': '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show() ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show() ? (\n <div>\n <pre\n style={{\n 'font-size': '.7em',\n border: '1px solid red',\n 'border-radius': '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["CatchBoundary","props","_$createComponent","Solid","ErrorBoundary","fallback","error","reset","onCatch","createEffect","on","getResetKey","defer","Dynamic","component","errorComponent","ErrorComponent","children","show","setShow","createSignal","process","env","NODE_ENV","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","style","setProperty","$$click","d","_$insert","_c$","_$memo","_el$6","_tmpl$2","_el$7","_c$2","message","_el$8","_tmpl$3","_$delegateEvents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIO,SAASA,cACdC,OAMA;AACA,SAAAC,MAAAA,gBACGC,iBAAMC,eAAa;AAAA,IAClBC,UAAUA,CAACC,OAAOC,UAAU;AAC1BN,YAAMO,UAAUF,KAAK;AAErBH,uBAAMM,aACJN,iBAAMO,GAAG,CAACT,MAAMU,WAAW,GAAG,MAAMJ,SAAS;AAAA,QAAEK,OAAO;AAAA,MAAA,CAAM,CAC9D;AAEA,aAAAV,MAAAA,gBACGW,MAAAA,SAAO;AAAA,QAAA,IACNC,YAAS;AAAA,iBAAEb,MAAMc,kBAAkBC;AAAAA,QAAc;AAAA,QACjDV;AAAAA,QACAC;AAAAA,MAAAA,CAAY;AAAA,IAGlB;AAAA,IAAC,IAAAU,WAAA;AAAA,aAEAhB,MAAMgB;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;AAEO,SAASD,eAAe;AAAA,EAAEV;AAAsB,GAAG;AACxD,QAAM,CAACY,MAAMC,OAAO,IAAIhB,iBAAMiB,aAC5BC,QAAQC,IAAIC,aAAa,YAC3B;AAEA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA,GAAAC,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAE,aAAAC,QAAAL,MAAAI;AAAAN,SAAAQ,MAAAC,YAAA,WAAA,OAAA;AAAAT,SAAAQ,MAAAC,YAAA,aAAA,MAAA;AAAAP,UAAAM,MAAAC,YAAA,WAAA,MAAA;AAAAP,UAAAM,MAAAC,YAAA,eAAA,QAAA;AAAAP,UAAAM,MAAAC,YAAA,OAAA,OAAA;AAAAL,UAAAI,MAAAC,YAAA,aAAA,MAAA;AAAAJ,UAAAK,UAaiB,MAAMf,QAASgB,CAAAA,MAAM,CAACA,CAAC;AAACN,UAAAG,MAAAC,YAAA,cAAA,MAAA;AAAAJ,UAAAG,MAAAC,YAAA,aAAA,MAAA;AAAAJ,UAAAG,MAAAC,YAAA,UAAA,wBAAA;AAAAJ,UAAAG,MAAAC,YAAA,WAAA,aAAA;AAAAJ,UAAAG,MAAAC,YAAA,eAAA,MAAA;AAAAJ,UAAAG,MAAAC,YAAA,iBAAA,QAAA;AAAAG,UAAAA,OAAAP,OAAA,MAEhCX,KAAAA,IAAS,eAAe,YAAY;AAAAa,UAAAC,MAAAC,YAAA,UAAA,QAAA;AAAAG,UAAAA,OAAAZ,OAAA,MAAA;AAAA,UAAAa,MAAAC,MAAAA,KAAA,MAAA,CAAA,CAIxCpB,MAAM;AAAA,aAAA,MAANmB,IAAAA,KAAA,MAAA;AAAA,YAAAE,QAAAC,QAAAA,GAAAC,QAAAF,MAAAZ;AAAAc,cAAAT,MAAAC,YAAA,aAAA,MAAA;AAAAQ,cAAAT,MAAAC,YAAA,UAAA,eAAA;AAAAQ,cAAAT,MAAAC,YAAA,iBAAA,QAAA;AAAAQ,cAAAT,MAAAC,YAAA,WAAA,OAAA;AAAAQ,cAAAT,MAAAC,YAAA,SAAA,KAAA;AAAAQ,cAAAT,MAAAC,YAAA,YAAA,MAAA;AAAAG,cAAAA,OAAAK,QAAA,MAAA;AAAA,cAAAC,OAAAJ,MAAAA,KAAA,MAAA,CAAA,CAYMhC,MAAMqC,OAAO;AAAA,iBAAA,MAAbD,KAAAA,KAAA,MAAA;AAAA,gBAAAE,QAAAC,QAAAA;AAAAT,kBAAAA,OAAAQ,OAAA,MAAuBtC,MAAMqC,OAAO;AAAA,mBAAAC;AAAAA,UAAA,OAAW;AAAA,QAAI,IAAA;AAAA,eAAAL;AAAAA,MAAA,OAGtD;AAAA,IAAI,GAAA,GAAA,IAAA;AAAA,WAAAf;AAAAA,EAAA,GAAA;AAGd;AAACsB,MAAAA,eAAA,CAAA,OAAA,CAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClientOnly.cjs","sources":["../../src/ClientOnly.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { isServer } from 'solid-js/web'\n\nexport interface ClientOnlyProps {\n /**\n * The children to render if the JS is loaded.\n */\n children: Solid.JSX.Element\n /**\n * The fallback component to render if the JS is not yet loaded.\n */\n fallback?: Solid.JSX.Element\n}\n\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * @example\n * Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n *\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * <Chart />\n * </ClientOnly>\n * )\n * ```\n */\nexport function ClientOnly(props: ClientOnlyProps) {\n return (\n <Solid.Show when={!isServer} fallback={props.fallback}>\n <>{props.children}</>\n </Solid.Show>\n )\n}\n"],"names":["ClientOnly","props","_$createComponent","Solid","Show","when","isServer","fallback","children","_$memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+BO,SAASA,WAAWC,OAAwB;AACjDC,SAAAA,MAAAA,gBACGC,iBAAMC,MAAI;AAAA,IAACC,MAAM,CAACC,MAAAA;AAAAA,IAAQ,IAAEC,WAAQ;AAAA,aAAEN,MAAMM;AAAAA,IAAQ;AAAA,IAAA,IAAAC,WAAA;AAAAC,aAAAA,MAAAA,KAAA,MAChDR,MAAMO,QAAQ;AAAA,IAAA;AAAA,EAAA,CAAA;AAGvB;;"}
1
+ {"version":3,"file":"ClientOnly.cjs","sources":["../../src/ClientOnly.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { isServer } from 'solid-js/web'\n\nexport interface ClientOnlyProps {\n /**\n * The children to render if the JS is loaded.\n */\n children: Solid.JSX.Element\n /**\n * The fallback component to render if the JS is not yet loaded.\n */\n fallback?: Solid.JSX.Element\n}\n\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * @example\n * Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n *\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * <Chart />\n * </ClientOnly>\n * )\n * ```\n */\nexport function ClientOnly(props: ClientOnlyProps) {\n return (\n <Solid.Show when={!isServer} fallback={props.fallback}>\n <>{props.children}</>\n </Solid.Show>\n )\n}\n"],"names":["ClientOnly","props","_$createComponent","Solid","Show","when","isServer","fallback","children","_$memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+BO,SAASA,WAAWC,OAAwB;AACjD,SAAAC,MAAAA,gBACGC,iBAAMC,MAAI;AAAA,IAACC,MAAM,CAACC,MAAAA;AAAAA,IAAQ,IAAEC,WAAQ;AAAA,aAAEN,MAAMM;AAAAA,IAAQ;AAAA,IAAA,IAAAC,WAAA;AAAA,aAAAC,MAAAA,KAAA,MAChDR,MAAMO,QAAQ;AAAA,IAAA;AAAA,EAAA,CAAA;AAGvB;;"}
@@ -70,18 +70,14 @@ const useTags = () => {
70
70
  });
71
71
  const links = useRouterState.useRouterState({
72
72
  select: (state) => {
73
- var _a;
74
73
  const constructed = state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({
75
74
  tag: "link",
76
75
  attrs: {
77
76
  ...link
78
77
  }
79
78
  }));
80
- const manifest = (_a = router.ssr) == null ? void 0 : _a.manifest;
81
- const assets = state.matches.map((match) => {
82
- var _a2;
83
- return ((_a2 = manifest == null ? void 0 : manifest.routes[match.routeId]) == null ? void 0 : _a2.assets) ?? [];
84
- }).filter(Boolean).flat(1).filter((asset) => asset.tag === "link").map((asset) => ({
79
+ const manifest = router.ssr?.manifest;
80
+ const assets = state.matches.map((match) => manifest?.routes[match.routeId]?.assets ?? []).filter(Boolean).flat(1).filter((asset) => asset.tag === "link").map((asset) => ({
85
81
  tag: "link",
86
82
  attrs: asset.attrs
87
83
  }));
@@ -91,18 +87,15 @@ const useTags = () => {
91
87
  const preloadMeta = useRouterState.useRouterState({
92
88
  select: (state) => {
93
89
  const preloadMeta2 = [];
94
- state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach((route) => {
95
- var _a, _b, _c, _d;
96
- return (_d = (_c = (_b = (_a = router.ssr) == null ? void 0 : _a.manifest) == null ? void 0 : _b.routes[route.id]) == null ? void 0 : _c.preloads) == null ? void 0 : _d.filter(Boolean).forEach((preload) => {
97
- preloadMeta2.push({
98
- tag: "link",
99
- attrs: {
100
- rel: "modulepreload",
101
- href: preload
102
- }
103
- });
90
+ state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach((route) => router.ssr?.manifest?.routes[route.id]?.preloads?.filter(Boolean).forEach((preload) => {
91
+ preloadMeta2.push({
92
+ tag: "link",
93
+ attrs: {
94
+ rel: "modulepreload",
95
+ href: preload
96
+ }
104
97
  });
105
- });
98
+ }));
106
99
  return preloadMeta2;
107
100
  }
108
101
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HeadContent.cjs","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { MetaProvider } from '@solidjs/meta'\nimport { Asset } from './Asset'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const useTags = () => {\n const router = useRouter()\n\n const routeMeta = useRouterState({\n select: (state) => {\n return state.matches.map((match) => match.meta!).filter(Boolean)\n },\n })\n\n const meta: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\n const resultMeta: Array<RouterManagedTag> = []\n const metaByAttribute: Record<string, true> = {}\n let title: RouterManagedTag | undefined\n ;[...routeMeta()].reverse().forEach((metas) => {\n ;[...metas].reverse().forEach((m) => {\n if (!m) return\n\n if (m.title) {\n if (!title) {\n title = {\n tag: 'title',\n children: m.title,\n }\n }\n } else {\n const attribute = m.name ?? m.property\n if (attribute) {\n if (metaByAttribute[attribute]) {\n return\n } else {\n metaByAttribute[attribute] = true\n }\n }\n\n resultMeta.push({\n tag: 'meta',\n attrs: {\n ...m,\n },\n })\n }\n })\n })\n\n if (title) {\n resultMeta.push(title)\n }\n\n resultMeta.reverse()\n\n return resultMeta\n })\n\n const links = useRouterState({\n select: (state) => {\n const constructed = state.matches\n .map((match) => match.links!)\n .filter(Boolean)\n .flat(1)\n .map((link) => ({\n tag: 'link',\n attrs: {\n ...link,\n },\n })) satisfies Array<RouterManagedTag>\n\n const manifest = router.ssr?.manifest\n\n // These are the assets extracted from the ViteManifest\n // using the `startManifestPlugin`\n const assets = state.matches\n .map((match) => manifest?.routes[match.routeId]?.assets ?? [])\n .filter(Boolean)\n .flat(1)\n .filter((asset) => asset.tag === 'link')\n .map(\n (asset) =>\n ({\n tag: 'link',\n attrs: asset.attrs,\n }) satisfies RouterManagedTag,\n )\n\n return [...constructed, ...assets]\n },\n })\n\n const preloadMeta = useRouterState({\n select: (state) => {\n const preloadMeta: Array<RouterManagedTag> = []\n\n state.matches\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n router.ssr?.manifest?.routes[route.id]?.preloads\n ?.filter(Boolean)\n .forEach((preload) => {\n preloadMeta.push({\n tag: 'link',\n attrs: {\n rel: 'modulepreload',\n href: preload,\n },\n })\n }),\n )\n\n return preloadMeta\n },\n })\n\n const styles = useRouterState({\n select: (state) =>\n (\n state.matches\n .map((match) => match.styles!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...style }) => ({\n tag: 'style',\n attrs: {\n ...style,\n },\n children,\n })),\n })\n\n const headScripts = useRouterState({\n select: (state) =>\n (\n state.matches\n .map((match) => match.headScripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n },\n children,\n })),\n })\n\n return () =>\n uniqBy(\n [\n ...meta(),\n ...preloadMeta(),\n ...links(),\n ...styles(),\n ...headScripts(),\n ] as Array<RouterManagedTag>,\n (d) => {\n return JSON.stringify(d)\n },\n )\n}\n\n/**\n * @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.\n * It should be rendered in the `<head>` of your document.\n */\nexport function HeadContent() {\n const tags = useTags()\n return (\n <MetaProvider>\n {tags().map((tag) => (\n <Asset {...tag} />\n ))}\n </MetaProvider>\n )\n}\n\nfunction uniqBy<T>(arr: Array<T>, fn: (item: T) => string) {\n const seen = new Set<string>()\n return arr.filter((item) => {\n const key = fn(item)\n if (seen.has(key)) {\n return false\n }\n seen.add(key)\n return true\n })\n}\n"],"names":["useTags","router","useRouter","routeMeta","useRouterState","select","state","matches","map","match","meta","filter","Boolean","Solid","createMemo","resultMeta","metaByAttribute","title","reverse","forEach","metas","m","tag","children","attribute","name","property","push","attrs","links","constructed","flat","link","manifest","ssr","assets","routes","routeId","asset","preloadMeta","looseRoutesById","route","id","preloads","preload","rel","href","styles","style","headScripts","script","uniqBy","d","JSON","stringify","HeadContent","tags","_$createComponent","MetaProvider","Asset","arr","fn","seen","Set","item","key","has","add"],"mappings":"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"}
1
+ {"version":3,"file":"HeadContent.cjs","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { MetaProvider } from '@solidjs/meta'\nimport { Asset } from './Asset'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const useTags = () => {\n const router = useRouter()\n\n const routeMeta = useRouterState({\n select: (state) => {\n return state.matches.map((match) => match.meta!).filter(Boolean)\n },\n })\n\n const meta: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\n const resultMeta: Array<RouterManagedTag> = []\n const metaByAttribute: Record<string, true> = {}\n let title: RouterManagedTag | undefined\n ;[...routeMeta()].reverse().forEach((metas) => {\n ;[...metas].reverse().forEach((m) => {\n if (!m) return\n\n if (m.title) {\n if (!title) {\n title = {\n tag: 'title',\n children: m.title,\n }\n }\n } else {\n const attribute = m.name ?? m.property\n if (attribute) {\n if (metaByAttribute[attribute]) {\n return\n } else {\n metaByAttribute[attribute] = true\n }\n }\n\n resultMeta.push({\n tag: 'meta',\n attrs: {\n ...m,\n },\n })\n }\n })\n })\n\n if (title) {\n resultMeta.push(title)\n }\n\n resultMeta.reverse()\n\n return resultMeta\n })\n\n const links = useRouterState({\n select: (state) => {\n const constructed = state.matches\n .map((match) => match.links!)\n .filter(Boolean)\n .flat(1)\n .map((link) => ({\n tag: 'link',\n attrs: {\n ...link,\n },\n })) satisfies Array<RouterManagedTag>\n\n const manifest = router.ssr?.manifest\n\n // These are the assets extracted from the ViteManifest\n // using the `startManifestPlugin`\n const assets = state.matches\n .map((match) => manifest?.routes[match.routeId]?.assets ?? [])\n .filter(Boolean)\n .flat(1)\n .filter((asset) => asset.tag === 'link')\n .map(\n (asset) =>\n ({\n tag: 'link',\n attrs: asset.attrs,\n }) satisfies RouterManagedTag,\n )\n\n return [...constructed, ...assets]\n },\n })\n\n const preloadMeta = useRouterState({\n select: (state) => {\n const preloadMeta: Array<RouterManagedTag> = []\n\n state.matches\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n router.ssr?.manifest?.routes[route.id]?.preloads\n ?.filter(Boolean)\n .forEach((preload) => {\n preloadMeta.push({\n tag: 'link',\n attrs: {\n rel: 'modulepreload',\n href: preload,\n },\n })\n }),\n )\n\n return preloadMeta\n },\n })\n\n const styles = useRouterState({\n select: (state) =>\n (\n state.matches\n .map((match) => match.styles!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...style }) => ({\n tag: 'style',\n attrs: {\n ...style,\n },\n children,\n })),\n })\n\n const headScripts = useRouterState({\n select: (state) =>\n (\n state.matches\n .map((match) => match.headScripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n },\n children,\n })),\n })\n\n return () =>\n uniqBy(\n [\n ...meta(),\n ...preloadMeta(),\n ...links(),\n ...styles(),\n ...headScripts(),\n ] as Array<RouterManagedTag>,\n (d) => {\n return JSON.stringify(d)\n },\n )\n}\n\n/**\n * @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.\n * It should be rendered in the `<head>` of your document.\n */\nexport function HeadContent() {\n const tags = useTags()\n return (\n <MetaProvider>\n {tags().map((tag) => (\n <Asset {...tag} />\n ))}\n </MetaProvider>\n )\n}\n\nfunction uniqBy<T>(arr: Array<T>, fn: (item: T) => string) {\n const seen = new Set<string>()\n return arr.filter((item) => {\n const key = fn(item)\n if (seen.has(key)) {\n return false\n }\n seen.add(key)\n return true\n })\n}\n"],"names":["useTags","router","useRouter","routeMeta","useRouterState","select","state","matches","map","match","meta","filter","Boolean","Solid","createMemo","resultMeta","metaByAttribute","title","reverse","forEach","metas","m","tag","children","attribute","name","property","push","attrs","links","constructed","flat","link","manifest","ssr","assets","routes","routeId","asset","preloadMeta","looseRoutesById","route","id","preloads","preload","rel","href","styles","style","headScripts","script","uniqBy","d","JSON","stringify","HeadContent","tags","_$createComponent","MetaProvider","Asset","arr","fn","seen","Set","item","key","has","add"],"mappings":"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"}
@@ -36,32 +36,22 @@ const Match = (props) => {
36
36
  select: (s) => {
37
37
  const match = s.matches.find((d) => d.id === props.matchId);
38
38
  invariant(match, `Could not find match for matchId "${props.matchId}". Please file an issue!`);
39
- return {
40
- routeId: match.routeId,
41
- ssr: match.ssr,
42
- _displayPending: match._displayPending
43
- };
39
+ return routerCore.pick(match, ["routeId", "ssr", "_displayPending"]);
44
40
  }
45
41
  });
46
42
  const route = () => router.routesById[matchState().routeId];
47
43
  const PendingComponent = () => route().options.pendingComponent ?? router.options.defaultPendingComponent;
48
44
  const routeErrorComponent = () => route().options.errorComponent ?? router.options.defaultErrorComponent;
49
45
  const routeOnCatch = () => route().options.onCatch ?? router.options.defaultOnCatch;
50
- const routeNotFoundComponent = () => {
51
- var _a;
52
- return route().isRoot ? (
53
- // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
54
- route().options.notFoundComponent ?? ((_a = router.options.notFoundRoute) == null ? void 0 : _a.options.component)
55
- ) : route().options.notFoundComponent;
56
- };
46
+ const routeNotFoundComponent = () => route().isRoot ? (
47
+ // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
48
+ route().options.notFoundComponent ?? router.options.notFoundRoute?.options.component
49
+ ) : route().options.notFoundComponent;
57
50
  const resolvedNoSsr = matchState().ssr === false || matchState().ssr === "data-only";
58
- const ResolvedSuspenseBoundary = () => {
59
- var _a;
60
- return (
61
- // If we're on the root route, allow forcefully wrapping in suspense
62
- (!route().isRoot || route().options.wrapInSuspense || resolvedNoSsr || matchState()._displayPending) && (route().options.wrapInSuspense ?? PendingComponent() ?? (((_a = route().options.errorComponent) == null ? void 0 : _a.preload) || resolvedNoSsr)) ? Solid__namespace.Suspense : SafeFragment.SafeFragment
63
- );
64
- };
51
+ const ResolvedSuspenseBoundary = () => (
52
+ // If we're on the root route, allow forcefully wrapping in suspense
53
+ (!route().isRoot || route().options.wrapInSuspense || resolvedNoSsr || matchState()._displayPending) && (route().options.wrapInSuspense ?? PendingComponent() ?? (route().options.errorComponent?.preload || resolvedNoSsr)) ? Solid__namespace.Suspense : SafeFragment.SafeFragment
54
+ );
65
55
  const ResolvedCatchBoundary = () => routeErrorComponent() ? CatchBoundary.CatchBoundary : SafeFragment.SafeFragment;
66
56
  const ResolvedNotFoundBoundary = () => routeNotFoundComponent() ? notFound.CatchNotFound : SafeFragment.SafeFragment;
67
57
  const resetKey = useRouterState.useRouterState({
@@ -69,9 +59,8 @@ const Match = (props) => {
69
59
  });
70
60
  const parentRouteId = useRouterState.useRouterState({
71
61
  select: (s) => {
72
- var _a;
73
62
  const index = s.matches.findIndex((d) => d.id === props.matchId);
74
- return (_a = s.matches[index - 1]) == null ? void 0 : _a.routeId;
63
+ return s.matches[index - 1]?.routeId;
75
64
  }
76
65
  });
77
66
  const ShellComponent = route().isRoot ? route().options.shellComponent ?? SafeFragment.SafeFragment : SafeFragment.SafeFragment;
@@ -101,10 +90,9 @@ const Match = (props) => {
101
90
  return routeErrorComponent() || CatchBoundary.ErrorComponent;
102
91
  },
103
92
  onCatch: (error) => {
104
- var _a;
105
93
  if (routerCore.isNotFound(error)) throw error;
106
94
  warning(false, `Error in route match: ${props.matchId}`);
107
- (_a = routeOnCatch()) == null ? void 0 : _a(error);
95
+ routeOnCatch()?.(error);
108
96
  },
109
97
  get children() {
110
98
  return Solid.createComponent(Solid.Dynamic, {
@@ -172,8 +160,7 @@ function OnRendered() {
172
160
  const router = useRouter.useRouter();
173
161
  const location = useRouterState.useRouterState({
174
162
  select: (s) => {
175
- var _a;
176
- return (_a = s.resolvedLocation) == null ? void 0 : _a.state.__TSR_key;
163
+ return s.resolvedLocation?.state.__TSR_key;
177
164
  }
178
165
  });
179
166
  Solid__namespace.createEffect(Solid__namespace.on([location], () => {
@@ -188,10 +175,11 @@ const MatchInner = (props) => {
188
175
  const router = useRouter.useRouter();
189
176
  const matchState = useRouterState.useRouterState({
190
177
  select: (s) => {
191
- const match2 = s.matches.find((d) => d.id === props.matchId);
178
+ const matchIndex = s.matches.findIndex((d) => d.id === props.matchId);
179
+ const match2 = s.matches[matchIndex];
192
180
  const routeId = match2.routeId;
193
181
  const remountFn = router.routesById[routeId].options.remountDeps ?? router.options.defaultRemountDeps;
194
- const remountDeps = remountFn == null ? void 0 : remountFn({
182
+ const remountDeps = remountFn?.({
195
183
  routeId,
196
184
  loaderDeps: match2.loaderDeps,
197
185
  params: match2._strictParams,
@@ -201,13 +189,7 @@ const MatchInner = (props) => {
201
189
  return {
202
190
  key,
203
191
  routeId,
204
- match: {
205
- id: match2.id,
206
- status: match2.status,
207
- error: match2.error,
208
- _forcePending: match2._forcePending,
209
- _displayPending: match2._displayPending
210
- }
192
+ match: routerCore.pick(match2, ["id", "status", "error", "_forcePending", "_displayPending"])
211
193
  };
212
194
  }
213
195
  });
@@ -235,10 +217,7 @@ const MatchInner = (props) => {
235
217
  return match()._displayPending;
236
218
  },
237
219
  children: (_) => {
238
- const [displayPendingResult] = Solid__namespace.createResource(() => {
239
- var _a;
240
- return (_a = router.getMatch(match().id)) == null ? void 0 : _a._nonReactive.displayPendingPromise;
241
- });
220
+ const [displayPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?.displayPendingPromise);
242
221
  return Solid.memo(displayPendingResult);
243
222
  }
244
223
  }), Solid.createComponent(Solid__namespace.Match, {
@@ -246,10 +225,7 @@ const MatchInner = (props) => {
246
225
  return match()._forcePending;
247
226
  },
248
227
  children: (_) => {
249
- const [minPendingResult] = Solid__namespace.createResource(() => {
250
- var _a;
251
- return (_a = router.getMatch(match().id)) == null ? void 0 : _a._nonReactive.minPendingPromise;
252
- });
228
+ const [minPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?.minPendingPromise);
253
229
  return Solid.memo(minPendingResult);
254
230
  }
255
231
  }), Solid.createComponent(Solid__namespace.Match, {
@@ -258,25 +234,27 @@ const MatchInner = (props) => {
258
234
  },
259
235
  children: (_) => {
260
236
  const pendingMinMs = route().options.pendingMinMs ?? router.options.defaultPendingMinMs;
261
- if (pendingMinMs) {
262
- const routerMatch = router.getMatch(match().id);
263
- if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
264
- if (!router.isServer) {
265
- const minPendingPromise = routerCore.createControlledPromise();
266
- Promise.resolve().then(() => {
267
- routerMatch._nonReactive.minPendingPromise = minPendingPromise;
268
- });
269
- setTimeout(() => {
270
- minPendingPromise.resolve();
271
- routerMatch._nonReactive.minPendingPromise = void 0;
272
- }, pendingMinMs);
273
- }
237
+ if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {
238
+ if (!router.isServer) {
239
+ const minPendingPromise = routerCore.createControlledPromise();
240
+ Promise.resolve().then(() => {
241
+ router.updateMatch(match().id, (prev) => ({
242
+ ...prev,
243
+ minPendingPromise
244
+ }));
245
+ });
246
+ setTimeout(() => {
247
+ minPendingPromise.resolve();
248
+ router.updateMatch(match().id, (prev) => ({
249
+ ...prev,
250
+ minPendingPromise: void 0
251
+ }));
252
+ }, pendingMinMs);
274
253
  }
275
254
  }
276
255
  const [loaderResult] = Solid__namespace.createResource(async () => {
277
- var _a;
278
256
  await new Promise((r) => setTimeout(r, 0));
279
- return (_a = router.getMatch(match().id)) == null ? void 0 : _a._nonReactive.loadPromise;
257
+ return router.getMatch(match().id)?.loadPromise;
280
258
  });
281
259
  return Solid.memo(loaderResult);
282
260
  }
@@ -295,9 +273,8 @@ const MatchInner = (props) => {
295
273
  children: (_) => {
296
274
  invariant(routerCore.isRedirect(match().error), "Expected a redirect error");
297
275
  const [loaderResult] = Solid__namespace.createResource(async () => {
298
- var _a;
299
276
  await new Promise((r) => setTimeout(r, 0));
300
- return (_a = router.getMatch(match().id)) == null ? void 0 : _a._nonReactive.loadPromise;
277
+ return router.getMatch(match().id)?.loadPromise;
301
278
  });
302
279
  return Solid.memo(loaderResult);
303
280
  }
@@ -334,10 +311,7 @@ const Outlet = () => {
334
311
  const router = useRouter.useRouter();
335
312
  const matchId = Solid__namespace.useContext(matchContext.matchContext);
336
313
  const routeId = useRouterState.useRouterState({
337
- select: (s) => {
338
- var _a;
339
- return (_a = s.matches.find((d) => d.id === matchId())) == null ? void 0 : _a.routeId;
340
- }
314
+ select: (s) => s.matches.find((d) => d.id === matchId())?.routeId
341
315
  });
342
316
  const route = () => router.routesById[routeId()];
343
317
  const parentGlobalNotFound = useRouterState.useRouterState({
@@ -350,10 +324,9 @@ const Outlet = () => {
350
324
  });
351
325
  const childMatchId = useRouterState.useRouterState({
352
326
  select: (s) => {
353
- var _a;
354
327
  const matches = s.matches;
355
328
  const index = matches.findIndex((d) => d.id === matchId());
356
- const v = (_a = matches[index + 1]) == null ? void 0 : _a.id;
329
+ const v = matches[index + 1]?.id;
357
330
  return v;
358
331
  }
359
332
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Match.cjs","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n invariant(\n match,\n `Could not find match for matchId \"${props.matchId}\". Please file an issue!`,\n )\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending,\n }\n },\n })\n\n const route: () => AnyRoute = () => router.routesById[matchState().routeId]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState().ssr === false || matchState().ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot ||\n route().options.wrapInSuspense ||\n resolvedNoSsr ||\n matchState()._displayPending) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n ((route().options.errorComponent as any)?.preload || resolvedNoSsr))\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState().routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!router.isServer}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: {\n id: match.id,\n status: match.status,\n error: match.error,\n _forcePending: match._forcePending,\n _displayPending: match._displayPending,\n },\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return (\n <Solid.Show when={matchState().match.id} keyed>\n <Comp />\n </Solid.Show>\n )\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () =>\n router.getMatch(match().id)?._nonReactive.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?._nonReactive.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs) {\n const routerMatch = router.getMatch(match().id)\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n Promise.resolve().then(() => {\n routerMatch._nonReactive.minPendingPromise = minPendingPromise\n })\n\n setTimeout(() => {\n minPendingPromise.resolve()\n // We've handled the minPendingPromise, so we can delete it\n routerMatch._nonReactive.minPendingPromise = undefined\n }, pendingMinMs)\n }\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","invariant","routeId","ssr","_displayPending","route","routesById","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ResolvedSuspenseBoundary","wrapInSuspense","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","isServer","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","undefined","status","_forcePending","out","Comp","defaultComponent","keyed","Outlet","_","displayPendingResult","createResource","getMatch","_nonReactive","displayPendingPromise","minPendingResult","minPendingPromise","pendingMinMs","defaultPendingMinMs","routerMatch","createControlledPromise","resolve","then","setTimeout","loaderResult","Promise","r","loadPromise","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBaA,MAAAA,QAAQA,CAACC,UAA+B;AACnD,QAAMC,SAASC,UAAAA,UAAU;AACzB,QAAMC,aAAaC,eAAAA,eAAe;AAAA,IAChCC,QAASC,CAAM,MAAA;AACPC,YAAAA,QAAQD,EAAEE,QAAQC,KAAMC,OAAMA,EAAEC,OAAOX,MAAMY,OAAO;AAE1DC,gBACEN,OACA,qCAAqCP,MAAMY,OAAO,0BACpD;AACO,aAAA;AAAA,QACLE,SAASP,MAAMO;AAAAA,QACfC,KAAKR,MAAMQ;AAAAA,QACXC,iBAAiBT,MAAMS;AAAAA,MACzB;AAAA,IAAA;AAAA,EACF,CACD;AAED,QAAMC,QAAwBA,MAAMhB,OAAOiB,WAAWf,WAAAA,EAAaW,OAAO;AAE1E,QAAMK,mBAAmBA,MACvBF,QAAQG,QAAQC,oBAAoBpB,OAAOmB,QAAQE;AAErD,QAAMC,sBAAsBA,MAC1BN,QAAQG,QAAQI,kBAAkBvB,OAAOmB,QAAQK;AAEnD,QAAMC,eAAeA,MACnBT,QAAQG,QAAQO,WAAW1B,OAAOmB,QAAQQ;AAEtCC,QAAAA,yBAAyBA;;AAC7BZ,iBAAAA,EAAQa;AAAAA;AAAAA,MAEHb,QAAQG,QAAQW,uBACjB9B,YAAOmB,QAAQY,kBAAf/B,mBAA8BmB,QAAQa;AAAAA,QACtChB,MAAAA,EAAQG,QAAQW;AAAAA;AAEtB,QAAMG,gBACJ/B,aAAaY,QAAQ,SAASZ,WAAAA,EAAaY,QAAQ;AAErD,QAAMoB,2BAA2BA,MAAAA;;AAE9B;AAAA;AAAA,QAAClB,MAAM,EAAEa,UACRb,QAAQG,QAAQgB,kBAChBF,iBACA/B,WAAaa,EAAAA,qBACdC,QAAQG,QAAQgB,kBACfjB,yBACEF,WAAQG,EAAAA,QAAQI,mBAAhBP,mBAAwCoB,YAAWH,kBACnDI,iBAAMC,WACNC,aAAAA;AAAAA;AAAAA;AAEN,QAAMC,wBAAwBA,MAC5BlB,oBAAoB,IAAImB,cAAgBF,gBAAAA,aAAAA;AAE1C,QAAMG,2BAA2BA,MAC/Bd,uBAAuB,IAAIe,SAAgBJ,gBAAAA,aAAAA;AAE7C,QAAMK,WAAWzC,eAAAA,eAAe;AAAA,IAC9BC,QAASC,OAAMA,EAAEwC;AAAAA,EAAAA,CAClB;AAED,QAAMC,gBAAgB3C,eAAAA,eAAe;AAAA,IACnCC,QAASC,CAAM,MAAA;;AACP0C,YAAAA,QAAQ1C,EAAEE,QAAQyC,UAAWvC,OAAMA,EAAEC,OAAOX,MAAMY,OAAO;AAC/D,cAAON,OAAEE,QAAQwC,QAAQ,CAAC,MAAnB1C,mBAAsBQ;AAAAA,IAAAA;AAAAA,EAC/B,CACD;AAEKoC,QAAAA,iBAAiBjC,QAAQa,SACzBb,QAAQG,QAA6B+B,kBAAkBX,aAAAA,eACzDA,aAAAA;AAEJ,SAAAY,MAAAA,gBACGF,gBAAc;AAAA,IAAA,IAAAG,WAAA;AAAA,aAAA,CAAAD,MAAAA,gBACZE,aAAAA,aAAaC,UAAQ;AAAA,QAACC,OAAOA,MAAMxD,MAAMY;AAAAA,QAAO,IAAAyC,WAAA;AAAA,iBAAAD,MAAAA,gBAC9CK,MAAAA,SAAO;AAAA,YAAA,IACNxB,YAAS;AAAA,qBAAEE,yBAAyB;AAAA,YAAC;AAAA,YAAA,IACrCuB,WAAQ;AAAA,qBAAAN,MAAAA,gBAAGK,MAAAA,SAAO;AAAA,gBAAA,IAACxB,YAAS;AAAA,yBAAEd,iBAAiB;AAAA,gBAAA;AAAA,cAAC,CAAA;AAAA,YAAA;AAAA,YAAA,IAAAkC,WAAA;AAAA,qBAAAD,MAAAA,gBAE/CK,MAAAA,SAAO;AAAA,gBAAA,IACNxB,YAAS;AAAA,yBAAEQ,sBAAsB;AAAA,gBAAC;AAAA,gBAClCkB,aAAaA,MAAMd,SAAS;AAAA,gBAAC,IAC7BrB,iBAAc;AAAA,yBAAED,oBAAyBqC,KAAAA,cAAAA;AAAAA,gBAAc;AAAA,gBACvDjC,SAASA,CAACkC,UAAiB;;AAErBC,sBAAAA,WAAAA,WAAWD,KAAK,EAASA,OAAAA;AAC7BE,0BAAQ,OAAO,yBAAyB/D,MAAMY,OAAO,EAAE;AACvDc,qCAAAA,MAAAA,mBAAiBmC;AAAAA,gBACnB;AAAA,gBAAC,IAAAR,WAAA;AAAA,yBAAAD,MAAAA,gBAEAK,MAAAA,SAAO;AAAA,oBAAA,IACNxB,YAAS;AAAA,6BAAEU,yBAAyB;AAAA,oBAAC;AAAA,oBACrCe,UAAUA,CAACG,UAAe;AAGxB,0BACE,CAAChC,uBAAuB,KACvBgC,MAAM/C,WAAW+C,MAAM/C,YAAYX,WAAAA,EAAaW,WAChD,CAAC+C,MAAM/C,WAAW,CAACG,MAAM,EAAEa,OAEtB+B,OAAAA;AAERT,6BAAAA,MAAAA,gBACGK,eAAOO,iBAAA;AAAA,wBAAA,IAAC/B,YAAS;AAAA,iCAAEJ,uBAAuB;AAAA,wBAAA;AAAA,sBAAC,GAAMgC,KAAK,CAAA;AAAA,oBAE3D;AAAA,oBAAC,IAAAR,WAAA;AAAAD,6BAAAA,MAAAA,gBAEAd,iBAAM2B,QAAM;AAAA,wBAAA,IAAAZ,WAAA;AAAA,iCAAA,CAAAD,MAAAA,gBACVd,iBAAMvC,OAAK;AAAA,4BAACmE,MAAMhC;AAAAA,4BAAa,IAAAmB,WAAA;AAAAD,qCAAAA,MAAAA,gBAC7Bd,iBAAM6B,MAAI;AAAA,gCAAA,IACTD,OAAI;AAAA,yCAAE,CAACjE,OAAOmE;AAAAA,gCAAQ;AAAA,gCAAA,IACtBV,WAAQ;AAAA,yCAAAN,MAAAA,gBAAGK,MAAAA,SAAO;AAAA,oCAAA,IAACxB,YAAS;AAAA,6CAAEd,iBAAiB;AAAA,oCAAA;AAAA,kCAAC,CAAA;AAAA,gCAAA;AAAA,gCAAA,IAAAkC,WAAA;AAAA,yCAAAD,MAAAA,gBAE/CiB,YAAU;AAAA,oCAAA,IAACzD,UAAO;AAAA,6CAAEZ,MAAMY;AAAAA,oCAAAA;AAAAA,kCAAO,CAAA;AAAA,gCAAA;AAAA,8BAAA,CAAA;AAAA,4BAAA;AAAA,0BAAA,CAAA,GAAAwC,MAAAA,gBAGrCd,iBAAMvC,OAAK;AAAA,4BAACmE,MAAM,CAAChC;AAAAA,4BAAa,IAAAmB,WAAA;AAAA,qCAAAD,MAAAA,gBAC9BiB,YAAU;AAAA,gCAAA,IAACzD,UAAO;AAAA,yCAAEZ,MAAMY;AAAAA,gCAAAA;AAAAA,8BAAO,CAAA;AAAA,4BAAA;AAAA,0BAAA,CAAA,CAAA;AAAA,wBAAA;AAAA,sBAAA,CAAA;AAAA,oBAAA;AAAA,kBAAA,CAAA;AAAA,gBAAA;AAAA,cAAA,CAAA;AAAA,YAAA;AAAA,UAAA,CAAA;AAAA,QAAA;AAAA,MAAA,CAAA,GAAA0D,MAAAA,KAQ7CA,MAAAA,MAAAA,WAAAvB,cAAc,MAAMwB,WAAW,WAAA,MAAAnB,CAAAA,sBAE3BoB,YAAU,CAAA,CAAA,GAAApB,MACVqB,gBAAAA,kBAAAA,0BAED,IAAI,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAGd;AASA,SAASD,aAAa;AACpB,QAAMvE,SAASC,UAAAA,UAAU;AAEzB,QAAMwE,WAAWtE,eAAAA,eAAe;AAAA,IAC9BC,QAASC,CAAM,MAAA;;AACNA,cAAAA,OAAEqE,qBAAFrE,mBAAoBsE,MAAMC;AAAAA,IAAAA;AAAAA,EACnC,CACD;AACDvC,mBAAMwC,aACJxC,iBAAMyC,GAAG,CAACL,QAAQ,GAAG,MAAM;AACzBzE,WAAO+E,KAAK;AAAA,MACVC,MAAM;AAAA,MACN,GAAGC,WAAAA,sBAAsBjF,OAAO2E,KAAK;AAAA,IAAA,CACtC;AAAA,EAAA,CACF,CACH;AACO,SAAA;AACT;AAEaP,MAAAA,aAAaA,CAACrE,UAAoC;AAC7D,QAAMC,SAASC,UAAAA,UAAU;AAEzB,QAAMC,aAAaC,eAAAA,eAAe;AAAA,IAChCC,QAASC,CAAM,MAAA;AACPC,YAAAA,SAAQD,EAAEE,QAAQC,KAAMC,OAAMA,EAAEC,OAAOX,MAAMY,OAAO;AAC1D,YAAME,UAAUP,OAAMO;AAEhBqE,YAAAA,YACHlF,OAAOiB,WAAWJ,OAAO,EAAeM,QAAQgE,eACjDnF,OAAOmB,QAAQiE;AACjB,YAAMD,cAAcD,uCAAY;AAAA,QAC9BrE;AAAAA,QACAwE,YAAY/E,OAAM+E;AAAAA,QAClBC,QAAQhF,OAAMiF;AAAAA,QACdC,QAAQlF,OAAMmF;AAAAA,MAAAA;AAEhB,YAAMC,MAAMP,cAAcQ,KAAKC,UAAUT,WAAW,IAAIU;AAEjD,aAAA;AAAA,QACLH;AAAAA,QACA7E;AAAAA,QACAP,OAAO;AAAA,UACLI,IAAIJ,OAAMI;AAAAA,UACVoF,QAAQxF,OAAMwF;AAAAA,UACdlC,OAAOtD,OAAMsD;AAAAA,UACbmC,eAAezF,OAAMyF;AAAAA,UACrBhF,iBAAiBT,OAAMS;AAAAA,QAAAA;AAAAA,MAE3B;AAAA,IAAA;AAAA,EACF,CACD;AAED,QAAMC,QAAQA,MAAMhB,OAAOiB,WAAWf,WAAAA,EAAaW,OAAO;AAEpDP,QAAAA,QAAQA,MAAMJ,WAAAA,EAAaI;AAEjC,QAAM0F,MAAMA,MAAM;AAChB,UAAMC,OAAOjF,QAAQG,QAAQa,aAAahC,OAAOmB,QAAQ+E;AACzD,QAAID,MAAM;AACR9C,aAAAA,MAAAA,gBACGd,iBAAM6B,MAAI;AAAA,QAAA,IAACD,OAAI;AAAE/D,iBAAAA,WAAAA,EAAaI,MAAMI;AAAAA,QAAE;AAAA,QAAEyF,OAAK;AAAA,QAAA,IAAA/C,WAAA;AAAAD,iBAAAA,MAAAA,gBAC3C8C,MAAI,EAAA;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,IAAA;AAIX9C,WAAAA,MAAAA,gBAAQiD,QAAM,EAAA;AAAA,EAChB;AAEAjD,SAAAA,MAAAA,gBACGd,iBAAM2B,QAAM;AAAA,IAAA,IAAAZ,WAAA;AAAA,aAAA,CAAAD,MAAAA,gBACVd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,MAAQS,EAAAA;AAAAA,QAAe;AAAA,QAAAqC,UACtCiD,CAAM,MAAA;AACN,gBAAM,CAACC,oBAAoB,IAAIjE,iBAAMkE,eACnC,MACEvG;;AAAAA,gCAAOwG,SAASlG,MAAM,EAAEI,EAAE,MAA1BV,mBAA6ByG,aAAaC;AAAAA,WAC9C;AAEA,iBAAArC,MAAAA,KAAUiC,oBAAoB;AAAA,QAAA;AAAA,MAChC,CAAC,GAAAnD,MAAAA,gBAEFd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE3D,MAAQyF,EAAAA;AAAAA,QAAa;AAAA,QAAA3C,UACpCiD,CAAM,MAAA;AACN,gBAAM,CAACM,gBAAgB,IAAItE,iBAAMkE,eAC/B,MAAMvG;;AAAAA,gCAAOwG,SAASlG,MAAM,EAAEI,EAAE,MAA1BV,mBAA6ByG,aAAaG;AAAAA,WAClD;AAEA,iBAAAvC,MAAAA,KAAUsC,gBAAgB;AAAA,QAAA;AAAA,MAC5B,CAAC,GAAAxD,MAAAA,gBAEFd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAE3D,iBAAAA,MAAAA,EAAQwF,WAAW;AAAA,QAAS;AAAA,QAAA1C,UAC3CiD,CAAM,MAAA;AACN,gBAAMQ,eACJ7F,QAAQG,QAAQ0F,gBAAgB7G,OAAOmB,QAAQ2F;AAEjD,cAAID,cAAc;AAChB,kBAAME,cAAc/G,OAAOwG,SAASlG,MAAAA,EAAQI,EAAE;AAC9C,gBAAIqG,eAAe,CAACA,YAAYN,aAAaG,mBAAmB;AAE1D,kBAAA,CAAC5G,OAAOmE,UAAU;AACpB,sBAAMyC,oBAAoBI,WAAAA,wBAA8B;AAEhDC,wBAAAA,UAAUC,KAAK,MAAM;AAC3BH,8BAAYN,aAAaG,oBAAoBA;AAAAA,gBAAAA,CAC9C;AAEDO,2BAAW,MAAM;AACfP,oCAAkBK,QAAQ;AAE1BF,8BAAYN,aAAaG,oBAAoBf;AAAAA,mBAC5CgB,YAAY;AAAA,cAAA;AAAA,YACjB;AAAA,UACF;AAGF,gBAAM,CAACO,YAAY,IAAI/E,iBAAMkE,eAAe,YAAY;;AACtD,kBAAM,IAAIc,QAASC,CAAAA,MAAMH,WAAWG,GAAG,CAAC,CAAC;AACzC,oBAAOtH,YAAOwG,SAASlG,MAAQI,EAAAA,EAAE,MAA1BV,mBAA6ByG,aAAac;AAAAA,UAAAA,CAClD;AAED,iBAAAlD,MAAAA,KAAU+C,YAAY;AAAA,QAAA;AAAA,MACxB,CAAC,GAAAjE,MAAAA,gBAEFd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAE3D,iBAAAA,MAAAA,EAAQwF,WAAW;AAAA,QAAU;AAAA,QAAA1C,UAC5CiD,CAAM,MAAA;AACNzF,oBAAUiD,WAAAA,WAAWvD,MAAQsD,EAAAA,KAAK,GAAG,2BAA2B;AAEhE,iBAAO4D,oBAAAA,oBAAoBxH,QAAQgB,MAASV,GAAAA,MAAAA,EAAQsD,KAAK;AAAA,QAAA;AAAA,MAC3D,CAAC,GAAAT,MAAAA,gBAEFd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAE3D,iBAAAA,MAAAA,EAAQwF,WAAW;AAAA,QAAY;AAAA,QAAA1C,UAC9CiD,CAAM,MAAA;AACNzF,oBAAU6G,WAAAA,WAAWnH,MAAQsD,EAAAA,KAAK,GAAG,2BAA2B;AAEhE,gBAAM,CAACwD,YAAY,IAAI/E,iBAAMkE,eAAe,YAAY;;AACtD,kBAAM,IAAIc,QAASC,CAAAA,MAAMH,WAAWG,GAAG,CAAC,CAAC;AACzC,oBAAOtH,YAAOwG,SAASlG,MAAQI,EAAAA,EAAE,MAA1BV,mBAA6ByG,aAAac;AAAAA,UAAAA,CAClD;AAED,iBAAAlD,MAAAA,KAAU+C,YAAY;AAAA,QAAA;AAAA,MACxB,CAAC,GAAAjE,MAAAA,gBAEFd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAE3D,iBAAAA,MAAAA,EAAQwF,WAAW;AAAA,QAAO;AAAA,QAAA1C,UACzCiD,CAAM,MAAA;AACN,cAAIrG,OAAOmE,UAAU;AACnB,kBAAMuD,uBACH1G,QAAQG,QAAQI,kBACfvB,OAAOmB,QAAQK,0BACjBmC,cAAAA;AAEF,mBAAAR,MAAAA,gBACGuE,qBAAmB;AAAA,cAAA,IAClB9D,QAAK;AAAA,uBAAEtD,MAAQsD,EAAAA;AAAAA,cAAK;AAAA,cACpB+D,MAAM;AAAA,gBACJC,gBAAgB;AAAA,cAAA;AAAA,YAClB,CAAC;AAAA,UAAA;AAKP,gBAAMtH,MAAQsD,EAAAA;AAAAA,QAAAA;AAAAA,MAChB,CAAC,GAAAT,MAAAA,gBAEFd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAE3D,iBAAAA,MAAAA,EAAQwF,WAAW;AAAA,QAAS;AAAA,QAAA,IAAA1C,WAAA;AAAA,iBAAG4C,IAAI;AAAA,QAAA;AAAA,MAAC,CAAA,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAG7D;AAEO,MAAMI,SAASA,MAAM;AAC1B,QAAMpG,SAASC,UAAAA,UAAU;AACnBU,QAAAA,UAAU0B,iBAAMwF,WAAWxE,yBAAY;AAC7C,QAAMxC,UAAUV,eAAAA,eAAe;AAAA,IAC7BC,QAASC,CAAMA;;AAAAA,qBAAEE,QAAQC,KAAMC,OAAMA,EAAEC,OAAOC,QAAS,CAAA,MAAxCN,mBAA2CQ;AAAAA;AAAAA,EAAAA,CAC3D;AAED,QAAMG,QAAQA,MAAMhB,OAAOiB,WAAWJ,SAAS;AAE/C,QAAMiH,uBAAuB3H,eAAAA,eAAe;AAAA,IAC1CC,QAASC,CAAM,MAAA;AACb,YAAME,UAAUF,EAAEE;AAClB,YAAMwH,cAAcxH,QAAQC,KAAMC,OAAMA,EAAEC,OAAOC,SAAS;AAC1DC,gBACEmH,aACA,4CAA4CpH,QAAS,CAAA,GACvD;AACA,aAAOoH,YAAYC;AAAAA,IAAAA;AAAAA,EACrB,CACD;AAED,QAAMC,eAAe9H,eAAAA,eAAe;AAAA,IAClCC,QAASC,CAAM,MAAA;;AACb,YAAME,UAAUF,EAAEE;AAClB,YAAMwC,QAAQxC,QAAQyC,UAAWvC,OAAMA,EAAEC,OAAOC,SAAS;AACzD,YAAMuH,KAAI3H,aAAQwC,QAAQ,CAAC,MAAjBxC,mBAAoBG;AACvBwH,aAAAA;AAAAA,IAAAA;AAAAA,EACT,CACD;AAED/E,SAAAA,MAAAA,gBACGd,iBAAM2B,QAAM;AAAA,IAAA,IAAAZ,WAAA;AAAA,aAAA,CAAAD,MAAAA,gBACVd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAE6D,qBAAqB;AAAA,QAAC;AAAA,QAAA,IAAA1E,WAAA;AAAA,iBACtCoE,wCAAoBxH,QAAQgB,MAAM,GAAG6E,MAAS;AAAA,QAAA;AAAA,MAAC,CAAA,GAAA1C,MAAAA,gBAEjDd,iBAAMvC,OAAK;AAAA,QAAA,IAACmE,OAAI;AAAA,iBAAEgE,aAAa;AAAA,QAAC;AAAA,QAAA7E,UAC7BzC,CAAAA,aAAY;AAGZwC,iBAAAA,MAAAA,gBACGd,iBAAM6B,MAAI;AAAA,YAAA,IACTD,OAAI;AAAA,qBAAEtD,SAAc2D,MAAAA,WAAAA;AAAAA,YAAW;AAAA,YAAA,IAC/Bb,WAAQ;AAAA,qBAAAN,MAAAA,gBAAGrD,OAAK;AAAA,gBAAA,IAACa,UAAO;AAAA,yBAAEA,SAAQ;AAAA,gBAAA;AAAA,cAAC,CAAA;AAAA,YAAA;AAAA,YAAA,IAAAyC,WAAA;AAAAD,qBAAAA,MAAAA,gBAElCd,iBAAMC,UAAQ;AAAA,gBAAA,IACbmB,WAAQ;AAAA,yBAAAN,MAAAA,gBACLK,MAAAA,SAAO;AAAA,oBAAA,IAACxB,YAAS;AAAA,6BAAEhC,OAAOmB,QAAQE;AAAAA,oBAAAA;AAAAA,kBAAuB,CAAA;AAAA,gBAAA;AAAA,gBAAA,IAAA+B,WAAA;AAAA,yBAAAD,MAAAA,gBAG3DrD,OAAK;AAAA,oBAAA,IAACa,UAAO;AAAA,6BAAEA,SAAQ;AAAA,oBAAA;AAAA,kBAAC,CAAA;AAAA,gBAAA;AAAA,cAAA,CAAA;AAAA,YAAA;AAAA,UAAA,CAAA;AAAA,QAAA;AAAA,MAIjC,CAAC,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAIT;;;;"}
1
+ {"version":3,"file":"Match.cjs","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n pick,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n invariant(\n match,\n `Could not find match for matchId \"${props.matchId}\". Please file an issue!`,\n )\n return pick(match, ['routeId', 'ssr', '_displayPending'])\n },\n })\n\n const route: () => AnyRoute = () => router.routesById[matchState().routeId]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState().ssr === false || matchState().ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot ||\n route().options.wrapInSuspense ||\n resolvedNoSsr ||\n matchState()._displayPending) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n ((route().options.errorComponent as any)?.preload || resolvedNoSsr))\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState().routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!router.isServer}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const matchIndex = s.matches.findIndex((d) => d.id === props.matchId)\n const match = s.matches[matchIndex]!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: pick(match, [\n 'id',\n 'status',\n 'error',\n '_forcePending',\n '_displayPending',\n ]),\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return (\n <Solid.Show when={matchState().match.id} keyed>\n <Comp />\n </Solid.Show>\n )\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n Promise.resolve().then(() => {\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise,\n }))\n })\n\n setTimeout(() => {\n minPendingPromise.resolve()\n\n // We've handled the minPendingPromise, so we can delete it\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise: undefined,\n }))\n }, pendingMinMs)\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","invariant","pick","route","routesById","routeId","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ssr","ResolvedSuspenseBoundary","wrapInSuspense","_displayPending","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","isServer","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","matchIndex","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","undefined","out","Comp","defaultComponent","keyed","Outlet","_","displayPendingResult","createResource","getMatch","displayPendingPromise","_forcePending","minPendingResult","minPendingPromise","status","pendingMinMs","defaultPendingMinMs","createControlledPromise","Promise","resolve","then","updateMatch","prev","setTimeout","loaderResult","r","loadPromise","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v"],"mappings":"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"}
@@ -45,8 +45,7 @@ function MatchesInner() {
45
45
  const router = useRouter.useRouter();
46
46
  const matchId = useRouterState.useRouterState({
47
47
  select: (s) => {
48
- var _a;
49
- return (_a = s.matches[0]) == null ? void 0 : _a.id;
48
+ return s.matches[0]?.id;
50
49
  }
51
50
  });
52
51
  const resetKey = useRouterState.useRouterState({
@@ -123,7 +122,7 @@ function useMatches(opts) {
123
122
  return useRouterState.useRouterState({
124
123
  select: (state) => {
125
124
  const matches = state.matches;
126
- return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;
125
+ return opts?.select ? opts.select(matches) : matches;
127
126
  }
128
127
  });
129
128
  }
@@ -132,7 +131,7 @@ function useParentMatches(opts) {
132
131
  return useMatches({
133
132
  select: (matches) => {
134
133
  matches = matches.slice(0, matches.findIndex((d) => d.id === contextMatchId()));
135
- return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;
134
+ return opts?.select ? opts.select(matches) : matches;
136
135
  }
137
136
  });
138
137
  }
@@ -141,7 +140,7 @@ function useChildMatches(opts) {
141
140
  return useMatches({
142
141
  select: (matches) => {
143
142
  matches = matches.slice(matches.findIndex((d) => d.id === contextMatchId()) + 1);
144
- return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;
143
+ return opts?.select ? opts.select(matches) : matches;
145
144
  }
146
145
  });
147
146
  }