You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13 lines
10 KiB
13 lines
10 KiB
/**
|
|
* React Router DOM v6.6.1
|
|
*
|
|
* Copyright (c) Remix Software Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE.md file in the root directory of this source tree.
|
|
*
|
|
* @license MIT
|
|
*/
|
|
import*as e from"react";import{UNSAFE_enhanceManualRouteObjects as t,Router as r,useHref as o,useResolvedPath as n,useLocation as a,UNSAFE_DataRouterStateContext as i,UNSAFE_NavigationContext as s,useNavigate as u,createPath as l,UNSAFE_RouteContext as c,useMatches as f,useNavigation as m,UNSAFE_DataRouterContext as d}from"react-router";export{AbortedDeferredError,Await,MemoryRouter,Navigate,NavigationType,Outlet,Route,Router,RouterProvider,Routes,UNSAFE_DataRouterContext,UNSAFE_DataRouterStateContext,UNSAFE_DataStaticRouterContext,UNSAFE_LocationContext,UNSAFE_NavigationContext,UNSAFE_RouteContext,UNSAFE_enhanceManualRouteObjects,createMemoryRouter,createPath,createRoutesFromChildren,createRoutesFromElements,defer,generatePath,isRouteErrorResponse,json,matchPath,matchRoutes,parsePath,redirect,renderMatches,resolvePath,useActionData,useAsyncError,useAsyncValue,useHref,useInRouterContext,useLoaderData,useLocation,useMatch,useMatches,useNavigate,useNavigation,useNavigationType,useOutlet,useOutletContext,useParams,useResolvedPath,useRevalidator,useRouteError,useRouteLoaderData,useRoutes}from"react-router";import{createRouter as h,createBrowserHistory as p,createHashHistory as g,ErrorResponse as y,invariant as w,joinPaths as v}from"@remix-run/router";const b="application/x-www-form-urlencoded";function R(e){return null!=e&&"string"==typeof e.tagName}function S(e=""){return new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,r)=>{let o=e[r];return t.concat(Array.isArray(o)?o.map((e=>[r,e])):[[r,o]])}),[]))}function E(e,t,r){let o,n,a,i;if(R(s=e)&&"form"===s.tagName.toLowerCase()){let s=r.submissionTrigger;o=r.method||e.getAttribute("method")||"get",n=r.action||e.getAttribute("action")||t,a=r.encType||e.getAttribute("enctype")||b,i=new FormData(e),s&&s.name&&i.append(s.name,s.value)}else if(function(e){return R(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return R(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let s=e.form;if(null==s)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');o=r.method||e.getAttribute("formmethod")||s.getAttribute("method")||"get",n=r.action||e.getAttribute("formaction")||s.getAttribute("action")||t,a=r.encType||e.getAttribute("formenctype")||s.getAttribute("enctype")||b,i=new FormData(s),e.name&&i.append(e.name,e.value)}else{if(R(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');if(o=r.method||"get",n=r.action||t,a=r.encType||b,e instanceof FormData)i=e;else if(i=new FormData,e instanceof URLSearchParams)for(let[t,r]of e)i.append(t,r);else if(null!=e)for(let t of Object.keys(e))i.append(t,e[t])}var s;let{protocol:u,host:l}=window.location;return{url:new URL(n,`${u}//${l}`),method:o.toLowerCase(),encType:a,formData:i}}function C(e,r){return h({basename:r?.basename,history:p({window:r?.window}),hydrationData:r?.hydrationData||L(),routes:t(e)}).initialize()}function A(e,r){return h({basename:r?.basename,history:g({window:r?.window}),hydrationData:r?.hydrationData||L(),routes:t(e)}).initialize()}function L(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:x(e.errors)}),e}function x(e){if(!e)return null;let t=Object.entries(e),r={};for(let[o,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[o]=new y(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){let e=new Error(n.message);e.stack="",r[o]=e}else r[o]=n;return r}function F({basename:t,children:o,window:n}){let a=e.useRef();null==a.current&&(a.current=p({window:n,v5Compat:!0}));let i=a.current,[s,u]=e.useState({action:i.action,location:i.location});return e.useLayoutEffect((()=>i.listen(u)),[i]),e.createElement(r,{basename:t,children:o,location:s.location,navigationType:s.action,navigator:i})}function D({basename:t,children:o,window:n}){let a=e.useRef();null==a.current&&(a.current=g({window:n,v5Compat:!0}));let i=a.current,[s,u]=e.useState({action:i.action,location:i.location});return e.useLayoutEffect((()=>i.listen(u)),[i]),e.createElement(r,{basename:t,children:o,location:s.location,navigationType:s.action,navigator:i})}function N({basename:t,children:o,history:n}){const[a,i]=e.useState({action:n.action,location:n.location});return e.useLayoutEffect((()=>n.listen(i)),[n]),e.createElement(r,{basename:t,children:o,location:a.location,navigationType:a.action,navigator:n})}const U=e.forwardRef((function({onClick:t,relative:r,reloadDocument:n,replace:a,state:i,target:s,to:u,preventScrollReset:l,...c},f){let m=o(u,{relative:r}),d=M(u,{replace:a,state:i,target:s,preventScrollReset:l,relative:r});return e.createElement("a",Object.assign({},c,{href:m,onClick:n?t:function(e){t&&t(e),e.defaultPrevented||d(e)},ref:f,target:s}))})),P=e.forwardRef((function({"aria-current":t="page",caseSensitive:r=!1,className:o="",end:u=!1,style:l,to:c,children:f,...m},d){let h=n(c,{relative:m.relative}),p=a(),g=e.useContext(i),{navigator:y}=e.useContext(s),w=y.encodeLocation?y.encodeLocation(h).pathname:h.pathname,v=p.pathname,b=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;r||(v=v.toLowerCase(),b=b?b.toLowerCase():null,w=w.toLowerCase());let R,S=v===w||!u&&v.startsWith(w)&&"/"===v.charAt(w.length),E=null!=b&&(b===w||!u&&b.startsWith(w)&&"/"===b.charAt(w.length)),C=S?t:void 0;R="function"==typeof o?o({isActive:S,isPending:E}):[o,S?"active":null,E?"pending":null].filter(Boolean).join(" ");let A="function"==typeof l?l({isActive:S,isPending:E}):l;return e.createElement(U,Object.assign({},m,{"aria-current":C,className:R,ref:d,style:A,to:c}),"function"==typeof f?f({isActive:S,isPending:E}):f)})),T=e.forwardRef(((t,r)=>e.createElement(_,Object.assign({},t,{ref:r})))),_=e.forwardRef((({reloadDocument:t,replace:r,method:o="get",action:n,onSubmit:a,fetcherKey:i,routeId:s,relative:u,...l},c)=>{let f=$(i,s),m="get"===o.toLowerCase()?"get":"post",d=z(n,{relative:u});return e.createElement("form",Object.assign({ref:c,method:m,action:d,onSubmit:t?a:e=>{if(a&&a(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,n=t?.getAttribute("formmethod")||o;f(t||e.currentTarget,{method:n,replace:r,relative:u})}},l))}));function O({getKey:e,storageKey:t}){return q({getKey:e,storageKey:t}),null}var k,K;function j(t){let r=e.useContext(d);return r||w(!1),r}function I(t){let r=e.useContext(i);return r||w(!1),r}function M(t,{target:r,replace:o,state:i,preventScrollReset:s,relative:c}={}){let f=u(),m=a(),d=n(t,{relative:c});return e.useCallback((e=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(e,r)){e.preventDefault();let r=void 0!==o?o:l(m)===l(d);f(t,{replace:r,state:i,preventScrollReset:s,relative:c})}}),[m,f,d,o,i,r,t,s,c])}function H(t){let r=e.useRef(S(t)),o=a(),n=e.useMemo((()=>function(e,t){let r=S(e);for(let o of t.keys())r.has(o)||t.getAll(o).forEach((e=>{r.append(o,e)}));return r}(o.search,r.current)),[o.search]),i=u(),s=e.useCallback(((e,t)=>{const r=S("function"==typeof e?e(n):e);i("?"+r,t)}),[i,n]);return[n,s]}function Y(){return $()}function $(t,r){let{router:o}=j(k.UseSubmitImpl),n=z();return e.useCallback(((e,a={})=>{if("undefined"==typeof document)throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.");let{method:i,encType:s,formData:u,url:l}=E(e,n,a),c=l.pathname+l.search,f={replace:a.replace,formData:u,formMethod:i,formEncType:s};t?(null==r&&w(!1),o.fetch(t,r,c,f)):o.navigate(c,f)}),[n,o,t,r])}function z(t,{relative:r}={}){let{basename:o}=e.useContext(s),i=e.useContext(c);i||w(!1);let[u]=i.matches.slice(-1),f={...n(t||".",{relative:r})},m=a();if(null==t&&(f.search=m.search,f.hash=m.hash,u.route.index)){let e=new URLSearchParams(f.search);e.delete("index"),f.search=e.toString()?`?${e.toString()}`:""}return t&&"."!==t||!u.route.index||(f.search=f.search?f.search.replace(/^\?/,"?index&"):"?index"),"/"!==o&&(f.pathname="/"===f.pathname?o:v([o,f.pathname])),l(f)}!function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmitImpl="useSubmitImpl",e.UseFetcher="useFetcher"}(k||(k={})),function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(K||(K={}));let B=0;function J(){let{router:t}=j(k.UseFetcher),r=e.useContext(c);r||w(!1);let o=r.matches[r.matches.length-1]?.route.id;null==o&&w(!1);let[n]=e.useState((()=>String(++B))),[a]=e.useState((()=>(o||w(!1),function(t,r){return e.forwardRef(((o,n)=>e.createElement(_,Object.assign({},o,{ref:n,fetcherKey:t,routeId:r}))))}(n,o)))),[i]=e.useState((()=>e=>{t||w(!1),o||w(!1),t.fetch(n,o,e)})),s=$(n,o),u=t.getFetcher(n),l=e.useMemo((()=>({Form:a,submit:s,load:i,...u})),[u,a,s,i]);return e.useEffect((()=>()=>{t?t.deleteFetcher(n):console.warn("No fetcher available to clean up from useFetcher()")}),[t,n]),l}function V(){return[...I(K.UseFetchers).fetchers.values()]}let W={};function q({getKey:t,storageKey:r}={}){let{router:o}=j(k.UseScrollRestoration),{restoreScrollPosition:n,preventScrollReset:i}=I(K.UseScrollRestoration),s=a(),u=f(),l=m();e.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),G(e.useCallback((()=>{if("idle"===l.state){let e=(t?t(s,u):null)||s.key;W[e]=window.scrollY}sessionStorage.setItem(r||"react-router-scroll-positions",JSON.stringify(W)),window.history.scrollRestoration="auto"}),[r,t,l.state,s,u])),"undefined"!=typeof document&&(e.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(r||"react-router-scroll-positions");e&&(W=JSON.parse(e))}catch(e){}}),[r]),e.useLayoutEffect((()=>{let e=o?.enableScrollRestoration(W,(()=>window.scrollY),t);return()=>e&&e()}),[o,t]),e.useLayoutEffect((()=>{if(!1!==n)if("number"!=typeof n){if(s.hash){let e=document.getElementById(s.hash.slice(1));if(e)return void e.scrollIntoView()}!0!==i&&window.scrollTo(0,0)}else window.scrollTo(0,n)}),[s,n,i]))}function G(t){e.useEffect((()=>(window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)})),[t])}export{F as BrowserRouter,T as Form,D as HashRouter,U as Link,P as NavLink,O as ScrollRestoration,q as UNSAFE_useScrollRestoration,C as createBrowserRouter,A as createHashRouter,S as createSearchParams,N as unstable_HistoryRouter,G as useBeforeUnload,J as useFetcher,V as useFetchers,z as useFormAction,M as useLinkClickHandler,H as useSearchParams,Y as useSubmit};
|
|
//# sourceMappingURL=react-router-dom.production.min.js.map
|