@tanstack/solid-router 1.167.1 → 1.167.3

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 (200) hide show
  1. package/dist/cjs/Asset.cjs +84 -127
  2. package/dist/cjs/Asset.cjs.map +1 -1
  3. package/dist/cjs/CatchBoundary.cjs +50 -68
  4. package/dist/cjs/CatchBoundary.cjs.map +1 -1
  5. package/dist/cjs/ClientOnly.cjs +61 -39
  6. package/dist/cjs/ClientOnly.cjs.map +1 -1
  7. package/dist/cjs/HeadContent.cjs +25 -19
  8. package/dist/cjs/HeadContent.cjs.map +1 -1
  9. package/dist/cjs/HeadContent.dev.cjs +38 -33
  10. package/dist/cjs/HeadContent.dev.cjs.map +1 -1
  11. package/dist/cjs/Match.cjs +330 -398
  12. package/dist/cjs/Match.cjs.map +1 -1
  13. package/dist/cjs/Matches.cjs +109 -151
  14. package/dist/cjs/Matches.cjs.map +1 -1
  15. package/dist/cjs/RouterProvider.cjs +28 -40
  16. package/dist/cjs/RouterProvider.cjs.map +1 -1
  17. package/dist/cjs/SafeFragment.cjs +7 -5
  18. package/dist/cjs/SafeFragment.cjs.map +1 -1
  19. package/dist/cjs/ScriptOnce.cjs +18 -20
  20. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  21. package/dist/cjs/Scripts.cjs +41 -54
  22. package/dist/cjs/Scripts.cjs.map +1 -1
  23. package/dist/cjs/ScrollRestoration.cjs +26 -28
  24. package/dist/cjs/ScrollRestoration.cjs.map +1 -1
  25. package/dist/cjs/Transitioner.cjs +94 -129
  26. package/dist/cjs/Transitioner.cjs.map +1 -1
  27. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  28. package/dist/cjs/awaited.cjs +24 -51
  29. package/dist/cjs/awaited.cjs.map +1 -1
  30. package/dist/cjs/fileRoute.cjs +96 -91
  31. package/dist/cjs/fileRoute.cjs.map +1 -1
  32. package/dist/cjs/headContentUtils.cjs +132 -170
  33. package/dist/cjs/headContentUtils.cjs.map +1 -1
  34. package/dist/cjs/index.cjs +245 -176
  35. package/dist/cjs/index.dev.cjs +245 -176
  36. package/dist/cjs/lazyRouteComponent.cjs +48 -54
  37. package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
  38. package/dist/cjs/link.cjs +304 -331
  39. package/dist/cjs/link.cjs.map +1 -1
  40. package/dist/cjs/matchContext.cjs +9 -23
  41. package/dist/cjs/matchContext.cjs.map +1 -1
  42. package/dist/cjs/not-found.cjs +26 -34
  43. package/dist/cjs/not-found.cjs.map +1 -1
  44. package/dist/cjs/renderRouteNotFound.cjs +23 -16
  45. package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
  46. package/dist/cjs/route.cjs +200 -215
  47. package/dist/cjs/route.cjs.map +1 -1
  48. package/dist/cjs/router.cjs +18 -16
  49. package/dist/cjs/router.cjs.map +1 -1
  50. package/dist/cjs/routerContext.cjs +8 -22
  51. package/dist/cjs/routerContext.cjs.map +1 -1
  52. package/dist/cjs/scroll-restoration.cjs +25 -35
  53. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  54. package/dist/cjs/ssr/RouterClient.cjs +31 -42
  55. package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
  56. package/dist/cjs/ssr/RouterServer.cjs +44 -51
  57. package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
  58. package/dist/cjs/ssr/client.cjs +2 -4
  59. package/dist/cjs/ssr/defaultRenderHandler.cjs +12 -16
  60. package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -1
  61. package/dist/cjs/ssr/defaultStreamHandler.cjs +13 -18
  62. package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -1
  63. package/dist/cjs/ssr/renderRouterToStream.cjs +27 -55
  64. package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
  65. package/dist/cjs/ssr/renderRouterToString.cjs +33 -57
  66. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
  67. package/dist/cjs/ssr/server.cjs +18 -18
  68. package/dist/cjs/useBlocker.cjs +138 -173
  69. package/dist/cjs/useBlocker.cjs.map +1 -1
  70. package/dist/cjs/useBlocker.d.cts +8 -5
  71. package/dist/cjs/useCanGoBack.cjs +6 -5
  72. package/dist/cjs/useCanGoBack.cjs.map +1 -1
  73. package/dist/cjs/useLoaderData.cjs +12 -11
  74. package/dist/cjs/useLoaderData.cjs.map +1 -1
  75. package/dist/cjs/useLoaderDeps.cjs +12 -14
  76. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  77. package/dist/cjs/useLocation.cjs +6 -7
  78. package/dist/cjs/useLocation.cjs.map +1 -1
  79. package/dist/cjs/useMatch.cjs +27 -49
  80. package/dist/cjs/useMatch.cjs.map +1 -1
  81. package/dist/cjs/useNavigate.cjs +20 -38
  82. package/dist/cjs/useNavigate.cjs.map +1 -1
  83. package/dist/cjs/useParams.cjs +14 -13
  84. package/dist/cjs/useParams.cjs.map +1 -1
  85. package/dist/cjs/useRouteContext.cjs +9 -8
  86. package/dist/cjs/useRouteContext.cjs.map +1 -1
  87. package/dist/cjs/useRouter.cjs +13 -26
  88. package/dist/cjs/useRouter.cjs.map +1 -1
  89. package/dist/cjs/useRouterState.cjs +29 -37
  90. package/dist/cjs/useRouterState.cjs.map +1 -1
  91. package/dist/cjs/useSearch.cjs +13 -12
  92. package/dist/cjs/useSearch.cjs.map +1 -1
  93. package/dist/cjs/utils.cjs +58 -51
  94. package/dist/cjs/utils.cjs.map +1 -1
  95. package/dist/esm/Asset.js +82 -126
  96. package/dist/esm/Asset.js.map +1 -1
  97. package/dist/esm/CatchBoundary.js +46 -50
  98. package/dist/esm/CatchBoundary.js.map +1 -1
  99. package/dist/esm/ClientOnly.js +58 -22
  100. package/dist/esm/ClientOnly.js.map +1 -1
  101. package/dist/esm/HeadContent.dev.js +36 -32
  102. package/dist/esm/HeadContent.dev.js.map +1 -1
  103. package/dist/esm/HeadContent.js +23 -18
  104. package/dist/esm/HeadContent.js.map +1 -1
  105. package/dist/esm/Match.js +322 -378
  106. package/dist/esm/Match.js.map +1 -1
  107. package/dist/esm/Matches.js +102 -135
  108. package/dist/esm/Matches.js.map +1 -1
  109. package/dist/esm/RouterProvider.js +25 -39
  110. package/dist/esm/RouterProvider.js.map +1 -1
  111. package/dist/esm/SafeFragment.js +6 -5
  112. package/dist/esm/SafeFragment.js.map +1 -1
  113. package/dist/esm/ScriptOnce.js +16 -19
  114. package/dist/esm/ScriptOnce.js.map +1 -1
  115. package/dist/esm/Scripts.js +40 -54
  116. package/dist/esm/Scripts.js.map +1 -1
  117. package/dist/esm/ScrollRestoration.js +25 -29
  118. package/dist/esm/ScrollRestoration.js.map +1 -1
  119. package/dist/esm/Transitioner.js +90 -110
  120. package/dist/esm/Transitioner.js.map +1 -1
  121. package/dist/esm/awaited.js +21 -34
  122. package/dist/esm/awaited.js.map +1 -1
  123. package/dist/esm/fileRoute.js +90 -92
  124. package/dist/esm/fileRoute.js.map +1 -1
  125. package/dist/esm/headContentUtils.js +129 -152
  126. package/dist/esm/headContentUtils.js.map +1 -1
  127. package/dist/esm/index.dev.js +15 -115
  128. package/dist/esm/index.js +17 -116
  129. package/dist/esm/lazyRouteComponent.js +47 -54
  130. package/dist/esm/lazyRouteComponent.js.map +1 -1
  131. package/dist/esm/link.js +299 -314
  132. package/dist/esm/link.js.map +1 -1
  133. package/dist/esm/matchContext.js +7 -7
  134. package/dist/esm/matchContext.js.map +1 -1
  135. package/dist/esm/not-found.js +23 -33
  136. package/dist/esm/not-found.js.map +1 -1
  137. package/dist/esm/renderRouteNotFound.js +20 -15
  138. package/dist/esm/renderRouteNotFound.js.map +1 -1
  139. package/dist/esm/route.js +193 -218
  140. package/dist/esm/route.js.map +1 -1
  141. package/dist/esm/router.js +17 -17
  142. package/dist/esm/router.js.map +1 -1
  143. package/dist/esm/routerContext.js +6 -5
  144. package/dist/esm/routerContext.js.map +1 -1
  145. package/dist/esm/scroll-restoration.js +23 -34
  146. package/dist/esm/scroll-restoration.js.map +1 -1
  147. package/dist/esm/ssr/RouterClient.js +29 -41
  148. package/dist/esm/ssr/RouterClient.js.map +1 -1
  149. package/dist/esm/ssr/RouterServer.js +40 -48
  150. package/dist/esm/ssr/RouterServer.js.map +1 -1
  151. package/dist/esm/ssr/client.js +1 -4
  152. package/dist/esm/ssr/defaultRenderHandler.js +11 -15
  153. package/dist/esm/ssr/defaultRenderHandler.js.map +1 -1
  154. package/dist/esm/ssr/defaultStreamHandler.js +12 -17
  155. package/dist/esm/ssr/defaultStreamHandler.js.map +1 -1
  156. package/dist/esm/ssr/renderRouterToStream.js +24 -37
  157. package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
  158. package/dist/esm/ssr/renderRouterToString.js +31 -40
  159. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  160. package/dist/esm/ssr/server.js +3 -10
  161. package/dist/esm/useBlocker.d.ts +8 -5
  162. package/dist/esm/useBlocker.js +134 -155
  163. package/dist/esm/useBlocker.js.map +1 -1
  164. package/dist/esm/useCanGoBack.js +6 -5
  165. package/dist/esm/useCanGoBack.js.map +1 -1
  166. package/dist/esm/useLoaderData.js +12 -11
  167. package/dist/esm/useLoaderData.js.map +1 -1
  168. package/dist/esm/useLoaderDeps.js +12 -14
  169. package/dist/esm/useLoaderDeps.js.map +1 -1
  170. package/dist/esm/useLocation.js +6 -7
  171. package/dist/esm/useLocation.js.map +1 -1
  172. package/dist/esm/useMatch.js +23 -31
  173. package/dist/esm/useMatch.js.map +1 -1
  174. package/dist/esm/useNavigate.js +18 -22
  175. package/dist/esm/useNavigate.js.map +1 -1
  176. package/dist/esm/useParams.js +14 -13
  177. package/dist/esm/useParams.js.map +1 -1
  178. package/dist/esm/useRouteContext.js +9 -8
  179. package/dist/esm/useRouteContext.js.map +1 -1
  180. package/dist/esm/useRouter.js +9 -8
  181. package/dist/esm/useRouter.js.map +1 -1
  182. package/dist/esm/useRouterState.js +28 -37
  183. package/dist/esm/useRouterState.js.map +1 -1
  184. package/dist/esm/useSearch.js +13 -12
  185. package/dist/esm/useSearch.js.map +1 -1
  186. package/dist/esm/utils.js +56 -35
  187. package/dist/esm/utils.js.map +1 -1
  188. package/dist/source/useBlocker.d.ts +8 -5
  189. package/dist/source/useBlocker.jsx +2 -2
  190. package/dist/source/useBlocker.jsx.map +1 -1
  191. package/package.json +3 -3
  192. package/src/useBlocker.tsx +15 -10
  193. package/dist/cjs/index.cjs.map +0 -1
  194. package/dist/cjs/index.dev.cjs.map +0 -1
  195. package/dist/cjs/ssr/client.cjs.map +0 -1
  196. package/dist/cjs/ssr/server.cjs.map +0 -1
  197. package/dist/esm/index.dev.js.map +0 -1
  198. package/dist/esm/index.js.map +0 -1
  199. package/dist/esm/ssr/client.js.map +0 -1
  200. package/dist/esm/ssr/server.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"renderRouterToString.cjs","sources":["../../../src/ssr/renderRouterToString.tsx"],"sourcesContent":["import * as Solid from 'solid-js/web'\nimport { makeSsrSerovalPlugin } from '@tanstack/router-core'\nimport type { AnyRouter } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\n\nexport const renderRouterToString = async ({\n router,\n responseHeaders,\n children,\n}: {\n router: AnyRouter\n responseHeaders: Headers\n children: () => JSXElement\n}) => {\n try {\n const serializationAdapters =\n (router.options as any)?.serializationAdapters ||\n (router.options.ssr as any)?.serializationAdapters\n const serovalPlugins = serializationAdapters?.map((adapter: any) => {\n const plugin = makeSsrSerovalPlugin(adapter, { didRun: false })\n return plugin\n })\n\n let html = Solid.renderToString(children, {\n nonce: router.options.ssr?.nonce,\n plugins: serovalPlugins,\n } as any)\n router.serverSsr!.setRenderFinished()\n\n const injectedHtml = router.serverSsr!.takeBufferedHtml()\n if (injectedHtml) {\n html = html.replace(`</body>`, () => `${injectedHtml}</body>`)\n }\n return new Response(`<!DOCTYPE html>${html}`, {\n status: router.state.statusCode,\n headers: responseHeaders,\n })\n } catch (error) {\n console.error('Render to string error:', error)\n return new Response('Internal Server Error', {\n status: 500,\n headers: responseHeaders,\n })\n } finally {\n router.serverSsr?.cleanup()\n }\n}\n"],"names":["renderRouterToString","router","responseHeaders","children","serializationAdapters","options","ssr","serovalPlugins","map","adapter","plugin","makeSsrSerovalPlugin","didRun","html","Solid","renderToString","nonce","plugins","serverSsr","setRenderFinished","injectedHtml","takeBufferedHtml","replace","Response","status","state","statusCode","headers","error","console","cleanup"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKO,MAAMA,uBAAuB,OAAO;AAAA,EACzCC;AAAAA,EACAC;AAAAA,EACAC;AAKF,MAAM;AACJ,MAAI;AACF,UAAMC,wBACHH,OAAOI,SAAiBD,yBACxBH,OAAOI,QAAQC,KAAaF;AAC/B,UAAMG,iBAAiBH,uBAAuBI,IAAI,CAACC,YAAiB;AAClE,YAAMC,SAASC,WAAAA,qBAAqBF,SAAS;AAAA,QAAEG,QAAQ;AAAA,MAAA,CAAO;AAC9D,aAAOF;AAAAA,IACT,CAAC;AAED,QAAIG,OAAOC,iBAAMC,eAAeZ,UAAU;AAAA,MACxCa,OAAOf,OAAOI,QAAQC,KAAKU;AAAAA,MAC3BC,SAASV;AAAAA,IAAAA,CACH;AACRN,WAAOiB,UAAWC,kBAAAA;AAElB,UAAMC,eAAenB,OAAOiB,UAAWG,iBAAAA;AACvC,QAAID,cAAc;AAChBP,aAAOA,KAAKS,QAAQ,WAAW,MAAM,GAAGF,YAAY,SAAS;AAAA,IAC/D;AACA,WAAO,IAAIG,SAAS,kBAAkBV,IAAI,IAAI;AAAA,MAC5CW,QAAQvB,OAAOwB,MAAMC;AAAAA,MACrBC,SAASzB;AAAAA,IAAAA,CACV;AAAA,EACH,SAAS0B,OAAO;AACdC,YAAQD,MAAM,2BAA2BA,KAAK;AAC9C,WAAO,IAAIL,SAAS,yBAAyB;AAAA,MAC3CC,QAAQ;AAAA,MACRG,SAASzB;AAAAA,IAAAA,CACV;AAAA,EACH,UAAA;AACED,WAAOiB,WAAWY,QAAAA;AAAAA,EACpB;AACF;;"}
1
+ {"version":3,"file":"renderRouterToString.cjs","names":["Solid","makeSsrSerovalPlugin","AnyRouter","JSXElement","renderRouterToString","router","responseHeaders","children","Headers","serializationAdapters","options","ssr","serovalPlugins","map","adapter","plugin","didRun","html","renderToString","nonce","plugins","serverSsr","setRenderFinished","injectedHtml","takeBufferedHtml","replace","Response","status","state","statusCode","headers","error","console","cleanup"],"sources":["../../../src/ssr/renderRouterToString.tsx"],"sourcesContent":["import * as Solid from 'solid-js/web'\nimport { makeSsrSerovalPlugin } from '@tanstack/router-core'\nimport type { AnyRouter } from '@tanstack/router-core'\nimport type { JSXElement } from 'solid-js'\n\nexport const renderRouterToString = async ({\n router,\n responseHeaders,\n children,\n}: {\n router: AnyRouter\n responseHeaders: Headers\n children: () => JSXElement\n}) => {\n try {\n const serializationAdapters =\n (router.options as any)?.serializationAdapters ||\n (router.options.ssr as any)?.serializationAdapters\n const serovalPlugins = serializationAdapters?.map((adapter: any) => {\n const plugin = makeSsrSerovalPlugin(adapter, { didRun: false })\n return plugin\n })\n\n let html = Solid.renderToString(children, {\n nonce: router.options.ssr?.nonce,\n plugins: serovalPlugins,\n } as any)\n router.serverSsr!.setRenderFinished()\n\n const injectedHtml = router.serverSsr!.takeBufferedHtml()\n if (injectedHtml) {\n html = html.replace(`</body>`, () => `${injectedHtml}</body>`)\n }\n return new Response(`<!DOCTYPE html>${html}`, {\n status: router.state.statusCode,\n headers: responseHeaders,\n })\n } catch (error) {\n console.error('Render to string error:', error)\n return new Response('Internal Server Error', {\n status: 500,\n headers: responseHeaders,\n })\n } finally {\n router.serverSsr?.cleanup()\n }\n}\n"],"mappings":";;;;;AAKA,IAAaI,uBAAuB,OAAO,EACzCC,QACAC,iBACAC,eAKI;AACJ,KAAI;EAIF,MAAMK,kBAFHP,OAAOK,SAAiBD,yBACxBJ,OAAOK,QAAQC,KAAaF,wBACeI,KAAKC,YAAiB;AAElE,WAAA,GAAA,sBAAA,sBADoCA,SAAS,EAAEE,QAAQ,OAAO,CAAC;IAE/D;EAEF,IAAIC,OAAOjB,aAAMkB,eAAeX,UAAU;GACxCY,OAAOd,OAAOK,QAAQC,KAAKQ;GAC3BC,SAASR;GACV,CAAQ;AACTP,SAAOgB,UAAWC,mBAAmB;EAErC,MAAMC,eAAelB,OAAOgB,UAAWG,kBAAkB;AACzD,MAAID,aACFN,QAAOA,KAAKQ,QAAQ,iBAAiB,GAAGF,aAAY,SAAU;AAEhE,SAAO,IAAIG,SAAS,kBAAkBT,QAAQ;GAC5CU,QAAQtB,OAAOuB,MAAMC;GACrBC,SAASxB;GACV,CAAC;UACKyB,OAAO;AACdC,UAAQD,MAAM,2BAA2BA,MAAM;AAC/C,SAAO,IAAIL,SAAS,yBAAyB;GAC3CC,QAAQ;GACRG,SAASxB;GACV,CAAC;WACM;AACRD,SAAOgB,WAAWY,SAAS"}
@@ -1,20 +1,20 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const RouterServer = require("./RouterServer.cjs");
4
- const defaultRenderHandler = require("./defaultRenderHandler.cjs");
5
- const defaultStreamHandler = require("./defaultStreamHandler.cjs");
6
- const renderRouterToStream = require("./renderRouterToStream.cjs");
7
- const renderRouterToString = require("./renderRouterToString.cjs");
8
- const server = require("@tanstack/router-core/ssr/server");
9
- exports.RouterServer = RouterServer.RouterServer;
10
- exports.defaultRenderHandler = defaultRenderHandler.defaultRenderHandler;
11
- exports.defaultStreamHandler = defaultStreamHandler.defaultStreamHandler;
12
- exports.renderRouterToStream = renderRouterToStream.renderRouterToStream;
13
- exports.renderRouterToString = renderRouterToString.renderRouterToString;
14
- Object.keys(server).forEach((k) => {
15
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
16
- enumerable: true,
17
- get: () => server[k]
18
- });
2
+ const require_RouterServer = require("./RouterServer.cjs");
3
+ const require_renderRouterToString = require("./renderRouterToString.cjs");
4
+ const require_defaultRenderHandler = require("./defaultRenderHandler.cjs");
5
+ const require_renderRouterToStream = require("./renderRouterToStream.cjs");
6
+ const require_defaultStreamHandler = require("./defaultStreamHandler.cjs");
7
+ exports.RouterServer = require_RouterServer.RouterServer;
8
+ exports.defaultRenderHandler = require_defaultRenderHandler.defaultRenderHandler;
9
+ exports.defaultStreamHandler = require_defaultStreamHandler.defaultStreamHandler;
10
+ exports.renderRouterToStream = require_renderRouterToStream.renderRouterToStream;
11
+ exports.renderRouterToString = require_renderRouterToString.renderRouterToString;
12
+ var _tanstack_router_core_ssr_server = require("@tanstack/router-core/ssr/server");
13
+ Object.keys(_tanstack_router_core_ssr_server).forEach(function(k) {
14
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
15
+ enumerable: true,
16
+ get: function() {
17
+ return _tanstack_router_core_ssr_server[k];
18
+ }
19
+ });
19
20
  });
