@argon-router/core 0.8.3 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +34 -7
- package/dist/index.js +846 -1034
- package/package.json +7 -6
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("effector");function N(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function F(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?N(Object(r),!0).forEach(function(n){Y(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):N(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Y(e,t,r){return(t=Z(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Z(e){var t=ee(e,"string");return typeof t=="symbol"?t:t+""}function ee(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function re(e){let t;const r=c.createEffect(()=>{var y;return(y=t)===null||y===void 0?void 0:y()},{name:"waitForAsyncBundleFx",sid:"-au0m0h"}),n=c.createEffect(async()=>{for(const v of(y=e.beforeOpen)!==null&&y!==void 0?y:[]){var y;await v()}},{name:"beforeOpenFx",sid:"-iy13uf"}),a=c.createEffect(async y=>{await r(),await n();const v=e.parent;return v&&await v.internal.openFx(F(F({},y??{params:{}}),{},{navigate:!1})),y},{name:"openFx",sid:"cbmc2y"}),o=c.createStore({},{name:"$params",sid:"-cxehz9"}),s=c.createStore(!1,{name:"$isOpened",sid:"-561dht"}),i=a.pending,u=c.createEvent({name:"open",sid:"hyxmmx"}),p=c.createEvent({name:"close",sid:"-wvbr5n"}),b=c.createEvent({name:"opened",sid:"-qni80y"}),f=c.createEvent({name:"openedOnServer",sid:"eh9oki"}),g=c.createEvent({name:"openedOnClient",sid:"eet6mh"}),d=c.createEvent({name:"navigated",sid:"-rnvpuc"}),l=c.createEvent({name:"closed",sid:"w9iziz"});c.sample({and:[{clock:u,target:a}],or:{sid:"u86cfp"}});const m={};return c.sample({and:[{clock:d,fn:y=>y&&"params"in y?F({},y.params):m,target:o}],or:{sid:"ymu9q6"}}),c.split({and:[{source:d,match:()=>typeof window>"u"?"server":"client",cases:{server:f,client:g}}],or:{sid:"z4zhb3"}}),c.sample({and:[{clock:[g,f],target:b}],or:{sid:"-zf2y9u"}}),c.sample({and:[{clock:p,target:l}],or:{sid:"-z0saug"}}),c.sample({and:[{clock:[b.map(()=>!0),l.map(()=>!1)],target:s}],or:{sid:"-yy1bvn"}}),F(F({$params:o,$isOpened:s,$isPending:i,open:u,closed:l,opened:b,openedOnClient:g,openedOnServer:f},e),{},{internal:{navigated:d,close:p,openFx:a,setAsyncImport:y=>t=y},"@@unitShape":()=>({params:o,isPending:i,isOpened:s,onOpen:u})})}const te=Symbol("any"),ne=Symbol("number"),ae=Symbol("string"),oe=Symbol("array"),se=Symbol("boolean"),O={any:te,number:ne,string:ae,array:oe,boolean:se};function A(e,t){for(const r of e)if(t.includes(r))return!0;return!1}function R(e,t){for(const r in t){const n=t[r];if(Array.isArray(n)&&(!e[r]||JSON.stringify(n)!==e[r]))return!1;switch(typeof n){case"number":{if(!e[r]||n.toString()!==e[r])return!1;break}case"object":{if(!e[r]||JSON.stringify(n)!==e[r])return!1;break}case"string":{if(!e[r]||n!==e[r])return!1;break}case"boolean":{if(!e[r]||!["0","1","false","true"].includes(e[r]))return!1;break}}switch(n){case O.any:{if(!e[r])return!1;break}case O.string:{if(!e[r]||Array.isArray(e[r]))return!1;break}case O.array:{if(!e[r]||!Array.isArray(e[r]))return!1;break}case O.number:{if(!e[r]||Array.isArray(e[r])||isNaN(parseInt(e[r]))&&isNaN(parseFloat(e[r])))return!1;break}case O.boolean:{if(!e[r]||Array.isArray(e[r])||!["0","1","false","true"].includes(e[r]))return!1;break}}}return!0}function ce(e,t){const r={};for(const n in t){const a=t[n],o=e[n];if(Array.isArray(a)){const s=e[n];r[n]=s;continue}switch(typeof a){case"number":{r[n]=isNaN(parseInt(o))?parseFloat(o):parseInt(o);break}case"object":{r[n]=JSON.parse(o);break}case"string":r[n]=o;case"boolean":{r[n]=o==="1"||o==="true";break}}switch(a){case O.any:case O.string:case O.array:{r[n]=e[n];break}case O.number:{const s=e[n];r[n]=isNaN(parseInt(s))?parseFloat(s):parseInt(s);break}case O.boolean:{const s=e[n];r[n]=s==="1"||s==="true";break}}}return r}function ie(e){let{$query:t,navigate:r}=e;return B({$activeRoutes:c.createStore([],{name:"$activeRoutes",sid:"7ol7tr"}),$query:t,navigate:r})}function B(e){let{$activeRoutes:t,$query:r,navigate:n}=e;return a=>{const{parameters:o,forRoutes:s}=a,i=c.createStore(!1,{name:"$entered",sid:"-okbvx4"}),u=c.createEvent({name:"entered",sid:"-1bbi51"}),p=c.createEvent({name:"exited",sid:"-lw34uy"}),b=c.createEvent({name:"exit",sid:"5l9ghz"}),f=c.createEvent({name:"changeEntered",sid:"en4cc0"});return c.sample({and:[{clock:f,target:i}],or:{sid:"-gssa85"}}),c.sample({and:[{source:{activeRoutes:t,query:r},filter:g=>{let{activeRoutes:d,query:l}=g;return(!s||A(s,d))&&R(l,o)},fn:g=>{let{query:d}=g;return ce(d,o)},target:[u,f.prepend(()=>!0)]}],or:{sid:"-gehmsr"}}),c.sample({and:[{source:{activeRoutes:t,query:r,entered:i},filter:g=>{let{activeRoutes:d,query:l,entered:m}=g;return m&&!((!s||A(s,d))&&R(l,o))},target:[p.prepend(()=>{}),f.prepend(()=>!1)]}],or:{sid:"-fxzszx"}}),c.sample({and:[{clock:b,source:r,fn:(g,d)=>{if(d&&d.ignoreParams){const l={};for(const m of d.ignoreParams)g[m]&&(l[m]=g[m]);return{query:l}}return{query:{}}},target:n}],or:{sid:"-fer08a"}}),{entered:u,exited:p,exit:b}}}function ue(e){return t=>{const r=t.split("/").map(i=>i.trim()).filter(i=>i!=="");let n=null;function a(i,u){n||(n={}),n[i]=u}if(e.length===0)return r.length===0?{path:t,params:null}:null;for(let i=0;i<e.length;i++){const u=e[i];switch(u.type){case"const":{if(u.name!==r.shift())return null;continue}case"parameter":{const{arrayProps:p,genericProps:b,required:f}=u.payload;if(p){var o;const d=[];let l;for(;;){var s;if(l=r.shift(),!l)break;switch(b==null?void 0:b.type){case"number":{if(isNaN(+l))return null;d.push(+l);break}case"union":{if(!b.items.includes(l))return null;d.push(l);break}default:{d.push(l);break}}if(d.length>=((s=p.max)!==null&&s!==void 0?s:1/0))break}if(d.length<((o=p.min)!==null&&o!==void 0?o:0)||r.length>0&&!e[i+1])return null;a(u.name,d);break}const g=r.shift();if(f&&!g)return null;if(!g){a(u.name,void 0);continue}switch(b==null?void 0:b.type){case"number":{if(isNaN(+g))return null;a(u.name,+g);break}case"union":{if(!b.items.includes(g))return null;a(u.name,g);break}default:{a(u.name,g);break}}}}}return r.length>0?null:{path:t,params:n}}}function fe(e){if(!e)return null;const t=e[1];let r,n,a;for(const o of e.slice(2))if(o){if(o.includes("<")){r=o.replace("<","").replace(">","");continue}if(o.includes("{")&&(n=o.replace("{","").replace("}","").split(",").map(s=>parseInt(s))),["*","?","+"].includes(o)){a=o;continue}}return{name:t,genericProps:r,arrayProps:n,modificator:a}}function le(e){return t=>{const r=[];if(e.length===0)return"/";for(const n of e)switch(n.type){case"const":{r.push(n.name);break}case"parameter":{if(!t[n.name])continue;if(Array.isArray(t[n.name]))for(const a of t[n.name])r.push(a.toString());else r.push(t[n.name].toString());break}}return"/".concat(r.join("/"))}}function I(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function C(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?I(Object(r),!0).forEach(function(n){de(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function de(e,t,r){return(t=pe(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pe(e){var t=me(e,"string");return typeof t=="symbol"?t:t+""}function me(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ye(e){const t=[],r=/:(\w+)(<[\w|]+>)?({\d+\,\d+})?([+*?])?/,n=e.split("/").filter(Boolean);for(let a=0;a<n.length;a++){const o=n[a];if(!o)continue;const s=fe(o.match(r));if(!s){t.push({type:"const",name:o,payload:void 0});continue}const{arrayProps:i,genericProps:u,modificator:p,name:b}=s;if(!b)throw new Error('Invalid path: "'.concat(e,'". Name for argument must be provided'));const f={type:"parameter",name:b,payload:{required:!0}};switch(u&&u==="number"&&(f.payload.genericProps={type:"number"}),u&&u.includes("|")&&(f.payload.genericProps={type:"union",items:u.split("|")}),p){case"*":{f.payload.arrayProps={};break}case"+":{f.payload.arrayProps={min:1};break}case"?":{f.payload.required=!1;break}}i&&(f.payload.arrayProps=C(C({},f.payload.arrayProps),{},{min:i[0],max:i[1]})),t.push(f)}return{parse:ue(t),build:le(t)}}const _="%[a-f0-9]{2}",D=new RegExp("("+_+")|([^%]+?)","gi"),z=new RegExp("("+_+")+","gi");function P(e,t){try{return[decodeURIComponent(e.join(""))]}catch{}if(e.length===1)return e;t=t||1;const r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],P(r),P(n))}function be(e){try{return decodeURIComponent(e)}catch{let t=e.match(D)||[];for(let r=1;r<t.length;r++)e=P(t,r).join(""),t=e.match(D)||[];return e}}function ge(e){const t={"%FE%FF":"��","%FF%FE":"��"};let r=z.exec(e);for(;r;){try{t[r[0]]=decodeURIComponent(r[0])}catch{const a=be(r[0]);a!==r[0]&&(t[r[0]]=a)}r=z.exec(e)}t["%C2"]="�";const n=Object.keys(t);for(const a of n)e=e.replace(new RegExp(a,"g"),t[a]);return e}function he(e){if(typeof e!="string")throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return decodeURIComponent(e)}catch{return ge(e)}}function Oe(e,t){const r={};if(Array.isArray(t))for(const n of t){const a=Object.getOwnPropertyDescriptor(e,n);a!=null&&a.enumerable&&Object.defineProperty(r,n,a)}else for(const n of Reflect.ownKeys(e)){const a=Object.getOwnPropertyDescriptor(e,n);if(a.enumerable){const o=e[n];t(n,o,e)&&Object.defineProperty(r,n,a)}}return r}function T(e,t){if(!(typeof e=="string"&&typeof t=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(e===""||t==="")return[];const r=e.indexOf(t);return r===-1?[]:[e.slice(0,r),e.slice(r+t.length)]}const we=e=>e==null,ve=e=>encodeURIComponent(e).replaceAll(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`),E=Symbol("encodeFragmentIdentifier");function Fe(e){switch(e.arrayFormat){case"index":return t=>(r,n)=>{const a=r.length;return n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,[h(t,e),"[",a,"]"].join("")]:[...r,[h(t,e),"[",h(a,e),"]=",h(n,e)].join("")]};case"bracket":return t=>(r,n)=>n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,[h(t,e),"[]"].join("")]:[...r,[h(t,e),"[]=",h(n,e)].join("")];case"colon-list-separator":return t=>(r,n)=>n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,[h(t,e),":list="].join("")]:[...r,[h(t,e),":list=",h(n,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t=e.arrayFormat==="bracket-separator"?"[]=":"=";return r=>(n,a)=>a===void 0||e.skipNull&&a===null||e.skipEmptyString&&a===""?n:(a=a===null?"":a,n.length===0?[[h(r,e),t,h(a,e)].join("")]:[[n,h(a,e)].join(e.arrayFormatSeparator)])}default:return t=>(r,n)=>n===void 0||e.skipNull&&n===null||e.skipEmptyString&&n===""?r:n===null?[...r,h(t,e)]:[...r,[h(t,e),"=",h(n,e)].join("")]}}function je(e){let t;switch(e.arrayFormat){case"index":return(r,n,a)=>{if(t=/\[(\d*)]$/.exec(r),r=r.replace(/\[\d*]$/,""),!t){a[r]=n;return}a[r]===void 0&&(a[r]={}),a[r][t[1]]=n};case"bracket":return(r,n,a)=>{if(t=/(\[])$/.exec(r),r=r.replace(/\[]$/,""),!t){a[r]=n;return}if(a[r]===void 0){a[r]=[n];return}a[r]=[...a[r],n]};case"colon-list-separator":return(r,n,a)=>{if(t=/(:list)$/.exec(r),r=r.replace(/:list$/,""),!t){a[r]=n;return}if(a[r]===void 0){a[r]=[n];return}a[r]=[...a[r],n]};case"comma":case"separator":return(r,n,a)=>{const o=typeof n=="string"&&n.includes(e.arrayFormatSeparator),s=typeof n=="string"&&!o&&w(n,e).includes(e.arrayFormatSeparator);n=s?w(n,e):n;const i=o||s?n.split(e.arrayFormatSeparator).map(u=>w(u,e)):n===null?n:w(n,e);a[r]=i};case"bracket-separator":return(r,n,a)=>{const o=/(\[])$/.test(r);if(r=r.replace(/\[]$/,""),!o){a[r]=n&&w(n,e);return}const s=n===null?[]:w(n,e).split(e.arrayFormatSeparator);if(a[r]===void 0){a[r]=s;return}a[r]=[...a[r],...s]};default:return(r,n,a)=>{if(a[r]===void 0){a[r]=n;return}a[r]=[...[a[r]].flat(),n]}}}function H(e){if(typeof e!="string"||e.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function h(e,t){return t.encode?t.strict?ve(e):encodeURIComponent(e):e}function w(e,t){return t.decode?he(e):e}function V(e){return Array.isArray(e)?e.sort():typeof e=="object"?V(Object.keys(e)).sort((t,r)=>Number(t)-Number(r)).map(t=>e[t]):e}function K(e){const t=e.indexOf("#");return t!==-1&&(e=e.slice(0,t)),e}function Se(e){let t="";const r=e.indexOf("#");return r!==-1&&(t=e.slice(r)),t}function q(e,t,r){return r==="string"&&typeof e=="string"?e:typeof r=="function"&&typeof e=="string"?r(e):t.parseBooleans&&e!==null&&(e.toLowerCase()==="true"||e.toLowerCase()==="false")?e.toLowerCase()==="true":r==="number"&&!Number.isNaN(Number(e))&&typeof e=="string"&&e.trim()!==""||t.parseNumbers&&!Number.isNaN(Number(e))&&typeof e=="string"&&e.trim()!==""?Number(e):e}function x(e){e=K(e);const t=e.indexOf("?");return t===-1?"":e.slice(t+1)}function $(e,t){t={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,types:Object.create(null),...t},H(t.arrayFormatSeparator);const r=je(t),n=Object.create(null);if(typeof e!="string"||(e=e.trim().replace(/^[?#&]/,""),!e))return n;for(const a of e.split("&")){if(a==="")continue;const o=t.decode?a.replaceAll("+"," "):a;let[s,i]=T(o,"=");s===void 0&&(s=o),i=i===void 0?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:w(i,t),r(w(s,t),i,n)}for(const[a,o]of Object.entries(n))if(typeof o=="object"&&o!==null&&t.types[a]!=="string")for(const[s,i]of Object.entries(o)){const u=t.types[a]?t.types[a].replace("[]",""):void 0;o[s]=q(i,t,u)}else typeof o=="object"&&o!==null&&t.types[a]==="string"?n[a]=Object.values(o).join(t.arrayFormatSeparator):n[a]=q(o,t,t.types[a]);return t.sort===!1?n:(t.sort===!0?Object.keys(n).sort():Object.keys(n).sort(t.sort)).reduce((a,o)=>{const s=n[o];return a[o]=s&&typeof s=="object"&&!Array.isArray(s)?V(s):s,a},Object.create(null))}function L(e,t){if(!e)return"";t={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",...t},H(t.arrayFormatSeparator);const r=s=>t.skipNull&&we(e[s])||t.skipEmptyString&&e[s]==="",n=Fe(t),a={};for(const[s,i]of Object.entries(e))r(s)||(a[s]=i);const o=Object.keys(a);return t.sort!==!1&&o.sort(t.sort),o.map(s=>{const i=e[s];return i===void 0?"":i===null?h(s,t):Array.isArray(i)?i.length===0&&t.arrayFormat==="bracket-separator"?h(s,t)+"[]":i.reduce(n(s),[]).join("&"):h(s,t)+"="+h(i,t)}).filter(s=>s.length>0).join("&")}function M(e,t){var a;t={decode:!0,...t};let[r,n]=T(e,"#");return r===void 0&&(r=e),{url:((a=r==null?void 0:r.split("?"))==null?void 0:a[0])??"",query:$(x(e),t),...t&&t.parseFragmentIdentifier&&n?{fragmentIdentifier:w(n,t)}:{}}}function Q(e,t){t={encode:!0,strict:!0,[E]:!0,...t};const r=K(e.url).split("?")[0]||"",n=x(e.url),a={...$(n,{sort:!1}),...e.query};let o=L(a,t);o&&(o=`?${o}`);let s=Se(e.url);if(typeof e.fragmentIdentifier=="string"){const i=new URL(r);i.hash=e.fragmentIdentifier,s=t[E]?i.hash:`#${e.fragmentIdentifier}`}return`${r}${o}${s}`}function J(e,t,r){r={parseFragmentIdentifier:!0,[E]:!1,...r};const{url:n,query:a,fragmentIdentifier:o}=M(e,r);return Q({url:n,query:Oe(a,t),fragmentIdentifier:o},r)}function ke(e,t,r){const n=Array.isArray(t)?a=>!t.includes(a):(a,o)=>!t(a,o);return J(e,n,r)}const S=Object.freeze(Object.defineProperty({__proto__:null,exclude:ke,extract:x,parse:$,parseUrl:M,pick:J,stringify:L,stringifyUrl:Q},Symbol.toStringTag,{value:"Module"}));function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function k(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?U(Object(r),!0).forEach(function(n){Pe(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Pe(e,t,r){return(t=Ee(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ee(e){var t=xe(e,"string");return typeof t=="symbol"?t:t+""}function xe(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function G(){const e=c.createStore(null,{and:{serialize:"ignore"},name:"$history",sid:"-ld7lzl"}),t=c.createStore({query:{},path:null},{name:"$locationState",sid:"-4u3w85"}),r=t.map(f=>f.query),n=t.map(f=>f.path),a=c.createEvent({name:"setHistory",sid:"-ormmkk"}),o=c.createEvent({name:"navigate",sid:"tawqep"}),s=c.createEvent({name:"back",sid:"bxy8rt"}),i=c.createEvent({name:"forward",sid:"-bpmzb1"}),u=c.createEvent({name:"locationUpdated",sid:"lkzldx"}),p=c.attach({and:{source:e,effect:(f,g)=>{let{path:d,query:l,replace:m}=g;if(!f)throw new Error("history not found");const y={pathname:d,search:"?".concat(S.stringify(l))};m?f.replace(y):f.push(y)}},or:{name:"navigateFx",sid:"-ov1xn7"}}),b=c.createEffect(f=>{const g=c.scopeBind(u);if(g({pathname:f.location.pathname,query:k({},S.parse(f.location.search))}),!f)throw new Error;f.listen(d=>{let{location:l}=d;g({pathname:l.pathname,query:k({},S.parse(l.search))})})},{name:"subscribeHistoryFx",sid:"-m60vds"});return c.sample({and:[{clock:a,target:e}],or:{sid:"ii4q"}}),c.sample({and:[{clock:e,filter:Boolean,target:b}],or:{sid:"39h3j"}}),c.sample({and:[{clock:u,fn:f=>({path:f.pathname,query:f.query}),target:t}],or:{sid:"i3x4a"}}),c.sample({and:[{clock:o,source:n,fn:(f,g)=>k({path:f},g),target:p}],or:{sid:"ylqx4"}}),{$history:e,$locationState:t,$query:r,$path:n,setHistory:a,navigate:o,back:s,forward:i,locationUpdated:u,trackQuery:ie({$query:r,navigate:o})}}function $e(e){const{base:t="/",routes:r}=e,{$path:n,$query:a,back:o,forward:s,navigate:i,setHistory:u,locationUpdated:p}=G(),b=r.map(d=>{let l=d;const m=[];for(m.unshift(l.path);l.parent;)l=l.parent,l.path!=="/"&&m.unshift(l.path);const y=t==="/"?m.join(""):[t,...m].join(""),{build:v,parse:j}=ye(y);return{route:d,path:y,build:v,parse:j}}),f=n.map(d=>{const l=[];if(!d)return l;for(const{route:m,parse:y}of b)y(d)&&l.push(m);return l}),g=c.attach({and:{source:{query:a,path:n},effect:async d=>{let{query:l,path:m}=d;for(const{route:y,parse:v}of b){const j=v(m),[W,X]=[c.scopeBind(y.internal.close),c.scopeBind(y.internal.navigated)];j?X({query:l,params:j.params}):W()}}},or:{name:"openRoutesByPathFx",sid:"-3zl7vq"}});for(const{route:d,build:l}of b)c.sample({and:[{clock:d.internal.openFx.doneData,filter:m=>(m==null?void 0:m.navigate)!==!1,fn:m=>{var y;return{path:l(m&&"params"in m?m.params:void 0),query:(y=m==null?void 0:m.query)!==null&&y!==void 0?y:{},replace:m==null?void 0:m.replace}},target:i}],or:{sid:"exzzqg"}});return c.sample({and:[{clock:p,fn:d=>({path:d.pathname,query:d.query}),target:g}],or:{sid:"ficdn3"}}),{$query:a,$path:n,$activeRoutes:f,back:o,forward:s,navigate:i,routes:r,setHistory:u,mappedRoutes:b,trackQuery:B({$activeRoutes:f,$query:a,navigate:i}),"@@unitShape":()=>({query:a,path:n,activeRoutes:f,onBack:o,onForward:s,onNavigate:i})}}function Ne(e){const t=c.createStore(null,{name:"$params",sid:"-grvyb1"}),r=c.createStore(!1,{name:"$isOpened",sid:"-w4cbyq"}),n=e,a=c.createEvent({name:"open",sid:"8yat5e"}),o=c.createEvent({name:"opened",sid:"-rsfhnq"}),s=c.createEvent({name:"openedOnServer",sid:"m42ioq"}),i=c.createEvent({name:"openedOnClient",sid:"-bstrdb"}),u=c.createEvent({name:"close",sid:"41ihvs"}),p=c.createEvent({name:"closed",sid:"vdm6z6"}),b=c.createEvent({name:"cancelled",sid:"-r20ekt"});return c.sample({and:[{clock:a,target:o}],or:{sid:"-ukycs8"}}),c.split({and:[{source:o,match:()=>typeof window>"u"?"server":"client",cases:{server:s,client:i}}],or:{sid:"-u6npcu"}}),c.sample({and:[{clock:u,target:p}],or:{sid:"-tq5vk0"}}),c.sample({and:[{clock:[o.map(()=>!0),p.map(()=>!1)],target:r}],or:{sid:"-tnewl7"}}),{$params:t,$isOpened:r,$isPending:n,open:a,opened:o,openedOnClient:i,openedOnServer:s,close:u,closed:p,cancelled:b,path:null,"@@unitShape":()=>({params:t,isOpened:r,isPending:n,onOpen:a})}}function Ae(e){const{route:t,beforeOpen:r,openOn:n,cancelOn:a}=e;let o;const s=c.createEffect(()=>{var p;return(p=o)===null||p===void 0?void 0:p()},{name:"waitForAsyncBundleFx",sid:"-utsi21"}),i=c.createEffect(async p=>{await s();for(const b of[].concat(r))await b(p)},{name:"openFx",sid:"-kgdclv"}),u=Ne(i.pending);return c.sample({and:[{clock:t.opened,target:i}],or:{sid:"102heu"}}),c.sample({and:[{clock:t.opened,fn:p=>p&&"params"in p?p.params:null,target:u.$params}],or:{sid:"12tgdn"}}),n&&c.sample({and:[{clock:n,source:{params:u.$params},fn:p=>{let{params:b}=p;return{params:b}},target:u.open}],or:{sid:"1jba87"}}),a&&(c.sample({and:[{clock:[t.closed].concat(a),target:u.close}],or:{sid:"1zt411"}}),c.sample({and:[{clock:[].concat(a),target:u.cancelled}],or:{sid:"22k2zu"}})),Object.assign(u,{internal:{setAsyncImport:p=>o=p}})}exports.chainRoute=Ae;exports.createRoute=re;exports.createRouter=$e;exports.createRouterControls=G;exports.parameters=O;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("effector"),a=require("query-string"),r=require("patronum");const n={any:Symbol("any"),number:Symbol("number"),string:Symbol("string"),array:Symbol("array"),boolean:Symbol("boolean")};function t(e,a){for(const r of e)if(a.includes(r))return!0;return!1}function s(e,a){for(const r in a){const t=a[r];if(Array.isArray(t)&&(!e[r]||JSON.stringify(t)!==e[r]))return!1;switch(typeof t){case"number":if(!e[r]||t.toString()!==e[r])return!1;break;case"object":if(!e[r]||JSON.stringify(t)!==e[r])return!1;break;case"string":if(!e[r]||t!==e[r])return!1;break;case"boolean":if(!e[r]||!["0","1","false","true"].includes(e[r]))return!1}switch(t){case n.any:if(!e[r])return!1;break;case n.string:if(!e[r]||Array.isArray(e[r]))return!1;break;case n.array:if(!e[r]||!Array.isArray(e[r]))return!1;break;case n.number:if(!e[r]||Array.isArray(e[r])||isNaN(parseInt(e[r]))&&isNaN(parseFloat(e[r])))return!1;break;case n.boolean:if(!e[r]||Array.isArray(e[r])||!["0","1","false","true"].includes(e[r]))return!1}}return!0}function o(a){let{$query:r,navigate:n}=a;return i({$activeRoutes:e.createStore([],{name:"$activeRoutes",sid:"85ms46"}),$query:r,navigate:n})}function i(a){let{$activeRoutes:r,$query:o,navigate:i}=a;return a=>{const{parameters:c,forRoutes:p}=a,l=e.createStore(!1,{name:"$entered",sid:"-mo5ecc"}),d=e.createEvent({name:"entered",sid:"kuzfr"}),u=e.createEvent({name:"exited",sid:"-jzwna6"}),m=e.createEvent({name:"exit",sid:"7hfy2r"}),f=e.createEvent({name:"changeEntered",sid:"qh8w6v"});return e.sample({and:[{clock:f,target:l}],or:{sid:"-gf1fe4"}}),e.sample({and:[{source:{activeRoutes:r,query:o},filter:e=>{let{activeRoutes:a,query:r}=e;return(!p||t(p,a))&&s(r,c)},fn:e=>{let{query:a}=e;return function(e,a){const r={};for(const t in a){const s=a[t],o=e[t];if(Array.isArray(s)){const a=e[t];r[t]=a;continue}switch(typeof s){case"number":r[t]=isNaN(parseInt(o))?parseFloat(o):parseInt(o);break;case"object":r[t]=JSON.parse(o);break;case"string":r[t]=o;case"boolean":r[t]="1"===o||"true"===o}switch(s){case n.any:case n.string:case n.array:r[t]=e[t];break;case n.number:{const a=e[t];r[t]=isNaN(parseInt(a))?parseFloat(a):parseInt(a);break}case n.boolean:{const a=e[t];r[t]="1"===a||"true"===a;break}}}return r}(a,c)},target:[d,f.prepend(()=>!0)]}],or:{sid:"-gcagfb"}}),e.sample({and:[{source:{activeRoutes:r,query:o,entered:l},filter:e=>{let{activeRoutes:a,query:r,entered:n}=e;return n&&!((!p||t(p,a))&&s(r,c))},target:[u.prepend(()=>{}),f.prepend(()=>!1)]}],or:{sid:"-fvsmmh"}}),e.sample({and:[{clock:m,source:o,fn:(e,a)=>{if(a&&a.ignoreParams){const r={};for(const n of a.ignoreParams)e[n]&&(r[n]=e[n]);return{query:r}}return{query:{}}},target:i}],or:{sid:"-f105e9"}}),{entered:d,exited:u,exit:m}}}function c(e){return a=>{const r=a.split("/").map(e=>e.trim()).filter(e=>""!==e);let n=null;function t(e,a){n||(n={}),n[e]=a}if(0===e.length)return 0===r.length?{path:a,params:null}:null;for(let s=0;s<e.length;s++){const a=e[s];switch(a.type){case"const":if(a.name!==r.shift())return null;continue;case"parameter":{const{arrayProps:n,genericProps:o,required:i}=a.payload;if(n){const i=[];let c;for(;c=r.shift(),c;){switch(null==o?void 0:o.type){case"number":if(isNaN(+c))return null;i.push(+c);break;case"union":if(!o.items.includes(c))return null;i.push(c);break;default:i.push(c)}if(i.length>=(n.max??1/0))break}if(i.length<(n.min??0))return null;if(r.length>0&&!e[s+1])return null;t(a.name,i);break}const c=r.shift();if(i&&!c)return null;if(!c){t(a.name,void 0);continue}switch(null==o?void 0:o.type){case"number":if(isNaN(+c))return null;t(a.name,+c);break;case"union":if(!o.items.includes(c))return null;t(a.name,c);break;default:t(a.name,c)}}}}return r.length>0?null:{path:a,params:n}}}function p(e){if(!e)return null;const a=e[1];let r,n,t;for(const s of e.slice(2))s&&(s.includes("<")?r=s.replaceAll(/\s/g,"").replace("<","").replace(">",""):(s.includes("{")&&(n=s.replace("{","").replace("}","").split(",").map(e=>parseInt(e))),["*","?","+"].includes(s)&&(t=s)));return{name:a,genericProps:r,arrayProps:n,modificator:t}}function l(e){return a=>{const r=[];if(0===e.length)return"/";for(const n of e)switch(n.type){case"const":r.push(n.name);break;case"parameter":if(!a[n.name])continue;if(Array.isArray(a[n.name]))for(const e of a[n.name])r.push(e.toString());else r.push(a[n.name].toString())}return`/${r.join("/")}`}}function d(){const r=e.createStore(null,{and:{serialize:"ignore"},name:"$history",sid:"-ld7lzl"}),n=e.createStore({query:{},path:null},{name:"$locationState",sid:"-4u3w85"}),t=n.map(e=>e.query),s=n.map(e=>e.path),i=e.createEvent({name:"setHistory",sid:"-ormmkk"}),c=e.createEvent({name:"navigate",sid:"tawqep"}),p=e.createEvent({name:"back",sid:"bxy8rt"}),l=e.createEvent({name:"forward",sid:"-bpmzb1"}),d=e.createEvent({name:"locationUpdated",sid:"lkzldx"}),u=e.attach({and:{source:r,effect:(e,r)=>{let{path:n,query:t,replace:s}=r;if(!e)throw new Error("history not found");const o={pathname:n,search:`?${a.stringify(t)}`};s?e.replace(o):e.push(o)}},or:{name:"navigateFx",sid:"-ov1xn7"}}),m=e.createEffect(r=>{const n=e.scopeBind(d);if(n({pathname:r.location.pathname,query:{...a.parse(r.location.search)}}),!r)throw new Error;r.listen(e=>{let{location:r}=e;n({pathname:r.pathname,query:{...a.parse(r.search)}})})},{name:"subscribeHistoryFx",sid:"-m60vds"});return e.sample({and:[{clock:i,target:r}],or:{sid:"ii4q"}}),e.sample({and:[{clock:r,filter:Boolean,target:m}],or:{sid:"39h3j"}}),e.sample({and:[{clock:d,fn:e=>({path:e.pathname,query:e.query}),target:n}],or:{sid:"i3x4a"}}),e.sample({and:[{clock:c,source:s,fn:(e,a)=>({path:e,...a}),target:u}],or:{sid:"ylqx4"}}),{$history:r,$locationState:n,$query:t,$path:s,setHistory:i,navigate:c,back:p,forward:l,locationUpdated:d,trackQuery:o({$query:t,navigate:c})}}function u(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e.createStore(!1,{and:{name:"pending",sid:"r89aiv"},name:"pending",sid:"r89aiv"});const r=e.createStore(null,{name:"$params",sid:"-ftspin"}),n=e.createStore(!1,{name:"$isOpened",sid:"-v6936c"}),t=a,s=e.createEvent({name:"open",sid:"juc47v"}),o=e.createEvent({name:"opened",sid:"-quc8vc"}),i=e.createEvent({name:"openedOnServer",sid:"n25rh4"}),c=e.createEvent({name:"openedOnClient",sid:"-auqikx"}),p=e.createEvent({name:"close",sid:"4zlqo6"}),l=e.createEvent({name:"closed",sid:"wbpfrk"}),d=e.createEvent({name:"cancelled",sid:"-q3x5sf"});return e.sample({and:[{clock:s,target:o}],or:{sid:"-u8b34x"}}),e.split({and:[{source:o,match:()=>"undefined"==typeof window?"server":"client",cases:{server:i,client:c}}],or:{sid:"-u5k464"}}),e.sample({and:[{clock:p,target:l}],or:{sid:"-tp2ada"}}),e.sample({and:[{clock:[o.map(()=>!0),l.map(()=>!1)],target:n}],or:{sid:"-tarmxw"}}),{$params:r,$isOpened:n,$isPending:t,open:s,opened:o,openedOnClient:c,openedOnServer:i,close:p,closed:l,cancelled:d,path:null,"@@unitShape":()=>({params:r,isOpened:n,isPending:t,onOpen:s})}}exports.chainRoute=function(a){const{route:r,beforeOpen:n,openOn:t,cancelOn:s}=a;let o;const i=e.createEffect(()=>null==o?void 0:o(),{name:"waitForAsyncBundleFx",sid:"-tvp99n"}),c=e.createEffect(async e=>{await i();for(const a of[].concat(n))await a(e)},{name:"openFx",sid:"-9kc1je"}),p=u(c.pending);return e.sample({and:[{clock:r.opened,target:c}],or:{sid:"1162lk"}}),e.sample({and:[{clock:r.opened,fn:e=>e&&"params"in e?e.params:null,target:p.$params}],or:{sid:"13x1kd"}}),t&&e.sample({and:[{clock:t,source:{params:p.$params},fn:e=>{let{params:a}=e;return{params:a}},target:p.open}],or:{sid:"1kevex"}}),s&&(e.sample({and:[{clock:[r.closed].concat(s),target:p.close}],or:{sid:"20wp7r"}}),e.sample({and:[{clock:[].concat(s),target:p.cancelled}],or:{sid:"2f7cn5"}})),Object.assign(p,{internal:{setAsyncImport:e=>o=e}})},exports.createRoute=function(a){let r;const n=e.createEffect(()=>null==r?void 0:r(),{name:"waitForAsyncBundleFx",sid:"1y76ms"}),t=e.createEffect(async()=>{for(const e of a.beforeOpen??[])await e()},{name:"beforeOpenFx",sid:"-65tb76"}),s=e.createEffect(async e=>{await n(),await t();const r=a.parent;return r&&await r.internal.openFx({...e??{params:{}},navigate:!1}),e},{name:"openFx",sid:"p3u4q7"}),o=e.createStore({},{name:"$params",sid:"-a34rm3"}),i=e.createStore(!1,{name:"$isOpened",sid:"7m6f5g"}),c=s.pending,p=e.createEvent({name:"open",sid:"ur5fa6"}),l=e.createEvent({name:"close",sid:"-k33yie"}),d=e.createEvent({name:"opened",sid:"-nt8hns"}),u=e.createEvent({name:"openedOnServer",sid:"hbjexo"}),m=e.createEvent({name:"openedOnClient",sid:"h92wzn"}),f=e.createEvent({name:"navigated",sid:"-8amrhe"}),y=e.createEvent({name:"closed",sid:"-pql6th"});e.sample({and:[{clock:p,target:s}],or:{sid:"ymah4t"}});const h={};return e.sample({and:[{clock:f,fn:e=>e&&"params"in e?{...e.params}:h,target:o}],or:{sid:"z1opqx"}}),e.split({and:[{source:f,match:()=>"undefined"==typeof window?"server":"client",cases:{server:u,client:m}}],or:{sid:"-zha4na"}}),e.sample({and:[{clock:[m,u],target:d}],or:{sid:"-z08i93"}}),e.sample({and:[{clock:l,target:y}],or:{sid:"-yxhjaa"}}),e.sample({and:[{clock:[d.map(()=>!0),y.map(()=>!1)],target:i}],or:{sid:"-yj6vuw"}}),{$params:o,$isOpened:i,$isPending:c,open:p,closed:y,opened:d,openedOnClient:m,openedOnServer:u,...a,internal:{navigated:f,close:l,openFx:s,setAsyncImport:e=>r=e},"@@unitShape":()=>({params:o,isPending:c,isOpened:i,onOpen:p})}},exports.createRouter=function(a){const{base:r="/",routes:n}=a,{$path:t,$query:s,back:o,forward:u,navigate:m,setHistory:f,locationUpdated:y}=d(),h=n.map(e=>{let a=e;const n=[];for(n.unshift(a.path);a.parent;)a=a.parent,"/"!==a.path&&n.unshift(a.path);const t="/"===r?n.join(""):[r,...n].join(""),{build:s,parse:o}=function(e){const a=[],r=/:(\w+)(<[\s?\w|]+>)?({\d+\,\d+})?([+*?])?/,n=e.split("/").filter(Boolean);for(let t=0;t<n.length;t++){const s=n[t];if(!s)continue;const o=p(s.match(r));if(!o){a.push({type:"const",name:s,payload:void 0});continue}const{arrayProps:i,genericProps:c,modificator:l,name:d}=o;if(!d)throw new Error(`Invalid path: "${e}". Name for argument must be provided`);const u={type:"parameter",name:d,payload:{required:!0}};switch(c&&"number"===c&&(u.payload.genericProps={type:"number"}),c&&c.includes("|")&&(u.payload.genericProps={type:"union",items:c.split("|")}),l){case"*":u.payload.arrayProps={};break;case"+":u.payload.arrayProps={min:1};break;case"?":u.payload.required=!1}i&&(u.payload.arrayProps={...u.payload.arrayProps,min:i[0],max:i[1]}),a.push(u)}return{parse:c(a),build:l(a)}}(t);return{route:e,path:t,build:s,parse:o}}),g=t.map(e=>{const a=[];if(!e)return a;for(const{route:r,parse:n}of h)n(e)&&a.push(r);return a}),v=e.attach({and:{source:{query:s,path:t},effect:async a=>{let{query:r,path:n}=a;for(const{route:t,parse:s}of h){const a=s(n),[o,i]=[e.scopeBind(t.internal.close),e.scopeBind(t.internal.navigated)];a?i({query:r,params:a.params}):o()}}},or:{name:"openRoutesByPathFx",sid:"-3zl7vq"}});for(const{route:i,build:c}of h)e.sample({and:[{clock:i.internal.openFx.doneData,filter:e=>!1!==(null==e?void 0:e.navigate),fn:e=>({path:c(e&&"params"in e?e.params:void 0),query:(null==e?void 0:e.query)??{},replace:null==e?void 0:e.replace}),target:m}],or:{sid:"exzzqg"}});return e.sample({and:[{clock:y,fn:e=>({path:e.pathname,query:e.query}),target:v}],or:{sid:"ficdn3"}}),{$query:s,$path:t,$activeRoutes:g,back:o,forward:u,navigate:m,routes:n,setHistory:f,mappedRoutes:h,trackQuery:i({$activeRoutes:g,$query:s,navigate:m}),"@@unitShape":()=>({query:s,path:t,activeRoutes:g,onBack:o,onForward:u,onNavigate:m})}},exports.createRouterControls=d,exports.createVirtualRoute=u,exports.group=function(a){const n=u(e.withFactory({sid:"-uirglg",fn:()=>r.or(...a.map(e=>e.$isPending)),name:"$isPending",method:"or"}));return e.sample({and:[{clock:a.map(e=>e.$isOpened),filter:e.withFactory({sid:"6pispd",fn:()=>r.or(...a.map(e=>e.$isOpened)),name:"filter",method:"or"}),fn:()=>{},target:n.open}],or:{sid:"-xn8czd"}}),e.sample({and:[{clock:a.map(e=>e.$isOpened),filter:e.withFactory({sid:"a0u5gq",fn:()=>r.not(e.withFactory({sid:"xb4bx2",fn:()=>r.or(...a.map(e=>e.$isOpened)),name:"fn",method:"or"})),name:"filter",method:"not"}),fn:()=>{},target:n.close}],or:{sid:"-x7u4d9"}}),n},exports.parameters=n;
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { ParseUrlParams } from '@argon-router/paths';
|
|
|
8
8
|
import { Store } from 'effector';
|
|
9
9
|
import { StoreWritable } from 'effector';
|
|
10
10
|
import { Unit } from 'effector';
|
|
11
|
+
import { ValidatePath } from '@argon-router/paths';
|
|
11
12
|
|
|
12
13
|
declare type AnyParameter = typeof anySymbol;
|
|
13
14
|
|
|
@@ -75,12 +76,6 @@ declare interface ChainRouteProps<T> {
|
|
|
75
76
|
cancelOn?: Unit<any> | Unit<any>[];
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
declare interface Config<T> {
|
|
79
|
-
path: T;
|
|
80
|
-
parent?: Route<any>;
|
|
81
|
-
beforeOpen?: Effect<void, any, any>[];
|
|
82
|
-
}
|
|
83
|
-
|
|
84
79
|
/**
|
|
85
80
|
* @description Creates argon route
|
|
86
81
|
* @param config Route config
|
|
@@ -106,7 +101,17 @@ declare interface Config<T> {
|
|
|
106
101
|
* posts.open(); // profile.$isOpened -> true, posts.$isOpened -> true
|
|
107
102
|
* ```
|
|
108
103
|
*/
|
|
109
|
-
export declare function createRoute<T extends string, Params = ParseUrlParams<T>>(config:
|
|
104
|
+
export declare function createRoute<T extends string, Params = ParseUrlParams<T>>(config: CreateRouteConfig<T>): Route<Params>;
|
|
105
|
+
|
|
106
|
+
declare type CreateRouteConfig<Path> = ValidatePath<Path> extends ['invalid', infer Template] ? {
|
|
107
|
+
path: Template;
|
|
108
|
+
parent?: Route<any>;
|
|
109
|
+
beforeOpen?: Effect<void, any, any>[];
|
|
110
|
+
} : {
|
|
111
|
+
path: Path;
|
|
112
|
+
parent?: Route<any>;
|
|
113
|
+
beforeOpen?: Effect<void, any, any>[];
|
|
114
|
+
};
|
|
110
115
|
|
|
111
116
|
/**
|
|
112
117
|
* @description Creates argon router
|
|
@@ -174,6 +179,28 @@ export declare function createRouter(config: RouterConfig): Router;
|
|
|
174
179
|
*/
|
|
175
180
|
export declare function createRouterControls(): RouterControls;
|
|
176
181
|
|
|
182
|
+
export declare function createVirtualRoute<T>(pending?: Store<boolean>): VirtualRoute<T>;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* @description Create virtual route which opens when some passed routes is opened. Closes if all passed routes are closed.
|
|
186
|
+
* @link https://movpushmov.dev/argon-router/core/group.html
|
|
187
|
+
* @returns VirtualRoute
|
|
188
|
+
* @example ```ts
|
|
189
|
+
* import { group, createRoute } from '@argon-router/core';
|
|
190
|
+
* import { createEvent, createEffect } from 'effector';
|
|
191
|
+
*
|
|
192
|
+
* const signInRoute = createRoute({ path: '/auth/sign-in' });
|
|
193
|
+
* const signUpRoute = createRoute({ path: '/auth/sign-up' });
|
|
194
|
+
* const authorizationRoute = group([signInRoute, signUpRoute]);
|
|
195
|
+
*
|
|
196
|
+
* signInRoute.open(); // authorizationRoute.$isOpened —> true
|
|
197
|
+
* signUpRoute.open(); // authorizationRoute.$isOpened —> true
|
|
198
|
+
* signInRoute.close(); // authorizationRoute.$isOpened —> true
|
|
199
|
+
* signUpRoute.close(); // authorizationRoute.$isOpened —> false
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
export declare function group(routes: Route<any>[]): VirtualRoute<void>;
|
|
203
|
+
|
|
177
204
|
declare type LocationState = {
|
|
178
205
|
path: string;
|
|
179
206
|
query: Query;
|