Comparing version 2.0.0-alpha.7 to 2.0.0-alpha.8
@@ -57,2 +57,3 @@ var __create = Object.create; | ||
Link: () => Link, | ||
Redirect: () => Redirect, | ||
RouteRenderer: () => RouteRenderer, | ||
@@ -190,5 +191,19 @@ RouterProvider: () => RouterProvider, | ||
// src/components/RouteRenderer.tsx | ||
// src/components/Redirect.tsx | ||
var import_react3 = __toModule(require("react")); | ||
var Redirect = ({ exact, push, to }) => { | ||
const { history, isActive } = (0, import_react3.useContext)(RouterContext); | ||
(0, import_react3.useEffect)(() => { | ||
if (!isActive(to, exact)) { | ||
const replaceMethod = push ? "push" : "replace"; | ||
history[replaceMethod](to); | ||
} | ||
}, [exact, history, isActive, push, to]); | ||
return null; | ||
}; | ||
Redirect.displayName = "Redirect"; | ||
// src/components/RouteRenderer.tsx | ||
var import_react4 = __toModule(require("react")); | ||
// src/utils/SuspenseResource.ts | ||
@@ -361,4 +376,4 @@ var SuspenseResource = class { | ||
}) => { | ||
const { awaitComponent, get, history, routeTransitionCompleted, subscribe } = (0, import_react3.useContext)(RouterContext); | ||
const [{ isTransitioning, historyUpdate, routeEntry }, dispatch] = (0, import_react3.useReducer)(reducer, { | ||
const { awaitComponent, get, history, routeTransitionCompleted, subscribe } = (0, import_react4.useContext)(RouterContext); | ||
const [{ isTransitioning, historyUpdate, routeEntry }, dispatch] = (0, import_react4.useReducer)(reducer, { | ||
historyUpdate: { | ||
@@ -371,4 +386,4 @@ action: history.action, | ||
}); | ||
const Component = (0, import_react3.useMemo)(() => routeEntry.component.read(), [routeEntry]); | ||
const getPendingRouteEntry = (0, import_react3.useCallback)(async (pendingRouteEntry) => { | ||
const Component = (0, import_react4.useMemo)(() => routeEntry.component.read(), [routeEntry]); | ||
const getPendingRouteEntry = (0, import_react4.useCallback)(async (pendingRouteEntry) => { | ||
const preloaded = {}; | ||
@@ -392,3 +407,3 @@ if (pendingRouteEntry.preloaded) { | ||
}, []); | ||
(0, import_react3.useEffect)(() => { | ||
(0, import_react4.useEffect)(() => { | ||
const dispose = subscribe({ | ||
@@ -417,3 +432,3 @@ onTransitionStart: async (nextEntry, update) => { | ||
}, [awaitComponent, subscribe, getPendingRouteEntry]); | ||
(0, import_react3.useEffect)(() => { | ||
(0, import_react4.useEffect)(() => { | ||
routeTransitionCompleted(historyUpdate); | ||
@@ -434,5 +449,5 @@ }, [historyUpdate, routeTransitionCompleted]); | ||
// src/hooks/useHistory.ts | ||
var import_react4 = __toModule(require("react")); | ||
var import_react5 = __toModule(require("react")); | ||
var useHistory = () => { | ||
const context = (0, import_react4.useContext)(RouterContext); | ||
const context = (0, import_react5.useContext)(RouterContext); | ||
if (!isRouterContext(context)) { | ||
@@ -446,5 +461,5 @@ throw new Error("`useHistory` can not be used outside of `RouterProvider`."); | ||
// src/hooks/useNavigation.ts | ||
var import_react5 = __toModule(require("react")); | ||
var import_react6 = __toModule(require("react")); | ||
var useNavigation = () => { | ||
const context = (0, import_react5.useContext)(RouterContext); | ||
const context = (0, import_react6.useContext)(RouterContext); | ||
if (!isRouterContext(context)) { | ||
@@ -458,5 +473,5 @@ throw new Error("`useNavigation` can not be used outside of `RouterProvider`."); | ||
// src/hooks/useRouter.ts | ||
var import_react6 = __toModule(require("react")); | ||
var import_react7 = __toModule(require("react")); | ||
var useRouter = () => { | ||
const context = (0, import_react6.useContext)(RouterContext); | ||
const context = (0, import_react7.useContext)(RouterContext); | ||
if (!isRouterContext(context)) { | ||
@@ -743,2 +758,3 @@ throw new Error("`useRouter` can not be used outside of `RouterProvider`."); | ||
Link, | ||
Redirect, | ||
RouteRenderer, | ||
@@ -745,0 +761,0 @@ RouterProvider, |
@@ -1,4 +0,4 @@ | ||
var Tt=Object.create;var k=Object.defineProperty,At=Object.defineProperties,wt=Object.getOwnPropertyDescriptor,vt=Object.getOwnPropertyDescriptors,bt=Object.getOwnPropertyNames,F=Object.getOwnPropertySymbols,Ot=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var Z=(t,e,o)=>e in t?k(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,i=(t,e)=>{for(var o in e||(e={}))q.call(e,o)&&Z(t,o,e[o]);if(F)for(var o of F(e))X.call(e,o)&&Z(t,o,e[o]);return t},h=(t,e)=>At(t,vt(e)),D=t=>k(t,"__esModule",{value:!0});var M=(t,e)=>{var o={};for(var r in t)q.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&F)for(var r of F(t))e.indexOf(r)<0&&X.call(t,r)&&(o[r]=t[r]);return o};var Ht=(t,e)=>{D(t);for(var o in e)k(t,o,{get:e[o],enumerable:!0})},Nt=(t,e,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of bt(e))!q.call(t,r)&&r!=="default"&&k(t,r,{get:()=>e[r],enumerable:!(o=wt(e,r))||o.enumerable});return t},C=t=>Nt(D(k(t!=null?Tt(Ot(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);Ht(exports,{Link:()=>K,RouteRenderer:()=>z,RouterProvider:()=>G,SuspenseResource:()=>v,createBrowserRouter:()=>ft,createHashRouter:()=>yt,createMemoryRouter:()=>Pt,useHistory:()=>at,useNavigation:()=>pt,useRouter:()=>ut});var T=C(require("react"));var tt=C(require("history")),et=C(require("react")),y=()=>{throw new Error("RouterContext was called outside of RouterProvider.")},O=t=>t.warmRoute!==y,Ut={assistPreload:!1,awaitComponent:!1,get:y,history:{action:tt.Action.Push,back:y,block:y,createHref:y,forward:y,go:y,listen:y,location:{hash:"",key:"",pathname:"",search:"",state:null},push:y,replace:y},isActive:y,preloadCode:y,routeTransitionCompleted:y,subscribe:y,warmRoute:y},E=(0,et.createContext)(Ut);var It=0,kt=t=>Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey),Lt=t=>!t.defaultPrevented&&t.button===It&&(!t.currentTarget.target||t.currentTarget.target==="_self")&&!kt(t),K=(0,T.forwardRef)((c,g)=>{var a=c,{activeClassName:t="is-active",children:e,className:o,exact:r=!1,to:s,onClick:p,onFocus:n,onKeyDown:l,onMouseDown:u,onMouseEnter:m}=a,f=M(a,["activeClassName","children","className","exact","to","onClick","onFocus","onKeyDown","onMouseDown","onMouseEnter"]);let{history:d,isActive:R,preloadCode:P,warmRoute:_}=(0,T.useContext)(E),A=d.createHref(s),Q=R(s,r),xt=(0,T.useCallback)(x=>{try{p==null||p(x)}catch(B){throw x.preventDefault(),B}if(Lt(x)){x.preventDefault();let B=R(s,!0)?"replace":"push";d[B](s)}},[d,R,p,s]),Ct=(0,T.useCallback)(x=>{P(A),n==null||n(x)},[A,n,P]),Et=(0,T.useCallback)(x=>{_(A),l==null||l(x)},[A,l,_]),St=(0,T.useCallback)(x=>{P(A),m==null||m(x)},[A,m,P]),Mt=(0,T.useCallback)(x=>{_(A),u==null||u(x)},[A,u,_]);return React.createElement("a",h(i({ref:g},f),{"aria-current":Q?"page":void 0,className:[o,Q?t:null].filter(Boolean).join(" "),href:A,onClick:xt,onFocus:Ct,onKeyDown:Et,onMouseDown:Mt,onMouseEnter:St}),e)});K.displayName="Link";var S=C(require("react"));var v=class{constructor(e){this.result=null;this.error=null;this.promise=null;this.loader=e}async load(){if(this.result!==null)return this.result;if(this.promise!==null)return this.promise;this.promise=this.loader();try{let e=await this.promise;return this.result=e,e}catch(e){throw this.error=e,e}}read(){if(this.result!==null)return this.result;throw this.error!==null?this.error:this.promise!==null?this.promise:this.load()}};var H=t=>{let e=[];for(let o in t)!Object.prototype.hasOwnProperty.call(t,o)||e.push(o);return e.sort((o,r)=>o>r?1:-1).reduce((o,r)=>{let s=t[r];if(!s)return o;let p=Array.isArray(s)?s.sort((n,l)=>n>l?1:-1).map(n=>encodeURIComponent(n)).join(`&${r}=`):encodeURIComponent(s);return`${o}${o?"&":"?"}${r}=${p}`},"")};var b={parametersString:"",pathname:"",value:null},rt=t=>typeof t=="function",Y=t=>t instanceof Map,ot=t=>Y(t.preloaded),Wt=({route:t,params:e,search:o},r)=>{var n;let s=new Map,p=(n=t.preload)==null?void 0:n.call(t,e,o);for(let l in p){if(!Object.prototype.hasOwnProperty.call(p,l))continue;let u=p[l];if(u===void 0)continue;let m=rt(u)?u:u.data,f=new v(m);f.load(),s.set(l,{data:f,defer:!rt(u)&&u.defer!==void 0?u.defer:!r})}return s};function $(t,e=!1,o=!1){var g,c;let{route:r,params:s,search:p,location:n}=t,l=n.pathname===b.pathname,u=H(s);if(e&&l&&u===b.parametersString&&b.value!==null)return b.value;r.component.load();let m={component:r.component,location:n,params:s,search:p};if(e){let a=r.preload&&Wt(t,o),d=h(i({},m),{preloaded:a});return a&&(b.pathname=(g=n.pathname)!=null?g:"",b.parametersString=H(s),b.value=d),d}return h(i({},m),{preloaded:(c=r.preload)==null?void 0:c.call(r,s,p)})}var st=(t,e)=>{switch(e.type){case"START_ROUTE_TRANSITION":return h(i({},t),{isTransitioning:!0});case"FINISH_ROUTE_TRANSITION":return i(h(i({},t),{isTransitioning:!1}),e.payload);default:return t}};var _t=t=>{let e={component:t.component,location:t.location,props:{params:t.params,search:t.search}};if(Y(t.preloaded)){let o={};for(let[r,s]of t.preloaded.entries())o[r]=s.data;return h(i({},e),{props:h(i({},e.props),{preloaded:o})})}return h(i({},e),{props:h(i({},e.props),{preloaded:t.preloaded})})},z=({pendingIndicator:t,routeWrapper:e})=>{let{awaitComponent:o,get:r,history:s,routeTransitionCompleted:p,subscribe:n}=(0,S.useContext)(E),[{isTransitioning:l,historyUpdate:u,routeEntry:m},f]=(0,S.useReducer)(st,{historyUpdate:{action:s.action,location:s.location},isTransitioning:!1,routeEntry:_t(r())}),g=(0,S.useMemo)(()=>m.component.read(),[m]),c=(0,S.useCallback)(async a=>{let d={};if(a.preloaded)for(let[R,P]of a.preloaded.entries())P.defer||await P.data.load(),d[R]=P.data;return{component:a.component,location:a.location,props:{params:a.params,preloaded:a.preloaded&&d,search:a.search}}},[]);return(0,S.useEffect)(()=>{let a=n({onTransitionStart:async(d,R)=>{f({type:"START_ROUTE_TRANSITION"}),o&&await d.component.load();let P=ot(d)?await c(d):{component:d.component,location:d.location,props:{params:d.params,preloaded:d.preloaded,search:d.search}};f({payload:{historyUpdate:R,routeEntry:P},type:"FINISH_ROUTE_TRANSITION"})}});return()=>a()},[o,n,c]),(0,S.useEffect)(()=>{p(u)},[u,p]),React.createElement(React.Fragment,null,l&&t?t:null,e?e({Route:React.createElement(g,i({},m.props))}):React.createElement(g,i({},m.props)))};z.displayName="RouteRenderer";var G=({children:t,router:e})=>React.createElement(E.Provider,{value:e},t);G.displayName="RouterProvider";var nt=C(require("react"));var at=()=>{let t=(0,nt.useContext)(E);if(!O(t))throw new Error("`useHistory` can not be used outside of `RouterProvider`.");let{action:e,listen:o,location:r}=t.history;return{action:e,listen:o,location:r}};var it=C(require("react"));var pt=()=>{let t=(0,it.useContext)(E);if(!O(t))throw new Error("`useNavigation` can not be used outside of `RouterProvider`.");let{back:e,forward:o,go:r,push:s,replace:p}=t.history;return{back:e,forward:o,go:r,push:s,replace:p}};var ct=C(require("react"));var ut=()=>{let t=(0,ct.useContext)(E);if(!O(t))throw new Error("`useRouter` can not be used outside of `RouterProvider`.");let{isActive:e,preloadCode:o,subscribe:r,warmRoute:s}=t;return{isActive:e,preloadCode:o,subscribe:r,warmRoute:s}};var ht=C(require("history"));var J=C(require("history"));var dt=C(require("history")),w=t=>i({hash:"",pathname:"",search:""},typeof t=="string"?(0,dt.parsePath)(t):t);var V=(t,e,o="")=>{let r=decodeURIComponent(o),s=t[e];return s?Array.isArray(s)?s.concat(r):[s,r]:r};var L=t=>t?t.slice(1).split("&").reduce((o,r)=>{let[s,p]=r.split("=");if(s){let n=V(o,s,p);return h(i({},o),{[s]:n})}return o},{}):{};var W=(t,e,o=!1)=>{var p,n;let r=w(t),s=w(e);if(r.pathname!==s.pathname)return!1;if(o){let l=H(L((p=r.search)!=null?p:"")),u=H(L((n=s.search)!=null?n:""));return l===u&&r.hash===s.hash}return!0};var j=t=>t.startsWith("/")?t:`/${t}`;var mt=(t,e)=>{let o=j(e),r=[],s=`^(${t.replace(/[$()*+./?[\\\]^{|}-]/g,"\\$&").replace(/\\\*$/,".*").replace(/:(\w+)|(.\*)/g,(u,m="$rest")=>(r.push(m),`([^${m==="$rest"?":(w+)|(.*)":"\\/"}]+)`))})\\/?$`,n=new RegExp(s).exec(o);return n?{params:r.reduce((u,m,f)=>{let g=n[f+2],c=V(u,m,g);return u[m]=c,u},{})}:null};var N=(t,e)=>{var u,m;let o=w(e),{pathname:r}=o,s={},p=i({},L((u=o.search)!=null?u:""));if(!r)throw new Error("Unable to determine pathname from given location");let n=t.has(r)&&t.get(r);if(!n)for(let[f,g]of t.entries()){if(f!=="/*"){let c=mt(f,r);if(!c)continue;s=i({},c.params)}n=g;break}if(!n)throw new Error("No route found for requested path. Ensure you have a wildcard (*) route to catch-all non-matching paths.");let l=(m=n.redirectRules)==null?void 0:m.call(n,s,p);return l?N(t,l):{location:o,params:s,route:n,search:p}};var lt=t=>{let e=new Map,o=(r,s)=>r.forEach(p=>{let R=p,{path:n,children:l}=R,u=M(R,["path","children"]),{path:m="",redirectRules:f}=s!=null?s:{},g=m==="/"?"":m,c=n?j(n):"",a=[g,c].join(""),d=h(i({redirectRules:f},u),{component:new v(u.component)});e.set(a,d),l&&Array.isArray(l)&&o(l,h(i({redirectRules:f},u),{path:a}))});return o(t),process.env.NODE_ENV!=="production"&&!e.has("/*")&&console.warn(`You didn't set a wildcard (*) route to catch any unmatched path. | ||
var vt=Object.create;var k=Object.defineProperty,wt=Object.defineProperties,bt=Object.getOwnPropertyDescriptor,Ot=Object.getOwnPropertyDescriptors,Ht=Object.getOwnPropertyNames,F=Object.getOwnPropertySymbols,Nt=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable;var tt=(t,e,r)=>e in t?k(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,i=(t,e)=>{for(var r in e||(e={}))K.call(e,r)&&tt(t,r,e[r]);if(F)for(var r of F(e))D.call(e,r)&&tt(t,r,e[r]);return t},h=(t,e)=>wt(t,Ot(e)),et=t=>k(t,"__esModule",{value:!0});var M=(t,e)=>{var r={};for(var o in t)K.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&F)for(var o of F(t))e.indexOf(o)<0&&D.call(t,o)&&(r[o]=t[o]);return r};var Ut=(t,e)=>{et(t);for(var r in e)k(t,r,{get:e[r],enumerable:!0})},It=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ht(e))!K.call(t,o)&&o!=="default"&&k(t,o,{get:()=>e[o],enumerable:!(r=bt(e,o))||r.enumerable});return t},C=t=>It(et(k(t!=null?vt(Nt(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);Ut(exports,{Link:()=>Y,Redirect:()=>z,RouteRenderer:()=>J,RouterProvider:()=>Q,SuspenseResource:()=>w,createBrowserRouter:()=>yt,createHashRouter:()=>Pt,createMemoryRouter:()=>Ct,useHistory:()=>pt,useNavigation:()=>ut,useRouter:()=>mt});var T=C(require("react"));var rt=C(require("history")),ot=C(require("react")),y=()=>{throw new Error("RouterContext was called outside of RouterProvider.")},O=t=>t.warmRoute!==y,kt={assistPreload:!1,awaitComponent:!1,get:y,history:{action:rt.Action.Push,back:y,block:y,createHref:y,forward:y,go:y,listen:y,location:{hash:"",key:"",pathname:"",search:"",state:null},push:y,replace:y},isActive:y,preloadCode:y,routeTransitionCompleted:y,subscribe:y,warmRoute:y},x=(0,ot.createContext)(kt);var Lt=0,Wt=t=>Boolean(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey),_t=t=>!t.defaultPrevented&&t.button===Lt&&(!t.currentTarget.target||t.currentTarget.target==="_self")&&!Wt(t),Y=(0,T.forwardRef)((c,g)=>{var a=c,{activeClassName:t="is-active",children:e,className:r,exact:o=!1,to:s,onClick:p,onFocus:n,onKeyDown:l,onMouseDown:u,onMouseEnter:m}=a,f=M(a,["activeClassName","children","className","exact","to","onClick","onFocus","onKeyDown","onMouseDown","onMouseEnter"]);let{history:d,isActive:R,preloadCode:P,warmRoute:_}=(0,T.useContext)(x),A=d.createHref(s),Z=R(s,o),Et=(0,T.useCallback)(E=>{try{p==null||p(E)}catch(q){throw E.preventDefault(),q}if(_t(E)){E.preventDefault();let q=R(s,!0)?"replace":"push";d[q](s)}},[d,R,p,s]),St=(0,T.useCallback)(E=>{P(A),n==null||n(E)},[A,n,P]),Mt=(0,T.useCallback)(E=>{_(A),l==null||l(E)},[A,l,_]),Tt=(0,T.useCallback)(E=>{P(A),m==null||m(E)},[A,m,P]),At=(0,T.useCallback)(E=>{_(A),u==null||u(E)},[A,u,_]);return React.createElement("a",h(i({ref:g},f),{"aria-current":Z?"page":void 0,className:[r,Z?t:null].filter(Boolean).join(" "),href:A,onClick:Et,onFocus:St,onKeyDown:Mt,onMouseDown:At,onMouseEnter:Tt}),e)});Y.displayName="Link";var $=C(require("react"));var z=({exact:t,push:e,to:r})=>{let{history:o,isActive:s}=(0,$.useContext)(x);return(0,$.useEffect)(()=>{s(r,t)||o[e?"push":"replace"](r)},[t,o,s,e,r]),null};z.displayName="Redirect";var S=C(require("react"));var w=class{constructor(e){this.result=null;this.error=null;this.promise=null;this.loader=e}async load(){if(this.result!==null)return this.result;if(this.promise!==null)return this.promise;this.promise=this.loader();try{let e=await this.promise;return this.result=e,e}catch(e){throw this.error=e,e}}read(){if(this.result!==null)return this.result;throw this.error!==null?this.error:this.promise!==null?this.promise:this.load()}};var H=t=>{let e=[];for(let r in t)!Object.prototype.hasOwnProperty.call(t,r)||e.push(r);return e.sort((r,o)=>r>o?1:-1).reduce((r,o)=>{let s=t[o];if(!s)return r;let p=Array.isArray(s)?s.sort((n,l)=>n>l?1:-1).map(n=>encodeURIComponent(n)).join(`&${o}=`):encodeURIComponent(s);return`${r}${r?"&":"?"}${o}=${p}`},"")};var b={parametersString:"",pathname:"",value:null},st=t=>typeof t=="function",G=t=>t instanceof Map,nt=t=>G(t.preloaded),Ft=({route:t,params:e,search:r},o)=>{var n;let s=new Map,p=(n=t.preload)==null?void 0:n.call(t,e,r);for(let l in p){if(!Object.prototype.hasOwnProperty.call(p,l))continue;let u=p[l];if(u===void 0)continue;let m=st(u)?u:u.data,f=new w(m);f.load(),s.set(l,{data:f,defer:!st(u)&&u.defer!==void 0?u.defer:!o})}return s};function V(t,e=!1,r=!1){var g,c;let{route:o,params:s,search:p,location:n}=t,l=n.pathname===b.pathname,u=H(s);if(e&&l&&u===b.parametersString&&b.value!==null)return b.value;o.component.load();let m={component:o.component,location:n,params:s,search:p};if(e){let a=o.preload&&Ft(t,r),d=h(i({},m),{preloaded:a});return a&&(b.pathname=(g=n.pathname)!=null?g:"",b.parametersString=H(s),b.value=d),d}return h(i({},m),{preloaded:(c=o.preload)==null?void 0:c.call(o,s,p)})}var at=(t,e)=>{switch(e.type){case"START_ROUTE_TRANSITION":return h(i({},t),{isTransitioning:!0});case"FINISH_ROUTE_TRANSITION":return i(h(i({},t),{isTransitioning:!1}),e.payload);default:return t}};var $t=t=>{let e={component:t.component,location:t.location,props:{params:t.params,search:t.search}};if(G(t.preloaded)){let r={};for(let[o,s]of t.preloaded.entries())r[o]=s.data;return h(i({},e),{props:h(i({},e.props),{preloaded:r})})}return h(i({},e),{props:h(i({},e.props),{preloaded:t.preloaded})})},J=({pendingIndicator:t,routeWrapper:e})=>{let{awaitComponent:r,get:o,history:s,routeTransitionCompleted:p,subscribe:n}=(0,S.useContext)(x),[{isTransitioning:l,historyUpdate:u,routeEntry:m},f]=(0,S.useReducer)(at,{historyUpdate:{action:s.action,location:s.location},isTransitioning:!1,routeEntry:$t(o())}),g=(0,S.useMemo)(()=>m.component.read(),[m]),c=(0,S.useCallback)(async a=>{let d={};if(a.preloaded)for(let[R,P]of a.preloaded.entries())P.defer||await P.data.load(),d[R]=P.data;return{component:a.component,location:a.location,props:{params:a.params,preloaded:a.preloaded&&d,search:a.search}}},[]);return(0,S.useEffect)(()=>{let a=n({onTransitionStart:async(d,R)=>{f({type:"START_ROUTE_TRANSITION"}),r&&await d.component.load();let P=nt(d)?await c(d):{component:d.component,location:d.location,props:{params:d.params,preloaded:d.preloaded,search:d.search}};f({payload:{historyUpdate:R,routeEntry:P},type:"FINISH_ROUTE_TRANSITION"})}});return()=>a()},[r,n,c]),(0,S.useEffect)(()=>{p(u)},[u,p]),React.createElement(React.Fragment,null,l&&t?t:null,e?e({Route:React.createElement(g,i({},m.props))}):React.createElement(g,i({},m.props)))};J.displayName="RouteRenderer";var Q=({children:t,router:e})=>React.createElement(x.Provider,{value:e},t);Q.displayName="RouterProvider";var it=C(require("react"));var pt=()=>{let t=(0,it.useContext)(x);if(!O(t))throw new Error("`useHistory` can not be used outside of `RouterProvider`.");let{action:e,listen:r,location:o}=t.history;return{action:e,listen:r,location:o}};var ct=C(require("react"));var ut=()=>{let t=(0,ct.useContext)(x);if(!O(t))throw new Error("`useNavigation` can not be used outside of `RouterProvider`.");let{back:e,forward:r,go:o,push:s,replace:p}=t.history;return{back:e,forward:r,go:o,push:s,replace:p}};var dt=C(require("react"));var mt=()=>{let t=(0,dt.useContext)(x);if(!O(t))throw new Error("`useRouter` can not be used outside of `RouterProvider`.");let{isActive:e,preloadCode:r,subscribe:o,warmRoute:s}=t;return{isActive:e,preloadCode:r,subscribe:o,warmRoute:s}};var Rt=C(require("history"));var X=C(require("history"));var lt=C(require("history")),v=t=>i({hash:"",pathname:"",search:""},typeof t=="string"?(0,lt.parsePath)(t):t);var j=(t,e,r="")=>{let o=decodeURIComponent(r),s=t[e];return s?Array.isArray(s)?s.concat(o):[s,o]:o};var L=t=>t?t.slice(1).split("&").reduce((r,o)=>{let[s,p]=o.split("=");if(s){let n=j(r,s,p);return h(i({},r),{[s]:n})}return r},{}):{};var W=(t,e,r=!1)=>{var p,n;let o=v(t),s=v(e);if(o.pathname!==s.pathname)return!1;if(r){let l=H(L((p=o.search)!=null?p:"")),u=H(L((n=s.search)!=null?n:""));return l===u&&o.hash===s.hash}return!0};var B=t=>t.startsWith("/")?t:`/${t}`;var ht=(t,e)=>{let r=B(e),o=[],s=`^(${t.replace(/[$()*+./?[\\\]^{|}-]/g,"\\$&").replace(/\\\*$/,".*").replace(/:(\w+)|(.\*)/g,(u,m="$rest")=>(o.push(m),`([^${m==="$rest"?":(w+)|(.*)":"\\/"}]+)`))})\\/?$`,n=new RegExp(s).exec(r);return n?{params:o.reduce((u,m,f)=>{let g=n[f+2],c=j(u,m,g);return u[m]=c,u},{})}:null};var N=(t,e)=>{var u,m;let r=v(e),{pathname:o}=r,s={},p=i({},L((u=r.search)!=null?u:""));if(!o)throw new Error("Unable to determine pathname from given location");let n=t.has(o)&&t.get(o);if(!n)for(let[f,g]of t.entries()){if(f!=="/*"){let c=ht(f,o);if(!c)continue;s=i({},c.params)}n=g;break}if(!n)throw new Error("No route found for requested path. Ensure you have a wildcard (*) route to catch-all non-matching paths.");let l=(m=n.redirectRules)==null?void 0:m.call(n,s,p);return l?N(t,l):{location:r,params:s,route:n,search:p}};var ft=t=>{let e=new Map,r=(o,s)=>o.forEach(p=>{let R=p,{path:n,children:l}=R,u=M(R,["path","children"]),{path:m="",redirectRules:f}=s!=null?s:{},g=m==="/"?"":m,c=n?B(n):"",a=[g,c].join(""),d=h(i({redirectRules:f},u),{component:new w(u.component)});e.set(a,d),l&&Array.isArray(l)&&r(l,h(i({redirectRules:f},u),{path:a}))});return r(t),process.env.NODE_ENV!=="production"&&!e.has("/*")&&console.warn(`You didn't set a wildcard (*) route to catch any unmatched path. | ||
This is required to make sure you push users to a Not Found page | ||
when they request a route that doesn't exist; e.g. 404.`),e};var U=({assistPreload:t=!1,awaitComponent:e=!1,awaitPreload:o=!1,history:r,routes:s})=>{let p=lt(s),n=N(p,r.location),l=$(n,t,o);W(n.location,r.location,!0)||r.replace(n.location);let u=0,m=new Map;r.listen(c=>{let{location:a}=c;if(W(l.location,a,!0))return;let d=N(p,a),R=$(d,t,o);if(!W(d.location,a,!0)){r.replace(d.location);return}l=R,m.forEach(([P])=>P==null?void 0:P(R,c))});let f=c=>{m.forEach(([,a])=>a==null?void 0:a(c))};return{assistPreload:t,awaitComponent:e,get:()=>l,history:h(i({},r),{push:(c,a)=>r.push(i({hash:"",search:""},typeof c=="string"?(0,J.parsePath)(c):c),a),replace:(c,a)=>r.replace(i({hash:"",search:""},typeof c=="string"?(0,J.parsePath)(c):c),a)}),isActive:(c,a)=>W(r.location,c,a),preloadCode:c=>{let a=w(c);try{let d=N(p,a);d&&d.route.component.load()}catch{}},routeTransitionCompleted:f,subscribe:({onTransitionStart:c,onTransitionComplete:a})=>{let d=u++,R=()=>{m.delete(d)};return m.set(d,[c,a]),R},warmRoute:c=>{let a=w(c);try{let d=N(p,a);d&&$(d,t,o)}catch{}}}};var I=t=>{if(Array.isArray(t)){if(t.length===0)throw new Error("At least one route must be provided.")}else throw new TypeError("Must be an array configuration.");return!0};var ft=(r,o)=>{var s=r,{routes:t}=s,e=M(s,["routes"]);return I(t),U(h(i({},e),{history:(0,ht.createBrowserHistory)(o),routes:t}))};var Rt=C(require("history"));var yt=(r,o)=>{var s=r,{routes:t}=s,e=M(s,["routes"]);return I(t),U(h(i({},e),{history:(0,Rt.createHashHistory)(o),routes:t}))};var gt=C(require("history"));var Pt=(r,o)=>{var s=r,{routes:t}=s,e=M(s,["routes"]);return I(t),U(h(i({},e),{history:(0,gt.createMemoryHistory)(o),routes:t}))};0&&(module.exports={Link,RouteRenderer,RouterProvider,SuspenseResource,createBrowserRouter,createHashRouter,createMemoryRouter,useHistory,useNavigation,useRouter}); | ||
when they request a route that doesn't exist; e.g. 404.`),e};var U=({assistPreload:t=!1,awaitComponent:e=!1,awaitPreload:r=!1,history:o,routes:s})=>{let p=ft(s),n=N(p,o.location),l=V(n,t,r);W(n.location,o.location,!0)||o.replace(n.location);let u=0,m=new Map;o.listen(c=>{let{location:a}=c;if(W(l.location,a,!0))return;let d=N(p,a),R=V(d,t,r);if(!W(d.location,a,!0)){o.replace(d.location);return}l=R,m.forEach(([P])=>P==null?void 0:P(R,c))});let f=c=>{m.forEach(([,a])=>a==null?void 0:a(c))};return{assistPreload:t,awaitComponent:e,get:()=>l,history:h(i({},o),{push:(c,a)=>o.push(i({hash:"",search:""},typeof c=="string"?(0,X.parsePath)(c):c),a),replace:(c,a)=>o.replace(i({hash:"",search:""},typeof c=="string"?(0,X.parsePath)(c):c),a)}),isActive:(c,a)=>W(o.location,c,a),preloadCode:c=>{let a=v(c);try{let d=N(p,a);d&&d.route.component.load()}catch{}},routeTransitionCompleted:f,subscribe:({onTransitionStart:c,onTransitionComplete:a})=>{let d=u++,R=()=>{m.delete(d)};return m.set(d,[c,a]),R},warmRoute:c=>{let a=v(c);try{let d=N(p,a);d&&V(d,t,r)}catch{}}}};var I=t=>{if(Array.isArray(t)){if(t.length===0)throw new Error("At least one route must be provided.")}else throw new TypeError("Must be an array configuration.");return!0};var yt=(o,r)=>{var s=o,{routes:t}=s,e=M(s,["routes"]);return I(t),U(h(i({},e),{history:(0,Rt.createBrowserHistory)(r),routes:t}))};var gt=C(require("history"));var Pt=(o,r)=>{var s=o,{routes:t}=s,e=M(s,["routes"]);return I(t),U(h(i({},e),{history:(0,gt.createHashHistory)(r),routes:t}))};var xt=C(require("history"));var Ct=(o,r)=>{var s=o,{routes:t}=s,e=M(s,["routes"]);return I(t),U(h(i({},e),{history:(0,xt.createMemoryHistory)(r),routes:t}))};0&&(module.exports={Link,Redirect,RouteRenderer,RouterProvider,SuspenseResource,createBrowserRouter,createHashRouter,createMemoryRouter,useHistory,useNavigation,useRouter}); | ||
//# sourceMappingURL=yarr.cjs.production.min.js.map |
export { Link } from './components/Link'; | ||
export { Redirect } from './components/Redirect'; | ||
export { RouteRenderer } from './components/RouteRenderer'; | ||
@@ -3,0 +4,0 @@ export { RouterProvider } from './components/RouterProvider'; |
// Components | ||
export { Link } from './components/Link'; | ||
export { Redirect } from './components/Redirect'; | ||
export { RouteRenderer } from './components/RouteRenderer'; | ||
@@ -4,0 +5,0 @@ export { RouterProvider } from './components/RouterProvider'; |
{ | ||
"name": "yarr", | ||
"version": "2.0.0-alpha.7", | ||
"version": "2.0.0-alpha.8", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "author": "Eric Taylor <eric@daxos.com>", |
// Components | ||
export { Link } from './components/Link'; | ||
export { Redirect } from './components/Redirect'; | ||
export { RouteRenderer } from './components/RouteRenderer'; | ||
@@ -4,0 +5,0 @@ export { RouterProvider } from './components/RouterProvider'; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
374097
138
6240