atomic-router
Advanced tools
Comparing version 0.5.0-dev.11 to 0.5.0-dev.12
@@ -864,3 +864,7 @@ 'use strict'; | ||
var createRoute = function createRoute() { | ||
var createRoute = function createRoute(params) { | ||
if (params === void 0) { | ||
params = {}; | ||
} | ||
var navigateFx = effector.createEffect( /*#__PURE__*/function () { | ||
@@ -982,2 +986,31 @@ var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(_ref) { | ||
}); | ||
if (params.filter) { | ||
var filter = params.filter; | ||
effector.split({ | ||
and: [{ | ||
source: effector.sample({ | ||
and: [{ | ||
clock: filter | ||
}], | ||
or: { | ||
name: "source", | ||
sid: "wyzurx" | ||
} | ||
}), | ||
// @ts-expect-error | ||
match: function match(filter) { | ||
return filter ? 'true' : 'false'; | ||
}, | ||
cases: { | ||
"true": opened, | ||
"false": closed | ||
} | ||
}], | ||
or: { | ||
sid: "-wn8fbj" | ||
} | ||
}); | ||
} | ||
var instance = { | ||
@@ -993,3 +1026,7 @@ $isOpened: $isOpened, | ||
open: openFx, | ||
kind: Kind.ROUTE | ||
kind: Kind.ROUTE, | ||
// @ts-expect-error Internal stuff | ||
settings: { | ||
derived: Boolean(params.filter) | ||
} | ||
}; | ||
@@ -1029,3 +1066,3 @@ return instance; | ||
var equals = function equals(a, b) { | ||
var paramsEqual = function paramsEqual(a, b) { | ||
if (Object.keys(a).length !== Object.keys(b).length) { | ||
@@ -1036,3 +1073,7 @@ return false; | ||
for (var k in a) { | ||
if (a[k] !== b[k]) { | ||
// NOTE: Parsed URI always returns string parameters | ||
// so we force string comparison here | ||
// in order to avoid extra updates | ||
// whenever user passes numeric params | ||
if ("" + a[k] !== "" + b[k]) { | ||
return false; | ||
@@ -1079,3 +1120,24 @@ } | ||
return next; | ||
var derivedRoutes = []; | ||
var nonDerivedRoutes = []; | ||
for (var _i = 0, _next = next; _i < _next.length; _i++) { | ||
var routeObj = _next[_i]; | ||
// @ts-expect-error Internals | ||
if (routeObj.route.settings.derived) { | ||
derivedRoutes.push(routeObj); | ||
} else { | ||
nonDerivedRoutes.push(routeObj); | ||
} | ||
} | ||
if (derivedRoutes.length) { | ||
for (var _iterator2 = _createForOfIteratorHelperLoose(derivedRoutes), _step2; !(_step2 = _iterator2()).done;) { | ||
var derivedRoute = _step2.value; | ||
console.error("createHistoryRouter: " + derivedRoute.path + " uses derived route. This won't work"); | ||
} | ||
} | ||
return nonDerivedRoutes; | ||
}; | ||
@@ -1087,15 +1149,15 @@ | ||
name: "setHistory", | ||
sid: "-clu30d" | ||
sid: "eurzux" | ||
}); | ||
var routeNotFound = effector.createEvent({ | ||
name: "routeNotFound", | ||
sid: "-xnr4av" | ||
sid: "-6751fl" | ||
}); | ||
var $query = effector.createStore({}, { | ||
name: "$query", | ||
sid: "i4zffs" | ||
sid: "-pfijo2" | ||
}); | ||
var $path = effector.createStore('', { | ||
name: "$path", | ||
sid: "-rt73a5" | ||
sid: "-cl0ev" | ||
}); | ||
@@ -1107,7 +1169,7 @@ var $activeRoutes = effector.createStore([], { | ||
name: "$activeRoutes", | ||
sid: "ghza91" | ||
sid: "y0nau8" | ||
}); | ||
var $isFirstCheckPassed = effector.createStore(false, { | ||
name: "$isFirstCheckPassed", | ||
sid: "-bpyumz" | ||
sid: "5sp5y8" | ||
}); // @ts-expect-error | ||
@@ -1120,3 +1182,3 @@ | ||
name: "$history", | ||
sid: "-6zzmt3" | ||
sid: "kgmg27" | ||
}); | ||
@@ -1142,3 +1204,3 @@ $history.on(setHistory, function (_, nextHistory) { | ||
name: "pushFx", | ||
sid: "oynwne" | ||
sid: "-sjs4qj" | ||
} | ||
@@ -1164,3 +1226,3 @@ }); // Triggered whenever some route.navigate.doneData is triggered | ||
name: "openedFx", | ||
sid: "254znm" | ||
sid: "jnt08t" | ||
}); // Recalculate opened/closed routes | ||
@@ -1174,4 +1236,4 @@ | ||
for (var _iterator2 = _createForOfIteratorHelperLoose(remappedRoutes), _step2; !(_step2 = _iterator2()).done;) { | ||
var route = _step2.value; | ||
for (var _iterator3 = _createForOfIteratorHelperLoose(remappedRoutes), _step3; !(_step3 = _iterator3()).done;) { | ||
var route = _step3.value; | ||
@@ -1198,3 +1260,3 @@ var _matchPath = matchPath({ | ||
name: "recalculateFx", | ||
sid: "-7f7p5c" | ||
sid: "k1edpy" | ||
}); | ||
@@ -1221,3 +1283,3 @@ $path.on(recalculateFx.done, function (_prev, _ref4) { | ||
or: { | ||
sid: "7dw78t" | ||
sid: "-jyj318" | ||
} | ||
@@ -1240,3 +1302,3 @@ }); // sample({ | ||
or: { | ||
sid: "7ue11n" | ||
sid: "-ji198e" | ||
} | ||
@@ -1254,6 +1316,6 @@ }); | ||
var _loop2 = function _loop2() { | ||
var routeObj = _step3.value; | ||
var routeObj = _step4.value; | ||
var $isOpenedManually = effector.createStore(false, { | ||
name: "$isOpenedManually", | ||
sid: "cw52y2" | ||
sid: "-uocw5s" | ||
}); // Watch for route.navigate.doneData to build new path and push | ||
@@ -1278,3 +1340,3 @@ | ||
or: { | ||
sid: "-jwbwkc" | ||
sid: "-j0fu5e" | ||
} | ||
@@ -1299,3 +1361,3 @@ }); | ||
name: "opened", | ||
sid: "rp79u" | ||
sid: "iad7v1" | ||
} | ||
@@ -1310,3 +1372,3 @@ }), | ||
name: "updated", | ||
sid: "-x8osn5" | ||
sid: "-5s2prv" | ||
} | ||
@@ -1321,3 +1383,3 @@ }), | ||
name: "closed", | ||
sid: "d80zko" | ||
sid: "uqp05v" | ||
} | ||
@@ -1340,3 +1402,3 @@ }) | ||
name: "updated", | ||
sid: "-hm79k5" | ||
sid: "9uetb5" | ||
} | ||
@@ -1348,3 +1410,3 @@ }); | ||
name: "source", | ||
sid: "-1cfj8b" | ||
sid: "g68hcw" | ||
}), | ||
@@ -1359,3 +1421,3 @@ clock: effector.guard({ | ||
query = _ref14[1]; | ||
return !equals(params, next.params) || !equals(query, next.query); | ||
return !paramsEqual(params, next.params) || !paramsEqual(query, next.query); | ||
} | ||
@@ -1365,3 +1427,3 @@ }], | ||
name: "clock", | ||
sid: "cueh1p" | ||
sid: "-uq3i25" | ||
} | ||
@@ -1375,3 +1437,3 @@ }), | ||
or: { | ||
sid: "-i3zz53" | ||
sid: "-hjnl6q" | ||
} | ||
@@ -1389,3 +1451,3 @@ }); // Trigger .opened() for the routes marked as "opened" | ||
or: { | ||
sid: "-hkr6dg" | ||
sid: "-gov3yi" | ||
} | ||
@@ -1400,3 +1462,3 @@ }); // Trigger .closed() for the routes marked as "closed" | ||
or: { | ||
sid: "-h5wqcp" | ||
sid: "-glkcec" | ||
} | ||
@@ -1410,3 +1472,3 @@ }); // Reset $isOpenedManually | ||
or: { | ||
sid: "-wi6bsp" | ||
sid: "-51k8xf" | ||
} | ||
@@ -1416,3 +1478,3 @@ })); | ||
for (var _iterator3 = _createForOfIteratorHelperLoose(remappedRoutes), _step3; !(_step3 = _iterator3()).done;) { | ||
for (var _iterator4 = _createForOfIteratorHelperLoose(remappedRoutes), _step4; !(_step4 = _iterator4()).done;) { | ||
_loop2(); | ||
@@ -1461,3 +1523,3 @@ } // Takes current path from history and triggers recalculate | ||
name: "recheckFx", | ||
sid: "g883jo" | ||
sid: "xqw44v" | ||
} | ||
@@ -1471,3 +1533,3 @@ }); | ||
or: { | ||
sid: "-g4iq3l" | ||
sid: "-5aolek" | ||
} | ||
@@ -1518,3 +1580,3 @@ }); // Triggered whenever history instance is set | ||
name: "subscribeHistoryFx", | ||
sid: "c6ar7v" | ||
sid: "-h89jdx" | ||
} | ||
@@ -1531,3 +1593,3 @@ }); // If `hydrate` flag is set, | ||
or: { | ||
sid: "-4u6ria" | ||
sid: "-49udjx" | ||
} | ||
@@ -1543,3 +1605,3 @@ }); | ||
or: { | ||
sid: "-4rfsmx" | ||
sid: "-3vjq7z" | ||
} | ||
@@ -1559,3 +1621,3 @@ }); | ||
name: "clock", | ||
sid: "cb8dke" | ||
sid: "-v99ljg" | ||
} | ||
@@ -1571,3 +1633,3 @@ }), | ||
name: "initialized", | ||
sid: "r0pz07" | ||
sid: "-qhq2dq" | ||
} | ||
@@ -1574,0 +1636,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("effector"),t=require("path-to-regexp");function r(e,t,r,n,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function n(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function c(e){r(i,o,a,c,u,"next",e)}function u(e){r(i,o,a,c,u,"throw",e)}c(void 0)}))}}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function i(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return a(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c,u=(function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var o=Object.create((t&&t.prototype instanceof f?t:f).prototype),a=new O(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var c=w(i,r);if(c){if(c===d)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=s(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(e,r,a),o}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var d={};function f(){}function p(){}function l(){}var h={};c(h,o,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(E([])));y&&y!==t&&r.call(y,o)&&(h=y);var v=l.prototype=f.prototype=Object.create(h);function g(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(o,a){function i(){return new t((function(n,i){!function n(o,a,i,c){var u=s(e[o],e,a);if("throw"!==u.type){var d=u.arg,f=d.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(f).then((function(e){d.value=e,i(d)}),(function(e){return n("throw",e,i,c)}))}c(u.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function w(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,w(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=s(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,d;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function E(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:q}}function q(){return{value:void 0,done:!0}}return p.prototype=l,c(v,"constructor",l),c(l,"constructor",p),p.displayName=c(l,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,c(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},g(b.prototype),c(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new b(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},g(v),c(v,i,"Generator"),c(v,o,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=E,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(c&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,d):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),x(r),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),d}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(c={exports:{}}),c.exports),s={ROUTE:Symbol()},d=function(){var t=e.createEffect(function(){var e=n(u.mark((function e(t){return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{params:t.params||{},query:t.query||{}});case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),{name:"navigateFx",sid:"-apj8ex"}),r=e.attach({and:{effect:t,mapParams:function(e){return{params:e||{},query:{}}}},or:{name:"openFx",sid:"-ju5g7s"}}),o=e.createStore(!1,{name:"$isOpened",sid:"7ntohw"}),a=e.createStore({},{name:"$params",sid:"1blfp4"}),i=e.createStore({},{name:"$query",sid:"rvelj"}),c=e.createEvent({name:"opened",sid:"-f8s17u"}),d=e.createEvent({name:"updated",sid:"slzlyp"}),f=e.createEvent({name:"left",sid:"yy6ys3"}),p=e.createEvent({name:"closed",sid:"-say4ff"});return o.on(c,(function(){return!0})).on(f,(function(){return!1})),a.on(c,(function(e,t){return t.params})).on(d,(function(e,t){return t.params})),i.on(c,(function(e,t){return t.query})).on(d,(function(e,t){return t.query})),e.split({and:[{source:t.doneData,match:o.map((function(e){return e?"updated":"opened"})),cases:{opened:c,updated:d}}],or:{sid:"-x6h86m"}}),e.sample({and:[{clock:p,target:f}],or:{sid:"-wqj6z5"}}),{$isOpened:o,$params:a,$query:i,opened:c,updated:d,closed:p,left:f,navigate:t,open:r,kind:s.ROUTE}};function f(e){var r=e.params,n=e.query;return t.compile(e.pathCreator)(r)+(Object.keys(n).length?"?"+new URLSearchParams(n):"")}function p(e){var r=e.actualPath,n=t.match(e.pathCreator)(new URL("http://_"+r).pathname);return n?{matches:!0,params:n.params}:{matches:!1}}var l=function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r in e)if(e[r]!==t[r])return!1;return!0},h=e.createEffect((function(e){if(!e.history)throw new Error("[Routing] No history provided");return e.history[e.method](e.path,{}),e}),{name:"historyPushFx",sid:"t43sn8"}),m=function(e){return"object"==typeof e&&null!==e&&"kind"in e&&e.kind===s.ROUTE},y=function(t){return e.is.store(t,{sid:"-v906zu"})?t:e.createStore(t,{sid:"-v904rr"})};exports.Kind=s,exports.buildPath=f,exports.chainRoute=function(t){var r=function(t){if(m(t))return{route:t,chainedRoute:e.withFactory({sid:"jogy9l",fn:function(){return d()},name:"chainedRoute",method:"createRoute"}),beforeOpen:e.createEvent({name:"beforeOpen",sid:"8mpttm"}),openOn:[t.opened,t.closed],cancelOn:[e.createEvent({name:"cancelOn",sid:"ahjdm4"})]};var r=t;if(!("enterOn"in r)&&e.is.effect(r.beforeOpen,{sid:"fx5yhy"}))return{route:r.route,chainedRoute:r.chainedRoute||e.withFactory({sid:"fyulbq",fn:function(){return d()},name:"chainedRoute",method:"createRoute"}),beforeOpen:r.beforeOpen,openOn:r.beforeOpen.doneData,cancelOn:r.beforeOpen.failData};var n=t;return{route:n.route,chainedRoute:n.chainedRoute||e.withFactory({sid:"u6793u",fn:function(){return d()},name:"chainedRoute",method:"createRoute"}),beforeOpen:n.beforeOpen,openOn:e.sample({and:[{clock:n.openOn}],or:{name:"openOn",sid:"-mm7rdb"}}),cancelOn:e.sample({and:[{clock:n.cancelOn||e.createEvent({name:"clock",sid:"y2etk0"})}],or:{name:"cancelOn",sid:"-vntqxj"}})}}(t),n=r.route,o=r.chainedRoute,a=r.beforeOpen,i=r.openOn,c=r.cancelOn,u=e.createStore({},{name:"$params",sid:"ru233x"}),s=e.createStore({},{name:"$query",sid:"2tnaew"}),f=e.combine({and:[e.combine({and:[[n.$params,n.$query]],or:{name:"and",sid:"-t8sbqu"}}),e.combine({and:[[u,s]],or:{name:"and",sid:"-t8s8s2"}}),function(e,t){return e[0]===t[0]&&e[1]===t[1]}],or:{name:"$hasSameParams",sid:"-w0fyuc"}}),p=e.sample({and:[{clock:[n.opened,n.updated]}],or:{name:"routeOpened",sid:"nobe5z"}});e.sample({and:[{clock:p,target:a}],or:{sid:"n0i9a7"}}),u.on(p,(function(e,t){return t.params})),s.on(p,(function(e,t){return t.query}));var l=e.guard({and:[{clock:i,source:{params:u,query:s},filter:f}],or:{name:"chainedRouteResolved",sid:"-qurk3a"}});e.sample({and:[{clock:l,target:o.navigate}],or:{sid:"ningv4"}});var h=e.merge([n.closed,c],{name:"aborted",sid:"-qm6c6a"});return u.reset(h),s.reset(h),e.sample({and:[{clock:h,target:o.closed}],or:{sid:"nz5any"}}),o},exports.createHistoryRouter=function(t){var r=function(e){for(var t,r=[],n=function(){var e=t.value;Array.isArray(e.route)?r.push.apply(r,e.route.map((function(t){return o({},e,{route:t})}))):r.push(e)},a=i(e);!(t=a()).done;)n();return r}(t.routes),a=e.createEvent({name:"setHistory",sid:"-clu30d"}),c=e.createEvent({name:"routeNotFound",sid:"-xnr4av"}),s=e.createStore({},{name:"$query",sid:"i4zffs"}),d=e.createStore("",{name:"$path",sid:"-rt73a5"}),m=e.createStore([],{and:{serialize:"ignore"},name:"$activeRoutes",sid:"ghza91"}),y=e.createStore(!1,{name:"$isFirstCheckPassed",sid:"-bpyumz"}),v=e.createStore(null,{and:{serialize:"ignore"},name:"$history",sid:"-6zzmt3"});v.on(a,(function(e,t){return t}));var g=e.attach({and:{source:{history:v},effect:h,mapParams:function(e,t){return o({history:t.history},e)}},or:{name:"pushFx",sid:"oynwne"}}),b=e.createEffect((function(e){var t=e.params,r=e.query;return{path:f({pathCreator:e.route.path,params:t,query:r}),params:t,query:r,method:"push"}}),{name:"openedFx",sid:"254znm"}),w=e.createEffect((function(e){for(var t,n=e.path,o=e.query,a=[],c=[],u=i(r);!(t=u()).done;){var s=t.value,d=p({pathCreator:s.path,actualPath:n});(d.matches?a:c).push({route:s,params:d.params,query:o})}return{opened:a,closed:c}}),{name:"recalculateFx",sid:"-7f7p5c"});d.on(w.done,(function(e,t){return t.params.path})),s.on(w.done,(function(e,t){return t.params.query})),m.on(w.doneData,(function(e,t){return t.opened.map((function(e){return e.route.route}))})),e.sample({and:[{clock:b.doneData,target:g}],or:{sid:"7dw78t"}}),e.guard({and:[{clock:w.doneData,filter:function(e){return 0===e.opened.length},target:c}],or:{sid:"7ue11n"}});for(var k,x=w.doneData.map((function(e){return e.opened})),O=w.doneData.map((function(e){return e.closed})),E=function(){var t=k.value,r=e.createStore(!1,{name:"$isOpenedManually",sid:"cw52y2"}),n=t.route.navigate.done;e.sample({and:[{clock:n,fn:function(e){var r=e.result;return{route:t,params:r.params,query:r.query}},target:b}],or:{sid:"-jwbwkc"}});var o=function(e){return e.find((function(e){return e.route===t}))},a={opened:e.guard({and:[{clock:x.filterMap(o),filter:t.route.$isOpened.map((function(e){return!e}))}],or:{name:"opened",sid:"rp79u"}}),updated:e.guard({and:[{clock:x.filterMap(o),filter:t.route.$isOpened}],or:{name:"updated",sid:"-x8osn5"}}),closed:e.guard({and:[{clock:O.filterMap(o),filter:t.route.$isOpened}],or:{name:"closed",sid:"d80zko"}})};r.on(n,(function(){return!0}));var i=e.guard({and:[{clock:a.updated,filter:r.map((function(e){return!e}))}],or:{name:"updated",sid:"-hm79k5"}});e.sample({and:[{source:e.restore(i,null,{name:"source",sid:"-1cfj8b"}),clock:e.guard({and:[{clock:i,source:[t.route.$params,t.route.$query],filter:function(e,t){var r=e[1];return!l(e[0],t.params)||!l(r,t.query)}}],or:{name:"clock",sid:"cueh1p"}}),fn:function(e){return e},target:t.route.updated}],or:{sid:"-i3zz53"}}),e.guard({and:[{clock:a.opened,filter:r.map((function(e){return!e})),target:t.route.opened}],or:{sid:"-hkr6dg"}}),e.sample({and:[{clock:a.closed,target:t.route.closed}],or:{sid:"-h5wqcp"}}),r.reset(e.sample({and:[{clock:x}],or:{sid:"-wi6bsp"}}))},q=i(r);!(k=q()).done;)E();var j,L=e.attach({and:{source:{history:v},effect:(j=n(u.mark((function e(t){var r,n;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=[(r=t.history).location.pathname,Object.fromEntries(new URLSearchParams(r.location.search))],e.abrupt("return",{path:n[0],query:n[1]});case 3:case"end":return e.stop()}}),e)}))),function(e){return j.apply(this,arguments)})},or:{name:"recheckFx",sid:"g883jo"}});e.sample({and:[{source:L.doneData,target:w}],or:{sid:"-g4iq3l"}});var R,S=e.attach({and:{source:{history:v},effect:(R=n(u.mark((function t(r){var n,o;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=r.history,o=L;try{o=e.scopeBind(L)}catch(e){}return n.listen((function(){o()})),t.abrupt("return",!0);case 5:case"end":return t.stop()}}),t)}))),function(e){return R.apply(this,arguments)})},or:{name:"subscribeHistoryFx",sid:"c6ar7v"}});t.hydrate||e.sample({and:[{clock:S.doneData,target:L}],or:{sid:"-4u6ria"}}),e.sample({and:[{clock:v,target:S}],or:{sid:"-4rfsmx"}}),y.on(w.doneData,(function(){return!0})).reset(v);var $=e.sample({and:[{clock:e.guard({and:[{clock:y,filter:Boolean}],or:{name:"clock",sid:"cb8dke"}}),source:{activeRoutes:m,path:d,query:s}}],or:{name:"initialized",sid:"r0pz07"}});return{$path:d,$query:s,$activeRoutes:m,$history:v,setHistory:a,push:g,routes:r,initialized:$,routeNotFound:c}},exports.createRoute=d,exports.isRoute=m,exports.matchPath=p,exports.redirect=function(t){var r=t.clock?e.sample({and:[{clock:t.clock}],or:{name:"clock",sid:"-nsh945"}}):e.createEvent({name:"clock",sid:"-nbfmpy"}),n=y(t.params||{}),o=y(t.query||{});return e.sample({and:[{clock:r,source:{params:n,query:o},fn:function(e,t){var r=e.params,n=e.query;return{params:"function"==typeof r?r(t):r,query:"function"==typeof n?n(t):n}},target:t.route.navigate}],or:{sid:"-8kqnzy"}}),r}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("effector"),t=require("path-to-regexp");function r(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function n(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function u(e){r(i,o,a,u,c,"next",e)}function c(e){r(i,o,a,u,c,"throw",e)}u(void 0)}))}}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function i(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return a(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,c=(function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var o=Object.create((t&&t.prototype instanceof f?t:f).prototype),a=new O(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=b(i,r);if(u){if(u===d)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(e,r,a),o}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d={};function f(){}function l(){}function p(){}var h={};u(h,o,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(q([])));y&&y!==t&&r.call(y,o)&&(h=y);var v=p.prototype=f.prototype=Object.create(h);function g(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){var n;this._invoke=function(o,a){function i(){return new t((function(n,i){!function n(o,a,i,u){var c=s(e[o],e,a);if("throw"!==c.type){var d=c.arg,f=d.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,i,u)}),(function(e){n("throw",e,i,u)})):t.resolve(f).then((function(e){d.value=e,i(d)}),(function(e){return n("throw",e,i,u)}))}u(c.arg)}(o,a,n,i)}))}return n=n?n.then(i,i):i()}}function b(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,b(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var n=s(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,d;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function q(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:j}}function j(){return{value:void 0,done:!0}}return l.prototype=p,u(v,"constructor",p),u(p,"constructor",l),l.displayName=u(p,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,u(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},g(w.prototype),u(w.prototype,a,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(c(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},g(v),u(v,i,"Generator"),u(v,o,(function(){return this})),u(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=q,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,d):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:q(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),d}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(u={exports:{}}),u.exports),s={ROUTE:Symbol()},d=function(t){void 0===t&&(t={});var r=e.createEffect(function(){var e=n(c.mark((function e(t){return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{params:t.params||{},query:t.query||{}});case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),{name:"navigateFx",sid:"-apj8ex"}),o=e.attach({and:{effect:r,mapParams:function(e){return{params:e||{},query:{}}}},or:{name:"openFx",sid:"-ju5g7s"}}),a=e.createStore(!1,{name:"$isOpened",sid:"7ntohw"}),i=e.createStore({},{name:"$params",sid:"1blfp4"}),u=e.createStore({},{name:"$query",sid:"rvelj"}),d=e.createEvent({name:"opened",sid:"-f8s17u"}),f=e.createEvent({name:"updated",sid:"slzlyp"}),l=e.createEvent({name:"left",sid:"yy6ys3"}),p=e.createEvent({name:"closed",sid:"-say4ff"});return a.on(d,(function(){return!0})).on(l,(function(){return!1})),i.on(d,(function(e,t){return t.params})).on(f,(function(e,t){return t.params})),u.on(d,(function(e,t){return t.query})).on(f,(function(e,t){return t.query})),e.split({and:[{source:r.doneData,match:a.map((function(e){return e?"updated":"opened"})),cases:{opened:d,updated:f}}],or:{sid:"-x6h86m"}}),e.sample({and:[{clock:p,target:l}],or:{sid:"-wqj6z5"}}),t.filter&&e.split({and:[{source:e.sample({and:[{clock:t.filter}],or:{name:"source",sid:"wyzurx"}}),match:function(e){return e?"true":"false"},cases:{true:d,false:p}}],or:{sid:"-wn8fbj"}}),{$isOpened:a,$params:i,$query:u,opened:d,updated:f,closed:p,left:l,navigate:r,open:o,kind:s.ROUTE,settings:{derived:Boolean(t.filter)}}};function f(e){var r=e.params,n=e.query;return t.compile(e.pathCreator)(r)+(Object.keys(n).length?"?"+new URLSearchParams(n):"")}function l(e){var r=e.actualPath,n=t.match(e.pathCreator)(new URL("http://_"+r).pathname);return n?{matches:!0,params:n.params}:{matches:!1}}var p=function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r in e)if(""+e[r]!=""+t[r])return!1;return!0},h=e.createEffect((function(e){if(!e.history)throw new Error("[Routing] No history provided");return e.history[e.method](e.path,{}),e}),{name:"historyPushFx",sid:"t43sn8"}),m=function(e){return"object"==typeof e&&null!==e&&"kind"in e&&e.kind===s.ROUTE},y=function(t){return e.is.store(t,{sid:"-v906zu"})?t:e.createStore(t,{sid:"-v904rr"})};exports.Kind=s,exports.buildPath=f,exports.chainRoute=function(t){var r=function(t){if(m(t))return{route:t,chainedRoute:e.withFactory({sid:"jogy9l",fn:function(){return d()},name:"chainedRoute",method:"createRoute"}),beforeOpen:e.createEvent({name:"beforeOpen",sid:"8mpttm"}),openOn:[t.opened,t.closed],cancelOn:[e.createEvent({name:"cancelOn",sid:"ahjdm4"})]};var r=t;if(!("enterOn"in r)&&e.is.effect(r.beforeOpen,{sid:"fx5yhy"}))return{route:r.route,chainedRoute:r.chainedRoute||e.withFactory({sid:"fyulbq",fn:function(){return d()},name:"chainedRoute",method:"createRoute"}),beforeOpen:r.beforeOpen,openOn:r.beforeOpen.doneData,cancelOn:r.beforeOpen.failData};var n=t;return{route:n.route,chainedRoute:n.chainedRoute||e.withFactory({sid:"u6793u",fn:function(){return d()},name:"chainedRoute",method:"createRoute"}),beforeOpen:n.beforeOpen,openOn:e.sample({and:[{clock:n.openOn}],or:{name:"openOn",sid:"-mm7rdb"}}),cancelOn:e.sample({and:[{clock:n.cancelOn||e.createEvent({name:"clock",sid:"y2etk0"})}],or:{name:"cancelOn",sid:"-vntqxj"}})}}(t),n=r.route,o=r.chainedRoute,a=r.beforeOpen,i=r.openOn,u=r.cancelOn,c=e.createStore({},{name:"$params",sid:"ru233x"}),s=e.createStore({},{name:"$query",sid:"2tnaew"}),f=e.combine({and:[e.combine({and:[[n.$params,n.$query]],or:{name:"and",sid:"-t8sbqu"}}),e.combine({and:[[c,s]],or:{name:"and",sid:"-t8s8s2"}}),function(e,t){return e[0]===t[0]&&e[1]===t[1]}],or:{name:"$hasSameParams",sid:"-w0fyuc"}}),l=e.sample({and:[{clock:[n.opened,n.updated]}],or:{name:"routeOpened",sid:"nobe5z"}});e.sample({and:[{clock:l,target:a}],or:{sid:"n0i9a7"}}),c.on(l,(function(e,t){return t.params})),s.on(l,(function(e,t){return t.query}));var p=e.guard({and:[{clock:i,source:{params:c,query:s},filter:f}],or:{name:"chainedRouteResolved",sid:"-qurk3a"}});e.sample({and:[{clock:p,target:o.navigate}],or:{sid:"ningv4"}});var h=e.merge([n.closed,u],{name:"aborted",sid:"-qm6c6a"});return c.reset(h),s.reset(h),e.sample({and:[{clock:h,target:o.closed}],or:{sid:"nz5any"}}),o},exports.createHistoryRouter=function(t){var r=function(e){for(var t,r=[],n=function(){var e=t.value;Array.isArray(e.route)?r.push.apply(r,e.route.map((function(t){return o({},e,{route:t})}))):r.push(e)},a=i(e);!(t=a()).done;)n();for(var u=[],c=[],s=0,d=r;s<d.length;s++){var f=d[s];f.route.settings.derived?u.push(f):c.push(f)}if(u.length)for(var l,p=i(u);!(l=p()).done;)console.error("createHistoryRouter: "+l.value.path+" uses derived route. This won't work");return c}(t.routes),a=e.createEvent({name:"setHistory",sid:"eurzux"}),u=e.createEvent({name:"routeNotFound",sid:"-6751fl"}),s=e.createStore({},{name:"$query",sid:"-pfijo2"}),d=e.createStore("",{name:"$path",sid:"-cl0ev"}),m=e.createStore([],{and:{serialize:"ignore"},name:"$activeRoutes",sid:"y0nau8"}),y=e.createStore(!1,{name:"$isFirstCheckPassed",sid:"5sp5y8"}),v=e.createStore(null,{and:{serialize:"ignore"},name:"$history",sid:"kgmg27"});v.on(a,(function(e,t){return t}));var g=e.attach({and:{source:{history:v},effect:h,mapParams:function(e,t){return o({history:t.history},e)}},or:{name:"pushFx",sid:"-sjs4qj"}}),w=e.createEffect((function(e){var t=e.params,r=e.query;return{path:f({pathCreator:e.route.path,params:t,query:r}),params:t,query:r,method:"push"}}),{name:"openedFx",sid:"jnt08t"}),b=e.createEffect((function(e){for(var t,n=e.path,o=e.query,a=[],u=[],c=i(r);!(t=c()).done;){var s=t.value,d=l({pathCreator:s.path,actualPath:n});(d.matches?a:u).push({route:s,params:d.params,query:o})}return{opened:a,closed:u}}),{name:"recalculateFx",sid:"k1edpy"});d.on(b.done,(function(e,t){return t.params.path})),s.on(b.done,(function(e,t){return t.params.query})),m.on(b.doneData,(function(e,t){return t.opened.map((function(e){return e.route.route}))})),e.sample({and:[{clock:w.doneData,target:g}],or:{sid:"-jyj318"}}),e.guard({and:[{clock:b.doneData,filter:function(e){return 0===e.opened.length},target:u}],or:{sid:"-ji198e"}});for(var x,k=b.doneData.map((function(e){return e.opened})),O=b.doneData.map((function(e){return e.closed})),q=function(){var t=x.value,r=e.createStore(!1,{name:"$isOpenedManually",sid:"-uocw5s"}),n=t.route.navigate.done;e.sample({and:[{clock:n,fn:function(e){var r=e.result;return{route:t,params:r.params,query:r.query}},target:w}],or:{sid:"-j0fu5e"}});var o=function(e){return e.find((function(e){return e.route===t}))},a={opened:e.guard({and:[{clock:k.filterMap(o),filter:t.route.$isOpened.map((function(e){return!e}))}],or:{name:"opened",sid:"iad7v1"}}),updated:e.guard({and:[{clock:k.filterMap(o),filter:t.route.$isOpened}],or:{name:"updated",sid:"-5s2prv"}}),closed:e.guard({and:[{clock:O.filterMap(o),filter:t.route.$isOpened}],or:{name:"closed",sid:"uqp05v"}})};r.on(n,(function(){return!0}));var i=e.guard({and:[{clock:a.updated,filter:r.map((function(e){return!e}))}],or:{name:"updated",sid:"9uetb5"}});e.sample({and:[{source:e.restore(i,null,{name:"source",sid:"g68hcw"}),clock:e.guard({and:[{clock:i,source:[t.route.$params,t.route.$query],filter:function(e,t){var r=e[1];return!p(e[0],t.params)||!p(r,t.query)}}],or:{name:"clock",sid:"-uq3i25"}}),fn:function(e){return e},target:t.route.updated}],or:{sid:"-hjnl6q"}}),e.guard({and:[{clock:a.opened,filter:r.map((function(e){return!e})),target:t.route.opened}],or:{sid:"-gov3yi"}}),e.sample({and:[{clock:a.closed,target:t.route.closed}],or:{sid:"-glkcec"}}),r.reset(e.sample({and:[{clock:k}],or:{sid:"-51k8xf"}}))},j=i(r);!(x=j()).done;)q();var E,R=e.attach({and:{source:{history:v},effect:(E=n(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=[(r=t.history).location.pathname,Object.fromEntries(new URLSearchParams(r.location.search))],e.abrupt("return",{path:n[0],query:n[1]});case 3:case"end":return e.stop()}}),e)}))),function(e){return E.apply(this,arguments)})},or:{name:"recheckFx",sid:"xqw44v"}});e.sample({and:[{source:R.doneData,target:b}],or:{sid:"-5aolek"}});var L,S=e.attach({and:{source:{history:v},effect:(L=n(c.mark((function t(r){var n,o;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=r.history,o=R;try{o=e.scopeBind(R)}catch(e){}return n.listen((function(){o()})),t.abrupt("return",!0);case 5:case"end":return t.stop()}}),t)}))),function(e){return L.apply(this,arguments)})},or:{name:"subscribeHistoryFx",sid:"-h89jdx"}});t.hydrate||e.sample({and:[{clock:S.doneData,target:R}],or:{sid:"-49udjx"}}),e.sample({and:[{clock:v,target:S}],or:{sid:"-3vjq7z"}}),y.on(b.doneData,(function(){return!0})).reset(v);var $=e.sample({and:[{clock:e.guard({and:[{clock:y,filter:Boolean}],or:{name:"clock",sid:"-v99ljg"}}),source:{activeRoutes:m,path:d,query:s}}],or:{name:"initialized",sid:"-qhq2dq"}});return{$path:d,$query:s,$activeRoutes:m,$history:v,setHistory:a,push:g,routes:r,initialized:$,routeNotFound:u}},exports.createRoute=d,exports.isRoute=m,exports.matchPath=l,exports.redirect=function(t){var r=t.clock?e.sample({and:[{clock:t.clock}],or:{name:"clock",sid:"-nsh945"}}):e.createEvent({name:"clock",sid:"-nbfmpy"}),n=y(t.params||{}),o=y(t.query||{});return e.sample({and:[{clock:r,source:{params:n,query:o},fn:function(e,t){var r=e.params,n=e.query;return{params:"function"==typeof r?r(t):r,query:"function"==typeof n?n(t):n}},target:t.route.navigate}],or:{sid:"-8kqnzy"}}),r}; | ||
//# sourceMappingURL=atomic-router.cjs.production.min.js.map |
@@ -860,3 +860,7 @@ import { createEffect, attach, createStore, createEvent, split, sample, guard, restore, scopeBind, is, combine, merge, withFactory } from 'effector'; | ||
var createRoute = function createRoute() { | ||
var createRoute = function createRoute(params) { | ||
if (params === void 0) { | ||
params = {}; | ||
} | ||
var navigateFx = createEffect( /*#__PURE__*/function () { | ||
@@ -978,2 +982,31 @@ var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(_ref) { | ||
}); | ||
if (params.filter) { | ||
var filter = params.filter; | ||
split({ | ||
and: [{ | ||
source: sample({ | ||
and: [{ | ||
clock: filter | ||
}], | ||
or: { | ||
name: "source", | ||
sid: "wyzurx" | ||
} | ||
}), | ||
// @ts-expect-error | ||
match: function match(filter) { | ||
return filter ? 'true' : 'false'; | ||
}, | ||
cases: { | ||
"true": opened, | ||
"false": closed | ||
} | ||
}], | ||
or: { | ||
sid: "-wn8fbj" | ||
} | ||
}); | ||
} | ||
var instance = { | ||
@@ -989,3 +1022,7 @@ $isOpened: $isOpened, | ||
open: openFx, | ||
kind: Kind.ROUTE | ||
kind: Kind.ROUTE, | ||
// @ts-expect-error Internal stuff | ||
settings: { | ||
derived: Boolean(params.filter) | ||
} | ||
}; | ||
@@ -1025,3 +1062,3 @@ return instance; | ||
var equals = function equals(a, b) { | ||
var paramsEqual = function paramsEqual(a, b) { | ||
if (Object.keys(a).length !== Object.keys(b).length) { | ||
@@ -1032,3 +1069,7 @@ return false; | ||
for (var k in a) { | ||
if (a[k] !== b[k]) { | ||
// NOTE: Parsed URI always returns string parameters | ||
// so we force string comparison here | ||
// in order to avoid extra updates | ||
// whenever user passes numeric params | ||
if ("" + a[k] !== "" + b[k]) { | ||
return false; | ||
@@ -1075,3 +1116,24 @@ } | ||
return next; | ||
var derivedRoutes = []; | ||
var nonDerivedRoutes = []; | ||
for (var _i = 0, _next = next; _i < _next.length; _i++) { | ||
var routeObj = _next[_i]; | ||
// @ts-expect-error Internals | ||
if (routeObj.route.settings.derived) { | ||
derivedRoutes.push(routeObj); | ||
} else { | ||
nonDerivedRoutes.push(routeObj); | ||
} | ||
} | ||
if (derivedRoutes.length) { | ||
for (var _iterator2 = _createForOfIteratorHelperLoose(derivedRoutes), _step2; !(_step2 = _iterator2()).done;) { | ||
var derivedRoute = _step2.value; | ||
console.error("createHistoryRouter: " + derivedRoute.path + " uses derived route. This won't work"); | ||
} | ||
} | ||
return nonDerivedRoutes; | ||
}; | ||
@@ -1083,15 +1145,15 @@ | ||
name: "setHistory", | ||
sid: "-clu30d" | ||
sid: "eurzux" | ||
}); | ||
var routeNotFound = createEvent({ | ||
name: "routeNotFound", | ||
sid: "-xnr4av" | ||
sid: "-6751fl" | ||
}); | ||
var $query = createStore({}, { | ||
name: "$query", | ||
sid: "i4zffs" | ||
sid: "-pfijo2" | ||
}); | ||
var $path = createStore('', { | ||
name: "$path", | ||
sid: "-rt73a5" | ||
sid: "-cl0ev" | ||
}); | ||
@@ -1103,7 +1165,7 @@ var $activeRoutes = createStore([], { | ||
name: "$activeRoutes", | ||
sid: "ghza91" | ||
sid: "y0nau8" | ||
}); | ||
var $isFirstCheckPassed = createStore(false, { | ||
name: "$isFirstCheckPassed", | ||
sid: "-bpyumz" | ||
sid: "5sp5y8" | ||
}); // @ts-expect-error | ||
@@ -1116,3 +1178,3 @@ | ||
name: "$history", | ||
sid: "-6zzmt3" | ||
sid: "kgmg27" | ||
}); | ||
@@ -1138,3 +1200,3 @@ $history.on(setHistory, function (_, nextHistory) { | ||
name: "pushFx", | ||
sid: "oynwne" | ||
sid: "-sjs4qj" | ||
} | ||
@@ -1160,3 +1222,3 @@ }); // Triggered whenever some route.navigate.doneData is triggered | ||
name: "openedFx", | ||
sid: "254znm" | ||
sid: "jnt08t" | ||
}); // Recalculate opened/closed routes | ||
@@ -1170,4 +1232,4 @@ | ||
for (var _iterator2 = _createForOfIteratorHelperLoose(remappedRoutes), _step2; !(_step2 = _iterator2()).done;) { | ||
var route = _step2.value; | ||
for (var _iterator3 = _createForOfIteratorHelperLoose(remappedRoutes), _step3; !(_step3 = _iterator3()).done;) { | ||
var route = _step3.value; | ||
@@ -1194,3 +1256,3 @@ var _matchPath = matchPath({ | ||
name: "recalculateFx", | ||
sid: "-7f7p5c" | ||
sid: "k1edpy" | ||
}); | ||
@@ -1217,3 +1279,3 @@ $path.on(recalculateFx.done, function (_prev, _ref4) { | ||
or: { | ||
sid: "7dw78t" | ||
sid: "-jyj318" | ||
} | ||
@@ -1236,3 +1298,3 @@ }); // sample({ | ||
or: { | ||
sid: "7ue11n" | ||
sid: "-ji198e" | ||
} | ||
@@ -1250,6 +1312,6 @@ }); | ||
var _loop2 = function _loop2() { | ||
var routeObj = _step3.value; | ||
var routeObj = _step4.value; | ||
var $isOpenedManually = createStore(false, { | ||
name: "$isOpenedManually", | ||
sid: "cw52y2" | ||
sid: "-uocw5s" | ||
}); // Watch for route.navigate.doneData to build new path and push | ||
@@ -1274,3 +1336,3 @@ | ||
or: { | ||
sid: "-jwbwkc" | ||
sid: "-j0fu5e" | ||
} | ||
@@ -1295,3 +1357,3 @@ }); | ||
name: "opened", | ||
sid: "rp79u" | ||
sid: "iad7v1" | ||
} | ||
@@ -1306,3 +1368,3 @@ }), | ||
name: "updated", | ||
sid: "-x8osn5" | ||
sid: "-5s2prv" | ||
} | ||
@@ -1317,3 +1379,3 @@ }), | ||
name: "closed", | ||
sid: "d80zko" | ||
sid: "uqp05v" | ||
} | ||
@@ -1336,3 +1398,3 @@ }) | ||
name: "updated", | ||
sid: "-hm79k5" | ||
sid: "9uetb5" | ||
} | ||
@@ -1344,3 +1406,3 @@ }); | ||
name: "source", | ||
sid: "-1cfj8b" | ||
sid: "g68hcw" | ||
}), | ||
@@ -1355,3 +1417,3 @@ clock: guard({ | ||
query = _ref14[1]; | ||
return !equals(params, next.params) || !equals(query, next.query); | ||
return !paramsEqual(params, next.params) || !paramsEqual(query, next.query); | ||
} | ||
@@ -1361,3 +1423,3 @@ }], | ||
name: "clock", | ||
sid: "cueh1p" | ||
sid: "-uq3i25" | ||
} | ||
@@ -1371,3 +1433,3 @@ }), | ||
or: { | ||
sid: "-i3zz53" | ||
sid: "-hjnl6q" | ||
} | ||
@@ -1385,3 +1447,3 @@ }); // Trigger .opened() for the routes marked as "opened" | ||
or: { | ||
sid: "-hkr6dg" | ||
sid: "-gov3yi" | ||
} | ||
@@ -1396,3 +1458,3 @@ }); // Trigger .closed() for the routes marked as "closed" | ||
or: { | ||
sid: "-h5wqcp" | ||
sid: "-glkcec" | ||
} | ||
@@ -1406,3 +1468,3 @@ }); // Reset $isOpenedManually | ||
or: { | ||
sid: "-wi6bsp" | ||
sid: "-51k8xf" | ||
} | ||
@@ -1412,3 +1474,3 @@ })); | ||
for (var _iterator3 = _createForOfIteratorHelperLoose(remappedRoutes), _step3; !(_step3 = _iterator3()).done;) { | ||
for (var _iterator4 = _createForOfIteratorHelperLoose(remappedRoutes), _step4; !(_step4 = _iterator4()).done;) { | ||
_loop2(); | ||
@@ -1457,3 +1519,3 @@ } // Takes current path from history and triggers recalculate | ||
name: "recheckFx", | ||
sid: "g883jo" | ||
sid: "xqw44v" | ||
} | ||
@@ -1467,3 +1529,3 @@ }); | ||
or: { | ||
sid: "-g4iq3l" | ||
sid: "-5aolek" | ||
} | ||
@@ -1514,3 +1576,3 @@ }); // Triggered whenever history instance is set | ||
name: "subscribeHistoryFx", | ||
sid: "c6ar7v" | ||
sid: "-h89jdx" | ||
} | ||
@@ -1527,3 +1589,3 @@ }); // If `hydrate` flag is set, | ||
or: { | ||
sid: "-4u6ria" | ||
sid: "-49udjx" | ||
} | ||
@@ -1539,3 +1601,3 @@ }); | ||
or: { | ||
sid: "-4rfsmx" | ||
sid: "-3vjq7z" | ||
} | ||
@@ -1555,3 +1617,3 @@ }); | ||
name: "clock", | ||
sid: "cb8dke" | ||
sid: "-v99ljg" | ||
} | ||
@@ -1567,3 +1629,3 @@ }), | ||
name: "initialized", | ||
sid: "r0pz07" | ||
sid: "-qhq2dq" | ||
} | ||
@@ -1570,0 +1632,0 @@ }); |
@@ -0,2 +1,7 @@ | ||
import { Store } from 'effector'; | ||
import { RouteInstance } from './types'; | ||
export declare const createRoute: <Params extends Record<string, any>>() => RouteInstance<Params>; | ||
declare type createRouteParams = { | ||
filter?: Store<boolean>; | ||
}; | ||
export declare const createRoute: <Params extends Record<string, any>>(params?: createRouteParams) => RouteInstance<Params>; | ||
export {}; |
@@ -1,1 +0,1 @@ | ||
export declare const equals: (a: Record<string, any>, b: Record<string, any>) => boolean; | ||
export declare const paramsEqual: (a: Record<string, any>, b: Record<string, any>) => boolean; |
{ | ||
"version": "0.5.0-dev.11", | ||
"version": "0.5.0-dev.12", | ||
"license": "MIT", | ||
@@ -4,0 +4,0 @@ "main": "dist/index.js", |
@@ -14,3 +14,3 @@ import { buildPath, matchPath } from './utils/build-path'; | ||
} from 'effector'; | ||
import { equals } from './utils/equals'; | ||
import { paramsEqual } from './utils/equals'; | ||
@@ -46,3 +46,3 @@ type RouteObject<Params extends RouteParams> = { | ||
const remapRouteObjects = (objects: UnmappedRouteObject<any>[]) => { | ||
const next = [] as RouteObject<any>[]; | ||
const next: RouteObject<any>[] = []; | ||
for (const routeObj of objects) { | ||
@@ -56,3 +56,20 @@ if (Array.isArray(routeObj.route)) { | ||
} | ||
return next; | ||
const derivedRoutes: RouteObject<any>[] = []; | ||
const nonDerivedRoutes: RouteObject<any>[] = []; | ||
for (const routeObj of next) { | ||
// @ts-expect-error Internals | ||
if (routeObj.route.settings.derived) { | ||
derivedRoutes.push(routeObj); | ||
} else { | ||
nonDerivedRoutes.push(routeObj); | ||
} | ||
} | ||
if (derivedRoutes.length) { | ||
for (const derivedRoute of derivedRoutes) { | ||
console.error( | ||
`createHistoryRouter: ${derivedRoute.path} uses derived route. This won't work` | ||
); | ||
} | ||
} | ||
return nonDerivedRoutes; | ||
}; | ||
@@ -239,3 +256,3 @@ | ||
filter: ([params, query], next) => { | ||
return !equals(params, next.params) || !equals(query, next.query); | ||
return !paramsEqual(params, next.params) || !paramsEqual(query, next.query); | ||
}, | ||
@@ -242,0 +259,0 @@ }), |
@@ -8,2 +8,3 @@ import { | ||
split, | ||
Store, | ||
} from 'effector'; | ||
@@ -18,3 +19,9 @@ import { | ||
export const createRoute = <Params extends RouteParams>() => { | ||
type createRouteParams = { | ||
filter?: Store<boolean>; | ||
}; | ||
export const createRoute = <Params extends RouteParams>( | ||
params: createRouteParams = {} | ||
) => { | ||
const navigateFx = createEffect( | ||
@@ -71,2 +78,15 @@ async ({ params, query }: RouteParamsAndQuery<Params>) => { | ||
if (params.filter) { | ||
const filter = params.filter; | ||
split({ | ||
source: sample({ clock: filter }), | ||
// @ts-expect-error | ||
match: filter => (filter ? 'true' : 'false'), | ||
cases: { | ||
true: opened, | ||
false: closed, | ||
}, | ||
}); | ||
} | ||
const instance: RouteInstance<Params> = { | ||
@@ -83,2 +103,6 @@ $isOpened, | ||
kind: Kind.ROUTE, | ||
// @ts-expect-error Internal stuff | ||
settings: { | ||
derived: Boolean(params.filter), | ||
}, | ||
}; | ||
@@ -85,0 +109,0 @@ |
@@ -1,2 +0,2 @@ | ||
export const equals = (a: Record<string, any>, b: Record<string, any>) => { | ||
export const paramsEqual = (a: Record<string, any>, b: Record<string, any>) => { | ||
if (Object.keys(a).length !== Object.keys(b).length) { | ||
@@ -6,3 +6,7 @@ return false; | ||
for (const k in a) { | ||
if (a[k] !== b[k]) { | ||
// NOTE: Parsed URI always returns string parameters | ||
// so we force string comparison here | ||
// in order to avoid extra updates | ||
// whenever user passes numeric params | ||
if (`${a[k]}` !== `${b[k]}`) { | ||
return false; | ||
@@ -9,0 +13,0 @@ } |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
388436
4196