20
- //# sourceMappingURL=server.cjs.map
@@ -1,180 +1,145 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid$1 = require("solid-js/web");
4
- const Solid = require("solid-js");
5
- const useRouter = require("./useRouter.cjs");
6
- function _interopNamespaceDefault(e) {
7
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
- if (e) {
9
- for (const k in e) {
10
- if (k !== "default") {
11
- const d = Object.getOwnPropertyDescriptor(e, k);
12
- Object.defineProperty(n, k, d.get ? d : {
13
- enumerable: true,
14
- get: () => e[k]
15
- });
16
- }
17
- }
18
- }
19
- n.default = e;
20
- return Object.freeze(n);
21
- }
22
- const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
1
+ const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
2
+ const require_useRouter = require("./useRouter.cjs");
3
+ let solid_js_web = require("solid-js/web");
4
+ let solid_js = require("solid-js");
5
+ solid_js = require_runtime.__toESM(solid_js);
6
+ //#region src/useBlocker.tsx
23
7
  function _resolveBlockerOpts(opts, condition) {
24
- if (opts === void 0) {
25
- return {
26
- shouldBlockFn: () => true,
27
- withResolver: false
28
- };
29
- }
30
- if ("shouldBlockFn" in opts) {
31
- return opts;
32
- }
33
- if (typeof opts === "function") {
34
- const shouldBlock2 = Boolean(condition ?? true);
35
- const _customBlockerFn2 = async () => {
36
- if (shouldBlock2) return await opts();
37
- return false;
38
- };
39
- return {
40
- shouldBlockFn: _customBlockerFn2,
41
- enableBeforeUnload: shouldBlock2,
42
- withResolver: false
43
- };
44
- }
45
- const shouldBlock = Solid__namespace.createMemo(() => Boolean(opts.condition ?? true));
46
- const _customBlockerFn = async () => {
47
- if (shouldBlock() && opts.blockerFn !== void 0) {
48
- return await opts.blockerFn();
49
- }
50
- return shouldBlock();
51
- };
52
- return {
53
- get shouldBlockFn() {
54
- return _customBlockerFn;
55
- },
56
- get enableBeforeUnload() {
57
- return shouldBlock();
58
- },
59
- get withResolver() {
60
- return opts.blockerFn === void 0;
61
- }
62
- };
8
+ if (opts === void 0) return {
9
+ shouldBlockFn: () => true,
10
+ withResolver: false
11
+ };
12
+ if ("shouldBlockFn" in opts) return opts;
13
+ if (typeof opts === "function") {
14
+ const shouldBlock = Boolean(condition ?? true);
15
+ const _customBlockerFn = async () => {
16
+ if (shouldBlock) return await opts();
17
+ return false;
18
+ };
19
+ return {
20
+ shouldBlockFn: _customBlockerFn,
21
+ enableBeforeUnload: shouldBlock,
22
+ withResolver: false
23
+ };
24
+ }
25
+ const shouldBlock = solid_js.createMemo(() => Boolean(opts.condition ?? true));
26
+ const _customBlockerFn = async () => {
27
+ if (shouldBlock() && opts.blockerFn !== void 0) return await opts.blockerFn();
28
+ return shouldBlock();
29
+ };
30
+ return {
31
+ get shouldBlockFn() {
32
+ return _customBlockerFn;
33
+ },
34
+ get enableBeforeUnload() {
35
+ return shouldBlock();
36
+ },
37
+ get withResolver() {
38
+ return opts.blockerFn === void 0;
39
+ }
40
+ };
63
41
  }
