Files
30-seconds-of-code/node_modules/xstate/dist/xstate.graph.js
2019-08-20 15:52:05 +02:00

2 lines
6.8 KiB
JavaScript

var t,e;t=this,e=function(t){"use strict";var e,r,n=function(){return(n=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var a in e=arguments[r])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t}).apply(this,arguments)};function a(t){var e="function"==typeof Symbol&&t[Symbol.iterator],r=0;return e?e.call(t):{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}}function o(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,a,o=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(t){a={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function i(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(o(arguments[e]));return t}function l(t){return Object.keys(t)}function s(t){try{return c(t)||"number"==typeof t?""+t:"function"==typeof t?t.name:t.type}catch(t){throw new Error("Actions must be strings or objects with a string action.type property.")}}function u(t){var e;return(e=[]).concat.apply(e,i(t))}function c(t){return"string"==typeof t}!function(t){t.Start="xstate.start",t.Stop="xstate.stop",t.Raise="xstate.raise",t.Send="xstate.send",t.Cancel="xstate.cancel",t.NullEvent="",t.Assign="xstate.assign",t.After="xstate.after",t.DoneState="done.state",t.DoneInvoke="done.invoke",t.Log="xstate.log",t.Init="xstate.init",t.Invoke="xstate.invoke",t.ErrorExecution="error.execution",t.ErrorCommunication="error.communication",t.ErrorPlatform="error.platform",t.Update="xstate.update",t.Pure="xstate.pure"}(e||(e={})),function(t){t.Parent="#_parent",t.Internal="#_internal"}(r||(r={})),e.Start,e.Stop,e.Raise,e.Send,e.Cancel,e.NullEvent,e.Assign,e.After,e.DoneState,e.Log,e.Init,e.Invoke,e.ErrorExecution,e.ErrorPlatform,e.Update;var f={};function v(t,e){return u(t.definition.on[e].map(function(r){var n=r.target?[].concat(r.target):void 0;return n?n.map(function(n){try{var a=n?t.getRelativeStateNodes(n,void 0,!1)[0]:t;return{source:t,target:a,event:e,actions:r.actions?r.actions.map(s):[],cond:r.cond,transition:r}}catch(t){return}}).filter(function(t){return void 0!==t}):[{source:t,target:t,event:e,actions:r.actions?r.actions.map(s):[],cond:r.cond,transition:r}]}))}function y(t){var e=t.value,r=t.context;return void 0===r?JSON.stringify(e):JSON.stringify(e)+" | "+JSON.stringify(r)}function d(t){return JSON.stringify(t)}function p(t){return JSON.parse(t)}var h={events:{},filter:function(){return!0},formatContext:function(t){return t},stateSerializer:y,eventSerializer:d};function S(t,e){var r,o,i=n({},h,e),l=i.filter,s=i.stateSerializer,f=i.eventSerializer,v={};try{for(var y=a(t.events),d=y.next();!d.done;d=y.next()){var p=d.value;v[p]=[p]}}catch(t){r={error:t}}finally{try{d&&!d.done&&(o=y.return)&&o.call(y)}finally{if(r)throw r.error}}Object.assign(v,i.events);var S={};return function e(r){var n,o,i=r.nextEvents,y=s(r);if(!S[y]){S[y]={};var d=u(i.map(function(t){return v[t]||[]})).map(function(t){return function(t,e){if(c(t)||"number"==typeof t){var r={type:t};return e&&Object.assign(r,e),r}return t}(t)});try{for(var p=a(d),h=p.next();!h.done;h=p.next()){var g=h.value,x=void 0;try{x=t.transition(r,g)}catch(t){throw new Error("Unable to transition from state "+s(r)+" on event "+f(g)+": "+t.message)}l&&!l(x)||y===s(x)||(S[y][f(g)]=x,e(x))}}catch(t){n={error:t}}finally{try{h&&!h.done&&(o=p.return)&&o.call(p)}finally{if(n)throw n.error}}}}(t.initialState),S}function g(t,e){var r,n;if(!t.states)return f;var o=S(t,e),s=new Map,u=new Set,c=[],v={};function d(t,e){var r,n;if(u.add(t),t===e)v[e]||(v[e]={state:s.get(e),paths:[]}),v[e].paths.push(i(c));else try{for(var f=a(l(o[t])),h=f.next();!h.done;h=f.next()){var S=h.value,g=o[t][S];if(g){var x=y(g);s.set(x,g),u.has(x)||(c.push({state:s.get(t),event:p(S)}),d(x,e))}}}catch(t){r={error:t}}finally{try{h&&!h.done&&(n=f.return)&&n.call(f)}finally{if(r)throw r.error}}c.pop(),u.delete(t)}var h=y(t.initialState);s.set(h,t.initialState);try{for(var g=a(l(o)),x=g.next();!x.done;x=g.next()){d(h,x.value)}}catch(t){r={error:t}}finally{try{x&&!x.done&&(n=g.return)&&n.call(g)}finally{if(r)throw r.error}}return v}t.getNodes=function t(e){var r=e.states;return l(r).reduce(function(e,n){var a=r[n],o=t(r[n]);return e.push.apply(e,i([a],o)),e},[])},t.getEventEdges=v,t.getEdges=function t(e,r){var n,o,s,u,c,f,y=(r||{}).depth,d=void 0===y?null:y,p=[];if(e.states&&null===d)try{for(var h=a(l(e.states)),S=h.next();!S.done;S=h.next()){var g=S.value;p.push.apply(p,i(t(e.states[g])))}}catch(t){n={error:t}}finally{try{S&&!S.done&&(o=h.return)&&o.call(h)}finally{if(n)throw n.error}}else if(d&&d>0)try{for(var x=a(l(e.states)),m=x.next();!m.done;m=x.next())g=m.value,p.push.apply(p,i(t(e.states[g],{depth:d-1})))}catch(t){s={error:t}}finally{try{m&&!m.done&&(u=x.return)&&u.call(x)}finally{if(s)throw s.error}}try{for(var w=a(l(e.on)),E=w.next();!E.done;E=w.next()){var b=E.value;p.push.apply(p,i(v(e,b)))}}catch(t){c={error:t}}finally{try{E&&!E.done&&(f=w.return)&&f.call(w)}finally{if(c)throw c.error}}return p},t.adjacencyMap=function(t,e){var r={},n=t.events;return function o(i){var l,s,u=JSON.stringify(i);if(!r[u]){r[u]={};try{for(var c=a(n),f=c.next();!f.done;f=c.next()){var v=f.value,y=t.transition(i,v,e);r[u][v]={state:y.value},o(y.value)}}catch(t){l={error:t}}finally{try{f&&!f.done&&(s=c.return)&&s.call(c)}finally{if(l)throw l.error}}}}(t.initialState.value),r},t.deserializeStateString=function(t){var e=o(t.split(" | "),2),r=e[0],n=e[1];return{value:JSON.parse(r),context:void 0===n?void 0:JSON.parse(n)}},t.serializeState=y,t.serializeEvent=d,t.deserializeEventString=p,t.getValueAdjacencyMap=S,t.getShortestPaths=function(t,e){var r,i,s,u;if(!t.states)return f;var c=n({events:{},stateSerializer:y,eventSerializer:d},e),v=S(t,c),h=new Map,g=new Map,x=c.stateSerializer(t.initialState);g.set(x,t.initialState),h.set(x,[0,void 0,void 0]);var m=new Set,w=new Set;for(m.add(x);m.size>0;)try{for(var E=a(m),b=E.next();!b.done;b=E.next()){var O=b.value,z=o(h.get(O),1)[0];try{for(var N=a(l(v[O])),j=N.next();!j.done;j=N.next()){var P=j.value,A=v[O][P],J=c.stateSerializer(A);g.set(J,A),h.has(J)?o(h.get(J),1)[0]>z+1&&h.set(J,[z+1,O,P]):h.set(J,[z+1,O,P]),w.has(J)||m.add(J)}}catch(t){s={error:t}}finally{try{j&&!j.done&&(u=N.return)&&u.call(N)}finally{if(s)throw s.error}}w.add(O),m.delete(O)}}catch(t){r={error:t}}finally{try{b&&!b.done&&(i=E.return)&&i.call(E)}finally{if(r)throw r.error}}var k={};return h.forEach(function(t,e){var r=o(t,3),n=r[0],a=r[1],i=r[2];k[e]={state:g.get(e),weight:n,path:a?k[a].path.concat({state:g.get(a),event:p(i)}):[]}}),k},t.getSimplePaths=g,t.getSimplePathsAsArray=function(t,e){var r=g(t,e);return l(r).map(function(t){return r[t]})},Object.defineProperty(t,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).XStateGraph={});