UNPKG

framework

Version:

Framework for TypeScript applications

3 lines (2 loc) 5.63 kB
function e(e){return e&&'object'==typeof e&&'default'in e?e:{default:e}}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((t=>Object.getOwnPropertyDescriptor(e,t).enumerable))),r.push.apply(r,a)}return r}function r(e){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?t(Object(o),1).forEach((t=>{a(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((t=>{Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:1,configurable:1,writable:1}):e[t]=r,e}function o(e){var{source:t,cases:r}=e,a={},o=effector.is.store(t,{name:"current",sid:"-htjkz7"})?t.updates:t;for(var n in r)n in r&&(()=>{var e=r[n];a[n]=o.filterMap(e),o=o.filter({fn:t=>!e(t)})})();return a.__=o,a}function n(e){return e[h]}Object.defineProperty(exports,'__esModule',{value:1});var s=require('@loadable/component'),i=require('react-router-config'),effector=require('effector'),c=require('history'),d=e(s);const u=effector.createDomain('framework/default',{name:"defaultDomain",sid:"-tzcbvc"}),h='framework/page-hatch';Object.defineProperty(exports,'loadable',{enumerable:1,get:()=>d.default}),exports.contract=e=>{for(const t in e.page){const r=e.page[t],a=e.model[t];r&&a&&effector.is.unit(r)&&effector.is.unit(a)&&(effector.is.store(r,{sid:"xrdgy2"})&&effector.is.store(a,{sid:"xrdih6"})?(effector.forward({and:{from:a,to:r},or:{sid:"m1otzj"}}),r.defaultState=a.defaultState,r.stateRef.current=a.stateRef.current,r.stateRef.before=[{type:'map',fn:e=>e,from:a.stateRef}]):effector.forward({and:{from:r,to:a},or:{sid:"n1fgk0"}}))}},exports.createBrowserApplication=e=>{const t=e.domain||u,a=((e,{emitHistory:t=0,trackRedirects:r=0}={})=>{const a='undefined'!=typeof document?c.createBrowserHistory():c.createMemoryHistory(),o=e.createEffect((()=>{}),{name:"historyPush",sid:"ph1zyv"}),n=e.createEffect((()=>{}),{name:"historyPushSearch",sid:"yxzraw"}),s=e.createEffect((()=>{}),{name:"historyReplace",sid:"-pcfgpo"}),i=e.createEvent({name:"historyChanged",sid:"-yqk2kz"}),d=e.createEvent({name:"historyEmitCurrent",sid:"nhk4d5"}),u=e.createStore('',{name:"$redirectTo",sid:"581zmv"});return effector.sample({and:[{clock:d,fn:()=>({action:'REPLACE',hash:a.location.hash,pathname:a.location.pathname,search:a.location.search}),target:i}],or:{sid:"km8cdb"}}),t&&(o.use((e=>a.push(e))),s.use((e=>a.replace(e))),n.use((e=>a.push({search:e}))),d.watch((()=>{let e;try{e=effector.scopeBind(i)}catch(t){e=e=>i(e)}a.listen((({pathname:t,search:r,hash:a},o)=>{e({pathname:t,search:r,hash:a,action:o})}))}))),r&&(u.on([o,s],((e,t)=>t)),t&&u.on(i,((e,{pathname:t,search:r})=>`${t}?${r}`))),{history:a,historyPush:o,historyPushSearch:n,historyReplace:s,historyChanged:i,historyEmitCurrent:d,$redirectTo:u}})(t,{emitHistory:1});effector.forward({and:{from:e.ready,to:a.historyEmitCurrent},or:{sid:"-yp3wn8"}});const s=a.historyChanged.filterMap((t=>{const a=i.matchRoutes(e.routes,t.pathname);if(a.length>0)return r(r({},a[0]),{},{change:t})}));for(const{component:r,path:a}of e.routes){if(!r)continue;if(r.load)throw new Error(`[${a}] lazy components temporary is not supported. Please, remove loadable() call`);const{routeMatched:e,__:i}=effector.withFactory({sid:"vzt7q4",fn:()=>o({source:s,cases:{routeMatched:({route:e,match:t,change:r})=>{if(e.path===a)return{params:t.params,query:Object.fromEntries(new URLSearchParams(r.search))}}}}),name:"none",method:"splitMap"}),c=t.createEvent({name:`hatchEnter:${a}`},{name:"hatchEnter",sid:"-e9ffs9"}),d=t.createEvent({name:`hatchUpdate:${a}`},{name:"hatchUpdate",sid:"y0vldw"}),u=t.createEvent({name:`hatchExit:${a}`},{name:"hatchExit",sid:"-733nio"}),h=n(r);h&&(effector.forward({and:{from:c,to:h.enter},or:{sid:"-we2yy9"}}),effector.forward({and:{from:d,to:h.update},or:{sid:"-wdj6cw"}}),effector.forward({and:{from:u,to:h.exit},or:{sid:"-wczdrj"}}));const m=t.createStore(0,{and:{name:`$onRoute:${a}`},name:"$onRoute",sid:"ly7iyy"}),p=t.createStore(0,{and:{name:`$onPage:${a}`},name:"$onPage",sid:"kdm6x2"});m.on(e,(()=>1)),effector.guard({and:[{clock:e,filter:p,target:d}],or:{sid:"-vuadmz"}}),effector.guard({and:[{clock:e,filter:effector.combine({and:[p,m,(e,t)=>!e&&t],or:{name:"filter",sid:"8acmah"}}),target:c}],or:{sid:"-vffxm8"}}),p.on(c,(()=>1)),m.on(i,(()=>0)),effector.guard({and:[{clock:i,filter:p,target:u}],or:{sid:"-uxaq1b"}}),p.on(u,(()=>0))}return{navigation:a}},exports.createHatch=(e=u)=>{var t,r,a;let o,n;effector.is.domain(e,{sid:"d6uzry"})?(o=e,n={}):effector.is.domain(e.domain,{sid:"-fuus8v"})?(o=e.domain,n=e):(o=u,n={});const s=o.createStore(Boolean(0),{name:"$opened",sid:"nsf3zm"}),i=o.createStore({},{name:"$params",sid:"7jlluc"}),c=o.createStore({},{name:"$query",sid:"-h3y3q"}),d={enter:null!==(t=n.enter)&&void 0!==t?t:o.createEvent({name:"enter",sid:"-hoeep"}),update:null!==(r=n.update)&&void 0!==r?r:o.createEvent({name:"update",sid:"-e6k2lh"}),exit:null!==(a=n.exit)&&void 0!==a?a:o.createEvent({name:"exit",sid:"36qrk9"}),$opened:s,$params:i,$query:c,$props:effector.combine({and:[{params:i,query:c}],or:{name:"$props",sid:"-kba9zb"}})};return i.on([d.enter,d.update],((e,{params:t})=>t)),c.on([d.enter,d.update],((e,{query:t})=>t)),d.$opened.on(d.enter,(()=>Boolean(1))).reset(d.exit),d},exports.createPages=e=>i.renderRoutes(e),exports.getHatch=n,exports.lookupHatch=e=>{if(e.route.component)return n(e.route.component)},exports.withHatch=(e,t)=>(t[h]=e,t); //# sourceMappingURL=framework.cjs.js.map