64
42
  function useBlocker(opts, condition) {
65
- const props = Solid__namespace.mergeProps({
66
- enableBeforeUnload: true,
67
- disabled: false,
68
- withResolver: false
69
- }, _resolveBlockerOpts(opts, condition));
70
- const router = useRouter.useRouter();
71
- const [resolver, setResolver] = Solid__namespace.createSignal({
72
- status: "idle",
73
- current: void 0,
74
- next: void 0,
75
- action: void 0,
76
- proceed: void 0,
77
- reset: void 0
78
- });
79
- Solid__namespace.createEffect(() => {
80
- const blockerFnComposed = async (blockerFnArgs) => {
81
- function getLocation(location) {
82
- const parsedLocation = router.parseLocation(location);
83
- const matchedRoutes = router.getMatchedRoutes(parsedLocation.pathname);
84
- if (matchedRoutes.foundRoute === void 0) {
85
- return {
86
- routeId: "__notFound__",
87
- fullPath: parsedLocation.pathname,
88
- pathname: parsedLocation.pathname,
89
- params: matchedRoutes.routeParams,
90
- search: parsedLocation.search
91
- };
92
- }
93
- return {
94
- routeId: matchedRoutes.foundRoute.id,
95
- fullPath: matchedRoutes.foundRoute.fullPath,
96
- pathname: parsedLocation.pathname,
97
- params: matchedRoutes.routeParams,
98
- search: parsedLocation.search
99
- };
100
- }
101
- const current = getLocation(blockerFnArgs.currentLocation);
102
- const next = getLocation(blockerFnArgs.nextLocation);
103
- if (current.routeId === "__notFound__" && next.routeId !== "__notFound__") {
104
- return false;
105
- }
106
- const shouldBlock = await props.shouldBlockFn({
107
- action: blockerFnArgs.action,
108
- current,
109
- next
110
- });
111
- if (!props.withResolver) {
112
- return shouldBlock;
113
- }
114
- if (!shouldBlock) {
115
- return false;
116
- }
117
- const promise = new Promise((resolve) => {
118
- setResolver({
119
- status: "blocked",
120
- current,
121
- next,
122
- action: blockerFnArgs.action,
123
- proceed: () => resolve(false),
124
- reset: () => resolve(true)
125
- });
126
- });
127
- const canNavigateAsync = await promise;
128
- setResolver({
129
- status: "idle",
130
- current: void 0,
131
- next: void 0,
132
- action: void 0,
133
- proceed: void 0,
134
- reset: void 0
135
- });
136
- return canNavigateAsync;
137
- };
138
- const disposeBlock = props.disabled ? void 0 : router.history.block({
139
- blockerFn: blockerFnComposed,
140
- enableBeforeUnload: props.enableBeforeUnload
141
- });
142
- Solid__namespace.onCleanup(() => disposeBlock?.());
143
- });
144
- return resolver;
43
+ const props = solid_js.mergeProps({
44
+ enableBeforeUnload: true,
45
+ disabled: false,
46
+ withResolver: false
47
+ }, _resolveBlockerOpts(opts, condition));
48
+ const router = require_useRouter.useRouter();
49
+ const [resolver, setResolver] = solid_js.createSignal({
50
+ status: "idle",
51
+ current: void 0,
52
+ next: void 0,
53
+ action: void 0,
54
+ proceed: void 0,
55
+ reset: void 0
56
+ });
57
+ solid_js.createEffect(() => {
58
+ const blockerFnComposed = async (blockerFnArgs) => {
59
+ function getLocation(location) {
60
+ const parsedLocation = router.parseLocation(location);
61
+ const matchedRoutes = router.getMatchedRoutes(parsedLocation.pathname);
62
+ if (matchedRoutes.foundRoute === void 0) return {
63
+ routeId: "__notFound__",
64
+ fullPath: parsedLocation.pathname,
65
+ pathname: parsedLocation.pathname,
66
+ params: matchedRoutes.routeParams,
67
+ search: parsedLocation.search
68
+ };
69
+ return {
70
+ routeId: matchedRoutes.foundRoute.id,
71
+ fullPath: matchedRoutes.foundRoute.fullPath,
72
+ pathname: parsedLocation.pathname,
73
+ params: matchedRoutes.routeParams,
74
+ search: parsedLocation.search
75
+ };
76
+ }
77
+ const current = getLocation(blockerFnArgs.currentLocation);
78
+ const next = getLocation(blockerFnArgs.nextLocation);
79
+ if (current.routeId === "__notFound__" && next.routeId !== "__notFound__") return false;
80
+ const shouldBlock = await props.shouldBlockFn({
81
+ action: blockerFnArgs.action,
82
+ current,
83
+ next
84
+ });
85
+ if (!props.withResolver) return shouldBlock;
86
+ if (!shouldBlock) return false;
87
+ const canNavigateAsync = await new Promise((resolve) => {
88
+ setResolver({
89
+ status: "blocked",
90
+ current,
91
+ next,
92
+ action: blockerFnArgs.action,
93
+ proceed: () => resolve(false),
94
+ reset: () => resolve(true)
95
+ });
96
+ });
97
+ setResolver({
98
+ status: "idle",
99
+ current: void 0,
100
+ next: void 0,
101
+ action: void 0,
102
+ proceed: void 0,
103
+ reset: void 0
104
+ });
105
+ return canNavigateAsync;
106
+ };
107
+ const disposeBlock = props.disabled ? void 0 : router.history.block({
108
+ blockerFn: blockerFnComposed,
109
+ enableBeforeUnload: props.enableBeforeUnload
110
+ });
111
+ solid_js.onCleanup(() => disposeBlock?.());
112
+ });
113
+ return resolver;
145
114
  }
