effector
Version:
Business logic with ease
3 lines (2 loc) • 33.4 kB
JavaScript
function e(e,r){for(var n in e)r(e[n],n)}function r(e,r){e.forEach(r)}function n(e,r,n){if(!e)throw Error((n?n+': ':'')+r)}function t(e,r){var n=j(e),t=n.meta||{};W(e)||(t.isRegion=1),ne={id:n.id,parent:ne,value:e,template:t.template||ae(),sidRoot:t.sidRoot||ne&&ne.sidRoot,meta:t};try{return r()}finally{te('region'),ne=I(ne)}}function a(e){var n=void 0===e?{}:e,t=n.node,a=void 0===t?[]:t,i=n.parent,o=n.child,u=void 0===o?n.to||n.target:o,s=n.scope,f=void 0===s?{}:s,c=n.meta,l=void 0===c?{}:c,d=n.family,p=void 0===d?{type:'regular'}:d,v=n.regional,m=ue(void 0===i?n.from||n.source:i),g=ue(p.links),h=ue(p.owners),y=[];r(a,(function(e){return e&&J(y,e)}));var b={id:ee(),seq:y,next:ue(u),meta:l,scope:f,family:{triggers:m.length,type:p.type||"crosslink",links:g,owners:h}};return r(g,(function(e){return J(z(e),b)})),r(h,(function(e){return J(N(e),b)})),r(m,(function(e){return J(e.next,b)})),v&&ne&&oe(C(ne),[b]),b}function i(e,n,t){var a,i=Ue,o=null,u=De;if(e.target&&(n=e.params,t=e.defer,a=e.meta,i='page'in e?e.page:i,e.stack&&(o=e.stack),u=_(e)||u,e=e.target),u&&De&&u!==De&&(De=null),Array.isArray(e))for(var s=0;s<e.length;s++)qe('pure',i,j(e[s]),o,n[s],u,a);else qe('pure',i,j(e),o,n,u,a);if(!t||Be){var f,c,l,d,p,v,m={isRoot:Be,currentPage:Ue,scope:De,isWatch:Le,isPure:We};Be=0;for(var g=function(){var e=d.idx,n=d.stack,t=d.type;l=n.node,Ue=p=n.page,De=_(n),p?v=p.reg:De&&(v=De.reg);var a=!!p,i=!!De,o={fail:0,scope:l.scope};f=c=0;for(var u=e;u<l.seq.length&&!f;u++){var s=l.seq[u];if(s.order){var g=s.order,h=g.priority,y=g.barrierID,b=y?p?p.fullID+"_"+y:y:0;if(u!==e||t!==h)return y?Ve.has(b)||(Ve.add(b),Pe(u,n,h,y)):Pe(u,n,h,0),1;y&&Ve.delete(b)}switch(s.type){case'mov':var k=s.data,w=void 0;switch(k.from){case'stack':w=C(n);break;case'a':case'b':w=n[k.from];break;case'value':w=k.store;break;case'store':if(v&&!v[k.store.id])if(a){var x=$e(p,k.store.id);n.page=p=x,x?v=x.reg:i?(Qe(De,k.store,0,1,k.softRead),v=De.reg):v=void 0}else i&&Qe(De,k.store,0,1,k.softRead);w=ze(v&&v[k.store.id]||k.store)}switch(k.to){case'stack':n.value=w;break;case'a':case'b':n[k.to]=w;break;case'store':Je(p,De,k.target,0).current=w}break;case'compute':var S=s.data;if(S.fn){Le='watch'===l.meta.op,We=S.pure;var M=S.safe?(0,S.fn)(C(n),o.scope,n):Xe(o,S.fn,n);S.filter?c=!M:n.value=M,Le=m.isWatch,We=m.isPure}}f=o.fail||c}if(Fe&&Fe(n,o),!f){var A=C(n),O=_(n);if(r(l.next,(function(e){qe('child',p,e,n,A,O)})),O){l.meta.needFxCounter&&qe('child',p,O.fxCount,n,A,O),l.meta.storeChange&&qe('child',p,O.storeChange,n,A,O),l.meta.warnSerialize&&qe('child',p,O.warnSerializeNode,n,A,O);var j=O.additionalLinks[l.id];j&&r(j,(function(e){qe('child',p,e,n,A,O)}))}}};d=Ee();)g();Be=m.isRoot,Ue=m.currentPage,De=_(m)}}function o(r,n){void 0===n&&(n='combine');var t=n+'(',a='',i=0;return e(r,(function(e){i<25&&(null!=e&&(t+=a,t+=q(e)?E(e).fullName:e.toString()),i+=1,a=', ')})),t+')'}function u(e,r){var n,t,a=e;if(r){var i=E(r);0===e.length?(n=i.path,t=i.fullName):(n=i.path.concat([e]),t=0===i.fullName.length?e:i.fullName+'/'+e)}else n=0===e.length?[]:[e],t=e;return{shortName:a,fullName:t,path:n}}function s(e,r){if(!r)return e;if(!r.name&&!r.named&&!r.loc)return e;var n="["+e+"]",t=r.named||r.name;t&&(n+=" unit '"+t+"'");var a=r.loc;return!t&&a&&(n+=" ("+a.file+":"+a.line+":"+a.column+")"),n}function f(e,r){var n=r?e:e[0];le(n);var t=n.or,a=n.and;if(a){var i=r?a:a[0];if(se(i)&&'and'in i){var o=f(a,r);e=o[0],t=Object.assign({},t,o[1])}else e=a}return[e,t]}function c(e){var r=function(){return e()};return r.unsubscribe=function(){return e()},r}function l(e){var r=ae();if(r){for(var n=r.handlers[e],t=arguments.length,a=new Array(t>1?t-1:0),i=1;i<t;i++)a[i-1]=arguments[i];if(n)return n.apply(void 0,[r].concat(a))}}function d(e,r,n,t){var a=Ue,i=null;if(r)for(i=Ue;i&&i.template!==r;)i=I(i);Ge(i);var o=e.create(n,t);return Ge(a),o}function p(e,r){var t=Ye({or:r,and:'string'==typeof e?{name:e}:e}),o=s('event',t),u=function(e){n(!D(u,'derived'),'call of derived event is not supported, use createEvent instead',o),n(!We,'unit call from pure function is not supported, use operators like sample instead',o);for(var r=arguments.length,t=new Array(r>1?r-1:0),a=1;a<r;a++)t[a-1]=arguments[a];return Ue?d(u,f,e,t):u.create(e,t)},f=ae(),c=Object.assign(u,{graphite:a({meta:lr(t.actualOp||"event",u,t,cr(p)),regional:1}),create:function(e){return i({target:u,params:e,scope:De}),e},watch:function(e){return or(u,e)},map:function(e){return dr(u,O,e,[Ae()])},filter:function(e){return dr(u,'filter',e.fn?e:e.fn,[Ae(he,1)])},filterMap:function(e){return dr(u,'filterMap',e,[Ae(),Se((function(e){return!ce(e)}),1)])},prepend:function(e){n(u.targetable,'.prepend of derived event is not supported, call source event instead',o);var r=p('* \u2192 '+u.shortName,{parent:I(u)});return l('eventPrepend',j(r)),ir(r,u,[Ae()],'prepend',e),sr(u,r),r}});return null!=t&&t.domain&&t.domain.hooks.event(c),F(c,'id',c.graphite.id),te(c.graphite),c}function v(e,t,a,i,o){return pe(a,o+" "+t,'first argument'),n(fe(i),'second argument should be a function',o),K(!D(e,'derived'),t+" in derived store",t+" in store created via createStore",o),r(Array.isArray(a)?a:[a],(function(r){e.off(r),vr(r,e,'on',ge,i)})),e}function m(e,t){var o=Ye(t),u=je(e),f=s('store',o),c=p({named:'updates',derived:1});l('storeBase',u);var d=u.id,g='skipVoid'in o,h=g&&!o.skipVoid;K(!(g&&o.skipVoid),'{skipVoid: true}','updateFilter',f);var y={updates:c,defaultState:e,stateRef:u,getState:function(){var e,r=u;if(Ue){for(var n=Ue;n&&!n.reg[d];)n=I(n);n&&(e=n)}return!e&&De&&(Qe(De,u,1),e=De),e&&(r=e.reg[d]),ze(r)},setState:function(e){return i({target:y,params:e,defer:1,scope:De})},reset:function(){n(y.targetable,'.reset of derived store is not supported',f);for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return r(t,(function(e){return v(y,'.reset',e,(function(){return y.defaultState}),f)})),y},on:function(e,r){return n(y.targetable,'.on of derived store is not supported',f),v(y,'.on',e,r,f)},off:function(e){var r=j(e).id,n=j(y).family.links.find((function(e){return e.meta.onTrigger===r}));return n&&tr(n),y},map:function(e,r){var n,t;se(e)&&(n=e,e=e.fn);var a=y.getState(),i=ce(a);ae()?t=null:(!i||i&&h)&&(t=e(a));var o=m(t,Object.assign({name:y.shortName+" \u2192 *",derived:1},r,{and:n})),s=vr(y,o,O,he,e);return Ne(R(o),{type:O,fn:e,from:u}),R(o).noInit=1,l('storeMap',u,s),o},watch:function(e,r){if(K(!r,'watch second argument','sample',f),!r||!q(e)){var t=or(y,e);return l('storeWatch',u,e)||e(y.getState()),t}return n(fe(r),'second argument should be a function',f),e.watch((function(e){return r(y.getState(),e)}))}},b=lr("store",y,o,cr(m)),k=y.defaultConfig.updateFilter;y.graphite=a({scope:{state:u,fn:k},node:[Se((function(e,r,n){return n.scope&&!n.scope.reg[u.id]&&(n.b=1),e})),Me(u),Se((function(e,r,n){var t=n.a,a=n.b,i=ce(e);return i&&!g&&Q(""+pr,y.graphite),(i&&h||!i)&&(e!==t||a)}),1),k&&Ae(me,1),ke({from:"stack",target:u})],child:c,meta:Object.assign({},b,{defaultState:e,stateRef:u}),regional:1}),F(y,'id',y.graphite.id),F(y,'rootStateRefId',d);var w=D(y,'serialize'),x=D(y,'derived'),S='ignore'===w,M=D(y,'sid');M&&(F(y,'storeChange',1),u.sid=M),M||S||x||F(y,'warnSerialize',1);var A=ce(e);return n(x||!A||A&&h,pr,f),x&&A&&!g&&console.error(f+": "+pr),oe(y,[c]),null!=o&&o.domain&&o.domain.hooks.store(y),x||(y.reinit=p({named:'reinit'}),y.reset(y.reinit)),u.meta=y.graphite.meta,te(y.graphite),y}function g(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];var a,i,o,u=f(r);r=u[0];var c,l,d,p=s('combine',o=u[1]),v=r[r.length-1],m=r.length>1&&!T(v)&&se(v),h=m&&v,y=m?r[r.length-2]:v;if(fe(y)?(i=r.slice(0,m?-2:-1),a=y):i=r,1===i.length){var b=i[0];T(b)||(c=b,l=1)}if(!l&&(c=i,a)){d=1;var k=a;a=function(e){return k.apply(void 0,e)}}return n(se(c),p+": shape should be an object"),mr(Array.isArray(c),!d,c,cr(g),o,a,h)}function h(){var e={};return e.req=new Promise((function(r,n){e.rs=r,e.rj=n})),e.req.catch((function(){})),e}function y(e,r){void 0===r&&(r={});var t=Ye(fe(e)?{handler:e}:e,r),o=s('effect',t),u=p(fe(e)?{handler:e}:e,Object.assign({},r,{actualOp:"effect"}));fr(u,cr(y));var f=j(u);F(f,'op',u.kind="effect"),u.use=function(e){return n(fe(e),'.use argument should be a function',o),b.scope.handler=e,u},u.use.getCurrent=function(){return b.scope.handler};var c=u.finally=p({named:'finally',derived:1}),l=u.done=c.filterMap({named:'done',fn:function(e){if('done'===e.status)return{params:e.params,result:e.result}}}),d=u.fail=c.filterMap({named:'fail',fn:function(e){if('fail'===e.status)return{params:e.params,error:e.error}}}),v=u.doneData=l.map({named:'doneData',fn:function(e){return e.result}}),g=u.failData=d.map({named:'failData',fn:function(e){return e.error}}),b=a({scope:{handler:u.defaultConfig.handler||function(){return n(0,"no handler used in "+u.compositeName.fullName)}},node:[Se((function(e,r,n){var t=r.handler,a=_(n);if(a){var i=a.handlers.unitMap.get(u)||a.handlers.sidMap[u.sid];i&&(t=i)}return e.handler=t,e}),0,1),Se((function(e,r,n){if(!r.runnerFn||r.runnerFn(e,null,n)){var t=e.params,a=e.req,i=e.handler,o=e.args,u=void 0===o?[t]:o,s=hr(t,a,1,c,n),f=hr(t,a,0,c,n),l=gr(i,f,u),d=l[1];l[0]&&(se(d)&&fe(d.then)?d.then(s,f):s(d))}}),0,1)],meta:{op:'fx',fx:'runner'},regional:1});f.scope.runner=b,J(f.seq,Se((function(e,r,n){var t=r.runner,a=I(n)?{params:e,req:{rs:function(){},rj:function(){}}}:e;return n.meta||(n.meta={fxID:re()}),i({target:t,params:a,defer:1,scope:_(n),meta:n.meta}),a.params}))),u.create=function(e){var r=h(),n={params:e,req:r};if(De&&!Le){var t=De;r.req.finally((function(){He(t)})).catch((function(){}))}return i({target:u,params:n,scope:De}),r.req};var k=u.inFlight=m(0,{serialize:'ignore',named:(D(u,'name')||u.graphite.id)+'.inFlight'}).on(u,(function(e){return e+1})).on(c,(function(e){return e-1})).map({fn:function(e){return e},named:'inFlight'});F(c,'needFxCounter','dec'),F(u,'needFxCounter',1);var w=u.pending=k.map({fn:function(e){return e>0},named:'pending'});return oe(u,[c,l,d,v,g,w,k]),null!=t&&t.domain&&t.domain.hooks.effect(u),u}function b(e,t){var a=0;return r(br,(function(r){r in e&&(n(null!=e[r],kr(t,r)),a=1)})),a}function k(){for(var e,r,n=arguments.length,t=new Array(n),a=0;a<n;a++)t[a]=arguments[a];var i,o,u=f(t),c=u[0],l=c[0],d=c[1],p=c[2],v=u[1],m=1,g=s('sample',v);return ce(d)&&se(l)&&b(l,g)&&(d=l.clock,p=l.fn,'batch'in l?m=l.batch:(K(!('greedy'in l),'greedy in sample','batch',g),m=!l.greedy),o=l.filter,e=l.target,r=l.name,i=l.sid,l=l.source),wr('sample',d,l,o,e,p,r,v,m,1,0,i)}function w(e,n,t){var a=[];(function e(i){G(a,i)||(J(a,i),"store"===D(i,'op')&&(t||D(i,'sid'))&&n(i,D(i,'sid')),r(i.next,e),r(z(i),e),r(N(i),e))})(e)}function x(e,t){var a=Array.isArray(e)?new Map(e):e,i=new Map,o=0;if(a instanceof Map){var u={};return r(a,(function(e,r){n(q(r),'Map key should be a unit'),t&&t(r,e),r.sid&&(r.sid in u&&(o=1),u[r.sid]=e),i.set(r,e)})),{sidMap:u,unitMap:i,hasSidDoubles:o}}return{sidMap:a,unitMap:i}}function S(e,r){return T(r)?[Oe.mov({store:r.stateRef,to:'stack'})].concat(e):e}Object.defineProperty(exports,'__esModule',{value:1});for(var M,A='undefined'!=typeof Symbol&&Symbol.observable||'@@observable',O='map',j=function(e){return e.graphite||e},z=function(e){return e.family.owners},N=function(e){return e.family.links},R=function(e){return e.stateRef},C=function(e){return e.value},I=function(e){return e.parent},_=function(e){return e.scope},D=function(e,r){return j(e).meta[r]},F=function(e,r,n){return j(e).meta[r]=n},E=function(e){return e.compositeName},q=function(e){return(fe(e)||se(e))&&'kind'in e},P=function(e){return function(r){return q(r)&&r.kind===e}},T=P("store"),V=P("event"),B=P("effect"),L=function(e){return q(e)&&!!e.targetable},W=P("domain"),U=P("scope"),H={__proto__:null,unit:q,store:T,event:V,effect:B,targetable:L,domain:W,scope:U,attached:function(e){return B(e)&&1==D(e,'attached')}},G=function(e,r){return e.includes(r)},$=function(e,r){var n=e.indexOf(r);-1!==n&&e.splice(n,1)},J=function(e,r){return e.push(r)},K=function(e,r,n,t){return!e&&console.error((t?t+': ':'')+r+" is deprecated"+(n?", use "+n+" instead":''))},Q=function(e,r){var n=D(r,'unitTrace'),t=D(r,'config'),a=null!=t&&t.loc?" at "+t.loc.file:null,i=null==t?void 0:t.name,o=e;i&&(o=i+": "+e),a&&(o=""+i+a+": "+e);var u=Error(o);n&&(u.stack=n),n||i||a||console.log("Add effector's Babel or SWC plugin to your config for more detailed debug information or \"import \"effector/enable_debug_traces\" to your code entry module to see full stack traces"),console.error(u)},X=function(){var e=0;return function(){return""+ ++e}},Y=X(),Z=X(),ee=X(),re=X(),ne=null,te=function(e){M&&M(e,ne)},ae=function(){return ne&&ne.template},ie=function(e){return e&&ne&&ne.sidRoot&&(e=ne.sidRoot+"|"+e),e},oe=function(e,n){var t=j(e);r(n,(function(e){var r=j(e);"domain"!==t.family.type&&(r.family.type="crosslink"),J(z(r),t),J(N(t),r)}))},ue=function(e){return void 0===e&&(e=[]),(Array.isArray(e)?e:[e]).flat().map(j)},se=function(e){return'object'==typeof e&&null!==e},fe=function(e){return'function'==typeof e},ce=function(e){return void 0===e},le=function(e){return n(se(e)||fe(e),'expect first argument be an object')},de=function(e,r,t,a){return n(!(!se(e)&&!fe(e)||!('family'in e)&&!('graphite'in e)),r+": expect "+t+" to be a unit (store, event or effect)"+a)},pe=function(e,n,t){Array.isArray(e)?r(e,(function(e,r){return de(e,n,r+" item of "+t,'')})):de(e,n,t,' or array of units')},ve=function(e,t,a){return void 0===a&&(a='target'),r(ue(t),(function(r){return n(!D(r,'derived'),e+": derived unit in \""+a+"\" is not supported, use createStore/createEvent instead\"")}))},me=function(e,r,n){return(0,r.fn)(e,n.a)},ge=function(e,r,n){return(0,r.fn)(n.a,e)},he=function(e,r){return(0,r.fn)(e)},ye=function(e,r,n,t){var a={id:Z(),type:e,data:r};return n&&(a.order={priority:n},t&&(a.order.barrierID=++be)),a},be=0,ke=function(e){var r=e.from,n=e.target,t=e.to;return ye('mov',{from:void 0===r?"store":r,store:e.store,to:void 0===t?n?"store":"stack":t,target:n},e.priority,e.batch)},we=function(e){var r=e.safe,n=e.filter,t=e.pure;return ye('compute',{fn:e.fn,safe:void 0===r?0:r,filter:void 0===n?0:n,pure:void 0===t?0:t},e.priority,e.batch)},xe=function(e){return we({fn:e.fn,priority:"effect"})},Se=function(e,r,n){return we({fn:e,safe:1,filter:r,priority:n&&"effect"})},Me=function(e,r,n){return ke({store:e,to:r?"stack":"a",priority:n&&"sampler",batch:1})},Ae=function(e,r){return void 0===e&&(e=he),we({fn:e,pure:1,filter:r})},Oe={mov:ke,compute:we,filter:function(e){return we({fn:e.fn,filter:1,pure:e.pure})},run:xe},je=function(e){return{id:Z(),current:e,initial:e}},ze=function(e){return e.current},Ne=function(e,r){e.before||(e.before=[]),J(e.before,r)},Re=null,Ce=function(e,r){return e?r?((e.v.type===r.v.type&&e.v.id>r.v.id||Te(e.v.type)>Te(r.v.type))&&(n=e,e=r,r=n),n=Ce(e.r,r),e.r=e.l,e.l=n,e):e:r;var n},Ie=[],_e=0;_e<6;)J(Ie,{first:null,last:null,size:0}),_e+=1;var De,Fe,Ee=function(){for(var e=0;e<6;e++){var r=Ie[e];if(r.size>0){if(3===e||4===e){r.size-=1;var n=Re.v;return Re=Ce(Re.l,Re.r),n}1===r.size&&(r.last=null);var t=r.first;return r.first=t.r,r.size-=1,t.v}}},qe=function(e,r,n,t,a,i,o){return Pe(0,{a:null,b:null,node:n,parent:t,value:a,page:r,scope:i,meta:o},e,0)},Pe=function(e,r,n,t){var a=Te(n),i=Ie[a],o={v:{idx:e,stack:r,type:n,id:t},l:null,r:null};3===a||4===a?Re=Ce(Re,o):(0===i.size?i.first=o:i.last.r=o,i.last=o),i.size+=1},Te=function(e){switch(e){case'child':return 0;case'pure':return 1;case'read':return 2;case'barrier':return 3;case'sampler':return 4;case'effect':return 5;default:return-1}},Ve=new Set,Be=1,Le=0,We=0,Ue=null,He=function(e){De=e},Ge=function(e){Ue=e},$e=function(e,r){if(e){for(;e&&!e.reg[r];)e=e.parent;if(e)return e}return null},Je=function(e,r,n,t){var a=$e(e,n.id);return a?a.reg[n.id]:r?(Qe(r,n,t),r.reg[n.id]):n},Ke=function(e){return e},Qe=function(e,n,t,a,i){var o=e.reg;if(!o[n.id]){var u=n.sid,s={id:n.id,current:n.initial,meta:n.meta};if(s.id in e.values.idMap)s.current=e.values.idMap[s.id];else if(u&&u in e.values.sidMap&&!(u in e.sidIdMap)){var f,c=null==n||null===(f=n.meta)||void 0===f?void 0:f.serialize;s.current=(e.fromSerialize&&'ignore'!==c&&(null==c?void 0:c.read)||Ke)(e.values.sidMap[u])}else if(n.before&&!i){var l=0,d=t||!n.noInit||a;r(n.before,(function(r){switch(r.type){case'map':var n=r.from;if((n||r.fn)&&(n&&Qe(e,n,t,a),d)){var i=n&&o[n.id].current;s.current=r.fn?r.fn(i):i}break;case'field':Qe(e,r.from,t,a),l||(l=1,s.current=Array.isArray(s.current)?[].concat(s.current):Object.assign({},s.current)),d&&(s.current[r.field]=o[o[r.from.id].id].current)}}))}u&&(e.sidIdMap[u]=n.id),o[n.id]=s}},Xe=function(e,r,n){try{return r(C(n),e.scope,n)}catch(t){console.error(t),e.fail=1,e.failReason=t}},Ye=function(r,n){return void 0===n&&(n={}),se(r)&&(Ye(r.or,n),e(r,(function(e,r){ce(e)||'or'===r||'and'===r||(n[r]=e)})),Ye(r.and,n)),n},Ze=function(e,r){$(e.next,r),$(z(e),r),$(N(e),r)},er=['on','reset','sample','split','merge','guard','forward'],rr=function(e,r,n,t,a){var i;e.next.length=0,e.seq.length=0,e.scope=null;var o=N(e),u=e.meta,s=u.stateRef,f=u.defaultShape,c=u.isRegion,l=u.op;if(s&&(s.before=[],e.meta.stateRef=null),f)for(var d in f)f[d]=null;var p=c?e:t;if(o.length>0)for(var v=G(er,l),m=!c&&!a,g=m&&n&&!v;i=o.pop();){var h=G(i.next,e);Ze(i,e),c&&rr(i,0,0,e,1),h||(i.family.triggers-=1),(r||g||m&&"crosslink"===i.family.type&&!v||a&&G(er,i.meta.op)&&(h&&0===i.next.length||!h&&i.family.triggers<=0))&&rr(i,r,n&&'on'!==i.meta.op,p,a)}for(o=z(e);i=o.pop();)Ze(i,e),n&&"crosslink"===i.family.type&&rr(i,r,'on'!==i.meta.op,p,a)},nr=function(e){return e.clear()},tr=function(e,r){var n=(void 0===r?{}:r).deep,t=0;if(e.ownerSet&&e.ownerSet.delete(e),W(e)){t=1;var a=e.history;nr(a.events),nr(a.effects),nr(a.stores),nr(a.domains)}rr(j(e),!!n,t,null,0)},ar=function(e){return c((function(){return tr(e)}))},ir=function(e,r,n,t,i){return a({node:n,parent:e,child:r,scope:{fn:i},meta:{op:t},family:{owners:[e,r],links:r},regional:1})},or=function(e,r){return n(fe(r),'.watch argument should be a function'),ar(a({scope:{fn:r},node:[xe({fn:he})],parent:e,meta:{op:'watch'},family:{owners:e},regional:1}))},ur=0,sr=function(e,r,n){void 0===n&&(n="event"),I(e)&&I(e).hooks[n](r)},fr=function(e,r){return F(e,'unitTrace',r)},cr=function(e){if(!ur)return'';var r=Error('unit trace');return Error.captureStackTrace&&Error.captureStackTrace(r,e),r.stack},lr=function(e,r,n,t){var a=Ye(n),i="domain"===e,o=Y(),s=a.sid,f=void 0===s?null:s,c=a.named,l=void 0===c?null:c,d=a.domain,p=a.parent,v=void 0===p?void 0===d?null:d:p,m=l||a.name||(i?'':o),g=u(m,v),h={op:r.kind=e,name:r.shortName=m,sid:r.sid=ie(f),named:l,unitId:r.id=o,serialize:a.serialize,derived:a.derived,config:a,unitTrace:t};if(r.targetable=!a.derived,r.parent=v,r.compositeName=g,r.defaultConfig=a,r.getType=function(){return K(0,'getType','compositeName.fullName'),g.fullName},!i){r.subscribe=function(e){return le(e),r.watch(fe(e)?e:function(r){return e.next&&e.next(r)})},r[A]=function(){return r};var y=ae();y&&(h.nativeTemplate=y)}return h},dr=function(e,r,n,t){var a;se(n)&&(a=n,n=n.fn);var i=p({name:e.shortName+" \u2192 *",derived:1,and:a});return ir(e,i,t,r,n),i},pr='undefined is used to skip updates. To allow undefined as a value provide explicit { skipVoid: false } option',vr=function(e,r,n,t,a){var i=R(r),o=ke({store:i,to:"a",priority:'read'});n===O&&(o.data.softRead=1);var u=[o,Ae(t)];l('storeOnMap',i,u,T(e)&&R(e));var s=ir(e,r,u,n,a);return n!==O&&F(s,'onTrigger',j(e).id),s},mr=function(r,t,i,u,f,c,d){var p=s('combine',f),v=r?function(e){return[].concat(e)}:function(e){return Object.assign({},e)},g=r?[]:{},h=v(g),y=je(h),b=je(1);y.type=r?'list':'shape',y.noInit=1,l('combineBase',y,b);var k=m(h,Object.assign({name:o(i),derived:1},d,{and:f}));fr(k,u);var w=R(k);w.noInit=1,F(k,'isCombine',1),oe(k,[a({meta:{stateRef:y}})]);var x=Me(y);x.order={priority:'barrier'};var S=ke({store:w,to:'b',priority:'read'});S.data.softRead=1;var M=[Se((function(e,r,n){return n.scope&&!n.scope.reg[y.id]&&(n.c=1),e})),x,ke({store:b,to:'b'}),Se((function(e,r,n){var a=r.key;if(n.c||e!==n.a[a])return t&&n.b&&(n.a=v(n.a)),n.a[a]=e,1}),1),ke({from:"a",target:y}),ke({from:"value",store:0,target:b}),ke({from:"value",store:1,target:b,priority:'barrier',batch:1}),Me(y,1,1),c&&Ae(),S];if(e(i,(function(e,r){if(!T(e))return n(!q(e)&&!ce(e),"combine expects a store in a field "+r,p),void(h[r]=g[r]=e);g[r]=e.defaultState,h[r]=e.getState();var t=ir(e,k,M,'combine',c);t.scope.key=r;var a=R(e);Ne(y,{type:'field',field:r,from:a}),l('combineField',a,t)})),k.defaultShape=i,F(k,'defaultShape',i),Ne(w,{type:O,from:y,fn:c}),!ae())if(c){var A=c(h);!ce(A)||d&&'skipVoid'in d||console.error(p+": "+pr),w.current=A,w.initial=A,k.defaultState=A}else k.defaultState=g;return k},gr=function(e,r,n){try{return[1,e.apply(void 0,n)]}catch(t){return r(t),[0,null]}},hr=function(e,r,n,t,a){return function(o){i({target:[t,yr],params:[n?{status:'done',params:e,result:o}:{status:'fail',params:e,error:o},{value:o,fn:n?r.rs:r.rj}],defer:1,page:a.page,scope:a.scope,meta:a.meta})}},yr=a({node:[xe({fn:function(e){return(0,e.fn)(e.value)}})],meta:{op:'fx',fx:'sidechain'}}),br=['source','clock','target'],kr=function(e,r){return e+": "+r+" should be defined"},wr=function(e,r,t,a,i,o,u,f,c,d,v,h){var y=s(e,f),b=!!i;n(!ce(t)||!ce(r),kr(y,'either source or clock'));var w=0;ce(t)?w=1:q(t)||(t=g(t)),ce(r)?r=t:(pe(r,y,'clock'),Array.isArray(r)&&(r=ir(r,[],[],e))),w&&(t=r),f||u?f&&u?f.name=u:!f&&u&&(f={name:u}):u=t.shortName;var x='none';(v||a)&&(q(a)?x='unit':(n(fe(a),'`filter` should be function or unit'),x='fn')),i?(pe(i,y,'target'),ve(y,i)):'none'===x&&d&&T(t)&&T(r)?i=m(o?o(ze(R(t)),ze(R(r))):ze(R(t)),{name:u,sid:h,or:f}):(i=p({name:u,derived:1,or:f}),l('sampleTarget',j(i)));var S=je(),M=[],A=[];if('unit'===x){var O=Sr(a,i,r,S,e),z=O[0],N=O[1],C=O[2],I=O[3];I&&J(A,I),C||M.push.apply(M,xr(N)),M.push.apply(M,xr(z))}var _=[];if(w)c&&J(_,Me(S,1,1));else{var D=Sr(t,i,r,S,e),F=D[0],E=D[1],P=D[2],V=D[3];V&&J(A,V),P||_.push.apply(_,xr(E)),J(_,Me(F,1,c))}var B=ir(r,i,[l('sampleSourceLoader'),ke({from:"stack",target:S})].concat(_,M,[Me(S),'fn'===x&&Ae((function(e,r,n){return a(e,n.a)}),1),o&&Ae(me),l('sampleSourceUpward',b)]),e,o);return oe(t,[B]),oe(B,A),Object.assign(B.meta,f,{joint:1,stateRef:S}),fr(B,cr(k)),i},xr=function(e){return[Me(e),Se((function(e,r,n){return n.a}),1)]},Sr=function(e,r,n,t,i){var o,u=T(e),s=u?R(e):je(),f=je(u);return u||(o=a({parent:e,node:[ke({from:"stack",target:s}),ke({from:"value",store:1,target:f})],family:{owners:[].concat(new Set([e,r,n].flat())),links:r},meta:{op:i},regional:1})),l('sampleSource',f,s,t),[s,f,u,o]},Mr=function(e,r,n,t){var a=e[r];a&&i({target:a,params:Array.isArray(a)?a.map((function(){return n})):n,defer:1,stack:t})},Ar=function(e){return!e.node.meta.isCombine||e.parent&&'combine'!==e.parent.node.meta.op},Or=function(e){return e};exports.PRIVATE_API_DO_NOT_TOUCH_NO_SEMVER_SUPPORT={setDebugTraces:function(e){ur=e,e&&console.log("[effector/debug_traces] Debug traces enabled")}},exports.allSettled=function(e,r){var n=void 0===r?{}:r,t=n.scope,a=n.params;if(!q(e))return Promise.reject(new Error('first argument should be unit'));if(!(B(e)||V(e)||T(e)||U(e)))return Promise.reject(new Error('first argument accepts only effects, events, stores or scopes'));if(U(e))t=e;else if(!L(e)){var o=s('allSettled',j(e).meta);return Promise.reject(Error(o+": unit should be targetable"))}var u=h();u.parentFork=De;var f=t.fxCount;J(f.scope.defers,u);var c=[],l=[];return U(e)||(J(c,e),J(l,B(e)?{params:a,req:{rs:function(e){u.value={status:'done',value:e}},rj:function(e){u.value={status:'fail',value:e}}}}:a)),J(c,f),J(l,null),i({target:c,params:l,scope:t}),u.req},exports.attach=function e(r){var t,a,o=f(r,1);r=o[0];var c=s('attach',a=o[1]),l=r.source,d=r.effect,p=r.mapParams,v=r.domain;B(d)&&n(ce(v),'`domain` can only be used with a plain function',c);var m=y(r,a);F(m,'attached',1),fr(m,cr(e));var h,b,k=j(m).scope.runner,w=function(e,r,n){var t,a=e.params,o=e.req,u=e.handler,s=m.finally,f=hr(a,o,0,s,n),c=n.a,d=B(u),v=1;if(p){var g=gr(p,f,[a,c]);v=g[0],t=g[1]}else t=l&&d?c:a;if(v){if(!d)return e.args=[c,t],1;i({target:u,params:{params:t,req:{rs:hr(a,o,1,s,n),rj:f}},page:n.page,defer:1,meta:n.meta})}};l?(k.scope.runnerFn=w,T(l)?oe(b=l,[m]):(b=g(l),oe(m,[b])),h=[Se((function(e){return e}),0,1),Me(R(b))],delete k.seq[1].order):h=[Se(w,1,1)],(t=k.seq).splice.apply(t,[1,0].concat(h)),m.use(d);var x=I(d);return x&&(Object.assign(E(m),u(m.shortName,x)),m.defaultConfig.parent=x),sr(d,m,"effect"),m},exports.clearNode=tr,exports.combine=g,exports.createApi=function(){for(var r=arguments.length,n=new Array(r),t=0;t<r;t++)n[t]=arguments[t];var a=f(n),i=a[0],o=i[0],u=i[1],s=a[1],c={};return e(u,(function(e,r){var n=c[r]=p(r,{parent:I(o),config:s});o.on(n,e),sr(o,n)})),c},exports.createDomain=function n(t,o){var u=Ye({or:o,and:'string'==typeof t?{name:t}:t}),s=a({family:{type:"domain"},regional:1,parent:(null==u?void 0:u.domain)||(null==u?void 0:u.parent)}),f={history:{},graphite:s,hooks:{}};s.meta=lr("domain",f,{parent:(null==u?void 0:u.domain)||(null==u?void 0:u.parent),or:Object.assign({},u,{derived:1})},cr(n)),e({Event:p,Effect:y,Store:m,Domain:n},(function(e,n){var t=n.toLowerCase(),a=p({named:"on"+n});f.hooks[t]=a;var o=new Set;f.history[t+"s"]=o,a.create=function(e){return i(a,e),e},J(j(a).seq,Se((function(e,r,n){return n.scope=null,e}))),a.watch((function(e){oe(f,[e]),o.add(e),e.ownerSet||(e.ownerSet=o),I(e)||(e.parent=f)})),oe(f,[a]),f["onCreate"+n]=function(e){return r(o,e),a.watch(e)},f["create"+n]=f[t]=function(r,n){var t=Ye({and:n,or:r});return null!=t&&t.domain?e(r,n):a(e(r,{parent:f,or:t}))}}));var c=I(f);return c&&e(f.hooks,(function(e,r){return ir(e,c.hooks[r])})),null!=u&&u.domain&&u.domain.hooks.domain(f),f},exports.createEffect=y,exports.createEvent=p,exports.createNode=a,exports.createStore=m,exports.createWatch=function(e){var r=e.unit,n=e.fn,t=e.scope,i=e.batch,o=[Oe.run({fn:function(e){return n(e)}})];i&&o.unshift(Oe.compute({priority:'sampler',batch:1})),T(r)&&o.unshift(Oe.mov({store:r.stateRef,to:'stack'}));var u=Array.isArray(r)?r:[r];if(t){var s=[],f=t.additionalLinks;return u.forEach((function(e){var r=f[e.graphite.id]||[];f[e.graphite.id]=r;var n=a({node:S(o,e),meta:{watchOp:e.kind}});r.push(n),s.push((function(){var e=r.indexOf(n);-1!==e&&r.splice(e,1),tr(n)}))})),c((function(){s.forEach((function(e){return e()}))}))}var l=a({node:o,parent:u,family:{owners:u}});return c((function(){tr(l)}))},exports.fork=function(e,t){var i,o=e;W(e)&&(K(0,'fork(domain)','fork()'),i=e,o=t);var u=function(e){var n=a({scope:{defers:[],inFlight:0,fxID:0},node:[Se((function(e,r,n){n.parent?'dec'===n.parent.node.meta.needFxCounter?r.inFlight-=1:(r.inFlight+=1,r.fxID+=1):r.fxID+=1})),we({priority:"sampler",batch:1}),Se((function(e,n){var t=n.defers,a=n.fxID;n.inFlight>0||0===t.length||Promise.resolve().then((function(){n.fxID===a&&r(t.splice(0,t.length),(function(e){He(e.parentFork),e.rs(e.value)}))}))}),0,1)]}),t=a({node:[Se((function(e,r,n){var t=n.parent;if(t){var a=t.node;if(Ar(t)){var i=_(n),o=a.meta.sid;i.sidIdMap[o]=a.scope.state.id,i.values.sidMap[o]=e;var u=a.meta.serialize;u&&i.sidSerializeSettings.set(o,'ignore'===u?{ignore:1}:{ignore:0,write:u.write})}}}))]}),i=a({node:[Se((function(e,r,n){var t=_(n),a=n.parent;t&&a&&Ar(a)&&t.warnSerializeNodes.add(a.node)}))]}),o={cloneOf:e,reg:{},values:{sidMap:{},idMap:{}},sidIdMap:{},sidSerializeSettings:new Map,getState:function(e){if('current'in e)return Je(Ue,o,e,0).current;var r=j(e);return Je(Ue,o,r.scope.state,1).current},kind:"scope",graphite:a({family:{type:"domain",links:[n,t,i]},meta:{unit:'fork'},scope:{forkInFlightCounter:n}}),additionalLinks:{},handlers:{sidMap:{},unitMap:new Map},fxCount:n,storeChange:t,warnSerializeNodes:new Set,warnSerializeNode:i};return o}(i);if(o){if(o.values){var s=x(o.values,(function(e){return n(T(e)&&L(e),'Values map can contain only writable stores as keys')})),f=s.unitMap,c=s.hasSidDoubles;Object.assign(u.values.sidMap,s.sidMap),r(f,(function(e,r){if(u.values.idMap[r.stateRef.id]=e,u.sidIdMap[D(r,'sid')]=r.stateRef.id,'ignore'===D(r,'serialize')){var n=D(r,'sid');u.sidSerializeSettings.set(n,{ignore:1})}})),u.fromSerialize=!(Array.isArray(o.values)||o.values instanceof Map),u.hasSidDoubles=c}o.handlers&&(K(o.handlers instanceof Map||Array.isArray(o.handlers),'object with handlers','array'),u.handlers=x(o.handlers,(function(e){return n(B(e),"Handlers map can contain only effects as keys")})))}return u},exports.forward=function(e){var r='forward',n=f(e,1),t=n[0],i=t.from,o=t.to,u=n[1],c=s(r,u);return K(0,r,'sample',c),pe(i,c,'"from"'),pe(o,c,'"to"'),ve(c,o,'to'),ar(a({parent:i,child:o,meta:{op:r,config:u},family:{},regional:1}))},exports.fromObservable=function(e){le(e);var r=A in e?e[A]():e;n(r.subscribe,'expect observable to have .subscribe');var t=p(),a=ar(t);return r.subscribe({next:t,error:a,complete:a}),t},exports.guard=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var t=f(r),a=t[0],i=a[0],o=a[1],u=t[1],c=s('guard',u);return K(0,'guard','sample',c),o||(i=(o=i).source),b(o,c),wr('guard',o.clock,i,o.filter,o.target,null,o.name,u,!o.greedy,0,1)},exports.hydrate=function(e,t){var a=t.values;n(se(a),'values property should be an object');var o=x(a),u=o.sidMap,s=o.unitMap,f=Object.getOwnPropertyNames(u),c={};r(s,(function(e,r){c[r.stateRef.id]=r}));var l,d,p,v=[],m=[];U(e)?(p=1,n((l=e).cloneOf,'scope should be created from domain'),K(0,'hydrate(fork(domain), { values })','fork({ values })'),d=j(l.cloneOf)):W(e)?(K(0,'hydrate(domain, { values })','fork({ values })'),d=j(e)):n(0,'first argument of hydrate should be domain or scope'),w(d,(function(e,r){if(r&&G(f,r)){J(v,e);var n=D(e,'serialize');n&&'ignore'!==n&&(u[r]=n.read(u[r])),J(m,u[r])}else e.scope.state.id in c&&(J(v,e),J(m,s.get(c[e.scope.state.id])))}),1),i({target:v,params:m,scope:l}),p&&Object.assign(l.values.sidMap,u)},exports.is=H,exports.launch=i,exports.merge=function(e,r){var n=s('merge',r);pe(e,n,'first argument');var t=p({name:o(e,'merge'),derived:1,and:r});return ir(e,t,[],'merge'),t},exports.restore=function(r,t,a){var i=s('restore',a);if(n(!T(r),'restore($store) is not supported',i),V(r)||B(r)){var o=I(r),u=m(t,{parent:o,name:r.shortName,and:a});return ir(B(r)?r.doneData:r,u),o&&o.hooks.store(u),u}var f=Array.isArray(r)?[]:{};return e(r,(function(e,r){return f[r]=T(e)?e:m(e,{name:r})})),f},exports.sample=k,exports.scopeBind=function(e,r){var t=void 0===r?{}:r,a=t.scope;n(a||De||t.safe,'scopeBind: scope not found');var i=a||De;return function(){function r(){He(a)}var n,t=0,a=De;He(i);try{n=e.apply(void 0,arguments)}catch(o){n=o,t=1}if(r(),t)throw n;return n instanceof Promise&&n.then(r,r),n}},exports.serialize=function(t,a){void 0===a&&(a={}),t.warnSerializeNodes.size&&(console.error('serialize: One or more stores dont have sids, their values are omitted'),r(t.warnSerializeNodes,(function(e){Q('store should have sid or `serialize: ignore`',e)}))),n(!t.hasSidDoubles,'duplicate sid found in this scope');var i=a.ignore?a.ignore.map((function(e){return e.sid})):[],o={};return e(t.values.sidMap,(function(e,r){var n;if(!G(i,r)){var a=t.sidIdMap[r],u=null!==(n=t.sidSerializeSettings.get(r))&&void 0!==n?n:{ignore:0,write:Or};u.ignore||(o[r]=(0,u.write)(a&&a in t.reg?t.reg[a].current:e))}})),'onlyChanges'in a&&(K(0,'onlyChanges'),a.onlyChanges||(n(t.cloneOf,'scope should be created from domain'),w(j(t.cloneOf),(function(e,r){r in o||G(i,r)||D(e,'isCombine')||'ignore'===D(e,'serialize')||(o[r]=t.getState(e))})))),o},exports.setGraphInspector=function(e){M=e},exports.setInspector=function(e){Fe=e},exports.setStoreName=function(e,r){e.shortName=r,Object.assign(E(e),u(r,I(e)))},exports.split=function r(){for(var t,i,o='split',u=arguments.length,c=new Array(u),d=0;d<u;d++)c[d]=arguments[d];var v=f(c),m=v[0],g=m[0],h=m[1],y=v[1],b=s(o,y),k=!h;k&&(t=g.cases,h=g.match,i=g.clock,g=g.source);var w=T(h),x=!q(h)&&fe(h),S=!w&&!x&&se(h);n(q(g),'source must be a unit',b),t||(t={}),k?e(t,(function(e,r){return ve(b,e,"cases."+r)})):(n(S,'match should be an object',b),e(h,(function(e,r){return t[r]=p({derived:1,named:"cases."+r,and:y})})),t.__=p({derived:1,named:'cases.__',and:y}));var M,A,O=new Set([].concat(g,i||[],Object.values(t))),j=Object.keys(w||x?t:h);if(w||x)w&&O.add(h),M=[w&&Me(R(h),0,1),we({safe:w,filter:1,pure:!w,fn:function(e,r,n){var t=String(w?n.a:h(e));Mr(r,G(j,t)?t:'__',e,n)}})];else if(S){var z=A=je({});z.type='shape';var N,C=[];e(h,(function(e,r){if(q(e)){N=1,J(C,r),O.add(e);var n=ir(e,[],[Me(z),Se((function(e,n,t){return t.a[r]=e}))]);if(T(e)){z.current[r]=e.getState();var t=R(e);Ne(z,{from:t,field:r,type:'field'}),l('splitMatchStore',t,n)}}})),N&&l('splitBase',z),M=[N&&Me(z,0,1),Ae((function(e,r,n){for(var t=0;t<j.length;t++){var a=j[t];if(G(C,a)?n.a[a]:h[a](e))return void Mr(r,a,e,n)}Mr(r,'__',e,n)}),1)]}else n(0,'expect match to be unit, function or object');var I=a({meta:{op:o,stateRef:A},parent:i?[]:g,scope:t,node:M,family:{owners:Array.from(O)},regional:1});if(i&&wr(o,i,g,null,I,null,o,y,0,0,0),fr(I,cr(r)),!k)return t},exports.step=Oe,exports.version="23.4.4",exports.withFactory=function(e){var r=e.sid,n=e.name,i=e.loc,o=e.method,u=e.fn;return t(a({meta:{sidRoot:ie(r),sid:r,name:n,loc:i,method:o,type:'factory'},regional:1}),u)},exports.withRegion=t;
//# sourceMappingURL=compat.js.map
;