146
- const _resolvePromptBlockerArgs = (props) => {
147
- if ("shouldBlockFn" in props) {
148
- return props;
149
- }
150
- const shouldBlock = Solid__namespace.createMemo(() => Boolean(props.condition ?? true));
151
- const _customBlockerFn = async () => {
152
- if (shouldBlock() && props.blockerFn !== void 0) {
153
- return await props.blockerFn();
154
- }
155
- return shouldBlock;
156
- };
157
- return {
158
- shouldBlockFn: _customBlockerFn,
159
- get enableBeforeUnload() {
160
- return shouldBlock();
161
- },
162
- get withResolver() {
163
- return props.blockerFn === void 0;
164
- }
165
- };
115
+ var _resolvePromptBlockerArgs = (props) => {
116
+ if ("shouldBlockFn" in props) return props;
117
+ const shouldBlock = solid_js.createMemo(() => Boolean(props.condition ?? true));
118
+ const _customBlockerFn = async () => {
119
+ if (shouldBlock() && props.blockerFn !== void 0) return await props.blockerFn();
120
+ return shouldBlock;
121
+ };
122
+ return {
123
+ shouldBlockFn: _customBlockerFn,
124
+ get enableBeforeUnload() {
125
+ return shouldBlock();
126
+ },
127
+ get withResolver() {
128
+ return props.blockerFn === void 0;
129
+ }
130
+ };
166
131
  };
167
- function Block(opts) {
168
- const [propsWithChildren, rest] = Solid__namespace.splitProps(opts, ["children"]);
169
- const args = _resolvePromptBlockerArgs(rest);
170
- const resolver = useBlocker(args);
171
- const children = Solid__namespace.createMemo(() => {
172
- const child = propsWithChildren.children;
173
- if (resolver && typeof child === "function") return child(resolver());
174
- return child;
175
- });
176
- return Solid$1.memo(children);
177
- }
132
+ var Block = function Block(opts) {
133
+ const [propsWithChildren, rest] = solid_js.splitProps(opts, ["children"]);
134
+ const resolver = useBlocker(_resolvePromptBlockerArgs(rest));
135
+ return (0, solid_js_web.memo)(solid_js.createMemo(() => {
136
+ const child = propsWithChildren.children;
137
+ if (resolver && typeof child === "function") return child(resolver());
138
+ return child;
139
+ }));
140
+ };
141
+ //#endregion
178
142
  exports.Block = Block;
179
143
  exports.useBlocker = useBlocker;
180
- //# sourceMappingURL=useBlocker.cjs.map
144
+
145
+ //# sourceMappingURL=useBlocker.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBlocker.cjs","sources":["../../src/useBlocker.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { useRouter } from './useRouter'\nimport type {\n BlockerFnArgs,\n HistoryAction,\n HistoryLocation,\n} from '@tanstack/history'\nimport type { SolidNode } from './route'\nimport type {\n AnyRoute,\n AnyRouter,\n ParseRoute,\n RegisteredRouter,\n} from '@tanstack/router-core'\n\ninterface ShouldBlockFnLocation<\n out TRouteId,\n out TFullPath,\n out TAllParams,\n out TFullSearchSchema,\n> {\n routeId: TRouteId\n fullPath: TFullPath\n pathname: string\n params: TAllParams\n search: TFullSearchSchema\n}\n\ntype AnyShouldBlockFnLocation = ShouldBlockFnLocation<any, any, any, any>\ntype MakeShouldBlockFnLocationUnion<\n TRouter extends AnyRouter = RegisteredRouter,\n TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>,\n> = TRoute extends any\n ? ShouldBlockFnLocation<\n TRoute['id'],\n TRoute['fullPath'],\n TRoute['types']['allParams'],\n TRoute['types']['fullSearchSchema']\n >\n : never\n\ntype BlockerResolver<TRouter extends AnyRouter = RegisteredRouter> =\n | {\n status: 'blocked'\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n proceed: () => void\n reset: () => void\n }\n | {\n status: 'idle'\n current: undefined\n next: undefined\n action: undefined\n proceed: undefined\n reset: undefined\n }\n\ntype ShouldBlockFnArgs<TRouter extends AnyRouter = RegisteredRouter> = {\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n}\n\nexport type ShouldBlockFn<TRouter extends AnyRouter = RegisteredRouter> = (\n args: ShouldBlockFnArgs<TRouter>,\n) => boolean | Promise<boolean>\nexport type UseBlockerOpts<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n> = {\n shouldBlockFn: ShouldBlockFn<TRouter>\n enableBeforeUnload?: boolean | (() => boolean)\n disabled?: boolean\n withResolver?: TWithResolver\n}\n\ntype LegacyBlockerFn = () => Promise<any> | any\ntype LegacyBlockerOpts = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n}\n\nfunction _resolveBlockerOpts(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): UseBlockerOpts {\n if (opts === undefined) {\n return {\n shouldBlockFn: () => true,\n withResolver: false,\n }\n }\n\n if ('shouldBlockFn' in opts) {\n return opts\n }\n\n if (typeof opts === 'function') {\n const shouldBlock = Boolean(condition ?? true)\n\n const _customBlockerFn = async () => {\n if (shouldBlock) return await opts()\n return false\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: false,\n }\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(opts.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && opts.blockerFn !== undefined) {\n return await opts.blockerFn()\n }\n return shouldBlock()\n }\n\n return {\n get shouldBlockFn() {\n return _customBlockerFn\n },\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return opts.blockerFn === undefined\n },\n }\n}\n\nexport function useBlocker<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = false,\n>(\n opts: UseBlockerOpts<TRouter, TWithResolver>,\n): TWithResolver extends true ? Solid.Accessor<BlockerResolver<TRouter>> : void\n\n/**\n * @deprecated Use the shouldBlockFn property instead\n */\nexport function useBlocker(\n blockerFnOrOpts?: LegacyBlockerOpts,\n): Solid.Accessor<BlockerResolver>\n\n/**\n * @deprecated Use the UseBlockerOpts object syntax instead\n */\nexport function useBlocker(\n blockerFn?: LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver>\n\nexport function useBlocker(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver> | void {\n const props = Solid.mergeProps(\n {\n enableBeforeUnload: true,\n disabled: false,\n withResolver: false,\n },\n _resolveBlockerOpts(opts, condition),\n )\n\n const router = useRouter()\n\n const [resolver, setResolver] = Solid.createSignal<BlockerResolver>({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n Solid.createEffect(() => {\n const blockerFnComposed = async (blockerFnArgs: BlockerFnArgs) => {\n function getLocation(\n location: HistoryLocation,\n ): AnyShouldBlockFnLocation {\n const parsedLocation = router.parseLocation(location)\n const matchedRoutes = router.getMatchedRoutes(parsedLocation.pathname)\n if (matchedRoutes.foundRoute === undefined) {\n return {\n routeId: '__notFound__',\n fullPath: parsedLocation.pathname,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search,\n }\n }\n return {\n routeId: matchedRoutes.foundRoute.id,\n fullPath: matchedRoutes.foundRoute.fullPath,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search,\n }\n }\n\n const current = getLocation(blockerFnArgs.currentLocation)\n const next = getLocation(blockerFnArgs.nextLocation)\n\n if (\n current.routeId === '__notFound__' &&\n next.routeId !== '__notFound__'\n ) {\n return false\n }\n\n const shouldBlock = await props.shouldBlockFn({\n action: blockerFnArgs.action,\n current,\n next,\n })\n if (!props.withResolver) {\n return shouldBlock\n }\n\n if (!shouldBlock) {\n return false\n }\n\n const promise = new Promise<boolean>((resolve) => {\n setResolver({\n status: 'blocked',\n current,\n next,\n action: blockerFnArgs.action,\n proceed: () => resolve(false),\n reset: () => resolve(true),\n })\n })\n\n const canNavigateAsync = await promise\n setResolver({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n return canNavigateAsync\n }\n\n const disposeBlock = props.disabled\n ? undefined\n : router.history.block({\n blockerFn: blockerFnComposed,\n enableBeforeUnload: props.enableBeforeUnload,\n })\n\n Solid.onCleanup(() => disposeBlock?.())\n })\n\n return resolver\n}\n\nconst _resolvePromptBlockerArgs = (\n props: PromptProps | LegacyPromptProps,\n): UseBlockerOpts => {\n if ('shouldBlockFn' in props) {\n return props\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(props.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && props.blockerFn !== undefined) {\n return await props.blockerFn()\n }\n return shouldBlock\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return props.blockerFn === undefined\n },\n }\n}\n\nexport function Block<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n>(opts: PromptProps<TRouter, TWithResolver>): SolidNode\n\n/**\n * @deprecated Use the UseBlockerOpts property instead\n */\nexport function Block(opts: LegacyPromptProps): SolidNode\n\nexport function Block(opts: PromptProps | LegacyPromptProps): SolidNode {\n const [propsWithChildren, rest] = Solid.splitProps(opts, ['children'])\n const args = _resolvePromptBlockerArgs(rest)\n\n const resolver = useBlocker(args)\n const children = Solid.createMemo(() => {\n const child = propsWithChildren.children\n if (resolver && typeof child === 'function') return child(resolver())\n return child\n })\n\n return <>{children()}</>\n}\n\ntype LegacyPromptProps = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n children?: SolidNode | ((params: BlockerResolver) => SolidNode)\n}\n\ntype PromptProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n TParams = TWithResolver extends true ? BlockerResolver<TRouter> : void,\n> = UseBlockerOpts<TRouter, TWithResolver> & {\n children?: SolidNode | ((params: TParams) => SolidNode)\n}\n"],"names":["_resolveBlockerOpts","opts","condition","undefined","shouldBlockFn","withResolver","shouldBlock","Boolean","_customBlockerFn","enableBeforeUnload","Solid","createMemo","blockerFn","useBlocker","props","mergeProps","disabled","router","useRouter","resolver","setResolver","createSignal","status","current","next","action","proceed","reset","createEffect","blockerFnComposed","blockerFnArgs","getLocation","location","parsedLocation","parseLocation","matchedRoutes","getMatchedRoutes","pathname","foundRoute","routeId","fullPath","params","routeParams","search","id","currentLocation","nextLocation","promise","Promise","resolve","canNavigateAsync","disposeBlock","history","block","onCleanup","_resolvePromptBlockerArgs","Block","propsWithChildren","rest","splitProps","args","children","child","_$memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAoFA,SAASA,oBACPC,MACAC,WACgB;AAChB,MAAID,SAASE,QAAW;AACtB,WAAO;AAAA,MACLC,eAAeA,MAAM;AAAA,MACrBC,cAAc;AAAA,IAAA;AAAA,EAElB;AAEA,MAAI,mBAAmBJ,MAAM;AAC3B,WAAOA;AAAAA,EACT;AAEA,MAAI,OAAOA,SAAS,YAAY;AAC9B,UAAMK,eAAcC,QAAQL,aAAa,IAAI;AAE7C,UAAMM,oBAAmB,YAAY;AACnC,UAAIF,aAAa,QAAO,MAAML,KAAAA;AAC9B,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,MACLG,eAAeI;AAAAA,MACfC,oBAAoBH;AAAAA,MACpBD,cAAc;AAAA,IAAA;AAAA,EAElB;AAEA,QAAMC,cAAcI,iBAAMC,WAAW,MAAMJ,QAAQN,KAAKC,aAAa,IAAI,CAAC;AAE1E,QAAMM,mBAAmB,YAAY;AACnC,QAAIF,YAAAA,KAAiBL,KAAKW,cAAcT,QAAW;AACjD,aAAO,MAAMF,KAAKW,UAAAA;AAAAA,IACpB;AACA,WAAON,YAAAA;AAAAA,EACT;AAEA,SAAO;AAAA,IACL,IAAIF,gBAAgB;AAClB,aAAOI;AAAAA,IACT;AAAA,IACA,IAAIC,qBAAqB;AACvB,aAAOH,YAAAA;AAAAA,IACT;AAAA,IACA,IAAID,eAAe;AACjB,aAAOJ,KAAKW,cAAcT;AAAAA,IAC5B;AAAA,EAAA;AAEJ;AAwBO,SAASU,WACdZ,MACAC,WACwC;AACxC,QAAMY,QAAQJ,iBAAMK,WAClB;AAAA,IACEN,oBAAoB;AAAA,IACpBO,UAAU;AAAA,IACVX,cAAc;AAAA,EAAA,GAEhBL,oBAAoBC,MAAMC,SAAS,CACrC;AAEA,QAAMe,SAASC,UAAAA,UAAAA;AAEf,QAAM,CAACC,UAAUC,WAAW,IAAIV,iBAAMW,aAA8B;AAAA,IAClEC,QAAQ;AAAA,IACRC,SAASpB;AAAAA,IACTqB,MAAMrB;AAAAA,IACNsB,QAAQtB;AAAAA,IACRuB,SAASvB;AAAAA,IACTwB,OAAOxB;AAAAA,EAAAA,CACR;AAEDO,mBAAMkB,aAAa,MAAM;AACvB,UAAMC,oBAAoB,OAAOC,kBAAiC;AAChE,eAASC,YACPC,UAC0B;AAC1B,cAAMC,iBAAiBhB,OAAOiB,cAAcF,QAAQ;AACpD,cAAMG,gBAAgBlB,OAAOmB,iBAAiBH,eAAeI,QAAQ;AACrE,YAAIF,cAAcG,eAAenC,QAAW;AAC1C,iBAAO;AAAA,YACLoC,SAAS;AAAA,YACTC,UAAUP,eAAeI;AAAAA,YACzBA,UAAUJ,eAAeI;AAAAA,YACzBI,QAAQN,cAAcO;AAAAA,YACtBC,QAAQV,eAAeU;AAAAA,UAAAA;AAAAA,QAE3B;AACA,eAAO;AAAA,UACLJ,SAASJ,cAAcG,WAAWM;AAAAA,UAClCJ,UAAUL,cAAcG,WAAWE;AAAAA,UACnCH,UAAUJ,eAAeI;AAAAA,UACzBI,QAAQN,cAAcO;AAAAA,UACtBC,QAAQV,eAAeU;AAAAA,QAAAA;AAAAA,MAE3B;AAEA,YAAMpB,UAAUQ,YAAYD,cAAce,eAAe;AACzD,YAAMrB,OAAOO,YAAYD,cAAcgB,YAAY;AAEnD,UACEvB,QAAQgB,YAAY,kBACpBf,KAAKe,YAAY,gBACjB;AACA,eAAO;AAAA,MACT;AAEA,YAAMjC,cAAc,MAAMQ,MAAMV,cAAc;AAAA,QAC5CqB,QAAQK,cAAcL;AAAAA,QACtBF;AAAAA,QACAC;AAAAA,MAAAA,CACD;AACD,UAAI,CAACV,MAAMT,cAAc;AACvB,eAAOC;AAAAA,MACT;AAEA,UAAI,CAACA,aAAa;AAChB,eAAO;AAAA,MACT;AAEA,YAAMyC,UAAU,IAAIC,QAAkBC,CAAAA,YAAY;AAChD7B,oBAAY;AAAA,UACVE,QAAQ;AAAA,UACRC;AAAAA,UACAC;AAAAA,UACAC,QAAQK,cAAcL;AAAAA,UACtBC,SAASA,MAAMuB,QAAQ,KAAK;AAAA,UAC5BtB,OAAOA,MAAMsB,QAAQ,IAAI;AAAA,QAAA,CAC1B;AAAA,MACH,CAAC;AAED,YAAMC,mBAAmB,MAAMH;AAC/B3B,kBAAY;AAAA,QACVE,QAAQ;AAAA,QACRC,SAASpB;AAAAA,QACTqB,MAAMrB;AAAAA,QACNsB,QAAQtB;AAAAA,QACRuB,SAASvB;AAAAA,QACTwB,OAAOxB;AAAAA,MAAAA,CACR;AAED,aAAO+C;AAAAA,IACT;AAEA,UAAMC,eAAerC,MAAME,WACvBb,SACAc,OAAOmC,QAAQC,MAAM;AAAA,MACnBzC,WAAWiB;AAAAA,MACXpB,oBAAoBK,MAAML;AAAAA,IAAAA,CAC3B;AAELC,qBAAM4C,UAAU,MAAMH,gBAAgB;AAAA,EACxC,CAAC;AAED,SAAOhC;AACT;AAEA,MAAMoC,4BAA4BA,CAChCzC,UACmB;AACnB,MAAI,mBAAmBA,OAAO;AAC5B,WAAOA;AAAAA,EACT;AAEA,QAAMR,cAAcI,iBAAMC,WAAW,MAAMJ,QAAQO,MAAMZ,aAAa,IAAI,CAAC;AAE3E,QAAMM,mBAAmB,YAAY;AACnC,QAAIF,YAAAA,KAAiBQ,MAAMF,cAAcT,QAAW;AAClD,aAAO,MAAMW,MAAMF,UAAAA;AAAAA,IACrB;AACA,WAAON;AAAAA,EACT;AAEA,SAAO;AAAA,IACLF,eAAeI;AAAAA,IACf,IAAIC,qBAAqB;AACvB,aAAOH,YAAAA;AAAAA,IACT;AAAA,IACA,IAAID,eAAe;AACjB,aAAOS,MAAMF,cAAcT;AAAAA,IAC7B;AAAA,EAAA;AAEJ;AAYO,SAASqD,MAAMvD,MAAkD;AACtE,QAAM,CAACwD,mBAAmBC,IAAI,IAAIhD,iBAAMiD,WAAW1D,MAAM,CAAC,UAAU,CAAC;AACrE,QAAM2D,OAAOL,0BAA0BG,IAAI;AAE3C,QAAMvC,WAAWN,WAAW+C,IAAI;AAChC,QAAMC,WAAWnD,iBAAMC,WAAW,MAAM;AACtC,UAAMmD,QAAQL,kBAAkBI;AAChC,QAAI1C,YAAY,OAAO2C,UAAU,WAAY,QAAOA,MAAM3C,UAAU;AACpE,WAAO2C;AAAAA,EACT,CAAC;AAED,SAAAC,QAAAA,KAAUF,QAAQ;AACpB;;;"}
1
+ {"version":3,"file":"useBlocker.cjs","names":["Solid","useRouter","BlockerFnArgs","HistoryAction","HistoryLocation","SolidNode","AnyRoute","AnyRouter","ParseRoute","RegisteredRouter","ShouldBlockFnLocation","routeId","TRouteId","fullPath","TFullPath","pathname","params","TAllParams","search","TFullSearchSchema","AnyShouldBlockFnLocation","MakeShouldBlockFnLocationUnion","TRouter","TRoute","BlockerResolver","status","current","next","action","proceed","reset","ShouldBlockFnArgs","ShouldBlockFn","args","Promise","UseBlockerOpts","shouldBlockFn","enableBeforeUnload","disabled","withResolver","TWithResolver","LegacyBlockerFn","LegacyBlockerOpts","blockerFn","condition","_resolveBlockerOpts","opts","undefined","shouldBlock","Boolean","_customBlockerFn","createMemo","useBlocker","Accessor","blockerFnOrOpts","props","mergeProps","router","resolver","setResolver","createSignal","createEffect","blockerFnComposed","blockerFnArgs","getLocation","location","parsedLocation","parseLocation","matchedRoutes","getMatchedRoutes","foundRoute","routeParams","id","currentLocation","nextLocation","promise","resolve","canNavigateAsync","disposeBlock","history","block","onCleanup","_resolvePromptBlockerArgs","PromptProps","LegacyPromptProps","BlockComponent","Block","propsWithChildren","rest","splitProps","children","child","_$memo","TParams"],"sources":["../../src/useBlocker.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { useRouter } from './useRouter'\nimport type {\n BlockerFnArgs,\n HistoryAction,\n HistoryLocation,\n} from '@tanstack/history'\nimport type { SolidNode } from './route'\nimport type {\n AnyRoute,\n AnyRouter,\n ParseRoute,\n RegisteredRouter,\n} from '@tanstack/router-core'\n\ninterface ShouldBlockFnLocation<\n out TRouteId,\n out TFullPath,\n out TAllParams,\n out TFullSearchSchema,\n> {\n routeId: TRouteId\n fullPath: TFullPath\n pathname: string\n params: TAllParams\n search: TFullSearchSchema\n}\n\ntype AnyShouldBlockFnLocation = ShouldBlockFnLocation<any, any, any, any>\ntype MakeShouldBlockFnLocationUnion<\n TRouter extends AnyRouter = RegisteredRouter,\n TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>,\n> = TRoute extends any\n ? ShouldBlockFnLocation<\n TRoute['id'],\n TRoute['fullPath'],\n TRoute['types']['allParams'],\n TRoute['types']['fullSearchSchema']\n >\n : never\n\ntype BlockerResolver<TRouter extends AnyRouter = RegisteredRouter> =\n | {\n status: 'blocked'\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n proceed: () => void\n reset: () => void\n }\n | {\n status: 'idle'\n current: undefined\n next: undefined\n action: undefined\n proceed: undefined\n reset: undefined\n }\n\ntype ShouldBlockFnArgs<TRouter extends AnyRouter = RegisteredRouter> = {\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n}\n\nexport type ShouldBlockFn<TRouter extends AnyRouter = RegisteredRouter> = (\n args: ShouldBlockFnArgs<TRouter>,\n) => boolean | Promise<boolean>\nexport type UseBlockerOpts<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n> = {\n shouldBlockFn: ShouldBlockFn<TRouter>\n enableBeforeUnload?: boolean | (() => boolean)\n disabled?: boolean\n withResolver?: TWithResolver\n}\n\ntype LegacyBlockerFn = () => Promise<any> | any\ntype LegacyBlockerOpts = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n}\n\nfunction _resolveBlockerOpts(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): UseBlockerOpts {\n if (opts === undefined) {\n return {\n shouldBlockFn: () => true,\n withResolver: false,\n }\n }\n\n if ('shouldBlockFn' in opts) {\n return opts\n }\n\n if (typeof opts === 'function') {\n const shouldBlock = Boolean(condition ?? true)\n\n const _customBlockerFn = async () => {\n if (shouldBlock) return await opts()\n return false\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: false,\n }\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(opts.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && opts.blockerFn !== undefined) {\n return await opts.blockerFn()\n }\n return shouldBlock()\n }\n\n return {\n get shouldBlockFn() {\n return _customBlockerFn\n },\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return opts.blockerFn === undefined\n },\n }\n}\n\nexport function useBlocker<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = false,\n>(\n opts: UseBlockerOpts<TRouter, TWithResolver>,\n): TWithResolver extends true ? Solid.Accessor<BlockerResolver<TRouter>> : void\n\n/**\n * @deprecated Use the shouldBlockFn property instead\n */\nexport function useBlocker(\n blockerFnOrOpts?: LegacyBlockerOpts,\n): Solid.Accessor<BlockerResolver>\n\n/**\n * @deprecated Use the UseBlockerOpts object syntax instead\n */\nexport function useBlocker(\n blockerFn?: LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver>\n\nexport function useBlocker(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver> | void {\n const props = Solid.mergeProps(\n {\n enableBeforeUnload: true,\n disabled: false,\n withResolver: false,\n },\n _resolveBlockerOpts(opts, condition),\n )\n\n const router = useRouter()\n\n const [resolver, setResolver] = Solid.createSignal<BlockerResolver>({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n Solid.createEffect(() => {\n const blockerFnComposed = async (blockerFnArgs: BlockerFnArgs) => {\n function getLocation(\n location: HistoryLocation,\n ): AnyShouldBlockFnLocation {\n const parsedLocation = router.parseLocation(location)\n const matchedRoutes = router.getMatchedRoutes(parsedLocation.pathname)\n if (matchedRoutes.foundRoute === undefined) {\n return {\n routeId: '__notFound__',\n fullPath: parsedLocation.pathname,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search,\n }\n }\n return {\n routeId: matchedRoutes.foundRoute.id,\n fullPath: matchedRoutes.foundRoute.fullPath,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search,\n }\n }\n\n const current = getLocation(blockerFnArgs.currentLocation)\n const next = getLocation(blockerFnArgs.nextLocation)\n\n if (\n current.routeId === '__notFound__' &&\n next.routeId !== '__notFound__'\n ) {\n return false\n }\n\n const shouldBlock = await props.shouldBlockFn({\n action: blockerFnArgs.action,\n current,\n next,\n })\n if (!props.withResolver) {\n return shouldBlock\n }\n\n if (!shouldBlock) {\n return false\n }\n\n const promise = new Promise<boolean>((resolve) => {\n setResolver({\n status: 'blocked',\n current,\n next,\n action: blockerFnArgs.action,\n proceed: () => resolve(false),\n reset: () => resolve(true),\n })\n })\n\n const canNavigateAsync = await promise\n setResolver({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n return canNavigateAsync\n }\n\n const disposeBlock = props.disabled\n ? undefined\n : router.history.block({\n blockerFn: blockerFnComposed,\n enableBeforeUnload: props.enableBeforeUnload,\n })\n\n Solid.onCleanup(() => disposeBlock?.())\n })\n\n return resolver\n}\n\nconst _resolvePromptBlockerArgs = (\n props: PromptProps | LegacyPromptProps,\n): UseBlockerOpts => {\n if ('shouldBlockFn' in props) {\n return props\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(props.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && props.blockerFn !== undefined) {\n return await props.blockerFn()\n }\n return shouldBlock\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return props.blockerFn === undefined\n },\n }\n}\n\ninterface BlockComponent {\n <\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n >(\n opts: PromptProps<TRouter, TWithResolver>,\n ): SolidNode\n /**\n * @deprecated Use the UseBlockerOpts property instead\n */\n (opts: LegacyPromptProps): SolidNode\n}\n\nexport const Block: BlockComponent = function Block(\n opts: PromptProps | LegacyPromptProps,\n): SolidNode {\n const [propsWithChildren, rest] = Solid.splitProps(opts, ['children'])\n const args = _resolvePromptBlockerArgs(rest)\n\n const resolver = useBlocker(args)\n const children = Solid.createMemo(() => {\n const child = propsWithChildren.children\n if (resolver && typeof child === 'function') return child(resolver())\n return child\n })\n\n return <>{children()}</>\n}\n\ntype LegacyPromptProps = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n children?: SolidNode | ((params: BlockerResolver) => SolidNode)\n}\n\ntype PromptProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n TParams = TWithResolver extends true ? BlockerResolver<TRouter> : void,\n> = UseBlockerOpts<TRouter, TWithResolver> & {\n children?: SolidNode | ((params: TParams) => SolidNode)\n}\n"],"mappings":"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"}
@@ -51,11 +51,14 @@ export declare function useBlocker(blockerFnOrOpts?: LegacyBlockerOpts): Solid.A
51
51
  * @deprecated Use the UseBlockerOpts object syntax instead
52
52
  */
53
53
  export declare function useBlocker(blockerFn?: LegacyBlockerFn, condition?: boolean | any): Solid.Accessor<BlockerResolver>;
54
- export declare function Block<TRouter extends AnyRouter = RegisteredRouter, TWithResolver extends boolean = boolean>(opts: PromptProps<TRouter, TWithResolver>): SolidNode;
55
- /**
56
- * @deprecated Use the UseBlockerOpts property instead
57
- */
58
- export declare function Block(opts: LegacyPromptProps): SolidNode;
54
+ interface BlockComponent {
55
+ <TRouter extends AnyRouter = RegisteredRouter, TWithResolver extends boolean = boolean>(opts: PromptProps<TRouter, TWithResolver>): SolidNode;
56
+ /**
57
+ * @deprecated Use the UseBlockerOpts property instead
58
+ */
59
+ (opts: LegacyPromptProps): SolidNode;
60
+ }
61
+ export declare const Block: BlockComponent;
59
62
  type LegacyPromptProps = {
60
63
  blockerFn?: LegacyBlockerFn;
61
64
  condition?: boolean | any;
@@ -1,8 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const useRouterState = require("./useRouterState.cjs");
1
+ const require_useRouterState = require("./useRouterState.cjs");
2
+ //#region src/useCanGoBack.ts
4
3
  function useCanGoBack() {
5
- return useRouterState.useRouterState({ select: (s) => s.location.state.__TSR_index !== 0 });
4
+ return require_useRouterState.useRouterState({ select: (s) => s.location.state.__TSR_index !== 0 });
6
5
  }
6
+ //#endregion
7
7
  exports.useCanGoBack = useCanGoBack;
8
- //# sourceMappingURL=useCanGoBack.cjs.map
8
+
9
+ //# sourceMappingURL=useCanGoBack.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCanGoBack.cjs","sources":["../../src/useCanGoBack.ts"],"sourcesContent":["import { useRouterState } from './useRouterState'\n\nexport function useCanGoBack() {\n return useRouterState({ select: (s) => s.location.state.__TSR_index !== 0 })\n}\n"],"names":["useRouterState"],"mappings":";;;AAEO,SAAS,eAAe;AAC7B,SAAOA,eAAAA,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,gBAAgB,GAAG;AAC7E;;"}
1
+ {"version":3,"file":"useCanGoBack.cjs","names":[],"sources":["../../src/useCanGoBack.ts"],"sourcesContent":["import { useRouterState } from './useRouterState'\n\nexport function useCanGoBack() {\n return useRouterState({ select: (s) => s.location.state.__TSR_index !== 0 })\n}\n"],"mappings":";;AAEA,SAAgB,eAAe;AAC7B,QAAO,uBAAA,eAAe,EAAE,SAAS,MAAM,EAAE,SAAS,MAAM,gBAAgB,GAAG,CAAC"}
@@ -1,14 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const useMatch = require("./useMatch.cjs");
1
+ const require_useMatch = require("./useMatch.cjs");
2
+ //#region src/useLoaderData.tsx
4
3
  function useLoaderData(opts) {
5
- return useMatch.useMatch({
6
- from: opts.from,
7
- strict: opts.strict,
8
- select: (s) => {
9
- return opts.select ? opts.select(s.loaderData) : s.loaderData;
10
- }
11
- });
4
+ return require_useMatch.useMatch({
5
+ from: opts.from,
6
+ strict: opts.strict,
7
+ select: (s) => {
8
+ return opts.select ? opts.select(s.loaderData) : s.loaderData;
9
+ }
10
+ });
12
11
  }
12
+ //#endregion
13
13
  exports.useLoaderData = useLoaderData;
14
- //# sourceMappingURL=useLoaderData.cjs.map
14
+
15
+ //# sourceMappingURL=useLoaderData.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLoaderData.cjs","sources":["../../src/useLoaderData.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { Accessor } from 'solid-js'\nimport type {\n AnyRouter,\n RegisteredRouter,\n ResolveUseLoaderData,\n StrictOrFrom,\n UseLoaderDataResult,\n} from '@tanstack/router-core'\n\nexport interface UseLoaderDataBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> {\n select?: (match: ResolveUseLoaderData<TRouter, TFrom, TStrict>) => TSelected\n}\n\nexport type UseLoaderDataOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseLoaderDataBaseOptions<TRouter, TFrom, TStrict, TSelected>\n\nexport type UseLoaderDataRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseLoaderDataBaseOptions<TRouter, TId, true, TSelected>,\n) => Accessor<UseLoaderDataResult<TRouter, TId, true, TSelected>>\n\nexport function useLoaderData<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseLoaderDataOptions<TRouter, TFrom, TStrict, TSelected>,\n): Accessor<UseLoaderDataResult<TRouter, TFrom, TStrict, TSelected>> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n select: (s: any) => {\n return opts.select ? opts.select(s.loaderData) : s.loaderData\n },\n } as any) as any\n}\n"],"names":["useLoaderData","opts","useMatch","from","strict","select","s","loaderData"],"mappings":";;;AAkCO,SAASA,cAMdC,MACmE;AACnE,SAAOC,kBAAS;AAAA,IACdC,MAAMF,KAAKE;AAAAA,IACXC,QAAQH,KAAKG;AAAAA,IACbC,QAAQA,CAACC,MAAW;AAClB,aAAOL,KAAKI,SAASJ,KAAKI,OAAOC,EAAEC,UAAU,IAAID,EAAEC;AAAAA,IACrD;AAAA,EAAA,CACM;AACV;;"}
1
+ {"version":3,"file":"useLoaderData.cjs","names":["useMatch","Accessor","AnyRouter","RegisteredRouter","ResolveUseLoaderData","StrictOrFrom","UseLoaderDataResult","UseLoaderDataBaseOptions","select","match","TRouter","TFrom","TStrict","TSelected","UseLoaderDataOptions","UseLoaderDataRoute","opts","TId","useLoaderData","from","strict","s","loaderData"],"sources":["../../src/useLoaderData.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { Accessor } from 'solid-js'\nimport type {\n AnyRouter,\n RegisteredRouter,\n ResolveUseLoaderData,\n StrictOrFrom,\n UseLoaderDataResult,\n} from '@tanstack/router-core'\n\nexport interface UseLoaderDataBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> {\n select?: (match: ResolveUseLoaderData<TRouter, TFrom, TStrict>) => TSelected\n}\n\nexport type UseLoaderDataOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseLoaderDataBaseOptions<TRouter, TFrom, TStrict, TSelected>\n\nexport type UseLoaderDataRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseLoaderDataBaseOptions<TRouter, TId, true, TSelected>,\n) => Accessor<UseLoaderDataResult<TRouter, TId, true, TSelected>>\n\nexport function useLoaderData<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseLoaderDataOptions<TRouter, TFrom, TStrict, TSelected>,\n): Accessor<UseLoaderDataResult<TRouter, TFrom, TStrict, TSelected>> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n select: (s: any) => {\n return opts.select ? opts.select(s.loaderData) : s.loaderData\n },\n } as any) as any\n}\n"],"mappings":";;AAkCA,SAAgBkB,cAMdF,MACmE;AACnE,QAAOhB,iBAAAA,SAAS;EACdmB,MAAMH,KAAKG;EACXC,QAAQJ,KAAKI;EACbZ,SAASa,MAAW;AAClB,UAAOL,KAAKR,SAASQ,KAAKR,OAAOa,EAAEC,WAAW,GAAGD,EAAEC;;EAEtD,CAAQ"}
@@ -1,17 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const useMatch = require("./useMatch.cjs");
1
+ const require_useMatch = require("./useMatch.cjs");
2
+ //#region src/useLoaderDeps.tsx
4
3
  function useLoaderDeps(opts) {
5
- const {
6
- select,
7
- ...rest
8
- } = opts;
9
- return useMatch.useMatch({
10
- ...rest,
11
- select: (s) => {
12
- return select ? select(s.loaderDeps) : s.loaderDeps;
13
- }
14
- });
4
+ const { select, ...rest } = opts;
5
+ return require_useMatch.useMatch({
6
+ ...rest,
7
+ select: (s) => {
8
+ return select ? select(s.loaderDeps) : s.loaderDeps;
9
+ }
10
+ });
15
11
  }
12
+ //#endregion
16
13
  exports.useLoaderDeps = useLoaderDeps;
17
- //# sourceMappingURL=useLoaderDeps.cjs.map
14
+
15
+ //# sourceMappingURL=useLoaderDeps.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLoaderDeps.cjs","sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { Accessor } from 'solid-js'\nimport type {\n AnyRouter,\n RegisteredRouter,\n ResolveUseLoaderDeps,\n StrictOrFrom,\n UseLoaderDepsResult,\n} from '@tanstack/router-core'\n\nexport interface UseLoaderDepsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n> {\n select?: (deps: ResolveUseLoaderDeps<TRouter, TFrom>) => TSelected\n}\n\nexport type UseLoaderDepsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom> &\n UseLoaderDepsBaseOptions<TRouter, TFrom, TSelected>\n\nexport type UseLoaderDepsRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseLoaderDepsBaseOptions<TRouter, TId, TSelected>,\n) => Accessor<UseLoaderDepsResult<TRouter, TId, TSelected>>\n\nexport function useLoaderDeps<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TSelected = unknown,\n>(\n opts: UseLoaderDepsOptions<TRouter, TFrom, TSelected>,\n): Accessor<UseLoaderDepsResult<TRouter, TFrom, TSelected>> {\n const { select, ...rest } = opts\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps\n },\n }) as Accessor<UseLoaderDepsResult<TRouter, TFrom, TSelected>>\n}\n"],"names":["useLoaderDeps","opts","select","rest","useMatch","s","loaderDeps"],"mappings":";;;AAgCO,SAASA,cAKdC,MAC0D;AAC1D,QAAM;AAAA,IAAEC;AAAAA,IAAQ,GAAGC;AAAAA,EAAAA,IAASF;AAC5B,SAAOG,kBAAS;AAAA,IACd,GAAGD;AAAAA,IACHD,QAASG,CAAAA,MAAM;AACb,aAAOH,SAASA,OAAOG,EAAEC,UAAU,IAAID,EAAEC;AAAAA,IAC3C;AAAA,EAAA,CACD;AACH;;"}
1
+ {"version":3,"file":"useLoaderDeps.cjs","names":["useMatch","Accessor","AnyRouter","RegisteredRouter","ResolveUseLoaderDeps","StrictOrFrom","UseLoaderDepsResult","UseLoaderDepsBaseOptions","select","deps","TRouter","TFrom","TSelected","UseLoaderDepsOptions","UseLoaderDepsRoute","opts","TId","useLoaderDeps","rest","s","loaderDeps"],"sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { Accessor } from 'solid-js'\nimport type {\n AnyRouter,\n RegisteredRouter,\n ResolveUseLoaderDeps,\n StrictOrFrom,\n UseLoaderDepsResult,\n} from '@tanstack/router-core'\n\nexport interface UseLoaderDepsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n> {\n select?: (deps: ResolveUseLoaderDeps<TRouter, TFrom>) => TSelected\n}\n\nexport type UseLoaderDepsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom> &\n UseLoaderDepsBaseOptions<TRouter, TFrom, TSelected>\n\nexport type UseLoaderDepsRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseLoaderDepsBaseOptions<TRouter, TId, TSelected>,\n) => Accessor<UseLoaderDepsResult<TRouter, TId, TSelected>>\n\nexport function useLoaderDeps<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TSelected = unknown,\n>(\n opts: UseLoaderDepsOptions<TRouter, TFrom, TSelected>,\n): Accessor<UseLoaderDepsResult<TRouter, TFrom, TSelected>> {\n const { select, ...rest } = opts\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps\n },\n }) as Accessor<UseLoaderDepsResult<TRouter, TFrom, TSelected>>\n}\n"],"mappings":";;AAgCA,SAAgBiB,cAKdF,MAC0D;CAC1D,MAAM,EAAEP,QAAQ,GAAGU,SAASH;AAC5B,QAAOf,iBAAAA,SAAS;EACd,GAAGkB;EACHV,SAASW,MAAM;AACb,UAAOX,SAASA,OAAOW,EAAEC,WAAW,GAAGD,EAAEC;;EAE5C,CAAC"}
@@ -1,10 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const useRouterState = require("./useRouterState.cjs");
1
+ const require_useRouterState = require("./useRouterState.cjs");
2
+ //#region src/useLocation.tsx
4
3
  function useLocation(opts) {
5
- return useRouterState.useRouterState({
6
- select: (state) => opts?.select ? opts.select(state.location) : state.location
7
- });
4
+ return require_useRouterState.useRouterState({ select: (state) => opts?.select ? opts.select(state.location) : state.location });
8
5
  }
6
+ //#endregion
9
7
  exports.useLocation = useLocation;
10
- //# sourceMappingURL=useLocation.cjs.map
8
+
9
+ //# sourceMappingURL=useLocation.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocation.cjs","sources":["../../src/useLocation.tsx"],"sourcesContent":["import { useRouterState } from './useRouterState'\nimport type {\n AnyRouter,\n RegisteredRouter,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor } from 'solid-js'\n\nexport interface UseLocationBaseOptions<TRouter extends AnyRouter, TSelected> {\n select?: (state: RouterState<TRouter['routeTree']>['location']) => TSelected\n}\n\nexport type UseLocationResult<\n TRouter extends AnyRouter,\n TSelected,\n> = unknown extends TSelected\n ? RouterState<TRouter['routeTree']>['location']\n : TSelected\n\nexport function useLocation<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseLocationBaseOptions<TRouter, TSelected>,\n): Accessor<UseLocationResult<TRouter, TSelected>> {\n return useRouterState({\n select: (state: any) =>\n opts?.select ? opts.select(state.location) : state.location,\n } as any) as Accessor<UseLocationResult<TRouter, TSelected>>\n}\n"],"names":["useLocation","opts","useRouterState","select","state","location"],"mappings":";;;AAmBO,SAASA,YAIdC,MACiD;AACjD,SAAOC,8BAAe;AAAA,IACpBC,QAAQA,CAACC,UACPH,MAAME,SAASF,KAAKE,OAAOC,MAAMC,QAAQ,IAAID,MAAMC;AAAAA,EAAAA,CAC/C;AACV;;"}
1
+ {"version":3,"file":"useLocation.cjs","names":["useRouterState","AnyRouter","RegisteredRouter","RouterState","Accessor","UseLocationBaseOptions","select","state","TRouter","TSelected","UseLocationResult","useLocation","opts","location"],"sources":["../../src/useLocation.tsx"],"sourcesContent":["import { useRouterState } from './useRouterState'\nimport type {\n AnyRouter,\n RegisteredRouter,\n RouterState,\n} from '@tanstack/router-core'\nimport type { Accessor } from 'solid-js'\n\nexport interface UseLocationBaseOptions<TRouter extends AnyRouter, TSelected> {\n select?: (state: RouterState<TRouter['routeTree']>['location']) => TSelected\n}\n\nexport type UseLocationResult<\n TRouter extends AnyRouter,\n TSelected,\n> = unknown extends TSelected\n ? RouterState<TRouter['routeTree']>['location']\n : TSelected\n\nexport function useLocation<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseLocationBaseOptions<TRouter, TSelected>,\n): Accessor<UseLocationResult<TRouter, TSelected>> {\n return useRouterState({\n select: (state: any) =>\n opts?.select ? opts.select(state.location) : state.location,\n } as any) as Accessor<UseLocationResult<TRouter, TSelected>>\n}\n"],"mappings":";;AAmBA,SAAgBW,YAIdC,MACiD;AACjD,QAAOZ,uBAAAA,eAAe,EACpBM,SAASC,UACPK,MAAMN,SAASM,KAAKN,OAAOC,MAAMM,SAAS,GAAGN,MAAMM,UACtD,CAAQ"}