xstate 6.0.0-alpha.17 → 6.0.0-alpha.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/declarations/src/setup.d.ts +2 -0
- package/dist/xstate.cjs.js +4 -1
- package/dist/xstate.development.cjs.js +4 -1
- package/dist/xstate.development.esm.js +4 -1
- package/dist/xstate.esm.js +4 -1
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -403,6 +403,8 @@ export interface SetupReturn<TStates extends Record<string, SetupStateSchema> =
|
|
|
403
403
|
createStateConfig<const TConfig extends SetupStateNodeConfig<TStates, SetupStateSchema, TSchemas, TSetupActionMap, TSetupActorMap, TSetupGuardMap, TSetupDelayMap, TSystemRegistry>>(config: TConfig): TConfig;
|
|
404
404
|
/** State input schemas from setup config */
|
|
405
405
|
states: TStates;
|
|
406
|
+
/** Schemas from setup config */
|
|
407
|
+
schemas: TSchemas;
|
|
406
408
|
}
|
|
407
409
|
type SetupConfigSchemas<TConfig> = TConfig extends {
|
|
408
410
|
schemas?: infer TSchemas;
|
package/dist/xstate.cjs.js
CHANGED
|
@@ -2090,7 +2090,8 @@ function setup(config = {}) {
|
|
|
2090
2090
|
createStateConfig(...args) {
|
|
2091
2091
|
return args.length > 1 ? args[1] : args[0];
|
|
2092
2092
|
},
|
|
2093
|
-
states
|
|
2093
|
+
states,
|
|
2094
|
+
schemas: schemas ?? {}
|
|
2094
2095
|
};
|
|
2095
2096
|
}
|
|
2096
2097
|
function createSystem(_config = {}) {
|
|
@@ -2158,6 +2159,8 @@ function mergeSchemas(left, right) {
|
|
|
2158
2159
|
...left,
|
|
2159
2160
|
...right,
|
|
2160
2161
|
events: mergeMaps(left?.events, right?.events),
|
|
2162
|
+
actions: mergeMaps(left?.actions, right?.actions),
|
|
2163
|
+
guards: mergeMaps(left?.guards, right?.guards),
|
|
2161
2164
|
emitted: mergeMaps(left?.emitted, right?.emitted),
|
|
2162
2165
|
children: mergeMaps(left?.children, right?.children)
|
|
2163
2166
|
};
|
|
@@ -2090,7 +2090,8 @@ function setup(config = {}) {
|
|
|
2090
2090
|
createStateConfig(...args) {
|
|
2091
2091
|
return args.length > 1 ? args[1] : args[0];
|
|
2092
2092
|
},
|
|
2093
|
-
states
|
|
2093
|
+
states,
|
|
2094
|
+
schemas: schemas ?? {}
|
|
2094
2095
|
};
|
|
2095
2096
|
}
|
|
2096
2097
|
function createSystem(_config = {}) {
|
|
@@ -2158,6 +2159,8 @@ function mergeSchemas(left, right) {
|
|
|
2158
2159
|
...left,
|
|
2159
2160
|
...right,
|
|
2160
2161
|
events: mergeMaps(left?.events, right?.events),
|
|
2162
|
+
actions: mergeMaps(left?.actions, right?.actions),
|
|
2163
|
+
guards: mergeMaps(left?.guards, right?.guards),
|
|
2161
2164
|
emitted: mergeMaps(left?.emitted, right?.emitted),
|
|
2162
2165
|
children: mergeMaps(left?.children, right?.children)
|
|
2163
2166
|
};
|
|
@@ -2088,7 +2088,8 @@ function setup(config = {}) {
|
|
|
2088
2088
|
createStateConfig(...args) {
|
|
2089
2089
|
return args.length > 1 ? args[1] : args[0];
|
|
2090
2090
|
},
|
|
2091
|
-
states
|
|
2091
|
+
states,
|
|
2092
|
+
schemas: schemas ?? {}
|
|
2092
2093
|
};
|
|
2093
2094
|
}
|
|
2094
2095
|
function createSystem(_config = {}) {
|
|
@@ -2156,6 +2157,8 @@ function mergeSchemas(left, right) {
|
|
|
2156
2157
|
...left,
|
|
2157
2158
|
...right,
|
|
2158
2159
|
events: mergeMaps(left?.events, right?.events),
|
|
2160
|
+
actions: mergeMaps(left?.actions, right?.actions),
|
|
2161
|
+
guards: mergeMaps(left?.guards, right?.guards),
|
|
2159
2162
|
emitted: mergeMaps(left?.emitted, right?.emitted),
|
|
2160
2163
|
children: mergeMaps(left?.children, right?.children)
|
|
2161
2164
|
};
|
package/dist/xstate.esm.js
CHANGED
|
@@ -2088,7 +2088,8 @@ function setup(config = {}) {
|
|
|
2088
2088
|
createStateConfig(...args) {
|
|
2089
2089
|
return args.length > 1 ? args[1] : args[0];
|
|
2090
2090
|
},
|
|
2091
|
-
states
|
|
2091
|
+
states,
|
|
2092
|
+
schemas: schemas ?? {}
|
|
2092
2093
|
};
|
|
2093
2094
|
}
|
|
2094
2095
|
function createSystem(_config = {}) {
|
|
@@ -2156,6 +2157,8 @@ function mergeSchemas(left, right) {
|
|
|
2156
2157
|
...left,
|
|
2157
2158
|
...right,
|
|
2158
2159
|
events: mergeMaps(left?.events, right?.events),
|
|
2160
|
+
actions: mergeMaps(left?.actions, right?.actions),
|
|
2161
|
+
guards: mergeMaps(left?.guards, right?.guards),
|
|
2159
2162
|
emitted: mergeMaps(left?.emitted, right?.emitted),
|
|
2160
2163
|
children: mergeMaps(left?.children, right?.children)
|
|
2161
2164
|
};
|
package/dist/xstate.umd.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).XState={})}(this,function(t){"use strict";class e{constructor(t){this._process=t,this._active=!1,this._current=null,this._last=null}start(){this._active=!0,this.flush()}clear(){this._current&&(this._current.next=null,this._last=this._current)}enqueue(t){const e={value:t,next:null};if(this._current)return this._last.next=e,void(this._last=e);this._current=e,this._last=e,this._active&&this.flush()}flush(){for(;this._current;){const t=this._current;this._process(t.value),this._current=t.next}this._last=null}}const n="@xstate.init",s="@xstate.stop";function o(t,e){return{type:`xstate.after.${t}.${e}`}}function r(t){return{type:`xstate.timeout.actor.${t}`}}function i(t,e){return{type:`xstate.done.state.${t}`,output:e}}function c(t,e){return{type:`xstate.error.${t}`,error:e}}function a(t){return{type:n,input:t}}function u(t){setTimeout(()=>{throw t})}const f="function"==typeof Symbol&&Symbol.observable||"@@observable",h={"@xstate.start":t=>{t.start()},"@xstate.raise":(t,e,n)=>{t.system.scheduler.schedule(t.self,t.self,e,n?.delay??0,n?.id)},"@xstate.sendTo":(t,e,n,s)=>{if("string"==typeof n)throw new Error("Only event objects may be used with sendTo");void 0!==s?.delay?t.system.scheduler.schedule(t.self,e,n,s?.delay??0,s?.id):t.defer(()=>{t.system._relay(t.self,e,n)})},"@xstate.cancel":(t,e)=>{t.system.scheduler.cancel(t.self,e)},"@xstate.stop":(t,e)=>{t.stopChild(e)}},d=new WeakMap;function l(t){const e=(t,e)=>[{status:"active",output:void 0,error:void 0,input:t},[]];return{start:(e,{self:n,system:s})=>{const o=e.input.actor;if(!o||"stopped"===o.getSnapshot().status)return;const r=t(e.input,{self:n,system:s});if(!r)return;let i,c=!1;const a=()=>{c||(c=!0,r.unsubscribe(),i?.unsubscribe())},u=n._parent;u&&(i=u.subscribe({complete:a,error:a})),d.set(n,{unsubscribe:a})},transition:(t,e,{self:n})=>e.type===s?(d.get(n)?.unsubscribe(),d.delete(n),[{...t,status:"stopped",error:void 0},[]]):[t,[]],initialTransition:e,getInitialSnapshot:(t,n)=>e(n)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}}function p(t,e,n){"stopped"!==t.getSnapshot().status&&t._parent&&e._relay(t,t._parent,n())}function y(){return l(({actor:t,eventType:e,mapper:n},{self:s,system:o})=>{const r="*"!==e&&e.endsWith(".*");return t.on(r?"*":e,t=>{r&&!Pt(t.type,e)||p(s,o,()=>n(t))})})}const g=y();function v(){return l(({actor:t,mappers:e},{self:n,system:s})=>{const{done:o,error:r,snapshot:i}=e;return t.subscribe({next:t=>{"done"===t.status&&o?p(n,s,()=>o(t.output)):"error"===t.status&&r?p(n,s,()=>r(t.error)):"active"===t.status&&i&&p(n,s,()=>i(t))},error:t=>{r&&p(n,s,()=>r(t))},complete:()=>{}})})}const m=v();function x(t,e){return{...t,...e}}function _(t,e,...n){t.push({action:e,args:n})}function b(t,e,n){_(t,h["@xstate.start"],e),t.push(function(t,e){return Object.assign(function(n){return{children:{...n.children,[e]:t}}},{_special:!0})}(e,n??e.id))}function S(t,e,n,s=!1,o=!0){const r={cancel:n=>{_(e,h["@xstate.cancel"],t,n)},emit:t=>{e.push(t)},log:(...n)=>{_(e,t.logger,...n)},raise:(s,o)=>{if("string"==typeof s)throw new Error("Only event objects may be used with raise");void 0!==o?.delay?_(e,h["@xstate.raise"],t,s,o):n.push(s)},spawn:(n,s)=>{if(!o)return{id:s?.id??s?.registryKey??n.id};const r=qt(n,{...s,parent:t.self});return b(e,r,s?.id),r},sendTo:(s,o,r)=>{s?_(e,h["@xstate.sendTo"],t,s,o,r):n.push(c("communication",{message:"Unable to send event to an undefined actor",event:o}))},stop:n=>{n&&(_(e,h["@xstate.stop"],t,n),e.push(function(t){return Object.assign(function(e){const n={...e.children};for(const e of Object.keys(n))n[e]===t&&delete n[e];return{children:n}},{_special:!0})}(n)))}};return s&&Object.assign(r,{listen:(n,s,o)=>{const r=qt(g,{input:{actor:n,eventType:s,mapper:o},parent:t.self});return _(e,h["@xstate.start"],r),r},subscribeTo:(n,s)=>{const o=qt(m,{input:{actor:n,mappers:"function"==typeof s?{snapshot:s}:s},parent:t.self});return _(e,h["@xstate.start"],o),o}}),E(r,(t,...n)=>{_(e,t,...n)})}function w(t,e){switch(t){case h["@xstate.start"]:{const[t]=e;return{actor:t,id:t.id,logic:t.logic,src:t.src,input:t.options?.input}}case h["@xstate.raise"]:{const[,t,n]=e;return{event:t,id:n?.id,delay:n?.delay}}case h["@xstate.sendTo"]:{const[,t,n,s]=e;return{target:t,event:n,id:s?.id,delay:s?.delay}}case h["@xstate.cancel"]:{const[,t]=e;return{id:t}}case h["@xstate.stop"]:{const[,t]=e;return{actor:t}}default:return}}function $(t,e,n,s){let o=t;const r=[];for(const i of s){const s="function"==typeof i?i:"object"==typeof i&&"action"in i&&"function"==typeof i.action&&i.action.bind(null,...i.args),c={context:o.context,event:e,output:It(e),self:n.self,system:n.system,children:o.children,parent:n.self._parent,actions:t.machine.implementations.actions,actorSources:t.machine.implementations.actorSources};let a;if("object"==typeof i&&null!==i){const{type:t,...e}=i;a=e}if(s&&"_special"in s){r.push({type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type??"(anonymous)":i.name||"(anonymous)",params:a,args:[],exec:void 0});const t=s(c,k);t&&("context"in t||"children"in t)&&(o={...o,...void 0!==t.context?{context:x(o.context,t.context)}:{},..."children"in t?{children:t.children}:{}});continue}if(!s||!("resolve"in s)){const t="object"==typeof i&&null!==i&&"action"in i&&"function"==typeof i.action?w(i.action,i.args):void 0;r.push({type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type:i.name||"(anonymous)",params:a,args:"object"==typeof i&&"action"in i?i.args:[],exec:s||("object"==typeof i&&null!==i?()=>n.defer(()=>n.emit(i)):void 0),...t});continue}}return[o,r]}function E(t,e){const n=(t,...n)=>{e(t,...n)};return Object.assign(n,{cancel:()=>{},emit:()=>{},log:()=>{},raise:()=>{},spawn:()=>({}),sendTo:()=>{},stop:()=>{},listen:()=>({}),subscribeTo:()=>({}),...t}),n}const k=E({},()=>{});function A(t){const e=t.trim(),n=e.match(/^(\d+)ms$/i);if(n)return parseInt(n[1],10);const s=e.match(/^(\d*)(\.?)(\d*)s$/i);if(s){const t=s[1]?parseInt(s[1],10):0,e=!!s[2],n=s[3]?parseInt(s[3].padEnd(3,"0").slice(0,3),10):0;return 1e3*t+(e?n:0)}const o=e.match(/^P(?:(?<weeks>\d+(?:[.,]\d+)?)W)?(?:(?<days>\d+(?:[.,]\d+)?)D)?(?:T(?:(?<hours>\d+(?:[.,]\d+)?)H)?(?:(?<minutes>\d+(?:[.,]\d+)?)M)?(?:(?<seconds>\d+(?:[.,]\d+)?)S)?)?$/i);if(!o?.groups)return;const{weeks:r,days:i,hours:c,minutes:a,seconds:u}=o.groups;if(!(r||i||c||a||u))return;const f=t=>t?Number(t.replace(",",".")):0;return 7*f(r)*24*60*60*1e3+24*f(i)*60*60*1e3+60*f(c)*60*1e3+60*f(a)*1e3+1e3*f(u)}function j(t){if(void 0!==t)return"number"==typeof t?t:A(t)}function I(t,e,n){if("function"==typeof t)return t(n);const s=function(t,e){if("string"!=typeof t)return t;const n=e[t];return void 0!==n?n:A(t)??t}(t,e);return"function"==typeof s?s(n):s}function T(t){return"atomic"===t.type||"final"===t.type||"choice"===t.type}function O(t){return Object.values(t.states).filter(t=>"history"!==t.type)}function M(t,e){const n=[];if(e===t)return n;let s=t.parent;for(;s&&s!==e;)n.push(s),s=s.parent;return n}function N(t){const e=new Set(t),n=new Set;for(const t of e)t.parent&&n.add(t.parent);for(const t of e)if("compound"!==t.type||n.has(t)){if("parallel"===t.type)for(const n of O(t))if(!e.has(n)){const t=z(n);for(const n of t)e.add(n)}}else for(const n of z(t))e.add(n);for(const t of e){let n=t.parent;for(;n&&!e.has(n);)e.add(n),n=n.parent}return e}function D(t,e){const n=N(e),s=new Map;for(const t of n)s.has(t)||s.set(t,[]),t.parent&&(s.has(t.parent)||s.set(t.parent,[]),s.get(t.parent).push(t));const o=t=>{const e=s.get(t);if(!e)return{};if("compound"===t.type){const t=e[0];if(!t)return{};if(T(t))return t.key}const n={};for(const t of e)n[t.key]=o(t);return n};return o(t)}function P(t,e){return"compound"===e.type?O(e).some(e=>"final"===e.type&&t.has(e)):"parallel"===e.type?O(e).every(e=>P(t,e)):"final"===e.type}const C=t=>"#"===t[0];function R(t,e,n){const s=e.type,o=t.entry;t.entry=(t,r)=>(r.raise(e,{id:s,delay:n(t)}),"function"==typeof o?o(t,r):void 0);const r=t.exit;return t.exit=(t,e)=>(e.cancel(s),"function"==typeof r?r(t,e):void 0),s}function L(t,e,n){const s=Mt(n.target),o=n.reenter??!1,r=W(t,s),i={...n,target:r,source:t,reenter:o,eventType:e,toJSON:()=>({...i,source:`#${t.id}`,target:r?r.map(t=>`#${t.id}`):void 0})};return i}function W(t,e){if(void 0!==e)return e.map(e=>{if("string"!=typeof e)return e;if(C(e))return t.machine.getStateNodeById(e);const n="."===e[0];if(n&&!t.parent)return J(t,e.slice(1));const s=n?t.key+e:e;if(!t.parent)throw new Error(`Invalid target: "${e}"`);try{return J(t.parent,s)}catch(e){throw new Error(`Invalid transition for '${t.id}': ${e.message}`)}})}function K(t){const e=Mt(t.config.target);return e?{target:e.map(e=>"string"==typeof e?J(t.parent,e):e),source:t,reenter:!1,eventType:""}:t.parent.initial}function V(t){return"history"===t.type}function z(t){const e=new Set;!function t(n){if(!e.has(n))if(e.add(n),"compound"===n.type)t(n.initial.target[0]);else if("parallel"===n.type)for(const e of O(n))t(e)}(t);for(const n of e)for(const s of M(n,t))e.add(s);return e}function B(t,e){if(C(e))return t.machine.getStateNodeById(e);const n=t.states?.[e];if(!n)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return n}function J(t,e){if("string"==typeof e&&C(e))try{return t.machine.getStateNodeById(e)}catch{}const n=wt(e).slice();let s=t;for(;n.length;){const t=n.shift();if(!t.length)break;s=B(s,t)}return s}function F(t,e){if("string"==typeof e){const n=t.states[e];if(!n)throw new Error(`State '${e}' does not exist on '${t.id}'`);return[t,n]}const n=Object.keys(e),s=new Array(n.length),o=[t.machine.root,t];for(let e=0;e<n.length;e++){const r=B(t,n[e]);s[e]=r,o.push(r)}for(let t=0;t<n.length;t++)o.push(...F(s[t],e[n[t]]));return o}function q(t,e,n,s,o){if("string"==typeof e){const r=B(t,e).next(n,s,o);return r&&r.length?r:t.next(n,s,o)}const r=Object.keys(e),i=r[0];if(1===r.length){const r=q(B(t,i),e[i],n,s,o);return r&&r.length?r:t.next(n,s,o)}const c=[];for(const i of r){const r=e[i];if(!r)continue;const a=q(B(t,i),r,n,s,o);a&&c.push(...a)}return c.length?c:t.next(n,s,o)}function H(t,e){let n=t;for(;n.parent&&n.parent!==e;)n=n.parent;return n.parent===e}function U(t,e){for(const n of t)if(H(n,e))return!0;return!1}function G(t,e){const n=t instanceof Set?t.size:Array.isArray(t)?t.length:void 0,s=e instanceof Set?e.size:Array.isArray(e)?e.length:void 0;void 0!==n&&void 0!==s&&s<n&&([t,e]=[e,t]);const o=t instanceof Set?t:new Set(t);for(const t of e)if(o.has(t))return!0;return!1}function X(t,e,n,s,o){const r=new Set,i=new Map,c=t=>{let r=i.get(t);return r||(r=tt([t],e,n,s,o),i.set(t,r)),r};for(const e of t){let t=!1;const n=new Set;for(const s of r)if(G(c(e),c(s)))if(H(e.source,s.source))n.add(s);else{if("final"!==s.source.type||"final"===e.source.type){t=!0;break}n.add(s)}if(!t){for(const t of n)r.delete(t);r.add(e)}}return Array.from(r)}function Z(t,e,n,s){const o=e.historyValue,{targets:r}=st(t,e,n,s,{resolveActions:!1});if(!r)return[];const i=new Set;for(const t of r)if(V(t))if(o[t.id])for(const e of o[t.id])i.add(e);else for(const o of Z(K(t),e,n,s))i.add(o);else i.add(t);return[...i]}function Q(t,e){let n=t;for(;"parallel"===n.type;){const t=O(n).find(t=>e.every(e=>e===t||H(e,t)));if(!t)break;n=t}return n}function Y(t,e,n,s){const o=Z(t,e,n,s),{reenter:r}=st(t,e,n,s,{resolveActions:!1});if(o.every(e=>e===t.source||H(e,t.source)))return r?t.source:Q(t.source,o);const[i,...c]=o.concat(t.source);for(const t of M(i,void 0))if(c.every(e=>H(e,t)))return r?t:Q(t,o);return r?void 0:Q(t.source.machine.root,o)}function tt(t,e,n,s,o){const r=new Set;for(const i of t){const{targets:t,reenter:c}=st(i,n,s,o,{resolveActions:!1});if(t?.length){const t=Y(i,n,s,o);c&&i.source===t&&r.add(t);for(const n of e)H(n,t)&&r.add(n)}}return[...r]}function et(t,e,n,s,o){return nt([{target:[...z(t)],source:t,reenter:!0,eventType:null,toJSON:null}],e,n,s,!0,o)}function nt(t,e,n,s,o,r){const c=[];if(!t.length)return[e,c];{const a=new Set(e._nodes);let u=e.historyValue;const f=e.context,d=X(t,a,e,s,n),l=t=>st(t,e,s,n),p=(t,o,r,i)=>{if(2===t.length){const c=[],a=[];let u;const f=S(n,c,a,!0),h=t({context:o,event:s,parent:n.self._parent,self:n.self,children:r,system:n.system,actions:e.machine.implementations.actions,actorSources:e.machine.implementations.actorSources,guards:e.machine.implementations.guards,delays:e.machine.implementations.delays,input:i},f);return void 0!==h?.context&&(u=x(o,h.context)),[c,u,a]}return[[Object.assign((e,n)=>t({...e,input:i},n),"_special"in t?{_special:!0}:{})],void 0,void 0]};let y=e;const g=()=>{const t=tt(d,a,e,s,n);let o;t.sort((t,e)=>e.order-t.order);const i=[...a];for(const e of t)for(const t of Object.values(e.states)){if("history"!==t.type)continue;const n="deep"===t.history?t=>T(t)&&H(t,e):t=>t.parent===e;o??={...u},o[t.id]=i.filter(n)}for(const o of t){const t=e._stateInputs?.[o.id],[i,u,f]=o.exit?p(o.exit,y.context,e.children,t):[[]];f?.length&&r.push(...f),u&&(y=xt(y,{context:u}));const[h,d]=$(y,s,n,i);y=h,c.push(...d);for(const t of o.invoke){const e=y.children[t.id];e&&!e._isExternal&&n.stopChild(e),delete y.children[t.id]}a.delete(o)}u=o||u};o||g();let v=y.context;const m=[],_=[];for(const t of d){t.actions&&m.push(...At(t.actions));const e=l(t);void 0!==e.context&&(v=x(v,e.context)),e.actions&&m.push(...e.actions),e.internalEvents&&_.push(...e.internalEvents)}_.length&&r.push(..._);const b=()=>{const t=t=>{const e=y.machine.root;let o;if(void 0!==t.output&&t.parent){const i=r.find(t=>t.type===`xstate.done.state.${e.id}`);o=i&&t.parent===e?i.output:jt(t.output,y.context,s,n.self)}else if("parallel"===t.type){const e=`xstate.done.state.${t.id}`,n=r.find(t=>t.type===e);o=n?.output}return void 0===e.output?t.parent===e?o:void 0:jt(e.output,y.context,i(t.id,o),n.self)},f=new Set,g=new Set,v=(t,e)=>{for(const n of t)if(e&&!H(n,e)||f.add(n),"parallel"===n.type)for(const t of O(n))U(f,t)||(f.add(t),m(t))},m=t=>{if(V(t))if(u[t.id]){const e=u[t.id];for(const t of e)f.add(t),m(t);for(const n of e)v(M(n,t.parent),void 0)}else{const e=K(t),{targets:n}=l(e);for(const s of n??[])f.add(s),e===t.parent?.initial&&g.add(t.parent),m(s);for(const e of n??[])v(M(e,t.parent),void 0)}else{if("compound"===t.type){const[e]=l(t.initial).targets;return V(e)||(f.add(e),g.add(e)),m(e),void v(M(e,t),void 0)}if("parallel"===t.type)for(const e of O(t))U(f,e)||(f.add(e),g.add(e),m(e))}};for(const t of d){const o=Y(t,e,s,n),{targets:r,reenter:i}=st(t,e,s,n,{resolveActions:!1});for(const e of r??[])V(e)||t.source===e&&t.source===o&&!i||(f.add(e),g.add(e)),m(e);const c=Z(t,e,s,n);for(const e of c){const n=M(e,o);"parallel"===o?.type&&n.push(o),v(n,!t.source.parent&&i?void 0:o)}i&&o===t.source&&f.add(t.source)}o&&g.add(e.machine.root);const x={...e._stateInputs};let _=!1;for(const t of d){const{targets:o,input:r}=st(t,e,s,n,{resolveActions:!1});if(r&&o)for(const t of o)x[t.id]=r,_=!0}const b=new Set,S={...e.children};for(const o of[...f].sort((t,e)=>t.order-e.order)){a.add(o);const u=[];let f=!1;for(const t of o.invoke){f=!0;let o=t.logic;"function"==typeof o&&(o=o({actorSources:e.machine.implementations.actorSources,context:y.context,event:s,self:n.self}));const r="string"==typeof o?Dt(e.machine,o):o;if(!r)throw new Error(`Actor logic '${"string"==typeof o?o:"inline"}' not implemented`);const i="function"==typeof t.input?t.input({self:n.self,context:y.context,event:s,output:It(s)}):t.input,c=qt(r,{...t,input:i,parent:n.self,syncSnapshot:!!t.onSnapshot});u.push({action:h["@xstate.start"],args:[c]}),t.id&&(S[t.id]=c)}f&&(y=xt(y,{children:S}));let d=y.context,l=!1;const v=x[o.id];if(o.entry){const[t,e,n]=p(o.entry,d,S,v);u.push(...t),n?.length&&r.push(...n),e&&(d=e,l=!0)}if(l&&(y.context=d),g.has(o)){const{actions:t,input:e}=st(o.initial,y,s,n);if(t&&u.push(...t),e&&o.initial?.target)for(const t of o.initial.target)x[t.id]=e,_=!0}const[m,w]=$(y,s,n,u);if(y=m,u.length=0,c.push(...w),"final"!==o.type)continue;const E=o.parent;let k="parallel"===E?.type?E:E?.parent,A=k||o;for("compound"===E?.type&&r.push(i(E.id,void 0!==o.output?jt(o.output,y.context,s,n.self):void 0));"parallel"===k?.type&&!b.has(k)&&P(a,k);){b.add(k);const t={};for(const e of O(k)){if("final"===e.type){t[e.key]=void 0!==e.output?jt(e.output,y.context,s,n.self):void 0;continue}if("parallel"===e.type){const n=`xstate.done.state.${e.id}`,s=r.find(t=>t.type===n);t[e.key]=s?.output;continue}const o=O(e).find(t=>"final"===t.type&&a.has(t));t[e.key]=void 0!==o?.output?jt(o.output,y.context,s,n.self):void 0}r.push(i(k.id,t)),A=k,k=k.parent}k||(y=xt(y,{status:"done",output:t(A)}))}_&&(y=xt(y,{_stateInputs:x}))},[w,E]=$(y,s,n,m);y=w,c.push(...E),v&&v!==e.context&&(y=xt(y,{context:v})),b();const k=[...a];if("done"===y.status){const t=[];k.sort((t,e)=>e.order-t.order).forEach(e=>{if(e.exit){const n=y._stateInputs?.[e.id],[s,,o]=p(e.exit,y.context,y.children,n);t.push(...s),o?.length&&r.push(...o)}});const[e,o]=$(y,s,n,t);y=e,c.push(...o)}return u===e.historyValue&&e._nodes.length===a.size&&e._nodes.every(t=>a.has(t))?y.context!==f?[xt(y),c]:[y,c]:[xt(y,{_nodes:k,historyValue:u}),c]}}function st(t,e,n,s,o){const r={context:e.context,event:n,output:It(n),value:e.value,children:e.children,system:s.system,parent:s.self._parent,self:s.self,actions:e.machine.implementations.actions,actorSources:e.machine.implementations.actorSources,guards:e.machine.implementations.guards,delays:e.machine.implementations.delays};if(t.to){const i=[],c=[],a=S(s,i,c,!1,o?.resolveActions??!0),u=t.to(r,a),f=u?.target?W(t.source,At(u.target)):void 0,h=u?.input??("function"==typeof t.input?t.input({context:e.context,event:n,output:It(n)}):t.input);return{targets:f,context:u?.context,reenter:u?.reenter,actions:i,internalEvents:c,input:h}}const i="function"==typeof t.input?t.input({context:e.context,event:n,output:It(n)}):t.input,c="function"==typeof t.context?t.context(r):t.context;return{targets:t.target,context:c,reenter:t.reenter,actions:void 0,internalEvents:void 0,input:i}}function ot(t,e,o,r){let i=t;const c=[];function a(t,e){const n=o.self._collectedMicrosteps||[];n.push(...e),o.self._collectedMicrosteps=n,c.push(t)}if(e.type===s)return i=xt(ct(i,o),{status:"stopped"}),a([i,[]],[]),{snapshot:i,microsteps:c};let u=e;if(u.type!==n){const e=u,n=function(t){return t.type.startsWith("xstate.error.")}(e),s=i.machine.getTransitionData(i,e,o.self);if(n&&!s.length)return i=xt(t,{status:"error",error:e.error}),a([i,[]],[]),{snapshot:i,microsteps:c};const f=nt(s,t,o,u,!1,r);i=f[0],a(f,s)}let f=!0;const h=t.machine.options?.maxIterations??1/0;let d=0,l=0;for(;"active"===i.status;){if(l++,l>1e3)throw new Error("Microstep count exceeded 1000");if(d++,d>h)throw new Error(`Infinite loop detected (>${h} microsteps)`);let t=f?at(i,u,o):[];const e=t.length?i:void 0;if(!t.length){if(!r.length)break;u=r.shift(),t=i.machine.getTransitionData(i,u,o.self)}const n=nt(t,i,o,u,!1,r);i=n[0],f=i!==e,a(n,t)}return"active"!==i.status&&i.children&&ct(i,o),{snapshot:i,microsteps:c}}function rt(t,e,n,s,o){return!!t.to&&it(t.to,e,n,s,o,s.machine.implementations)}function it(t,e,n,s,o,r){let i,c=!1;try{const a=()=>{throw c=!0,new Error("Effect triggered")};i=t({context:e,event:n,output:It(n),self:o,system:o.system,value:s.value,children:s.children,parent:{send:a},actions:r.actions,actorSources:r.actorSources,guards:r.guards,delays:r.delays},E({emit:a,cancel:a,log:a,raise:a,spawn:a,sendTo:a,stop:a},a))}catch(t){if(c)return!0;throw t}return void 0!==i}function ct(t,e){let n;if(!t.children||0===(n=Object.values(t.children).filter(Boolean)).length)return t;for(const t of n)e.stopChild(t);return xt(t,{children:{}})}function at(t,e,n){const s=new Set,o=t._nodes.filter(T);for(const r of o)t:for(let o=r;o;o=o.parent)if(o.always)for(const r of o.always)if(ut(r,e,t,o,n.self)){s.add(r);break t}return X(Array.from(s),new Set(t._nodes),t,e,n)}function ut(t,e,n,s,o){if(t.guard){const r={context:n.context,event:e,output:It(e),self:o,parent:o._parent,children:n.children,actions:s.machine.implementations.actions,actorSources:s.machine.implementations.actorSources,guards:s.machine.implementations.guards,delays:s.machine.implementations.delays,_snapshot:n};if(!t.guard(r))return!1}return!t.to||it(t.to,n.context,e,n,o,s.machine.implementations)}function ft(t){return!!t&&"object"==typeof t&&"machine"in t&&"value"in t}const ht=function(t){return St(t,this.value)},dt=function(t){return this.tags.has(t)},lt=function(t){return this.machine?._canTransition(this,t)??!1},pt=function(){const{_nodes:t,_stateInputs:e,tags:n,machine:s,getMeta:o,getInputs:r,toJSON:i,can:c,hasTag:a,matches:u,...f}=this;return{...f,tags:Array.from(n)}},yt=function(){const t={};for(const e of this._nodes)void 0!==e.meta&&(t[e.id]=e.meta);return t},gt=function(){return this._stateInputs};function vt(t){const e=new Set;for(const n of t)for(const t of n.tags)e.add(t);return e}function mt(t,e){return{status:t.status,output:t.output,error:t.error,machine:e,context:t.context,_nodes:t._nodes,value:t.value??D(e.root,t._nodes),tags:vt(t._nodes),children:t.children,historyValue:t.historyValue||{},_stateInputs:t._stateInputs||{},matches:ht,hasTag:dt,can:lt,getMeta:yt,getInputs:gt,toJSON:pt}}function xt(t,e={}){const n={...t,...e};return(e._nodes??t._nodes)===t._nodes?{status:n.status,output:n.output,error:n.error,machine:t.machine,context:n.context,_nodes:t._nodes,value:t.value,tags:t.tags,children:n.children,historyValue:n.historyValue||{},_stateInputs:n._stateInputs||{},matches:ht,hasTag:dt,can:lt,getMeta:yt,getInputs:gt,toJSON:pt}:mt({...n,value:void 0},t.machine)}function _t(t){const e={};for(const n in t){const s=t[n];Array.isArray(s)&&(e[n]=s.map(t=>({id:t.id})))}return e}function bt(t){let e;for(const n in t){const s=t[n];if(s&&"object"==typeof s)if("sessionId"in s&&"send"in s&&"ref"in s)e??=Array.isArray(t)?t.slice():{...t},e[n]={xstate$$type:Lt,id:s.id};else{const o=bt(s);o!==s&&(e??=Array.isArray(t)?t.slice():{...t},e[n]=o)}}return e??t}function St(t,e){const n=$t(t),s=$t(e);return"string"==typeof s?"string"==typeof n&&s===n:"string"==typeof n?n in s:Object.keys(n).every(t=>t in s&&St(n[t],s[t]))}function wt(t){if(Tt(t))return t;const e=[];let n="";for(let s=0;s<t.length;s++){switch(t.charCodeAt(s)){case 92:n+=t[s+1],s++;continue;case 46:e.push(n),n="";continue}n+=t[s]}return e.push(n),e}function $t(t){if(ft(t))return t.value;if("string"!=typeof t)return t;return Et(wt(t))}function Et(t){if(1===t.length)return t[0];const e={};let n=e;for(let e=0;e<t.length-1;e++)if(e===t.length-2)n[t[e]]=t[e+1];else{const s=n;n={},s[t[e]]=n}return e}function kt(t){return Tt(t)?t:[t]}function At(t){return void 0===t?[]:kt(t)}function jt(t,e,n,s){if("function"==typeof t){return t({context:e,event:n,output:It(n),self:s})}return t}function It(t){if(function(t){return t.type.startsWith("xstate.done.actor.")||t.type.startsWith("xstate.done.state.")}(t)){return t.output}}function Tt(t){return Array.isArray(t)}function Ot(t){return kt(t).map(t=>void 0===t||"string"==typeof t?{target:t}:"function"==typeof t?{to:t}:t)}function Mt(t){if(void 0!==t&&""!==t)return At(t)}function Nt(t,e,n){const s="object"==typeof t,o=s?t:void 0;return{next:(s?t.next:t)?.bind(o),error:(s?t.error:e)?.bind(o),complete:(s?t.complete:n)?.bind(o)}}function Dt(t,e){const n=e.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!n)return t.implementations.actorSources[e];const[,s,o]=n,r=t.getStateNodeById(o).config.invoke,i=(Array.isArray(r)?r[s]:r).src;return"string"==typeof i?t.implementations.actorSources[i]:i}function Pt(t,e){if(e===t)return!0;if("*"===e)return!0;if(!e.endsWith(".*"))return!1;const n=e.split("."),s=t.split(".");for(let t=0;t<n.length;t++){const e=n[t],o=s[t];if("*"===e){return t===n.length-1}if(e!==o)return!1}return!0}function Ct(t,e){return`${t.sessionId}.${e}`}let Rt=!1;const Lt=1;let Wt=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const Kt={clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console)};function Vt(t,e){try{t?.(e)}catch(t){u(t)}}function zt(t){return"object"==typeof t&&null!==t&&"args"in t&&"exec"in t}function Bt(t,e){if(!t?.length)return[];const n=[];for(const s of t)zt(s)?e.actionExecutor(s):n.push(s);return n}class Jt{constructor(t,n){this.logic=t,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this._boundProcess=this._process.bind(this),this.mailbox=new e(this._boundProcess),this.observers=new Set,this.eventListeners=new Map,this.logger=void 0,this._processingStatus=Wt.NotStarted,this._forceDeferredActions=!1,this._parent=void 0,this._syncSnapshot=void 0,this.ref=void 0,this._actorScope=void 0,this._lastSourceRef=void 0,this._collectedMicrosteps=[],this._collectedActions=[],this._collectedSent=[],this._initialEffects=void 0,this.registryKey=void 0,this.sessionId=void 0,this.system=void 0,this.trigger=void 0,this.src=void 0,this._deferred=[],this._pendingEffects=void 0;const s={...Kt,...n},{clock:o,logger:r,parent:i,syncSnapshot:c,id:a,registryKey:u,inspect:f}=s;this.system=i?i.system:s._systemRef?.current??function(t,e){let n=0;const s=new Map,o=new Map,r=new WeakMap,i=new Set,c={},{clock:a,logger:u}=e,f=(t,e,n,s,o)=>{i.size&&t&&(t._collectedSent??=[]).push({targetRef:e,targetId:e.id,event:n,delay:s,id:o})},h={schedule:(t,e,n,s,o=Math.random().toString(36).slice(2))=>{f(t,e,n,s,o);const r={source:t,target:e,event:n,delay:s,id:o,startedAt:Date.now()},i=Ct(t,o);l._snapshot._scheduledEvents[i]=r;const u=a.setTimeout(()=>{delete c[i],delete l._snapshot._scheduledEvents[i],d(t,e,n)},s);c[i]=u},cancel:(t,e)=>{const n=Ct(t,e),s=c[n];delete c[n],delete l._snapshot._scheduledEvents[n],void 0!==s&&a.clearTimeout(s)},cancelAll:t=>{for(const e in l._snapshot._scheduledEvents){const n=l._snapshot._scheduledEvents[e];n.source===t&&h.cancel(t,n.id)}}},d=(t,e,n)=>{const s=e.logic;if("function"==typeof s?.isInternalEventType&&s.isInternalEventType(n.type)&&t!==e)throw new Error(`Internal event "${n.type}" cannot be sent to actor "${e.id}" from outside.`);e._lastSourceRef=t,e._send(n)},l={children:s,reverseKeyedActors:r,keyedActors:o,_snapshot:{_scheduledEvents:(e?.snapshot&&e.snapshot.scheduler)??{}},_bookId:()=>"x:"+n++,_register:(t,e)=>(s.set(t,e),t),_unregister:t=>{s.delete(t.sessionId);const e=r.get(t);void 0!==e&&(o.delete(e),r.delete(t))},get:t=>o.get(t),getAll:()=>Object.fromEntries(o.entries()),_set:(t,e)=>{const n=o.get(t);if(n&&n!==e)throw new Error(`Actor with registry key '${t}' already exists.`);o.set(t,e),r.set(e,t)},inspect:t=>{const e=Nt(t);return i.add(e),{unsubscribe(){i.delete(e)}}},_sendInspectionEvent:e=>{if(!i.size)return;const n={...e,rootId:t.sessionId};i.forEach(t=>t.next?.(n))},_relay:(t,e,n)=>{f(t,e,n),d(t,e,n)},scheduler:h,getSnapshot:()=>({_scheduledEvents:{...l._snapshot._scheduledEvents}}),start:()=>{const t=l._snapshot._scheduledEvents;l._snapshot._scheduledEvents={};for(const e in t){const{source:n,target:s,event:o,delay:r,id:i}=t[e];h.schedule(n,s,o,r,i)}},_clock:a,_logger:u,_timerStrategy:e.timers};return l}(this,{clock:o,logger:r,timers:s.timers}),i||!s._systemRef||s._systemRef.current||(s._systemRef.current=this.system),f&&!i&&this.system.inspect(Nt(f)),this.sessionId=this.system._bookId(),this.id=a??this.sessionId,this.logger=n?.logger??this.system._logger,this.clock=n?.clock??this.system._clock,this._parent=i,this._syncSnapshot=c,this.options=s,this.src=s.src??t,this.ref=this,this._actorScope={self:this,id:this.id,sessionId:this.sessionId,logger:this.logger,defer:t=>{this._deferred.push(t)},system:this.system,stopChild:t=>{if(t._parent!==this)throw new Error(`Cannot stop non-child actor ${t.id}`);t._stop()},emit:t=>{for(const e of[this.eventListeners.get(t.type),this.eventListeners.get("*")])if(e)for(const n of e)Vt(n,t)},actionExecutor:t=>{const e=()=>{if(this._collectedActions.push({type:t.type,params:t.params}),!t.exec)return;const e=Rt;try{Rt=!0,t.exec()}finally{Rt=e}};this._processingStatus!==Wt.Running||this._forceDeferredActions?this._deferred.push(e):e()}},this.send=this.send.bind(this),this.trigger=new Proxy({},{get:(t,e)=>t=>{this.send({...t,type:e})}}),u&&(this.registryKey=u,this.system._set(u,this)),this._collectedMicrosteps=[];let h=n?.snapshot??n?.state;if(h&&"object"==typeof h&&"_pendingEffects"in h){const{_pendingEffects:t,...e}=h;this._pendingEffects=t,h=e}try{if(h)this._snapshot=this.logic.restoreSnapshot?this.logic.restoreSnapshot(h,this._actorScope):h;else if(n?._inert);else{const[t,e]=this.logic.initialTransition(this.options?.input,this._actorScope);this._snapshot=t,this._initialEffects=e}}catch(t){this._snapshot={status:"error",output:void 0,error:t},this._deferred.length=0}u&&"active"!==this._snapshot.status&&this.system._unregister(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this,parentRef:this._parent,id:this.id,src:this.src,snapshot:this._snapshot})}_setErrorSnapshot(t,e=this._snapshot){this._snapshot={...e,status:"error",error:t}}_recoverOrError(t,e){this._tryHandleExecutionError(t,e)||(this._setErrorSnapshot(t),this._error(t))}_tryHandleExecutionError(t,e=this._snapshot){const n=this.logic.getExecutionErrorEvent?.(e,t);if(!n)return!1;try{const[t,s]=this.logic.transition(e,n,this._actorScope);this._snapshot=t;const o=Bt(s,this._actorScope);return this.update(t,n),this.logic.executeEffects?.(o,this._actorScope),!0}catch{return!1}}_next(t){for(const e of this.observers)Vt(e.next,t)}update(t,e){this._snapshot=t;for(let e=0;e<this._deferred.length;e++){const n=this._deferred[e];try{n()}catch(e){if(this._deferred.length=0,this._tryHandleExecutionError(e,t))return;this._setErrorSnapshot(e,t);break}}switch(this._deferred.length=0,this._snapshot.status){case"active":this._next(t);break;case"done":{this._next(t),this._stopProcedure(),this._complete();const e=(n=this.id,s=this._snapshot.output,{type:`xstate.done.actor.${n}`,output:s,actorId:n});this._parent&&this.system._relay(this,this._parent,e);break}case"error":this._error(this._snapshot.error)}var n,s;this.system._sendInspectionEvent({type:"@xstate.transition",actorRef:this,event:e,sourceRef:this._lastSourceRef,targetRef:this,snapshot:t,microsteps:this._collectedMicrosteps,actions:this._collectedActions,sent:this._collectedSent,eventType:e.type}),this._collectedMicrosteps=[],this._collectedActions=[],this._collectedSent=[]}_flushInitialEffects(){if(!this._initialEffects)return!0;this._forceDeferredActions=!0;try{const t=Bt(this._initialEffects,this._actorScope);return this.logic.executeEffects?.(t,this._actorScope),this._initialEffects=void 0,!0}catch(t){return this._initialEffects=void 0,this._deferred.length=0,this._recoverOrError(t),"active"===this._snapshot.status}finally{this._forceDeferredActions=!1}}subscribe(t,e,n){const s=Nt(t,e,n);if(this._processingStatus!==Wt.Stopped)this.observers.add(s);else switch(this._snapshot.status){case"done":Vt(s.complete);break;case"error":{const t=this._snapshot.error;s.error?Vt(s.error,t):u(t);break}}return{unsubscribe:()=>{this.observers.delete(s)}}}on(t,e){let n=this.eventListeners.get(t);return n||(n=new Set,this.eventListeners.set(t,n)),n.add(e),{unsubscribe:()=>{n.delete(e)}}}select(t,e=Object.is){return{subscribe:(n,s,o)=>{const r=Nt(n,s,o);let i=t(this.getSnapshot());return this.subscribe({next:n=>{const s=t(n);e(i,s)||(i=s,r.next?.(s))},error:r.error,complete:r.complete})},get:()=>t(this.getSnapshot())}}start(){if(this._processingStatus===Wt.Running)return this;this._syncSnapshot&&this.subscribe({next:t=>{"active"===t.status&&this.system._relay(this,this._parent,{type:`xstate.snapshot.${this.id}`,snapshot:t})},error:()=>{}}),this.system._register(this.sessionId,this),this.registryKey&&this.system._set(this.registryKey,this),this._processingStatus=Wt.Running;const t=a(this.options.input);this._lastSourceRef=this._parent;switch(this._snapshot.status){case"done":return this._flushInitialEffects()?(this.update(this._snapshot,t),this):this;case"error":return this._error(this._snapshot.error),this}if(this._parent||this.system.start(),this.logic.start)try{this.logic.start(this._snapshot,this._actorScope)}catch(t){return this._setErrorSnapshot(t),this._error(t),this}if(!this._flushInitialEffects())return this;if(this.update(this._snapshot,t),this._pendingEffects){const t=this.options.timers??this.system._timerStrategy??"resume";for(const e of this._pendingEffects)"@xstate.raise"===e.type&&this.system.scheduler.schedule(this,this,e.event,Ft(t,e),e.id);this._pendingEffects=void 0}return this.mailbox.start(),this}_process(t){let e,n;try{e=this.logic.transition(this._snapshot,t,this._actorScope)}catch(t){n={err:t}}if(n)return void this._recoverOrError(n.err);let o=this._snapshot;try{const[n,s]=e;o=n,this._snapshot=o;const r=Bt(s,this._actorScope);this.update(o,t),this.logic.executeEffects?.(r,this._actorScope)}catch(t){return void this._recoverOrError(t,o)}t.type===s&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===Wt.Stopped?this:(this.mailbox.clear(),this._processingStatus===Wt.NotStarted?(this._processingStatus=Wt.Stopped,this):(this.mailbox.enqueue({type:s}),this.system._unregister(this),this))}stop(){if(this._parent)throw new Error("A non-root actor cannot be stopped directly.");return this._stop()}_complete(){for(const t of this.observers)Vt(t.complete);this.observers.clear(),this.eventListeners.clear()}_error(t){if(this._stopProcedure(),this.observers.size){let e=!1;for(const n of this.observers){const s=n.error;e||=!s,Vt(s,t)}this.observers.clear(),e&&u(t)}else this._parent||u(t);var e;this.eventListeners.clear(),this._parent&&this.system._relay(this,this._parent,{type:`xstate.error.actor.${e=this.id}`,error:t,actorId:e})}_stopProcedure(){this._processingStatus===Wt.Running&&(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new e(this._boundProcess),this._processingStatus=Wt.Stopped,this.system._unregister(this))}_send(t){this._processingStatus!==Wt.Stopped&&this.mailbox.enqueue(t)}send(t){this.system._relay(void 0,this,t)}toJSON(){return{xstate$$type:Lt,id:this.id}}getPersistedSnapshot(t){const e=this.logic.getPersistedSnapshot(this._snapshot,t),n=this.system._snapshot._scheduledEvents;let s;const o=Date.now();for(const t in n){const e=n[t];e.source===this&&e.target===this&&(s??=[]).push({type:"@xstate.raise",event:e.event,id:e.id,delay:e.delay,startedAt:e.startedAt,elapsed:Math.max(0,o-e.startedAt)})}return s??=this._pendingEffects,s?{...e,_pendingEffects:s}:e}[f](){return this}getSnapshot(){return this._snapshot}}function Ft(t,e){if("function"==typeof t)return t(e);switch(t){case"restart":return e.delay;case"absolute":return Math.max(0,e.startedAt+e.delay-Date.now());default:return Math.max(0,e.delay-e.elapsed)}}function qt(t,e){return new Jt(t,e)}const Ht=new WeakMap,Ut="xstate.logic.effect.resolve",Gt="xstate.logic.effect.reject",Xt="xstate.logic.effect.start";function Zt(t){let e=Ht.get(t);return e||(e=new Map,Ht.set(t,e)),e}function Qt(t,e){if(t?.length)for(const n of t)switch(n.type){case"emit":e.emit(n.event);break;case"sendBack":{const t=e.self._parent;t&&e.system._relay(e.self,t,n.event);break}case"raise":e.system._relay(e.self,e.self,n.event);break;case"effect":{if(!n.key){const t=n.exec();"function"==typeof t&&Zt(e.self).set(Symbol(),{cleanup:t});break}const t=Zt(e.self);if(t.has(n.key))break;const s=n.exec();t.set(n.key,{cleanup:"function"==typeof s?s:void 0});break}case"cleanupEffects":{const t=Ht.get(e.self);if(!t)break;for(const{cleanup:e}of t.values())e?.();Ht.delete(e.self);break}}}function Yt(t){const e=(e,n,o)=>{if("active"!==e.status)return[e,[]];if(n.type===s)return[{...e,status:"stopped",input:void 0},[{type:"cleanupEffects"}]];if(n.type===Xt)return[{...e,effects:{...e.effects,[n.key]:{status:"active"}}},[]];if(n.type===Ut)return[{...e,effects:{...e.effects,[n.key]:{status:"done",output:n.output}}},[]];if(n.type===Gt)return[{...e,effects:{...e.effects,[n.key]:{status:"error",error:n.error}}},[]];const r=[],i={},c={emit:t=>{r.push({type:"emit",event:t})},sendBack:t=>{r.push({type:"sendBack",event:t})},raise:t=>{r.push({type:"raise",event:t})},effect:(t,n)=>{if("string"==typeof t)return s=t,o=n,void(e.effects?.[s]||(r.push({type:"effect",key:s,exec:o}),i[s]={status:"active"}));var s,o;r.push({type:"effect",exec:t})}},a=t.run({context:e.context,event:n,input:e.input,system:o.system,self:o.self,emit:o.emit},c),u={...e,...a||{}};return("context"in e||void 0!==a?.context)&&(u.context=a?.context??e.context),(a?.effects||Object.keys(i).length)&&(u.effects={...e.effects,...a?.effects,...i}),[u,r]},n={id:t.id,config:t,transition:e,start:(t,n)=>{const[s,o]=e(t,a(t.input),n);Object.assign(t,s),Qt(o,n)},initialTransition:(e,n)=>{const s=function(t,e){return"function"==typeof t?t({input:e}):t}(t.context,e),o={status:"active",output:void 0,error:void 0,input:e};return void 0!==s&&(o.context=s),[{...o},[]]},getInitialSnapshot:(t,e)=>n.initialTransition(e,t)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t,executeEffects:Qt};return n}const te=new WeakMap;const ee="xstate.observable.next",ne="xstate.observable.error",se="xstate.observable.complete";const oe="xstate.async.resolve",re="xstate.async.reject";class ie extends Error{constructor(t){super(`Async logic timed out after ${t}.`),this.name="TimeoutError"}}const ce=Yt({context:void 0,run:()=>{}});function ae(t,{machine:e,context:n},s,o){return(r,i)=>{const c=((r,i)=>{if("string"==typeof r){const c=Dt(e,r);if(!c)throw new Error(`Actor logic '${r}' not implemented in machine '${e.id}'`);const a=qt(c,{id:i?.id,parent:t.self,syncSnapshot:i?.syncSnapshot,input:"function"==typeof i?.input?i.input({context:n,event:s,self:t.self}):i?.input,src:r,registryKey:i?.registryKey});return o[a.id]=a,a}return qt(r,{id:i?.id,parent:t.self,syncSnapshot:i?.syncSnapshot,input:i?.input,src:r,registryKey:i?.registryKey})})(r,i);return o[c.id]=c,t.defer(()=>{c._processingStatus!==Wt.Stopped&&c.start()}),c}}const ue=new WeakMap;function fe(t,e,n){let s=ue.get(t);return s?e in s||(s[e]=n()):(s={[e]:n()},ue.set(t,s)),s[e]}const he={};class de{constructor(t,e){this.config=t,this.key=void 0,this.id=void 0,this.type=void 0,this.path=void 0,this.states=void 0,this.history=void 0,this.entry=void 0,this.exit=void 0,this.parent=void 0,this.machine=void 0,this.meta=void 0,this.output=void 0,this.order=-1,this.description=void 0,this.tags=[],this.transitions=void 0,this.always=void 0,this.invoke=void 0,this.on=void 0,this.after=void 0,this.events=void 0,this.ownEvents=void 0,this.parent=e._parent,this.key=e._key,this.machine=e._machine,this.path=this.parent?this.parent.path.concat(this.key):[];const n=this.config.states?Object.keys(this.config.states)[0]:void 0;if(this.id=this.config.id||[this.machine.id,...this.path].join("."),this.type=this.config.type||(void 0!==n?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,function(t){const e=t.config;if("choice"!==t.type)return;if("function"!=typeof e.choice)throw new Error(`Missing \`choice\` function on "${t.id}"`)}(this),this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?function(t,e){const n={},s=Object.keys(t);for(let o=0;o<s.length;o++){const r=s[o];n[r]=e(t[r],r,t,o)}return n}(this.config.states,(t,e)=>new de(t,{_parent:this,_key:e,_machine:this.machine})):he,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}".`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=this.config.entry,this.exit=this.config.exit,this.entry&&(this.entry._special=!0),this.exit&&(this.exit._special=!0),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=At(t.tags).slice(),this.invoke=At(this.config.invoke).map((t,e)=>{const{src:n,registryKey:s}=t,o=(r=this.id,`${e}.${r}`);var r;const i=t.id??o,c="string"==typeof n?n:`xstate.invoke.${o}`;return{...t,src:c,logic:n,id:i,registryKey:s}})}_initialize(){this.after=function(t){const e=t.config.after,n=t.config.timeout,s=t.config.onTimeout,i=t.invoke.filter(t=>void 0!==t.timeout);if(!e&&void 0===n&&0===i.length)return[];const c=[];if(e)for(const n of Object.keys(e)){const s=Number.isNaN(+n)?n:+n;c.push({event:o(s,t.id),delay:s,transitions:e[n],fromDelaysMap:!0})}var a;void 0!==n&&s&&c.push({event:(a=t.id,{type:`xstate.timeout.${a}`}),delay:n,transitions:s,fromDelaysMap:!0});for(const t of i)c.push({event:r(t.id),delay:t.timeout,transitions:t.onTimeout,fromDelaysMap:!1});const u=[];for(const{event:e,delay:n,transitions:s,fromDelaysMap:o}of c){const r=R(t,e,e=>I(n,o?e.delays:{},{context:e.context,event:e.event,stateNode:t}));for(const t of Ot(s))u.push({...t,event:r,delay:n})}return u.map(e=>({...L(t,e.event,e),delay:e.delay}))}(this),this.transitions=function(t){const e=new Map;if(t.config.on)for(const n of Object.keys(t.config.on)){if(""===n)throw new Error("Null event transition key");const s=t.config.on[n];e.set(n,le(s,e=>L(t,n,e)))}if(t.config.onDone){const n=`xstate.done.state.${t.id}`;e.set(n,le(t.config.onDone,e=>L(t,n,e)))}if(t.config.onError){const n="xstate.error.*";e.set(n,le(t.config.onError,e=>L(t,n,e)))}const n=(e,n)=>L(t,e,{to:(t,e)=>(e.cancel(n),{})}),s=(e,n,s)=>{const{target:o,to:r,reenter:i,...c}=n;return L(t,e,{...c,reenter:i,to:(t,e)=>{if(r){let n=!1;const o=new Proxy(e,{apply:(t,e,s)=>(n=!0,Reflect.apply(t,e,s)),get(t,e,s){const o=Reflect.get(t,e,s);return"function"!=typeof o?o:(...e)=>(n=!0,o.apply(t,e))}}),i=r(t,o);return(void 0!==i||n)&&e.cancel(s),i}return e.cancel(s),{target:o,reenter:i}}})};for(const o of t.invoke){const i=void 0!==o.timeout?r(o.id).type:void 0;if(o.onDone){const r=`xstate.done.actor.${o.id}`,c=le(o.onDone,e=>i?s(r,e,i):L(t,r,e));i&&c.push(n(r,i)),e.set(r,c)}else if(i){const t=`xstate.done.actor.${o.id}`;e.set(t,[n(t,i)])}if(o.onError){const n=`xstate.error.actor.${o.id}`;e.set(n,le(o.onError,e=>i?s(n,e,i):L(t,n,e)))}if(o.onSnapshot){const n=`xstate.snapshot.${o.id}`;e.set(n,le(o.onSnapshot,e=>L(t,n,e)))}}for(const n of t.after){let t=e.get(n.eventType);t||(t=[],e.set(n.eventType,t)),t.push(n)}return e}(this),"choice"===this.type?this.always=function(t){const e=t.config.choice,n=e=>{if(!e||void 0===e.target)throw new Error(`Choice "${t.id}" has no target`);return e};return[L(t,"",{to:t=>n(e(t))})]}(this):this.config.always&&(this.always=le(this.config.always,t=>L(this,"",t)));for(const t of Object.keys(this.states))this.states[t]._initialize();this._refreshEventMetadata()}_refreshEventMetadata(){const t={},e=[];for(const[n,s]of this.transitions)t[n]=s.slice(),s.some(t=>t.target||t.reenter||t.to)&&e.push(n);this.on=t,this.ownEvents=e;const n=new Set(e);for(const t of Object.values(this.states))for(const e of t.events)n.add(e);this.events=Array.from(n)}get initial(){return fe(this,"initial",()=>function(t,e){const n="object"==typeof e&&null!==e?e.target:e,s="object"==typeof e&&null!==e?e.input:void 0,o="string"==typeof n?t.states[n]:void 0;if(!o&&n)throw new Error(`Initial state "${n}" not found on "#${t.id}"`);const r={source:t,target:o?[o]:void 0,input:s};return r}(this,this.config.initial))}next(t,e,n){const s=e.type,o=fe(this,`candidates-${s}`,()=>function(t,e){const n=t.transitions.get(e),s=[...t.transitions.keys()].filter(t=>t!==e&&Pt(e,t)).sort((t,e)=>e.length-t.length).flatMap(e=>t.transitions.get(e));return n?[...n,...s]:s}(this,s));for(const s of o){if(ut(s,e,t,this,n))return[s]}}}function le(t,e){const n=Ot(t),s=new Array(n.length);for(let t=0;t<n.length;t++)s[t]=e(n[t]);return s}let pe,ye;function ge(){return pe??=qt({transition:t=>[t,[]],initialTransition:()=>[{status:"active",output:void 0,error:void 0},[]],getInitialSnapshot:()=>({status:"active",output:void 0,error:void 0}),getPersistedSnapshot:t=>t})}class ve{constructor(t,e){this.config=t,this.version=void 0,this.schemas=void 0,this.implementations=void 0,this.options=void 0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.internalEventDescriptors=void 0,this._json=void 0,this.id=t.id||"(machine)",this.implementations={actorSources:t.actorSources??{},actions:t.actions??{},delays:t.delays??{},guards:t.guards??{},...e},this.version=this.config.version,this.schemas=this.config.schemas,this.internalEventDescriptors=this.config.internalEvents??[],this.options={maxIterations:1/0,...this.config.options},this.transition=this.transition.bind(this),this.initialTransition=this.initialTransition.bind(this),this.getInitialSnapshot=this.getInitialSnapshot.bind(this),this.getPersistedSnapshot=this.getPersistedSnapshot.bind(this),this.restoreSnapshot=this.restoreSnapshot.bind(this),this.start=this.start.bind(this),this.root=new de(t,{_key:this.id,_machine:this}),this.root._initialize(),function(t){const e=[],n=s=>{Object.values(s).forEach(s=>{if(s.config.route&&s.config.id){const o=s.config.id,r=s.config.route,i=({event:t})=>t.to===`#${o}`;if("function"==typeof r)return e.push(L(t,"xstate.route",{guard:i,to:t=>{const e=r(t);if(e)return{...!0===e?{}:e,target:`#${o}`}}})),void(s.states&&n(s.states));const{guard:c,...a}=r,u={...a,guard:i,target:`#${o}`};e.push(L(t,"xstate.route",u))}s.states&&n(s.states)})};n(t.states),e.length>0&&t.transitions.set("xstate.route",e)}(this.root),this.root._refreshEventMetadata(),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:n,actorSources:s,delays:o}=this.implementations,r=new ve(this.config,{actions:{...e,...t.actions},guards:{...n,...t.guards},actorSources:{...s,...t.actorSources},delays:{...o,...t.delays}});return r._json=this._json,r}resolveState(t){const e=(n=this.root,s=t.value,D(n,N(F(n,s))));var n,s;const o=N(F(this.root,e));return mt({_nodes:[...o],value:e,context:t.context||{},children:{},status:P(o,this.root)?"done":t.status||"active",output:t.output,error:t.error,historyValue:t.historyValue},this)}transition(t,e,n){const s=this._transitionFast(t,e,n);if(s)return[s,[]];const{snapshot:o,microsteps:r}=ot(t,e,n,[]);return[o,r.flatMap(([,t])=>t)]}_transitionFast(t,e,n){if("active"!==t.status||"string"!=typeof t.value||this.root.always?.length)return;const s=this.root.states[t.value];if(!s||"atomic"!==s.type||s.exit||s.invoke.length||s.always?.length||s.after?.length)return;const o=s.transitions.get(e.type);if(1!==o?.length)return;const r=o[0];if(r.guard||r.actions||r.to||r.reenter||r.input||"function"==typeof r.context||r.target&&1!==r.target.length)return;const i=r.target?.[0]??s,c=i!==s;if(i.parent!==this.root||"atomic"!==i.type||c&&(i.entry||i.invoke.length||i.always?.length||i.after?.length))return;const a=void 0!==r.context?{...t.context,...r.context}:t.context,u=n.self._collectedMicrosteps||[];return u.push(r),n.self._collectedMicrosteps=u,xt(t,{...a!==t.context?{context:a}:{},...c?{_nodes:[this.root,i]}:{}})}microstep(t,e,n){const{microsteps:s}=ot(t,e,n,[]),o=new Array(s.length);for(let t=0;t<s.length;t++)o[t]=s[t][0];return o}getTransitionData(t,e,n){return q(this.root,t.value,t,e,n)||[]}isInternalEventType(t){for(const e of this.internalEventDescriptors)if(Pt(t,e))return!0;return!1}_canTransition(t,e){const n=ge(),s=function(){if(ye)return ye;const t=ge();return ye={self:t,logger:()=>{},id:"",sessionId:"",defer:()=>{},system:t.system,stopChild:()=>{},emit:()=>{},actionExecutor:()=>{}},ye}(),o=this.getTransitionData(t,e,n);if(!o?.length)return!1;for(const r of o){if(void 0!==r.target)return!0;const o=st(r,t,e,s,{resolveActions:!1});if(o.targets?.length||o.context||rt(r,t.context,e,t,n))return!0}return!1}getExecutionErrorEvent(t,e){if("active"===t?.status&&t._nodes?.some(t=>t.config.onError))return c("execution",e)}_getPreInitialState(t,e){const{context:n}=this.config,s=mt({context:"function"!=typeof n&&n?n:{},_nodes:[this.root],children:{},status:"active"},this);if("function"==typeof n){const o={},r=n({spawn:ae(t,s,e,o),input:e.input,self:t.self,actorSources:this.implementations.actorSources}),[i]=$(s,e,t,[]);return r&&(i.context=r),Object.keys(o).length>0&&(i.children={...i.children,...o}),i}return s}getInitialSnapshot(t,e){return this.initialTransition(e,t)[0]}initialTransition(t,e){const n=a(t),s=[],o=this._getPreInitialState(e,n);let r,i,u=[],f=[];try{[r,u]=et(this.root,o,e,n,s),({snapshot:i,microsteps:f}=ot(r,n,e,s))}catch(t){if(!this.root.config.onError)throw t;const n=ot(o,c("execution",t),e,[]);i=n.snapshot,f=n.microsteps,u=[]}return[i,[...u,...f.flatMap(([,t])=>t)]]}start(t){if(t?.children)for(const e of Object.values(t.children))e._rehydrated&&"active"===e.getSnapshot?.().status&&e.start()}getStateNodeById(t){const e=wt(t),n=e.slice(1),s=C(e[0])?e[0].slice(1):e[0],o=this.idMap.get(s);if(!o)throw new Error(`Child state node '#${s}' does not exist on machine '${this.id}'`);return J(o,n)}getPersistedSnapshot(t,e){return function(t,e){const{_nodes:n,_stateInputs:s,tags:o,machine:r,children:i,context:c,can:a,hasTag:u,matches:f,getMeta:h,getInputs:d,toJSON:l,...p}=t,y={};for(const t in i){const n=i[t];y[t]={snapshot:n.getPersistedSnapshot(e),src:n.src,registryKey:n.registryKey,syncSnapshot:n._syncSnapshot}}const g={...p,context:bt(c),children:y,historyValue:_t(p.historyValue)};return void 0!==r.version&&(g.version=r.version),g}(t,e)}restoreSnapshot(t,e){const n=t.version;if(n!==this.version){const e=this.config.migrate;if("function"!=typeof e)throw new Error(`Persisted snapshot version '${n}' does not match machine version '${this.version}'.`);t=e(t,n)}const s=t,o={},r=s.children;for(const t of Object.keys(r)){const n=r[t],s=n.snapshot,i=n.src,c="string"==typeof i?Dt(this,i):i;if(!c)continue;const a=qt(c,{id:t,parent:e.self,syncSnapshot:n.syncSnapshot,snapshot:s,src:i,registryKey:n.registryKey});a._rehydrated=!0,o[t]=a}const i=(t=>{if(!t||"object"!=typeof t)return{};const e={};for(const n of Object.keys(t)){const s=t[n];for(const t of s){let s;if(t instanceof de)s=t;else try{s=this.root.machine.getStateNodeById(t.id)}catch{}s&&(e[n]??=[],e[n].push(s))}}return e})(s.historyValue),c=Array.from(N(F(this.root,s.value))),{version:a,...u}=t,f=mt({...u,children:o,_nodes:c,value:s.value,historyValue:i},this),h=new WeakSet;return function t(e){if(!h.has(e)){h.add(e);for(const n of Object.keys(e)){const s=e[n];if(s&&"object"==typeof s){if("xstate$$type"in s&&s.xstate$$type===Lt){e[n]=o[s.id];continue}t(s)}}}}(f.context),f}}function me(t){return new ve(t)}const xe={actions:{},actorSources:{},guards:{},delays:{}},_e=[],be=[],Se=new Set(Object.values(h));function we(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function $e(t,e){return"function"==typeof t?t(e):t}function Ee(t,e,n){return"function"==typeof t?t({context:e,event:n}):t}function ke(t,e){for(const n of Object.keys(e))if(!Object.prototype.hasOwnProperty.call(t,n)||!Object.is(t[n],e[n]))return{...t,...e};return t}function Ae(t,e,n,s){return{status:t.status,output:t.output,error:t.error,value:e,context:n,input:t.input,children:t.children,_stateInput:s,machine:t.machine}}function je(t){return{status:"stopped",output:void 0,error:void 0,value:t.value,context:t.context,input:void 0,children:t.children,_stateInput:t._stateInput,machine:t.machine}}function Ie(t){const e=j(t);return void 0!==e?e:"string"==typeof t?parseFloat(t)||0:t}function Te(t){return/^error(\.|$)/.test(t)?`xstate.${t}`:t}function Oe(t){return t.startsWith("xstate.error.")?t.slice(7):t}function Me(t){return!!t&&"object"==typeof t&&"string"==typeof t["@expr"]}function Ne(t){return Me(t)||function(t){return!!t&&"object"==typeof t&&"string"==typeof t["@code"]}(t)}function De(t,e){return"number"==typeof e?`${t}[${e}]`:`${t}.${e}`}function Pe(t){const e={};if(!t)return e;for(const n of Object.keys(t)){const s=t[n];"number"==typeof s?e[n]=s:s&&"object"==typeof s&&"number"==typeof s.duration&&(e[n]=s.duration)}return e}function Ce(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function Re(t,e){Array.isArray(t)&&t.forEach((n,s)=>{if(void 0===n.when&&s!==t.length-1)throw new Error(`Choice fallback branch at ${e}[${s}] must be last.`)})}let Le="session_scxml",We="";function Ke(t,e,n,s){const o=`\nwith (context) {\n return (${e});\n}\n `.trim(),r=new Function("context","_event","_sessionid","_name","_ioprocessors","In",o),i=`#_scxml_${Le}`,c=n&&n._scxmlExternal,a=n&&"@xstate.init"===n.type,u=n&&"string"==typeof n.type&&n.type.startsWith("xstate.done."),f=n&&n._scxmlEventType;return r(t,n&&!a?{name:n._scxmlEventName??Oe(n.type),type:f||(c?"external":"internal"),sendid:n._scxmlSendId,origin:c?i:void 0,origintype:c?"http://www.w3.org/TR/scxml/#SCXMLEventProcessor":void 0,invokeid:n._scxmlInvokeId,data:u?n.output:void 0!==n._scxmlEventData?n._scxmlEventData:n}:void 0,Le,We,{scxml:{location:`#_scxml_${Le}`}},t=>{if(!s)return!1;try{const e=s.getSnapshot?.();if(e?._nodes){const n=t.replace(/\./g,"$");return e._nodes.some(t=>t.id===n||t.id.endsWith("."+n))}}catch{}return!1})}function Ve(t,e){const n=Object.keys(t),s=n.map(t=>`let ${t} = context.${t};`).join("\n"),o=n.map(t=>`updates.${t} = ${t};`).join("\n");return new Function("context","updates",`\n${s}\n${e}\n${o}\nreturn updates;\n `)(t,{})}function ze(t){return!Ne(t)&&t.type.startsWith("@xstate.")}function Be(t){if("function"==typeof t)return{"@code":t.toString(),"@lang":"ts"};if(null===t||"object"!=typeof t)return"bigint"==typeof t||"symbol"==typeof t?void 0:t;if(function(t){return!!t&&"object"==typeof t&&"function"==typeof t.transition&&"function"==typeof t.getInitialSnapshot}(t))return;if(function(t){return!!t&&"object"==typeof t&&"~standard"in t}(t))return;if(Array.isArray(t))return t.map(Be).filter(t=>void 0!==t);if(t.constructor!==Object&&void 0!==t.constructor)return;const e={};for(const n of Object.keys(t)){const s=t[n];if(void 0!==s){const t=Be(s);void 0!==t&&(e[n]=t)}}return e}function Je(t){if(Array.isArray(t)){const e=t.map(Je).filter(t=>void 0!==t);return e.length?e:void 0}const e=t,n={};for(const t of Object.keys(e)){const s=e[t];void 0!==s&&(n[t]="src"===t&&"string"!=typeof s?s.id:Be(s),void 0===n[t]&&delete n[t])}return void 0===n.src?void 0:n}function Fe(t){if(!t)return;const e={};for(const n of Object.keys(t)){const s=t[n];e[n]="function"==typeof s?void 0:Be(s),void 0===e[n]&&delete e[n]}return e}function qe(t){const e={};for(const n of Object.keys(t)){if("states"===n||"invoke"===n)continue;const s=t[n];void 0!==s&&(e[n]=Be(s))}if(void 0!==t.invoke){const n=Je(t.invoke);void 0!==n&&(e.invoke=n)}if(t.states){const n={};for(const e of Object.keys(t.states))n[e]=qe(t.states[e]);e.states=n}return e}function He(t){const e=qe(t);if(void 0!==t.internalEvents&&(e.internalEvents=Be(t.internalEvents)),t.schemas){const n={};for(const e of Object.keys(t.schemas)){const s=t.schemas[e];n[e]=s&&"object"==typeof s&&!("~standard"in s)?Fe(s):Be(s),void 0===n[e]&&delete n[e]}e.schemas=n}for(const n of["actions","guards","actorSources","delays"])if(t[n]){const s=Fe(t[n]);s&&Object.keys(s).length?e[n]=s:delete e[n]}return e}function Ue(t={}){const{states:e={},schemas:n,actions:s,actorSources:o,guards:r,delays:i}=t;return{extend:e=>Ue(function(t,e){return{...t,...e,schemas:Xe(t.schemas,e.schemas),states:Ge(t.states,e.states),actions:Ge(t.actions,e.actions),actorSources:Ge(t.actorSources,e.actorSources),guards:Ge(t.guards,e.guards),delays:Ge(t.delays,e.delays)}}(t,e)),createMachine(t){const e=Xe(t.schemas,n),c=Ge(s,t.actions),a=Ge(o,t.actorSources),u=Ge(r,t.guards),f=Ge(i,t.delays);return new ve({...t,...e?{schemas:e}:void 0,...c?{actions:c}:void 0,...a?{actorSources:a}:void 0,...u?{guards:u}:void 0,...f?{delays:f}:void 0})},createStateConfig:(...t)=>t.length>1?t[1]:t[0],states:e}}function Ge(t,e){return t||e?{...t,...e}:void 0}function Xe(t,e){if(t||e)return{...t,...e,events:Ge(t?.events,e?.events),emitted:Ge(t?.emitted,e?.emitted),children:Ge(t?.children,e?.children)}}function Ze(t){const e=qt(t,{_inert:!0});return{self:e,defer:()=>{},id:"",logger:()=>{},sessionId:"",stopChild:()=>{},system:e.system,emit:()=>{},actionExecutor:()=>{}}}let Qe=function(t){return t.Internal="#_internal",t}({});const Ye={timeout:1/0};t.Actor=Jt,t.SimulatedClock=class{constructor(){this.timeouts=new Map,this._now=0,this._id=0,this._flushing=!1,this._flushingInvalidated=!1}now(){return this._now}getId(){return this._id++}setTimeout(t,e){this._flushingInvalidated=this._flushing;const n=this.getId();return this.timeouts.set(n,{start:this.now(),timeout:e,fn:t}),n}clearTimeout(t){this._flushingInvalidated=this._flushing,this.timeouts.delete(t)}set(t){if(this._now>t)throw new Error("Unable to travel back in time");this._now=t,this.flushTimeouts()}flushTimeouts(){if(this._flushing)return void(this._flushingInvalidated=!0);this._flushing=!0;const t=[...this.timeouts].sort(([t,e],[n,s])=>{const o=e.start+e.timeout;return s.start+s.timeout>o?-1:1});for(const[e,n]of t){if(this._flushingInvalidated)return this._flushingInvalidated=!1,this._flushing=!1,void this.flushTimeouts();this.now()-n.start>=n.timeout&&(this.timeouts.delete(e),n.fn.call(null))}this._flushing=!1,this._flushingInvalidated&&(this._flushingInvalidated=!1,this.flushTimeouts())}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=Qe,t.StateMachine=ve,t.StateNode=de,t.TimeoutError=ie,t.__unsafe_getAllOwnEventDescriptors=function(t){return[...new Set([...t._nodes.flatMap(t=>t.ownEvents)])]},t.assertEvent=function(t,e){const n=At(e);if(!n.some(e=>Pt(t.type,e))){const e=1===n.length?`type matching "${n[0]}"`:`one of types matching "${n.join('", "')}"`;throw new Error(`Expected event ${JSON.stringify(t)} to have ${e}`)}},t.checkStateIn=function(t,e){if("string"==typeof e&&C(e)){const n=t.machine.getStateNodeById(e);return t._nodes.some(t=>t===n)}return t.matches(e)},t.createActor=qt,t.createAsyncLogic=function(t){const e=t;return Yt({id:e.id,schemas:e.schemas,context:void 0,run:({event:t,input:s,self:o,system:r},i)=>{switch(t.type){case oe:{const e=t.data??t.output;return{status:"done",output:e,input:void 0,effects:{async:{status:"done",output:e}}}}case re:{const e=t.data??t.error;return{status:"error",error:e,input:void 0,effects:{async:{status:"error",error:e}}}}}if(t.type===n)return i.effect(()=>{const t=o,n=new AbortController,c=e.timeout,a=j(c),u=void 0===a?void 0:r._clock.setTimeout(()=>{"active"===o.getSnapshot().status&&(n.abort(),r._relay(t,t,{type:re,data:new ie(c)}))},a),f=()=>{void 0!==u&&r._clock.clearTimeout(u)};return Promise.resolve(e.run({input:s,system:r,self:o,signal:n.signal},{emit:i.emit,step:async(e,n)=>{const s=o.getSnapshot().effects?.[e];if("done"===s?.status)return s.output;if("error"===s?.status)throw s.error;if("active"===s?.status)return function(t,e){return new Promise((n,s)=>{const o=t.subscribe(t=>{const r=t.effects?.[e];"done"===r?.status?(o.unsubscribe(),n(r.output)):"error"===r?.status&&(o.unsubscribe(),s(r.error))})})}(o,e);r._relay(t,t,{type:Xt,key:e});try{const s=await n();return r._relay(t,t,{type:Ut,key:e,output:s}),s}catch(n){throw r._relay(t,t,{type:Gt,key:e,error:n}),n}}})).then(e=>{f(),"active"===o.getSnapshot().status&&r._relay(t,t,{type:oe,data:e})},e=>{f(),"active"===o.getSnapshot().status&&r._relay(t,t,{type:re,data:e})}),()=>{n.abort(),f()}}),{effects:{async:{status:"active"}}}}})},t.createCallbackLogic=function(t){const e="function"==typeof t?t:t.run;return Yt({schemas:"function"==typeof t?void 0:t.schemas,context:void 0,run:(t,n)=>{const{event:s,input:o,self:r,system:i}=t,c=t.emit,a=te.get(r);a?.receivers?.forEach(t=>t(s)),n.effect("callback",()=>{const t={receivers:void 0,dispose:void 0};return te.set(r,t),t.dispose=e({input:o,system:i,self:r,sendBack:t=>{if("stopped"===r.getSnapshot().status)return;const e=r._parent;e&&i._relay(r,e,t)},receive:e=>{t.receivers??=new Set,t.receivers.add(e)},emit:c}),()=>{te.delete(r),t.receivers?.clear(),t.dispose?.()}})}})},t.createEmptyActor=function(){return qt(ce)},t.createEventObservableLogic=function(t){const e="function"==typeof t?t:t.run,n={config:e,transition:(t,e)=>{if("active"!==t.status)return[t,[]];switch(e.type){case ne:return[{...t,status:"error",error:e.data,input:void 0,_subscription:void 0},[]];case se:return[{...t,status:"done",input:void 0,_subscription:void 0},[]];case s:return t._subscription.unsubscribe(),[{...t,status:"stopped",input:void 0,_subscription:void 0},[]];default:return[t,[]]}},initialTransition:(t,e)=>[{status:"active",output:void 0,error:void 0,context:void 0,input:t,_subscription:void 0},[]],getInitialSnapshot:(t,e)=>n.initialTransition(e,t)[0],start:(t,{self:n,system:s,emit:o})=>{"done"!==t.status&&(t._subscription=e({input:t.input,system:s,self:n,emit:o}).subscribe({next:t=>{n._parent&&s._relay(n,n._parent,t)},error:t=>{s._relay(n,n,{type:ne,data:t})},complete:()=>{s._relay(n,n,{type:se})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})};return n},t.createFSM=function(t){const e={id:t.id??"(fsm)",implementations:xe};!function(t){for(const[e,n]of Object.entries(t.states))for(const[t,s]of Object.entries(n.on??{}))for(const n of we(s))if("string"==typeof n)throw new Error(`Invalid transition for "${e}.${t}": use { target: "${n}" } instead of a string target.`)}(t);const o=(t,e,n,s)=>{if(!s?.length)return[t,_e];const o=function(t){const e=[];for(const n of t){if(!n||"object"!=typeof n||!("action"in n)||"function"!=typeof n.action||Se.has(n.action)||"_special"in n.action)return;e.push({type:n.action.name||"(anonymous)",params:void 0,args:n.args,exec:n.args.length?n.action.bind(null,...n.args):n.action})}return e}(s);return o?[t,o]:$(t,e,n,s)},r=(t,e,n,s,r,i)=>{if(!s)return[t,_e];const c=[],a=S(n,c,i,!0);let u;const f=Array.isArray(s)?s.length:1;for(let o=0;o<f;o++){const i=(Array.isArray(s)?s[o]:s)({context:u??t.context,event:e,input:r,value:t.value,self:n.self,system:n.system,parent:n.self._parent,children:t.children},a);if(void 0!==i?.context){const e=u??t.context,n=ke(e,i.context);n!==e&&(u=n)}}const h=void 0!==u?Ae(t,t.value,u,t._stateInput):t;return o(h,e,n,c)},i=(e,n,s,o)=>{const r=t.states[e.value],i=r?.on?.[n.type];if(!i)return;const c=Array.isArray(i)?i.length:1;for(let t=0;t<c;t++){const r=Array.isArray(i)?i[t]:i,c={context:e.context,event:n,input:e.input,value:e.value,self:s.self,system:s.system,parent:s.self._parent,children:e.children};if("function"==typeof r){const t=[],e=r(c,S(s,t,o,!0));if(!e){if(t.length)return{actions:t};continue}return{target:e.target,context:e.context,input:e.input,actions:t}}if(!("guard"in r)||!r.guard||r.guard(c))return{target:r.target,context:$e(r.context,c),input:r.input,actions:"actions"in r&&r.actions?we(r.actions):be}}},c=(e,n,c)=>{if("active"!==e.status)return[e,[]];if(n.type===s)return[je(e),_e];const a=t.states[e.value],u=a?.on?.[n.type];if(!u)return[e,_e];if(!(Array.isArray(u)||"function"==typeof u||"guard"in u||"actions"in u&&u.actions||"function"==typeof u.input)){const s=u.target??e.value,o=s!==e.value;if(!o||!a.exit&&!t.states[s]?.entry){const t=void 0!==u.context,r=void 0!==u.input,i=$e(u.context,{context:e.context,event:n,input:e.input,value:e.value,self:c.self,system:c.system,parent:c.self._parent,children:e.children}),a=t&&i?ke(e.context,i):e.context;return o||a!==e.context||r||void 0!==e._stateInput?[Ae(e,s,a,r?Ee(u.input,a,n):void 0),_e]:[e,_e]}}if("function"==typeof u&&u.length<2&&!a?.exit){const s=u({context:e.context,event:n,input:e.input,value:e.value,self:c.self,system:c.system,parent:c.self._parent,children:e.children},void 0);if(s){const o=s.target??e.value;if(!t.states[o]?.entry){const t=void 0!==s.context,r=void 0!==s.input,i=t&&s.context?ke(e.context,s.context):e.context;return o!==e.value||i!==e.context||r||void 0!==e._stateInput?[Ae(e,o,i,r?Ee(s.input,i,n):void 0),_e]:[e,_e]}}}let f=e;const h=[],d=[n];let l=0;for(;d.length;){if(++l>1e3)throw new Error("FSM microstep count exceeded 1000");const e=d.shift(),n=i(f,e,c,d);if(!n)continue;const s=n.target??f.value,a=s!==f.value;if(a){const[n,s]=r(f,e,c,t.states[f.value]?.exit,f._stateInput,d);f=n,h.push(...s)}let u=f.context;void 0!==n.context&&(u=ke(u,n.context));const p=void 0!==n.input,y=p?Ee(n.input,u,e):void 0;(a||u!==f.context||p||void 0!==f._stateInput)&&(f=Ae(f,s,u,y));const[g,v]=o(f,e,c,n.actions);if(f=g,h.push(...v),a){const[n,o]=r(f,e,c,t.states[s]?.entry,y,d);f=n,h.push(...o)}}return[f,h]},a={id:t.id,config:t,transition:c,initialTransition:(s,o)=>{const i=function(t,e){return"function"==typeof t?t({input:e}):t??{}}(t.context,s),a=function(t,e,n,s,o){return{status:"active",output:void 0,error:void 0,value:t,context:e,input:n,children:{},_stateInput:o,machine:s}}(t.initial,i,s,e),u=[];let[f,h]=r(a,{type:n},o,t.states[t.initial]?.entry,void 0,u);for(h.length||(h=[]);u.length;){const[t,e]=c(f,u.shift(),o);f=t,h.push(...e)}return[f,h]},getInitialSnapshot:(t,e)=>a.initialTransition(e,t)[0],getPersistedSnapshot:({machine:t,...e})=>e,restoreSnapshot:t=>({...t,machine:e})};return a},t.createListenerLogic=y,t.createLogic=Yt,t.createMachine=me,t.createMachineFromConfig=function t(e,n={}){const s=function(t,e){return{actions:e.actions??{},guards:e.guards??{},actorSources:e.actorSources??{},delays:{...Pe(t.delays),...e.delays??{}},evaluators:e.evaluators??{}}}(e,n),o=function(t,e){function n(n,s){const o=n["@lang"]??t;if(!o)throw new Error(`Missing @exprLang for expression at ${s}`);const r=e.evaluators[o];if(!r)throw new Error(`Missing evaluator for @lang '${o}' at ${s}`);return r}function s(t,e,s,o){const r=Me(t)?"expr":"code",i=Me(t)?t["@expr"]:t["@code"];return n(t,o)({source:i,kind:r,slot:e,scope:s,path:o})}function o(t,e,n,r){if(Ne(t))return s(t,e,n,r);if(Array.isArray(t))return t.map((t,s)=>o(t,e,n,De(r,s)));if(!t||"object"!=typeof t)return t;const i={};for(const s of Object.keys(t))i[s]=o(t[s],e,n,De(r,s));return i}function r(t,e){return{context:t.context,event:t.event,input:t.input,self:t.self,children:t.children,params:t.params,...e}}return{evaluateResolvable:s,resolveValue:o,makeScope:r,getDurationConfig:function(t,e){return Ne(t)?n=>Ie(o(t,"delay",r(n),e)):t},assertResolvable:function t(e,s){if(Ne(e))n(e,s);else if(Array.isArray(e))e.forEach((e,n)=>t(e,De(s,n)));else if(e&&"object"==typeof e)for(const n of Object.keys(e))t(e[n],De(s,n))}}}(e["@exprLang"],s),{evaluateResolvable:r,resolveValue:i,makeScope:c,getDurationConfig:a}=o;function u(t,n,s){if(t)return Ne(t)?e=>!!r(t,n,c(e),s):o=>{const r=i(t.params,n,c(o),`${s}.params`),a=e.guards?.[t.type];if(a){const e=u(a.when,"guard",`$.guards.${t.type}.when`);return!!e?.({...o,params:r})}const f=o.guards?.[t.type];if(!f)throw new Error((h=t.type,d=o.guards??{},`Guard '${h}' is not implemented in machine '${e.id??"(machine)"}'. Available guards: ${Object.keys(d).map(t=>`'${t}'`).join(", ")||"(none)"}.`));var h,d;return f(o,r)}}function f(t,e){if(t)return Ne(t)?n=>r(t,"choice",c(n),e):(Re(t,e),n=>{for(let s=0;s<t.length;s++){const o=t[s],r=u(o.when,"choice",`${e}[${s}].when`);if(!r||r(n))return{target:o.target,context:o.context?i(o.context,"transitionContext",c(n),`${e}[${s}].context`):void 0,input:void 0!==o.input?i(o.input,"input",c(n),`${e}[${s}].input`):void 0,description:o.description,reenter:o.reenter,meta:o.meta}}throw new Error(`Choice state at ${e} did not match any branch.`)})}const h={},d=[];let l=null;const p=[];function y(t,e){if(!t||"function"==typeof t)return t;if(Ne(t))return n=>r(t,"transition",c(n),e);const{guard:n,...s}=t;if(!n)return s;const o=u({type:n},"guard",e);return t=>o(t)?s:void 0}function g(e){return(Array.isArray(e)?e:[e]).map(e=>{const n=e;let o;return o=n._nestedMachineJSON?t(n._nestedMachineJSON,s):s.actorSources[e.src]??e.src,{src:o,id:e.id,registryKey:e.registryKey,input:void 0!==e.input?t=>i(e.input,"input",c(t),"$.invoke.input"):void 0,onDone:e.onDone?_(e.onDone):void 0,onError:e.onError?_(e.onError):void 0,onSnapshot:e.onSnapshot?_(e.onSnapshot):void 0,timeout:a(e.timeout,"$.invoke.timeout"),onTimeout:e.onTimeout?_(e.onTimeout):void 0}})}function v(t,e,n){const s=n instanceof Error?n.message:"string"==typeof n?n:"unknown error";t.enq.raise({type:"xstate.error.execution",error:{tagname:e,message:s,line:NaN,column:NaN,reason:s},_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:{tagname:e,message:s,line:NaN,column:NaN,reason:s}}),t.errored=!0}function m(t,n,s,o,r,i){const c=e.actions?.[t.type];if(!c)return s(n.actions[t.type],o),{context:void 0,errored:r.errored};if(i.includes(t.type))return v(r,"action",new Error(`Circular action reference: ${i.concat(t.type).join(" -> ")}`)),{context:void 0,errored:!0};return x(Array.isArray(c)?c:[c],{...n,params:o},s,r,i.concat(t.type))}function x(t,e,n,s,o=[]){const a=s??{enq:n,errored:!1};let u;for(const s of t){if(a.errored)break;if(Ne(s)){const t=r(s,"action",c(e,{params:e.params,enq:n}),"$.actions");t&&"object"==typeof t&&"context"in t&&t.context&&(u??={},Object.assign(u,t.context))}else if(ze(s))switch(s.type){case"@xstate.raise":{const t=void 0!==s.delay,o=i(s.event,"actionParams",c(e,{params:e.params}),"$.actions.event"),r=t||void 0!==s.id?{...o,...t?{_scxmlExternal:!0}:{},...void 0!==s.id?{_scxmlSendId:s.id}:{}}:o;n.raise(r,{id:s.id,delay:s.delay});break}case"@xstate.cancel":n.cancel(s.id);break;case"@xstate.log":n.log(...s.args);break;case"@xstate.emit":n.emit(i(s.event,"actionParams",c(e,{params:e.params}),"$.actions.event"));break;case"@xstate.assign":u??={},Object.assign(u,i(s.context,"transitionContext",c(e,{params:e.params}),"$.actions.context"));break;default:throw new Error(`Unknown built-in action: ${s.type}`)}else if("scxml.assign"===s.type){const t=s,n={...e.context,...u};let o;try{o=Ke(n,t.expr,e.event,e.self)}catch(t){v(a,"assign",t);continue}if(t.location.includes(".")){v(a,"assign",new Error(`Invalid assign location: ${t.location}`));continue}u??={},u[t.location]=o}else if("scxml.raise"===s.type){const t=s,o={...e.context,...u};let r,i,c,f;try{if(r=t.eventexpr?Ke(o,t.eventexpr,e.event,e.self):t.event||"unknown",r=Te(r),i={type:r,_scxmlEventName:Oe(r)},t.params)for(const n of t.params)i[n.name]=Ke(o,n.expr,e.event,e.self);c=t.targetexpr?Ke(o,t.targetexpr,e.event,e.self):t.target;const n="#_internal"===c;f=t.delayexpr?Ie(Ke(o,t.delayexpr,e.event,e.self)):n?void 0:t.delay}catch(t){v(a,"send",t);continue}const h="#_internal"===c,d="#_parent"===c;if("string"==typeof c&&c.length>0&&!c.startsWith("#_")){v(a,"send",new Error(`Invalid send target: ${c}`));continue}if(void 0!==t.id&&(i._scxmlSendId=t.id),d&&e.parent)n.sendTo(e.parent,i,void 0!==f?{delay:f}:void 0);else if("string"!=typeof c||!c.startsWith("#_")||d||h)h?n.raise(i,{id:t.id,delay:f}):(i._scxmlExternal=!0,n.sendTo(e.self,i,{id:t.id,delay:f}));else{const s=c.slice(2),o=e.children?.[s];if(o)n.sendTo(o,i);else if(s.startsWith("scxml_")&&s!==`scxml_${Le}`){const t=`Unable to dispatch event to target: ${c}`;n.raise({type:"xstate.error.communication",error:{tagname:"send",message:t,line:NaN,column:NaN,reason:t},_scxmlEventType:"platform",_scxmlEventName:"error.communication",_scxmlEventData:{tagname:"send",message:t,line:NaN,column:NaN,reason:t}})}else i._scxmlExternal=!0,n.sendTo(e.self,i,{id:t.id,delay:f})}}else if("scxml.cancel"===s.type){const t=s,o={...e.context,...u};try{const s=Ke(o,t.sendidexpr,e.event,e.self);s&&n.cancel(s)}catch{}}else if("scxml.script"===s.type){const t=s,n={...e.context,...u};try{const e=Ve(n,t.code);u??={},Object.assign(u,e)}catch(t){v(a,"script",t)}}else if("scxml.foreach"===s.type){const t=s,o={...e.context,...u},r=t=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t);if(!r(t.item)||t.index&&!r(t.index)){v(a,"foreach",new Error("foreach item/index is not a legal location"));continue}let i;try{i=Ke(o,t.array,e.event,e.self)}catch(t){v(a,"foreach",t);continue}if(!Array.isArray(i)){v(a,"foreach",new Error("foreach array is not iterable"));continue}u??={};for(let s=0;s<i.length;s++){u[t.item]=i[s],t.index&&(u[t.index]=s);const o={...e,context:{...e.context,...u}},r=x(t.actions,o,n,a);if(r.context&&Object.assign(u,r.context),a.errored)break}}else if("scxml.block"===s.type){const t=s,o={...e,context:{...e.context,...u}},r=x(t.actions,o,n);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}else if("scxml.if"===s.type){const t=s,o={...e.context,...u};for(const s of t.branches){let t;if(s.cond)try{t=!!Ke(o,s.cond,e.event,e.self)}catch(e){v(a,"if",e),t=!1}else t=!0;if(t){if(s.actions.length){const t={...e,context:o},r=x(s.actions,t,n,a);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}break}}}else{const t=m(s,e,n,i(s.params,"actionParams",c(e,{params:e.params}),"$.actions.params"),a,o);t.context&&(u??={},Object.assign(u,t.context))}}return{context:u?{...e.context,...u}:void 0,errored:a.errored}}function _(t){const e=Array.isArray(t)?t:[t];return e.map((t,n)=>{if(Ne(t))return(s,o)=>r(t,"transition",c(s,{enq:o}),"$.transition"+(e.length>1?`[${n}]`:""));const s=Array.isArray(t.target)?t.target[0]:t.target,o=t.target,a=u(t.guard,"guard","$.transition.guard"),f=e=>t.context?i(t.context,"transitionContext",c(e),"$.transition.context"):void 0,p=e=>void 0!==t.input?i(t.input,"input",c(e),"$.transition.input"):void 0;return a||t.actions?.length?a&&!t.actions?.length?t.context?{guard:a,to:e=>({target:o,context:f(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{target:o,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}:s?{guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,n)=>{const r=f(e);if(t.actions?.length){const e=s.replace(/^#/,"");h[e]=t.actions,d.includes(t.actions)||d.push(t.actions)}return{target:o,context:r,reenter:t.reenter}}}:{guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,n)=>{const s=f(e);if(t.actions?.length){d.includes(t.actions)||d.push(t.actions),l??=e.context;const o=x(t.actions,e,n);if(o.context)return{context:{...s,...o.context}}}return s?{context:s}:{}}}:t.context?{to:e=>({target:o,context:f(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{target:o,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}})}if(e.delays)for(const t of Object.keys(e.delays)){const n=e.delays[t];"number"==typeof n?s.delays[t]=n:"string"==typeof n?s.delays[t]=Ie(n):n&&"object"==typeof n&&(s.delays[t]=e=>Ie(i(n.duration,"delay",c(e),`$.delays.${t}.duration`)))}!function(t,e,n){const{assertResolvable:s}=n;function o(n,r){if(n)if(Ne(n))s(n,r);else if(s(n.params,`${r}.params`),t.guards?.[n.type])o(t.guards[n.type].when,`$.guards.${n.type}.when`);else if(!e.guards[n.type]&&!["scxml.cond","xstate.stateIn","xstate.not"].includes(n.type))throw new Error(`Missing guard implementation "${n.type}"`)}function r(n,o,i=[]){if(Ne(n))return void s(n,o);if(!n||"string"!=typeof n.type)throw new Error(`Invalid action at ${o}`);if(s(n.params,`${o}.params`),n.type.startsWith("@xstate.")||n.type.startsWith("scxml."))return void s(n,o);const c=t.actions?.[n.type];if(c){if(i.includes(n.type))throw new Error(`Circular action reference: ${i.concat(n.type).join(" -> ")}`);const t=Array.isArray(c)?c:[c];return void t.forEach((e,s)=>r(e,`${o}.actions.${n.type}${t.length>1?`[${s}]`:""}`,i.concat(n.type)))}if(!e.actions[n.type])throw new Error(`Missing action implementation "${n.type}"`)}function i(t,e){Ce(t).forEach((t,n)=>r(t,`${e}[${n}]`))}function c(t,e){(Array.isArray(t)?t:t?[t]:[]).forEach((n,r)=>{const c=Array.isArray(t)?`${e}[${r}]`:e;Ne(n)?s(n,c):(o(n.guard,`${c}.guard`),i(n.actions,`${c}.actions`),s(n.context,`${c}.context`),s(n.input,`${c}.input`))})}if(t.actions)for(const e of Object.keys(t.actions)){const n=Array.isArray(t.actions[e])?t.actions[e]:[t.actions[e]];n.forEach((t,s)=>r(t,`$.actions.${e}${n.length>1?`[${s}]`:""}`,[e]))}if(t.guards)for(const e of Object.keys(t.guards))o(t.guards[e].when,`$.guards.${e}.when`);if(t.delays)for(const e of Object.keys(t.delays)){const n=t.delays[e];s(n&&"object"==typeof n&&"duration"in n?n.duration:n,`$.delays.${e}`)}!function n(r,a){if(s(r.context,`${a}.context`),s(r.input,`${a}.input`),s(r.output,`${a}.output`),s(r.timeout,`${a}.timeout`),i(r.entry,`${a}.entry`),i(r.exit,`${a}.exit`),"choice"===r.type){if(!r.choice)throw new Error(`Choice state at ${a} must declare choice.`);Array.isArray(r.choice)?(Re(r.choice,`${a}.choice`),r.choice.forEach((t,e)=>{o(t.when,`${a}.choice[${e}].when`),s(t.context,`${a}.choice[${e}].context`),s(t.input,`${a}.choice[${e}].input`)})):s(r.choice,`${a}.choice`)}if(Ne(r.route)&&s(r.route,`${a}.route`),r.invoke&&(Array.isArray(r.invoke)?r.invoke:[r.invoke]).forEach((t,n)=>{const o=`${a}.invoke${Array.isArray(r.invoke)?`[${n}]`:""}`;if(!t._nestedMachineJSON&&!e.actorSources[t.src])throw new Error(`Missing actorSource implementation "${t.src}"`);s(t.input,`${o}.input`),s(t.timeout,`${o}.timeout`),c(t.onDone,`${o}.onDone`),c(t.onError,`${o}.onError`),c(t.onSnapshot,`${o}.onSnapshot`),c(t.onTimeout,`${o}.onTimeout`)}),r.on)for(const t of Object.keys(r.on))c(r.on[t],`${a}.on.${t}`);if(r.after)for(const n of Object.keys(r.after)){if(Number.isNaN(Number(n))&&void 0===j(n)&&!t.delays?.[n]&&!e.delays[n])throw new Error(`Missing delay implementation "${n}"`);c(r.after[n],`${a}.after.${n}`)}if(c(r.always,`${a}.always`),c(r.onError,`${a}.onError`),c(r.onTimeout,`${a}.onTimeout`),r.states)for(const t of Object.keys(r.states))n(r.states[t],`${a}.states.${t}`)}(t,"$")}(e,s,o);const b=function t(e,n){const s=Ce(e.entry),o=e.id||n;var i,c;return{id:e.id,initial:e.initial,type:e.type,history:e.history,target:e.target,description:e.description,tags:e.tags,input:e.input,timeout:a(e.timeout,`$.states.${n}.timeout`),states:e.states?Object.entries(e.states).reduce((e,[n,s])=>(e[n]=t(s,n),e),{}):void 0,on:e.on?Object.entries(e.on).reduce((t,[e,n])=>(t[e]=_(n),t),{}):void 0,always:e.always?_(e.always):void 0,onError:e.onError?_(e.onError):void 0,choice:f(e.choice,`$.states.${n}.choice`),route:y(e.route,`$.states.${n}.route`),after:e.after?Object.entries(e.after).reduce((t,[e,n])=>(t[e]=_(n),t),{}):void 0,onTimeout:e.onTimeout?_(e.onTimeout):void 0,entry:"choice"===e.type?void 0:(t,e)=>{for(;p.length;){const t=p.shift();e.raise({type:"xstate.error.execution",error:t,_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:t})}let n;if(l&&d.length>0&&Object.keys(h).length>0){let s=l;for(const n of d){const o=x(n,{...t,context:s},e);o.context&&(s=o.context)}d.length=0,l=null;for(const t of Object.keys(h))delete h[t];n=s}else{const s=o?h[o]:void 0;if(s){delete h[o];const r=x(s,t,e);r.context&&(n=r.context)}l=null,d.length=0}if(s.length){const o=n?{...t,context:n}:t,r=x(s,o,e);r.context&&(n=r.context)}return{context:n}},exit:e.exit?(c=Ce(e.exit),(t,e)=>x(c,t,e)):void 0,invoke:e.invoke?g(e.invoke):void 0,meta:e.meta,output:e._scxmlDonedata?(i=e._scxmlDonedata,({context:t,event:e,self:n})=>{try{if(i.params&&i.params.length){const s={};for(const o of i.params)s[o.name]=Ke(t,o.expr,e,n);return s}if(void 0!==i.contentExpr)return Ke(t,i.contentExpr,e,n);if(void 0!==i.contentText)try{return Ke(t,i.contentText,e,n)}catch{return i.contentText}}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";p.push({tagname:"donedata",message:e,line:NaN,column:NaN,reason:e})}}):Ne(e.output)?({context:t,event:s,self:o})=>r(e.output,"output",{context:t,event:s,self:o},`$.states.${n}.output`):e.output}}(e),S=e.context?{context:t=>i(e.context,"context",t,"$.context")}:{};We=e.id||"",Le="session_scxml";const w={"scxml.cond":({context:t,event:e,self:n},s)=>{const o=s?.expr;if(!o)return!0;try{return!!Ke(t,o,e,n)}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";return p.push({tagname:"cond",message:e,line:NaN,column:NaN,reason:e}),!1}},"xstate.stateIn":(t,e)=>{const n=e?.stateId;if(!n)return!1;const s=n.replace(/^#/,""),o=t._snapshot;return!!o?._nodes&&o._nodes.some(t=>t.id===s)},"xstate.not":(t,e)=>{const n=e?.guard,s=n&&t.guards?.[n.type];if(!s)throw new Error(`Guard '${n?.type}' referenced by 'xstate.not' is not implemented.`);return!s(t,n.params)}},$=me({...b,...S,version:e.version}).provide({actions:s.actions,actorSources:s.actorSources,guards:{...w,...s.guards},delays:s.delays});return $._json=e,$},t.createObservableLogic=function(t){const e="function"==typeof t?t:t.run;return Yt({schemas:"function"==typeof t?void 0:t.schemas,context:void 0,run:(t,n)=>{const{event:s,input:o,self:r,system:i}=t,c=t.emit;switch(s.type){case ee:return{context:s.data};case ne:return{status:"error",error:s.data,input:void 0,effects:{observable:{status:"error",error:s.data}}};case se:return{status:"done",input:void 0,effects:{observable:{status:"done"}}}}n.effect("observable",()=>{const t=r,n=e({input:o,system:i,self:r,emit:c}).subscribe({next:e=>{i._relay(t,t,{type:ee,data:e})},error:e=>{i._relay(t,t,{type:ne,data:e})},complete:()=>{i._relay(t,t,{type:se})}});return()=>n.unsubscribe()})}})},t.createStateConfig=function(t){return t},t.createSubscriptionLogic=v,t.createSystem=function(t={}){const e={},n=[];return{createActor(t,s){const o=qt(t,{...s,_systemRef:e});return(()=>{const t=e.current;if(t)for(const e of n)e.active&&!e.subscription&&(e.subscription=t.inspect(e.observer))})(),o},get:t=>e.current?.get(t),getAll:()=>e.current?.getAll()??{},inspect(t){const s=e.current;if(s)return s.inspect(t);const o={observer:t,active:!0};return n.push(o),{unsubscribe(){o.active=!1,o.subscription?.unsubscribe()}}},setup:t=>t?Ue(t):Ue()}},t.getInitialMicrosteps=function(t,...[e]){const n=Ze(t),s=a(e),o=[],r=t._getPreInitialState(n,s),i=et(t.root,r,n,s,o),{microsteps:c}=ot(i[0],s,n,o);return[i,...c]},t.getInitialSnapshot=function(t,...[e]){const n=Ze(t);return t.initialTransition(e,n)[0]},t.getMicrosteps=function(t,e,n){const s=Ze(t),{microsteps:o}=ot(e,n,s,[]);return o},t.getNextSnapshot=function(t,e,n){const s=Ze(t);s.self._snapshot=e;const o=t.transition(e,n,s);return Array.isArray(o)?o[0]:o},t.getNextTransitions=function(t){const e=[],n=t._nodes.filter(T),s=new Set;for(const t of n)for(const n of[t].concat(M(t,void 0)))if(!s.has(n.id)){s.add(n.id);for(const[,t]of n.transitions.entries())e.push(...t);n.always&&e.push(...n.always)}return e},t.getStateNodes=F,t.initialTransition=function(t,...[e]){const n=Ze(t),[s,o]=t.initialTransition(e,n);return[s,o]},t.isBuiltInExecutableAction=function(t){return Object.prototype.hasOwnProperty.call(h,t.type)},t.isMachineSnapshot=ft,t.isTypeSchema=function(t){return!!t&&"object"==typeof t&&"~standard"in t&&"xstate.types"===t["~standard"].vendor},t.listenerLogic=g,t.machineConfigToJSON=He,t.mapState=function(t,e){const n=[],s=(t,e)=>{let n=t;for(const t of e){if(!n?.states)return;const e=n.states;if(!(t in e))return;n=e[t]}return n},o=new Set;for(const r of t._nodes.filter(T)){let i=r;for(;i&&!o.has(i);){o.add(i);const r=s(e,i.path);r?.map&&n.push({stateNode:i,result:r.map(t)}),i=i.parent}}return n},t.matchesState=St,t.pathToStateValue=Et,t.serializeMachine=function(t){return t._json??He(t.config)},t.setup=Ue,t.subscriptionLogic=m,t.toObserver=Nt,t.toPromise=function(t){return new Promise((e,n)=>{t.subscribe({complete:()=>{e(t.getSnapshot().output)},error:n})})},t.transition=function(t,e,n){const s=Ze(t),[o,r]=t.transition(e,n,s);return[o,r]},t.types=function(){return{"~standard":{version:1,vendor:"xstate.types",validate:t=>({value:t})}}},t.waitFor=function(t,e,n){const s={...Ye,...n};return new Promise((n,o)=>{const{signal:r}=s;if(r?.aborted)return void o(r.reason);let i=!1;const c=s.timeout===1/0?void 0:setTimeout(()=>{a(),o(new Error(`Timeout of ${s.timeout} ms exceeded`))},s.timeout),a=()=>{clearTimeout(c),i=!0,h?.unsubscribe(),f&&r.removeEventListener("abort",f)};function u(t){e(t)&&(a(),n(t))}let f,h;u(t.getSnapshot()),i||(r&&(f=()=>{a(),o(r.reason)},r.addEventListener("abort",f)),h=t.subscribe({next:u,error:t=>{a(),o(t)},complete:()=>{a(),o(new Error("Actor terminated without satisfying predicate"))}}),i&&h.unsubscribe())})},Object.defineProperty(t,"__esModule",{value:!0})});
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).XState={})}(this,function(t){"use strict";class e{constructor(t){this._process=t,this._active=!1,this._current=null,this._last=null}start(){this._active=!0,this.flush()}clear(){this._current&&(this._current.next=null,this._last=this._current)}enqueue(t){const e={value:t,next:null};if(this._current)return this._last.next=e,void(this._last=e);this._current=e,this._last=e,this._active&&this.flush()}flush(){for(;this._current;){const t=this._current;this._process(t.value),this._current=t.next}this._last=null}}const n="@xstate.init",s="@xstate.stop";function o(t,e){return{type:`xstate.after.${t}.${e}`}}function r(t){return{type:`xstate.timeout.actor.${t}`}}function i(t,e){return{type:`xstate.done.state.${t}`,output:e}}function c(t,e){return{type:`xstate.error.${t}`,error:e}}function a(t){return{type:n,input:t}}function u(t){setTimeout(()=>{throw t})}const f="function"==typeof Symbol&&Symbol.observable||"@@observable",h={"@xstate.start":t=>{t.start()},"@xstate.raise":(t,e,n)=>{t.system.scheduler.schedule(t.self,t.self,e,n?.delay??0,n?.id)},"@xstate.sendTo":(t,e,n,s)=>{if("string"==typeof n)throw new Error("Only event objects may be used with sendTo");void 0!==s?.delay?t.system.scheduler.schedule(t.self,e,n,s?.delay??0,s?.id):t.defer(()=>{t.system._relay(t.self,e,n)})},"@xstate.cancel":(t,e)=>{t.system.scheduler.cancel(t.self,e)},"@xstate.stop":(t,e)=>{t.stopChild(e)}},d=new WeakMap;function l(t){const e=(t,e)=>[{status:"active",output:void 0,error:void 0,input:t},[]];return{start:(e,{self:n,system:s})=>{const o=e.input.actor;if(!o||"stopped"===o.getSnapshot().status)return;const r=t(e.input,{self:n,system:s});if(!r)return;let i,c=!1;const a=()=>{c||(c=!0,r.unsubscribe(),i?.unsubscribe())},u=n._parent;u&&(i=u.subscribe({complete:a,error:a})),d.set(n,{unsubscribe:a})},transition:(t,e,{self:n})=>e.type===s?(d.get(n)?.unsubscribe(),d.delete(n),[{...t,status:"stopped",error:void 0},[]]):[t,[]],initialTransition:e,getInitialSnapshot:(t,n)=>e(n)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}}function p(t,e,n){"stopped"!==t.getSnapshot().status&&t._parent&&e._relay(t,t._parent,n())}function y(){return l(({actor:t,eventType:e,mapper:n},{self:s,system:o})=>{const r="*"!==e&&e.endsWith(".*");return t.on(r?"*":e,t=>{r&&!Pt(t.type,e)||p(s,o,()=>n(t))})})}const g=y();function v(){return l(({actor:t,mappers:e},{self:n,system:s})=>{const{done:o,error:r,snapshot:i}=e;return t.subscribe({next:t=>{"done"===t.status&&o?p(n,s,()=>o(t.output)):"error"===t.status&&r?p(n,s,()=>r(t.error)):"active"===t.status&&i&&p(n,s,()=>i(t))},error:t=>{r&&p(n,s,()=>r(t))},complete:()=>{}})})}const m=v();function x(t,e){return{...t,...e}}function _(t,e,...n){t.push({action:e,args:n})}function b(t,e,n){_(t,h["@xstate.start"],e),t.push(function(t,e){return Object.assign(function(n){return{children:{...n.children,[e]:t}}},{_special:!0})}(e,n??e.id))}function S(t,e,n,s=!1,o=!0){const r={cancel:n=>{_(e,h["@xstate.cancel"],t,n)},emit:t=>{e.push(t)},log:(...n)=>{_(e,t.logger,...n)},raise:(s,o)=>{if("string"==typeof s)throw new Error("Only event objects may be used with raise");void 0!==o?.delay?_(e,h["@xstate.raise"],t,s,o):n.push(s)},spawn:(n,s)=>{if(!o)return{id:s?.id??s?.registryKey??n.id};const r=qt(n,{...s,parent:t.self});return b(e,r,s?.id),r},sendTo:(s,o,r)=>{s?_(e,h["@xstate.sendTo"],t,s,o,r):n.push(c("communication",{message:"Unable to send event to an undefined actor",event:o}))},stop:n=>{n&&(_(e,h["@xstate.stop"],t,n),e.push(function(t){return Object.assign(function(e){const n={...e.children};for(const e of Object.keys(n))n[e]===t&&delete n[e];return{children:n}},{_special:!0})}(n)))}};return s&&Object.assign(r,{listen:(n,s,o)=>{const r=qt(g,{input:{actor:n,eventType:s,mapper:o},parent:t.self});return _(e,h["@xstate.start"],r),r},subscribeTo:(n,s)=>{const o=qt(m,{input:{actor:n,mappers:"function"==typeof s?{snapshot:s}:s},parent:t.self});return _(e,h["@xstate.start"],o),o}}),E(r,(t,...n)=>{_(e,t,...n)})}function w(t,e){switch(t){case h["@xstate.start"]:{const[t]=e;return{actor:t,id:t.id,logic:t.logic,src:t.src,input:t.options?.input}}case h["@xstate.raise"]:{const[,t,n]=e;return{event:t,id:n?.id,delay:n?.delay}}case h["@xstate.sendTo"]:{const[,t,n,s]=e;return{target:t,event:n,id:s?.id,delay:s?.delay}}case h["@xstate.cancel"]:{const[,t]=e;return{id:t}}case h["@xstate.stop"]:{const[,t]=e;return{actor:t}}default:return}}function $(t,e,n,s){let o=t;const r=[];for(const i of s){const s="function"==typeof i?i:"object"==typeof i&&"action"in i&&"function"==typeof i.action&&i.action.bind(null,...i.args),c={context:o.context,event:e,output:It(e),self:n.self,system:n.system,children:o.children,parent:n.self._parent,actions:t.machine.implementations.actions,actorSources:t.machine.implementations.actorSources};let a;if("object"==typeof i&&null!==i){const{type:t,...e}=i;a=e}if(s&&"_special"in s){r.push({type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type??"(anonymous)":i.name||"(anonymous)",params:a,args:[],exec:void 0});const t=s(c,k);t&&("context"in t||"children"in t)&&(o={...o,...void 0!==t.context?{context:x(o.context,t.context)}:{},..."children"in t?{children:t.children}:{}});continue}if(!s||!("resolve"in s)){const t="object"==typeof i&&null!==i&&"action"in i&&"function"==typeof i.action?w(i.action,i.args):void 0;r.push({type:"object"==typeof i?"action"in i&&"function"==typeof i.action?i.action.name??"(anonymous)":i.type:i.name||"(anonymous)",params:a,args:"object"==typeof i&&"action"in i?i.args:[],exec:s||("object"==typeof i&&null!==i?()=>n.defer(()=>n.emit(i)):void 0),...t});continue}}return[o,r]}function E(t,e){const n=(t,...n)=>{e(t,...n)};return Object.assign(n,{cancel:()=>{},emit:()=>{},log:()=>{},raise:()=>{},spawn:()=>({}),sendTo:()=>{},stop:()=>{},listen:()=>({}),subscribeTo:()=>({}),...t}),n}const k=E({},()=>{});function A(t){const e=t.trim(),n=e.match(/^(\d+)ms$/i);if(n)return parseInt(n[1],10);const s=e.match(/^(\d*)(\.?)(\d*)s$/i);if(s){const t=s[1]?parseInt(s[1],10):0,e=!!s[2],n=s[3]?parseInt(s[3].padEnd(3,"0").slice(0,3),10):0;return 1e3*t+(e?n:0)}const o=e.match(/^P(?:(?<weeks>\d+(?:[.,]\d+)?)W)?(?:(?<days>\d+(?:[.,]\d+)?)D)?(?:T(?:(?<hours>\d+(?:[.,]\d+)?)H)?(?:(?<minutes>\d+(?:[.,]\d+)?)M)?(?:(?<seconds>\d+(?:[.,]\d+)?)S)?)?$/i);if(!o?.groups)return;const{weeks:r,days:i,hours:c,minutes:a,seconds:u}=o.groups;if(!(r||i||c||a||u))return;const f=t=>t?Number(t.replace(",",".")):0;return 7*f(r)*24*60*60*1e3+24*f(i)*60*60*1e3+60*f(c)*60*1e3+60*f(a)*1e3+1e3*f(u)}function j(t){if(void 0!==t)return"number"==typeof t?t:A(t)}function I(t,e,n){if("function"==typeof t)return t(n);const s=function(t,e){if("string"!=typeof t)return t;const n=e[t];return void 0!==n?n:A(t)??t}(t,e);return"function"==typeof s?s(n):s}function T(t){return"atomic"===t.type||"final"===t.type||"choice"===t.type}function O(t){return Object.values(t.states).filter(t=>"history"!==t.type)}function M(t,e){const n=[];if(e===t)return n;let s=t.parent;for(;s&&s!==e;)n.push(s),s=s.parent;return n}function N(t){const e=new Set(t),n=new Set;for(const t of e)t.parent&&n.add(t.parent);for(const t of e)if("compound"!==t.type||n.has(t)){if("parallel"===t.type)for(const n of O(t))if(!e.has(n)){const t=z(n);for(const n of t)e.add(n)}}else for(const n of z(t))e.add(n);for(const t of e){let n=t.parent;for(;n&&!e.has(n);)e.add(n),n=n.parent}return e}function D(t,e){const n=N(e),s=new Map;for(const t of n)s.has(t)||s.set(t,[]),t.parent&&(s.has(t.parent)||s.set(t.parent,[]),s.get(t.parent).push(t));const o=t=>{const e=s.get(t);if(!e)return{};if("compound"===t.type){const t=e[0];if(!t)return{};if(T(t))return t.key}const n={};for(const t of e)n[t.key]=o(t);return n};return o(t)}function P(t,e){return"compound"===e.type?O(e).some(e=>"final"===e.type&&t.has(e)):"parallel"===e.type?O(e).every(e=>P(t,e)):"final"===e.type}const C=t=>"#"===t[0];function R(t,e,n){const s=e.type,o=t.entry;t.entry=(t,r)=>(r.raise(e,{id:s,delay:n(t)}),"function"==typeof o?o(t,r):void 0);const r=t.exit;return t.exit=(t,e)=>(e.cancel(s),"function"==typeof r?r(t,e):void 0),s}function L(t,e,n){const s=Mt(n.target),o=n.reenter??!1,r=W(t,s),i={...n,target:r,source:t,reenter:o,eventType:e,toJSON:()=>({...i,source:`#${t.id}`,target:r?r.map(t=>`#${t.id}`):void 0})};return i}function W(t,e){if(void 0!==e)return e.map(e=>{if("string"!=typeof e)return e;if(C(e))return t.machine.getStateNodeById(e);const n="."===e[0];if(n&&!t.parent)return J(t,e.slice(1));const s=n?t.key+e:e;if(!t.parent)throw new Error(`Invalid target: "${e}"`);try{return J(t.parent,s)}catch(e){throw new Error(`Invalid transition for '${t.id}': ${e.message}`)}})}function K(t){const e=Mt(t.config.target);return e?{target:e.map(e=>"string"==typeof e?J(t.parent,e):e),source:t,reenter:!1,eventType:""}:t.parent.initial}function V(t){return"history"===t.type}function z(t){const e=new Set;!function t(n){if(!e.has(n))if(e.add(n),"compound"===n.type)t(n.initial.target[0]);else if("parallel"===n.type)for(const e of O(n))t(e)}(t);for(const n of e)for(const s of M(n,t))e.add(s);return e}function B(t,e){if(C(e))return t.machine.getStateNodeById(e);const n=t.states?.[e];if(!n)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return n}function J(t,e){if("string"==typeof e&&C(e))try{return t.machine.getStateNodeById(e)}catch{}const n=wt(e).slice();let s=t;for(;n.length;){const t=n.shift();if(!t.length)break;s=B(s,t)}return s}function F(t,e){if("string"==typeof e){const n=t.states[e];if(!n)throw new Error(`State '${e}' does not exist on '${t.id}'`);return[t,n]}const n=Object.keys(e),s=new Array(n.length),o=[t.machine.root,t];for(let e=0;e<n.length;e++){const r=B(t,n[e]);s[e]=r,o.push(r)}for(let t=0;t<n.length;t++)o.push(...F(s[t],e[n[t]]));return o}function q(t,e,n,s,o){if("string"==typeof e){const r=B(t,e).next(n,s,o);return r&&r.length?r:t.next(n,s,o)}const r=Object.keys(e),i=r[0];if(1===r.length){const r=q(B(t,i),e[i],n,s,o);return r&&r.length?r:t.next(n,s,o)}const c=[];for(const i of r){const r=e[i];if(!r)continue;const a=q(B(t,i),r,n,s,o);a&&c.push(...a)}return c.length?c:t.next(n,s,o)}function H(t,e){let n=t;for(;n.parent&&n.parent!==e;)n=n.parent;return n.parent===e}function U(t,e){for(const n of t)if(H(n,e))return!0;return!1}function G(t,e){const n=t instanceof Set?t.size:Array.isArray(t)?t.length:void 0,s=e instanceof Set?e.size:Array.isArray(e)?e.length:void 0;void 0!==n&&void 0!==s&&s<n&&([t,e]=[e,t]);const o=t instanceof Set?t:new Set(t);for(const t of e)if(o.has(t))return!0;return!1}function X(t,e,n,s,o){const r=new Set,i=new Map,c=t=>{let r=i.get(t);return r||(r=tt([t],e,n,s,o),i.set(t,r)),r};for(const e of t){let t=!1;const n=new Set;for(const s of r)if(G(c(e),c(s)))if(H(e.source,s.source))n.add(s);else{if("final"!==s.source.type||"final"===e.source.type){t=!0;break}n.add(s)}if(!t){for(const t of n)r.delete(t);r.add(e)}}return Array.from(r)}function Z(t,e,n,s){const o=e.historyValue,{targets:r}=st(t,e,n,s,{resolveActions:!1});if(!r)return[];const i=new Set;for(const t of r)if(V(t))if(o[t.id])for(const e of o[t.id])i.add(e);else for(const o of Z(K(t),e,n,s))i.add(o);else i.add(t);return[...i]}function Q(t,e){let n=t;for(;"parallel"===n.type;){const t=O(n).find(t=>e.every(e=>e===t||H(e,t)));if(!t)break;n=t}return n}function Y(t,e,n,s){const o=Z(t,e,n,s),{reenter:r}=st(t,e,n,s,{resolveActions:!1});if(o.every(e=>e===t.source||H(e,t.source)))return r?t.source:Q(t.source,o);const[i,...c]=o.concat(t.source);for(const t of M(i,void 0))if(c.every(e=>H(e,t)))return r?t:Q(t,o);return r?void 0:Q(t.source.machine.root,o)}function tt(t,e,n,s,o){const r=new Set;for(const i of t){const{targets:t,reenter:c}=st(i,n,s,o,{resolveActions:!1});if(t?.length){const t=Y(i,n,s,o);c&&i.source===t&&r.add(t);for(const n of e)H(n,t)&&r.add(n)}}return[...r]}function et(t,e,n,s,o){return nt([{target:[...z(t)],source:t,reenter:!0,eventType:null,toJSON:null}],e,n,s,!0,o)}function nt(t,e,n,s,o,r){const c=[];if(!t.length)return[e,c];{const a=new Set(e._nodes);let u=e.historyValue;const f=e.context,d=X(t,a,e,s,n),l=t=>st(t,e,s,n),p=(t,o,r,i)=>{if(2===t.length){const c=[],a=[];let u;const f=S(n,c,a,!0),h=t({context:o,event:s,parent:n.self._parent,self:n.self,children:r,system:n.system,actions:e.machine.implementations.actions,actorSources:e.machine.implementations.actorSources,guards:e.machine.implementations.guards,delays:e.machine.implementations.delays,input:i},f);return void 0!==h?.context&&(u=x(o,h.context)),[c,u,a]}return[[Object.assign((e,n)=>t({...e,input:i},n),"_special"in t?{_special:!0}:{})],void 0,void 0]};let y=e;const g=()=>{const t=tt(d,a,e,s,n);let o;t.sort((t,e)=>e.order-t.order);const i=[...a];for(const e of t)for(const t of Object.values(e.states)){if("history"!==t.type)continue;const n="deep"===t.history?t=>T(t)&&H(t,e):t=>t.parent===e;o??={...u},o[t.id]=i.filter(n)}for(const o of t){const t=e._stateInputs?.[o.id],[i,u,f]=o.exit?p(o.exit,y.context,e.children,t):[[]];f?.length&&r.push(...f),u&&(y=xt(y,{context:u}));const[h,d]=$(y,s,n,i);y=h,c.push(...d);for(const t of o.invoke){const e=y.children[t.id];e&&!e._isExternal&&n.stopChild(e),delete y.children[t.id]}a.delete(o)}u=o||u};o||g();let v=y.context;const m=[],_=[];for(const t of d){t.actions&&m.push(...At(t.actions));const e=l(t);void 0!==e.context&&(v=x(v,e.context)),e.actions&&m.push(...e.actions),e.internalEvents&&_.push(...e.internalEvents)}_.length&&r.push(..._);const b=()=>{const t=t=>{const e=y.machine.root;let o;if(void 0!==t.output&&t.parent){const i=r.find(t=>t.type===`xstate.done.state.${e.id}`);o=i&&t.parent===e?i.output:jt(t.output,y.context,s,n.self)}else if("parallel"===t.type){const e=`xstate.done.state.${t.id}`,n=r.find(t=>t.type===e);o=n?.output}return void 0===e.output?t.parent===e?o:void 0:jt(e.output,y.context,i(t.id,o),n.self)},f=new Set,g=new Set,v=(t,e)=>{for(const n of t)if(e&&!H(n,e)||f.add(n),"parallel"===n.type)for(const t of O(n))U(f,t)||(f.add(t),m(t))},m=t=>{if(V(t))if(u[t.id]){const e=u[t.id];for(const t of e)f.add(t),m(t);for(const n of e)v(M(n,t.parent),void 0)}else{const e=K(t),{targets:n}=l(e);for(const s of n??[])f.add(s),e===t.parent?.initial&&g.add(t.parent),m(s);for(const e of n??[])v(M(e,t.parent),void 0)}else{if("compound"===t.type){const[e]=l(t.initial).targets;return V(e)||(f.add(e),g.add(e)),m(e),void v(M(e,t),void 0)}if("parallel"===t.type)for(const e of O(t))U(f,e)||(f.add(e),g.add(e),m(e))}};for(const t of d){const o=Y(t,e,s,n),{targets:r,reenter:i}=st(t,e,s,n,{resolveActions:!1});for(const e of r??[])V(e)||t.source===e&&t.source===o&&!i||(f.add(e),g.add(e)),m(e);const c=Z(t,e,s,n);for(const e of c){const n=M(e,o);"parallel"===o?.type&&n.push(o),v(n,!t.source.parent&&i?void 0:o)}i&&o===t.source&&f.add(t.source)}o&&g.add(e.machine.root);const x={...e._stateInputs};let _=!1;for(const t of d){const{targets:o,input:r}=st(t,e,s,n,{resolveActions:!1});if(r&&o)for(const t of o)x[t.id]=r,_=!0}const b=new Set,S={...e.children};for(const o of[...f].sort((t,e)=>t.order-e.order)){a.add(o);const u=[];let f=!1;for(const t of o.invoke){f=!0;let o=t.logic;"function"==typeof o&&(o=o({actorSources:e.machine.implementations.actorSources,context:y.context,event:s,self:n.self}));const r="string"==typeof o?Dt(e.machine,o):o;if(!r)throw new Error(`Actor logic '${"string"==typeof o?o:"inline"}' not implemented`);const i="function"==typeof t.input?t.input({self:n.self,context:y.context,event:s,output:It(s)}):t.input,c=qt(r,{...t,input:i,parent:n.self,syncSnapshot:!!t.onSnapshot});u.push({action:h["@xstate.start"],args:[c]}),t.id&&(S[t.id]=c)}f&&(y=xt(y,{children:S}));let d=y.context,l=!1;const v=x[o.id];if(o.entry){const[t,e,n]=p(o.entry,d,S,v);u.push(...t),n?.length&&r.push(...n),e&&(d=e,l=!0)}if(l&&(y.context=d),g.has(o)){const{actions:t,input:e}=st(o.initial,y,s,n);if(t&&u.push(...t),e&&o.initial?.target)for(const t of o.initial.target)x[t.id]=e,_=!0}const[m,w]=$(y,s,n,u);if(y=m,u.length=0,c.push(...w),"final"!==o.type)continue;const E=o.parent;let k="parallel"===E?.type?E:E?.parent,A=k||o;for("compound"===E?.type&&r.push(i(E.id,void 0!==o.output?jt(o.output,y.context,s,n.self):void 0));"parallel"===k?.type&&!b.has(k)&&P(a,k);){b.add(k);const t={};for(const e of O(k)){if("final"===e.type){t[e.key]=void 0!==e.output?jt(e.output,y.context,s,n.self):void 0;continue}if("parallel"===e.type){const n=`xstate.done.state.${e.id}`,s=r.find(t=>t.type===n);t[e.key]=s?.output;continue}const o=O(e).find(t=>"final"===t.type&&a.has(t));t[e.key]=void 0!==o?.output?jt(o.output,y.context,s,n.self):void 0}r.push(i(k.id,t)),A=k,k=k.parent}k||(y=xt(y,{status:"done",output:t(A)}))}_&&(y=xt(y,{_stateInputs:x}))},[w,E]=$(y,s,n,m);y=w,c.push(...E),v&&v!==e.context&&(y=xt(y,{context:v})),b();const k=[...a];if("done"===y.status){const t=[];k.sort((t,e)=>e.order-t.order).forEach(e=>{if(e.exit){const n=y._stateInputs?.[e.id],[s,,o]=p(e.exit,y.context,y.children,n);t.push(...s),o?.length&&r.push(...o)}});const[e,o]=$(y,s,n,t);y=e,c.push(...o)}return u===e.historyValue&&e._nodes.length===a.size&&e._nodes.every(t=>a.has(t))?y.context!==f?[xt(y),c]:[y,c]:[xt(y,{_nodes:k,historyValue:u}),c]}}function st(t,e,n,s,o){const r={context:e.context,event:n,output:It(n),value:e.value,children:e.children,system:s.system,parent:s.self._parent,self:s.self,actions:e.machine.implementations.actions,actorSources:e.machine.implementations.actorSources,guards:e.machine.implementations.guards,delays:e.machine.implementations.delays};if(t.to){const i=[],c=[],a=S(s,i,c,!1,o?.resolveActions??!0),u=t.to(r,a),f=u?.target?W(t.source,At(u.target)):void 0,h=u?.input??("function"==typeof t.input?t.input({context:e.context,event:n,output:It(n)}):t.input);return{targets:f,context:u?.context,reenter:u?.reenter,actions:i,internalEvents:c,input:h}}const i="function"==typeof t.input?t.input({context:e.context,event:n,output:It(n)}):t.input,c="function"==typeof t.context?t.context(r):t.context;return{targets:t.target,context:c,reenter:t.reenter,actions:void 0,internalEvents:void 0,input:i}}function ot(t,e,o,r){let i=t;const c=[];function a(t,e){const n=o.self._collectedMicrosteps||[];n.push(...e),o.self._collectedMicrosteps=n,c.push(t)}if(e.type===s)return i=xt(ct(i,o),{status:"stopped"}),a([i,[]],[]),{snapshot:i,microsteps:c};let u=e;if(u.type!==n){const e=u,n=function(t){return t.type.startsWith("xstate.error.")}(e),s=i.machine.getTransitionData(i,e,o.self);if(n&&!s.length)return i=xt(t,{status:"error",error:e.error}),a([i,[]],[]),{snapshot:i,microsteps:c};const f=nt(s,t,o,u,!1,r);i=f[0],a(f,s)}let f=!0;const h=t.machine.options?.maxIterations??1/0;let d=0,l=0;for(;"active"===i.status;){if(l++,l>1e3)throw new Error("Microstep count exceeded 1000");if(d++,d>h)throw new Error(`Infinite loop detected (>${h} microsteps)`);let t=f?at(i,u,o):[];const e=t.length?i:void 0;if(!t.length){if(!r.length)break;u=r.shift(),t=i.machine.getTransitionData(i,u,o.self)}const n=nt(t,i,o,u,!1,r);i=n[0],f=i!==e,a(n,t)}return"active"!==i.status&&i.children&&ct(i,o),{snapshot:i,microsteps:c}}function rt(t,e,n,s,o){return!!t.to&&it(t.to,e,n,s,o,s.machine.implementations)}function it(t,e,n,s,o,r){let i,c=!1;try{const a=()=>{throw c=!0,new Error("Effect triggered")};i=t({context:e,event:n,output:It(n),self:o,system:o.system,value:s.value,children:s.children,parent:{send:a},actions:r.actions,actorSources:r.actorSources,guards:r.guards,delays:r.delays},E({emit:a,cancel:a,log:a,raise:a,spawn:a,sendTo:a,stop:a},a))}catch(t){if(c)return!0;throw t}return void 0!==i}function ct(t,e){let n;if(!t.children||0===(n=Object.values(t.children).filter(Boolean)).length)return t;for(const t of n)e.stopChild(t);return xt(t,{children:{}})}function at(t,e,n){const s=new Set,o=t._nodes.filter(T);for(const r of o)t:for(let o=r;o;o=o.parent)if(o.always)for(const r of o.always)if(ut(r,e,t,o,n.self)){s.add(r);break t}return X(Array.from(s),new Set(t._nodes),t,e,n)}function ut(t,e,n,s,o){if(t.guard){const r={context:n.context,event:e,output:It(e),self:o,parent:o._parent,children:n.children,actions:s.machine.implementations.actions,actorSources:s.machine.implementations.actorSources,guards:s.machine.implementations.guards,delays:s.machine.implementations.delays,_snapshot:n};if(!t.guard(r))return!1}return!t.to||it(t.to,n.context,e,n,o,s.machine.implementations)}function ft(t){return!!t&&"object"==typeof t&&"machine"in t&&"value"in t}const ht=function(t){return St(t,this.value)},dt=function(t){return this.tags.has(t)},lt=function(t){return this.machine?._canTransition(this,t)??!1},pt=function(){const{_nodes:t,_stateInputs:e,tags:n,machine:s,getMeta:o,getInputs:r,toJSON:i,can:c,hasTag:a,matches:u,...f}=this;return{...f,tags:Array.from(n)}},yt=function(){const t={};for(const e of this._nodes)void 0!==e.meta&&(t[e.id]=e.meta);return t},gt=function(){return this._stateInputs};function vt(t){const e=new Set;for(const n of t)for(const t of n.tags)e.add(t);return e}function mt(t,e){return{status:t.status,output:t.output,error:t.error,machine:e,context:t.context,_nodes:t._nodes,value:t.value??D(e.root,t._nodes),tags:vt(t._nodes),children:t.children,historyValue:t.historyValue||{},_stateInputs:t._stateInputs||{},matches:ht,hasTag:dt,can:lt,getMeta:yt,getInputs:gt,toJSON:pt}}function xt(t,e={}){const n={...t,...e};return(e._nodes??t._nodes)===t._nodes?{status:n.status,output:n.output,error:n.error,machine:t.machine,context:n.context,_nodes:t._nodes,value:t.value,tags:t.tags,children:n.children,historyValue:n.historyValue||{},_stateInputs:n._stateInputs||{},matches:ht,hasTag:dt,can:lt,getMeta:yt,getInputs:gt,toJSON:pt}:mt({...n,value:void 0},t.machine)}function _t(t){const e={};for(const n in t){const s=t[n];Array.isArray(s)&&(e[n]=s.map(t=>({id:t.id})))}return e}function bt(t){let e;for(const n in t){const s=t[n];if(s&&"object"==typeof s)if("sessionId"in s&&"send"in s&&"ref"in s)e??=Array.isArray(t)?t.slice():{...t},e[n]={xstate$$type:Lt,id:s.id};else{const o=bt(s);o!==s&&(e??=Array.isArray(t)?t.slice():{...t},e[n]=o)}}return e??t}function St(t,e){const n=$t(t),s=$t(e);return"string"==typeof s?"string"==typeof n&&s===n:"string"==typeof n?n in s:Object.keys(n).every(t=>t in s&&St(n[t],s[t]))}function wt(t){if(Tt(t))return t;const e=[];let n="";for(let s=0;s<t.length;s++){switch(t.charCodeAt(s)){case 92:n+=t[s+1],s++;continue;case 46:e.push(n),n="";continue}n+=t[s]}return e.push(n),e}function $t(t){if(ft(t))return t.value;if("string"!=typeof t)return t;return Et(wt(t))}function Et(t){if(1===t.length)return t[0];const e={};let n=e;for(let e=0;e<t.length-1;e++)if(e===t.length-2)n[t[e]]=t[e+1];else{const s=n;n={},s[t[e]]=n}return e}function kt(t){return Tt(t)?t:[t]}function At(t){return void 0===t?[]:kt(t)}function jt(t,e,n,s){if("function"==typeof t){return t({context:e,event:n,output:It(n),self:s})}return t}function It(t){if(function(t){return t.type.startsWith("xstate.done.actor.")||t.type.startsWith("xstate.done.state.")}(t)){return t.output}}function Tt(t){return Array.isArray(t)}function Ot(t){return kt(t).map(t=>void 0===t||"string"==typeof t?{target:t}:"function"==typeof t?{to:t}:t)}function Mt(t){if(void 0!==t&&""!==t)return At(t)}function Nt(t,e,n){const s="object"==typeof t,o=s?t:void 0;return{next:(s?t.next:t)?.bind(o),error:(s?t.error:e)?.bind(o),complete:(s?t.complete:n)?.bind(o)}}function Dt(t,e){const n=e.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!n)return t.implementations.actorSources[e];const[,s,o]=n,r=t.getStateNodeById(o).config.invoke,i=(Array.isArray(r)?r[s]:r).src;return"string"==typeof i?t.implementations.actorSources[i]:i}function Pt(t,e){if(e===t)return!0;if("*"===e)return!0;if(!e.endsWith(".*"))return!1;const n=e.split("."),s=t.split(".");for(let t=0;t<n.length;t++){const e=n[t],o=s[t];if("*"===e){return t===n.length-1}if(e!==o)return!1}return!0}function Ct(t,e){return`${t.sessionId}.${e}`}let Rt=!1;const Lt=1;let Wt=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const Kt={clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console)};function Vt(t,e){try{t?.(e)}catch(t){u(t)}}function zt(t){return"object"==typeof t&&null!==t&&"args"in t&&"exec"in t}function Bt(t,e){if(!t?.length)return[];const n=[];for(const s of t)zt(s)?e.actionExecutor(s):n.push(s);return n}class Jt{constructor(t,n){this.logic=t,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this._boundProcess=this._process.bind(this),this.mailbox=new e(this._boundProcess),this.observers=new Set,this.eventListeners=new Map,this.logger=void 0,this._processingStatus=Wt.NotStarted,this._forceDeferredActions=!1,this._parent=void 0,this._syncSnapshot=void 0,this.ref=void 0,this._actorScope=void 0,this._lastSourceRef=void 0,this._collectedMicrosteps=[],this._collectedActions=[],this._collectedSent=[],this._initialEffects=void 0,this.registryKey=void 0,this.sessionId=void 0,this.system=void 0,this.trigger=void 0,this.src=void 0,this._deferred=[],this._pendingEffects=void 0;const s={...Kt,...n},{clock:o,logger:r,parent:i,syncSnapshot:c,id:a,registryKey:u,inspect:f}=s;this.system=i?i.system:s._systemRef?.current??function(t,e){let n=0;const s=new Map,o=new Map,r=new WeakMap,i=new Set,c={},{clock:a,logger:u}=e,f=(t,e,n,s,o)=>{i.size&&t&&(t._collectedSent??=[]).push({targetRef:e,targetId:e.id,event:n,delay:s,id:o})},h={schedule:(t,e,n,s,o=Math.random().toString(36).slice(2))=>{f(t,e,n,s,o);const r={source:t,target:e,event:n,delay:s,id:o,startedAt:Date.now()},i=Ct(t,o);l._snapshot._scheduledEvents[i]=r;const u=a.setTimeout(()=>{delete c[i],delete l._snapshot._scheduledEvents[i],d(t,e,n)},s);c[i]=u},cancel:(t,e)=>{const n=Ct(t,e),s=c[n];delete c[n],delete l._snapshot._scheduledEvents[n],void 0!==s&&a.clearTimeout(s)},cancelAll:t=>{for(const e in l._snapshot._scheduledEvents){const n=l._snapshot._scheduledEvents[e];n.source===t&&h.cancel(t,n.id)}}},d=(t,e,n)=>{const s=e.logic;if("function"==typeof s?.isInternalEventType&&s.isInternalEventType(n.type)&&t!==e)throw new Error(`Internal event "${n.type}" cannot be sent to actor "${e.id}" from outside.`);e._lastSourceRef=t,e._send(n)},l={children:s,reverseKeyedActors:r,keyedActors:o,_snapshot:{_scheduledEvents:(e?.snapshot&&e.snapshot.scheduler)??{}},_bookId:()=>"x:"+n++,_register:(t,e)=>(s.set(t,e),t),_unregister:t=>{s.delete(t.sessionId);const e=r.get(t);void 0!==e&&(o.delete(e),r.delete(t))},get:t=>o.get(t),getAll:()=>Object.fromEntries(o.entries()),_set:(t,e)=>{const n=o.get(t);if(n&&n!==e)throw new Error(`Actor with registry key '${t}' already exists.`);o.set(t,e),r.set(e,t)},inspect:t=>{const e=Nt(t);return i.add(e),{unsubscribe(){i.delete(e)}}},_sendInspectionEvent:e=>{if(!i.size)return;const n={...e,rootId:t.sessionId};i.forEach(t=>t.next?.(n))},_relay:(t,e,n)=>{f(t,e,n),d(t,e,n)},scheduler:h,getSnapshot:()=>({_scheduledEvents:{...l._snapshot._scheduledEvents}}),start:()=>{const t=l._snapshot._scheduledEvents;l._snapshot._scheduledEvents={};for(const e in t){const{source:n,target:s,event:o,delay:r,id:i}=t[e];h.schedule(n,s,o,r,i)}},_clock:a,_logger:u,_timerStrategy:e.timers};return l}(this,{clock:o,logger:r,timers:s.timers}),i||!s._systemRef||s._systemRef.current||(s._systemRef.current=this.system),f&&!i&&this.system.inspect(Nt(f)),this.sessionId=this.system._bookId(),this.id=a??this.sessionId,this.logger=n?.logger??this.system._logger,this.clock=n?.clock??this.system._clock,this._parent=i,this._syncSnapshot=c,this.options=s,this.src=s.src??t,this.ref=this,this._actorScope={self:this,id:this.id,sessionId:this.sessionId,logger:this.logger,defer:t=>{this._deferred.push(t)},system:this.system,stopChild:t=>{if(t._parent!==this)throw new Error(`Cannot stop non-child actor ${t.id}`);t._stop()},emit:t=>{for(const e of[this.eventListeners.get(t.type),this.eventListeners.get("*")])if(e)for(const n of e)Vt(n,t)},actionExecutor:t=>{const e=()=>{if(this._collectedActions.push({type:t.type,params:t.params}),!t.exec)return;const e=Rt;try{Rt=!0,t.exec()}finally{Rt=e}};this._processingStatus!==Wt.Running||this._forceDeferredActions?this._deferred.push(e):e()}},this.send=this.send.bind(this),this.trigger=new Proxy({},{get:(t,e)=>t=>{this.send({...t,type:e})}}),u&&(this.registryKey=u,this.system._set(u,this)),this._collectedMicrosteps=[];let h=n?.snapshot??n?.state;if(h&&"object"==typeof h&&"_pendingEffects"in h){const{_pendingEffects:t,...e}=h;this._pendingEffects=t,h=e}try{if(h)this._snapshot=this.logic.restoreSnapshot?this.logic.restoreSnapshot(h,this._actorScope):h;else if(n?._inert);else{const[t,e]=this.logic.initialTransition(this.options?.input,this._actorScope);this._snapshot=t,this._initialEffects=e}}catch(t){this._snapshot={status:"error",output:void 0,error:t},this._deferred.length=0}u&&"active"!==this._snapshot.status&&this.system._unregister(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this,parentRef:this._parent,id:this.id,src:this.src,snapshot:this._snapshot})}_setErrorSnapshot(t,e=this._snapshot){this._snapshot={...e,status:"error",error:t}}_recoverOrError(t,e){this._tryHandleExecutionError(t,e)||(this._setErrorSnapshot(t),this._error(t))}_tryHandleExecutionError(t,e=this._snapshot){const n=this.logic.getExecutionErrorEvent?.(e,t);if(!n)return!1;try{const[t,s]=this.logic.transition(e,n,this._actorScope);this._snapshot=t;const o=Bt(s,this._actorScope);return this.update(t,n),this.logic.executeEffects?.(o,this._actorScope),!0}catch{return!1}}_next(t){for(const e of this.observers)Vt(e.next,t)}update(t,e){this._snapshot=t;for(let e=0;e<this._deferred.length;e++){const n=this._deferred[e];try{n()}catch(e){if(this._deferred.length=0,this._tryHandleExecutionError(e,t))return;this._setErrorSnapshot(e,t);break}}switch(this._deferred.length=0,this._snapshot.status){case"active":this._next(t);break;case"done":{this._next(t),this._stopProcedure(),this._complete();const e=(n=this.id,s=this._snapshot.output,{type:`xstate.done.actor.${n}`,output:s,actorId:n});this._parent&&this.system._relay(this,this._parent,e);break}case"error":this._error(this._snapshot.error)}var n,s;this.system._sendInspectionEvent({type:"@xstate.transition",actorRef:this,event:e,sourceRef:this._lastSourceRef,targetRef:this,snapshot:t,microsteps:this._collectedMicrosteps,actions:this._collectedActions,sent:this._collectedSent,eventType:e.type}),this._collectedMicrosteps=[],this._collectedActions=[],this._collectedSent=[]}_flushInitialEffects(){if(!this._initialEffects)return!0;this._forceDeferredActions=!0;try{const t=Bt(this._initialEffects,this._actorScope);return this.logic.executeEffects?.(t,this._actorScope),this._initialEffects=void 0,!0}catch(t){return this._initialEffects=void 0,this._deferred.length=0,this._recoverOrError(t),"active"===this._snapshot.status}finally{this._forceDeferredActions=!1}}subscribe(t,e,n){const s=Nt(t,e,n);if(this._processingStatus!==Wt.Stopped)this.observers.add(s);else switch(this._snapshot.status){case"done":Vt(s.complete);break;case"error":{const t=this._snapshot.error;s.error?Vt(s.error,t):u(t);break}}return{unsubscribe:()=>{this.observers.delete(s)}}}on(t,e){let n=this.eventListeners.get(t);return n||(n=new Set,this.eventListeners.set(t,n)),n.add(e),{unsubscribe:()=>{n.delete(e)}}}select(t,e=Object.is){return{subscribe:(n,s,o)=>{const r=Nt(n,s,o);let i=t(this.getSnapshot());return this.subscribe({next:n=>{const s=t(n);e(i,s)||(i=s,r.next?.(s))},error:r.error,complete:r.complete})},get:()=>t(this.getSnapshot())}}start(){if(this._processingStatus===Wt.Running)return this;this._syncSnapshot&&this.subscribe({next:t=>{"active"===t.status&&this.system._relay(this,this._parent,{type:`xstate.snapshot.${this.id}`,snapshot:t})},error:()=>{}}),this.system._register(this.sessionId,this),this.registryKey&&this.system._set(this.registryKey,this),this._processingStatus=Wt.Running;const t=a(this.options.input);this._lastSourceRef=this._parent;switch(this._snapshot.status){case"done":return this._flushInitialEffects()?(this.update(this._snapshot,t),this):this;case"error":return this._error(this._snapshot.error),this}if(this._parent||this.system.start(),this.logic.start)try{this.logic.start(this._snapshot,this._actorScope)}catch(t){return this._setErrorSnapshot(t),this._error(t),this}if(!this._flushInitialEffects())return this;if(this.update(this._snapshot,t),this._pendingEffects){const t=this.options.timers??this.system._timerStrategy??"resume";for(const e of this._pendingEffects)"@xstate.raise"===e.type&&this.system.scheduler.schedule(this,this,e.event,Ft(t,e),e.id);this._pendingEffects=void 0}return this.mailbox.start(),this}_process(t){let e,n;try{e=this.logic.transition(this._snapshot,t,this._actorScope)}catch(t){n={err:t}}if(n)return void this._recoverOrError(n.err);let o=this._snapshot;try{const[n,s]=e;o=n,this._snapshot=o;const r=Bt(s,this._actorScope);this.update(o,t),this.logic.executeEffects?.(r,this._actorScope)}catch(t){return void this._recoverOrError(t,o)}t.type===s&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===Wt.Stopped?this:(this.mailbox.clear(),this._processingStatus===Wt.NotStarted?(this._processingStatus=Wt.Stopped,this):(this.mailbox.enqueue({type:s}),this.system._unregister(this),this))}stop(){if(this._parent)throw new Error("A non-root actor cannot be stopped directly.");return this._stop()}_complete(){for(const t of this.observers)Vt(t.complete);this.observers.clear(),this.eventListeners.clear()}_error(t){if(this._stopProcedure(),this.observers.size){let e=!1;for(const n of this.observers){const s=n.error;e||=!s,Vt(s,t)}this.observers.clear(),e&&u(t)}else this._parent||u(t);var e;this.eventListeners.clear(),this._parent&&this.system._relay(this,this._parent,{type:`xstate.error.actor.${e=this.id}`,error:t,actorId:e})}_stopProcedure(){this._processingStatus===Wt.Running&&(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new e(this._boundProcess),this._processingStatus=Wt.Stopped,this.system._unregister(this))}_send(t){this._processingStatus!==Wt.Stopped&&this.mailbox.enqueue(t)}send(t){this.system._relay(void 0,this,t)}toJSON(){return{xstate$$type:Lt,id:this.id}}getPersistedSnapshot(t){const e=this.logic.getPersistedSnapshot(this._snapshot,t),n=this.system._snapshot._scheduledEvents;let s;const o=Date.now();for(const t in n){const e=n[t];e.source===this&&e.target===this&&(s??=[]).push({type:"@xstate.raise",event:e.event,id:e.id,delay:e.delay,startedAt:e.startedAt,elapsed:Math.max(0,o-e.startedAt)})}return s??=this._pendingEffects,s?{...e,_pendingEffects:s}:e}[f](){return this}getSnapshot(){return this._snapshot}}function Ft(t,e){if("function"==typeof t)return t(e);switch(t){case"restart":return e.delay;case"absolute":return Math.max(0,e.startedAt+e.delay-Date.now());default:return Math.max(0,e.delay-e.elapsed)}}function qt(t,e){return new Jt(t,e)}const Ht=new WeakMap,Ut="xstate.logic.effect.resolve",Gt="xstate.logic.effect.reject",Xt="xstate.logic.effect.start";function Zt(t){let e=Ht.get(t);return e||(e=new Map,Ht.set(t,e)),e}function Qt(t,e){if(t?.length)for(const n of t)switch(n.type){case"emit":e.emit(n.event);break;case"sendBack":{const t=e.self._parent;t&&e.system._relay(e.self,t,n.event);break}case"raise":e.system._relay(e.self,e.self,n.event);break;case"effect":{if(!n.key){const t=n.exec();"function"==typeof t&&Zt(e.self).set(Symbol(),{cleanup:t});break}const t=Zt(e.self);if(t.has(n.key))break;const s=n.exec();t.set(n.key,{cleanup:"function"==typeof s?s:void 0});break}case"cleanupEffects":{const t=Ht.get(e.self);if(!t)break;for(const{cleanup:e}of t.values())e?.();Ht.delete(e.self);break}}}function Yt(t){const e=(e,n,o)=>{if("active"!==e.status)return[e,[]];if(n.type===s)return[{...e,status:"stopped",input:void 0},[{type:"cleanupEffects"}]];if(n.type===Xt)return[{...e,effects:{...e.effects,[n.key]:{status:"active"}}},[]];if(n.type===Ut)return[{...e,effects:{...e.effects,[n.key]:{status:"done",output:n.output}}},[]];if(n.type===Gt)return[{...e,effects:{...e.effects,[n.key]:{status:"error",error:n.error}}},[]];const r=[],i={},c={emit:t=>{r.push({type:"emit",event:t})},sendBack:t=>{r.push({type:"sendBack",event:t})},raise:t=>{r.push({type:"raise",event:t})},effect:(t,n)=>{if("string"==typeof t)return s=t,o=n,void(e.effects?.[s]||(r.push({type:"effect",key:s,exec:o}),i[s]={status:"active"}));var s,o;r.push({type:"effect",exec:t})}},a=t.run({context:e.context,event:n,input:e.input,system:o.system,self:o.self,emit:o.emit},c),u={...e,...a||{}};return("context"in e||void 0!==a?.context)&&(u.context=a?.context??e.context),(a?.effects||Object.keys(i).length)&&(u.effects={...e.effects,...a?.effects,...i}),[u,r]},n={id:t.id,config:t,transition:e,start:(t,n)=>{const[s,o]=e(t,a(t.input),n);Object.assign(t,s),Qt(o,n)},initialTransition:(e,n)=>{const s=function(t,e){return"function"==typeof t?t({input:e}):t}(t.context,e),o={status:"active",output:void 0,error:void 0,input:e};return void 0!==s&&(o.context=s),[{...o},[]]},getInitialSnapshot:(t,e)=>n.initialTransition(e,t)[0],getPersistedSnapshot:t=>t,restoreSnapshot:t=>t,executeEffects:Qt};return n}const te=new WeakMap;const ee="xstate.observable.next",ne="xstate.observable.error",se="xstate.observable.complete";const oe="xstate.async.resolve",re="xstate.async.reject";class ie extends Error{constructor(t){super(`Async logic timed out after ${t}.`),this.name="TimeoutError"}}const ce=Yt({context:void 0,run:()=>{}});function ae(t,{machine:e,context:n},s,o){return(r,i)=>{const c=((r,i)=>{if("string"==typeof r){const c=Dt(e,r);if(!c)throw new Error(`Actor logic '${r}' not implemented in machine '${e.id}'`);const a=qt(c,{id:i?.id,parent:t.self,syncSnapshot:i?.syncSnapshot,input:"function"==typeof i?.input?i.input({context:n,event:s,self:t.self}):i?.input,src:r,registryKey:i?.registryKey});return o[a.id]=a,a}return qt(r,{id:i?.id,parent:t.self,syncSnapshot:i?.syncSnapshot,input:i?.input,src:r,registryKey:i?.registryKey})})(r,i);return o[c.id]=c,t.defer(()=>{c._processingStatus!==Wt.Stopped&&c.start()}),c}}const ue=new WeakMap;function fe(t,e,n){let s=ue.get(t);return s?e in s||(s[e]=n()):(s={[e]:n()},ue.set(t,s)),s[e]}const he={};class de{constructor(t,e){this.config=t,this.key=void 0,this.id=void 0,this.type=void 0,this.path=void 0,this.states=void 0,this.history=void 0,this.entry=void 0,this.exit=void 0,this.parent=void 0,this.machine=void 0,this.meta=void 0,this.output=void 0,this.order=-1,this.description=void 0,this.tags=[],this.transitions=void 0,this.always=void 0,this.invoke=void 0,this.on=void 0,this.after=void 0,this.events=void 0,this.ownEvents=void 0,this.parent=e._parent,this.key=e._key,this.machine=e._machine,this.path=this.parent?this.parent.path.concat(this.key):[];const n=this.config.states?Object.keys(this.config.states)[0]:void 0;if(this.id=this.config.id||[this.machine.id,...this.path].join("."),this.type=this.config.type||(void 0!==n?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,function(t){const e=t.config;if("choice"!==t.type)return;if("function"!=typeof e.choice)throw new Error(`Missing \`choice\` function on "${t.id}"`)}(this),this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?function(t,e){const n={},s=Object.keys(t);for(let o=0;o<s.length;o++){const r=s[o];n[r]=e(t[r],r,t,o)}return n}(this.config.states,(t,e)=>new de(t,{_parent:this,_key:e,_machine:this.machine})):he,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}".`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=this.config.entry,this.exit=this.config.exit,this.entry&&(this.entry._special=!0),this.exit&&(this.exit._special=!0),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=At(t.tags).slice(),this.invoke=At(this.config.invoke).map((t,e)=>{const{src:n,registryKey:s}=t,o=(r=this.id,`${e}.${r}`);var r;const i=t.id??o,c="string"==typeof n?n:`xstate.invoke.${o}`;return{...t,src:c,logic:n,id:i,registryKey:s}})}_initialize(){this.after=function(t){const e=t.config.after,n=t.config.timeout,s=t.config.onTimeout,i=t.invoke.filter(t=>void 0!==t.timeout);if(!e&&void 0===n&&0===i.length)return[];const c=[];if(e)for(const n of Object.keys(e)){const s=Number.isNaN(+n)?n:+n;c.push({event:o(s,t.id),delay:s,transitions:e[n],fromDelaysMap:!0})}var a;void 0!==n&&s&&c.push({event:(a=t.id,{type:`xstate.timeout.${a}`}),delay:n,transitions:s,fromDelaysMap:!0});for(const t of i)c.push({event:r(t.id),delay:t.timeout,transitions:t.onTimeout,fromDelaysMap:!1});const u=[];for(const{event:e,delay:n,transitions:s,fromDelaysMap:o}of c){const r=R(t,e,e=>I(n,o?e.delays:{},{context:e.context,event:e.event,stateNode:t}));for(const t of Ot(s))u.push({...t,event:r,delay:n})}return u.map(e=>({...L(t,e.event,e),delay:e.delay}))}(this),this.transitions=function(t){const e=new Map;if(t.config.on)for(const n of Object.keys(t.config.on)){if(""===n)throw new Error("Null event transition key");const s=t.config.on[n];e.set(n,le(s,e=>L(t,n,e)))}if(t.config.onDone){const n=`xstate.done.state.${t.id}`;e.set(n,le(t.config.onDone,e=>L(t,n,e)))}if(t.config.onError){const n="xstate.error.*";e.set(n,le(t.config.onError,e=>L(t,n,e)))}const n=(e,n)=>L(t,e,{to:(t,e)=>(e.cancel(n),{})}),s=(e,n,s)=>{const{target:o,to:r,reenter:i,...c}=n;return L(t,e,{...c,reenter:i,to:(t,e)=>{if(r){let n=!1;const o=new Proxy(e,{apply:(t,e,s)=>(n=!0,Reflect.apply(t,e,s)),get(t,e,s){const o=Reflect.get(t,e,s);return"function"!=typeof o?o:(...e)=>(n=!0,o.apply(t,e))}}),i=r(t,o);return(void 0!==i||n)&&e.cancel(s),i}return e.cancel(s),{target:o,reenter:i}}})};for(const o of t.invoke){const i=void 0!==o.timeout?r(o.id).type:void 0;if(o.onDone){const r=`xstate.done.actor.${o.id}`,c=le(o.onDone,e=>i?s(r,e,i):L(t,r,e));i&&c.push(n(r,i)),e.set(r,c)}else if(i){const t=`xstate.done.actor.${o.id}`;e.set(t,[n(t,i)])}if(o.onError){const n=`xstate.error.actor.${o.id}`;e.set(n,le(o.onError,e=>i?s(n,e,i):L(t,n,e)))}if(o.onSnapshot){const n=`xstate.snapshot.${o.id}`;e.set(n,le(o.onSnapshot,e=>L(t,n,e)))}}for(const n of t.after){let t=e.get(n.eventType);t||(t=[],e.set(n.eventType,t)),t.push(n)}return e}(this),"choice"===this.type?this.always=function(t){const e=t.config.choice,n=e=>{if(!e||void 0===e.target)throw new Error(`Choice "${t.id}" has no target`);return e};return[L(t,"",{to:t=>n(e(t))})]}(this):this.config.always&&(this.always=le(this.config.always,t=>L(this,"",t)));for(const t of Object.keys(this.states))this.states[t]._initialize();this._refreshEventMetadata()}_refreshEventMetadata(){const t={},e=[];for(const[n,s]of this.transitions)t[n]=s.slice(),s.some(t=>t.target||t.reenter||t.to)&&e.push(n);this.on=t,this.ownEvents=e;const n=new Set(e);for(const t of Object.values(this.states))for(const e of t.events)n.add(e);this.events=Array.from(n)}get initial(){return fe(this,"initial",()=>function(t,e){const n="object"==typeof e&&null!==e?e.target:e,s="object"==typeof e&&null!==e?e.input:void 0,o="string"==typeof n?t.states[n]:void 0;if(!o&&n)throw new Error(`Initial state "${n}" not found on "#${t.id}"`);const r={source:t,target:o?[o]:void 0,input:s};return r}(this,this.config.initial))}next(t,e,n){const s=e.type,o=fe(this,`candidates-${s}`,()=>function(t,e){const n=t.transitions.get(e),s=[...t.transitions.keys()].filter(t=>t!==e&&Pt(e,t)).sort((t,e)=>e.length-t.length).flatMap(e=>t.transitions.get(e));return n?[...n,...s]:s}(this,s));for(const s of o){if(ut(s,e,t,this,n))return[s]}}}function le(t,e){const n=Ot(t),s=new Array(n.length);for(let t=0;t<n.length;t++)s[t]=e(n[t]);return s}let pe,ye;function ge(){return pe??=qt({transition:t=>[t,[]],initialTransition:()=>[{status:"active",output:void 0,error:void 0},[]],getInitialSnapshot:()=>({status:"active",output:void 0,error:void 0}),getPersistedSnapshot:t=>t})}class ve{constructor(t,e){this.config=t,this.version=void 0,this.schemas=void 0,this.implementations=void 0,this.options=void 0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.internalEventDescriptors=void 0,this._json=void 0,this.id=t.id||"(machine)",this.implementations={actorSources:t.actorSources??{},actions:t.actions??{},delays:t.delays??{},guards:t.guards??{},...e},this.version=this.config.version,this.schemas=this.config.schemas,this.internalEventDescriptors=this.config.internalEvents??[],this.options={maxIterations:1/0,...this.config.options},this.transition=this.transition.bind(this),this.initialTransition=this.initialTransition.bind(this),this.getInitialSnapshot=this.getInitialSnapshot.bind(this),this.getPersistedSnapshot=this.getPersistedSnapshot.bind(this),this.restoreSnapshot=this.restoreSnapshot.bind(this),this.start=this.start.bind(this),this.root=new de(t,{_key:this.id,_machine:this}),this.root._initialize(),function(t){const e=[],n=s=>{Object.values(s).forEach(s=>{if(s.config.route&&s.config.id){const o=s.config.id,r=s.config.route,i=({event:t})=>t.to===`#${o}`;if("function"==typeof r)return e.push(L(t,"xstate.route",{guard:i,to:t=>{const e=r(t);if(e)return{...!0===e?{}:e,target:`#${o}`}}})),void(s.states&&n(s.states));const{guard:c,...a}=r,u={...a,guard:i,target:`#${o}`};e.push(L(t,"xstate.route",u))}s.states&&n(s.states)})};n(t.states),e.length>0&&t.transitions.set("xstate.route",e)}(this.root),this.root._refreshEventMetadata(),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:n,actorSources:s,delays:o}=this.implementations,r=new ve(this.config,{actions:{...e,...t.actions},guards:{...n,...t.guards},actorSources:{...s,...t.actorSources},delays:{...o,...t.delays}});return r._json=this._json,r}resolveState(t){const e=(n=this.root,s=t.value,D(n,N(F(n,s))));var n,s;const o=N(F(this.root,e));return mt({_nodes:[...o],value:e,context:t.context||{},children:{},status:P(o,this.root)?"done":t.status||"active",output:t.output,error:t.error,historyValue:t.historyValue},this)}transition(t,e,n){const s=this._transitionFast(t,e,n);if(s)return[s,[]];const{snapshot:o,microsteps:r}=ot(t,e,n,[]);return[o,r.flatMap(([,t])=>t)]}_transitionFast(t,e,n){if("active"!==t.status||"string"!=typeof t.value||this.root.always?.length)return;const s=this.root.states[t.value];if(!s||"atomic"!==s.type||s.exit||s.invoke.length||s.always?.length||s.after?.length)return;const o=s.transitions.get(e.type);if(1!==o?.length)return;const r=o[0];if(r.guard||r.actions||r.to||r.reenter||r.input||"function"==typeof r.context||r.target&&1!==r.target.length)return;const i=r.target?.[0]??s,c=i!==s;if(i.parent!==this.root||"atomic"!==i.type||c&&(i.entry||i.invoke.length||i.always?.length||i.after?.length))return;const a=void 0!==r.context?{...t.context,...r.context}:t.context,u=n.self._collectedMicrosteps||[];return u.push(r),n.self._collectedMicrosteps=u,xt(t,{...a!==t.context?{context:a}:{},...c?{_nodes:[this.root,i]}:{}})}microstep(t,e,n){const{microsteps:s}=ot(t,e,n,[]),o=new Array(s.length);for(let t=0;t<s.length;t++)o[t]=s[t][0];return o}getTransitionData(t,e,n){return q(this.root,t.value,t,e,n)||[]}isInternalEventType(t){for(const e of this.internalEventDescriptors)if(Pt(t,e))return!0;return!1}_canTransition(t,e){const n=ge(),s=function(){if(ye)return ye;const t=ge();return ye={self:t,logger:()=>{},id:"",sessionId:"",defer:()=>{},system:t.system,stopChild:()=>{},emit:()=>{},actionExecutor:()=>{}},ye}(),o=this.getTransitionData(t,e,n);if(!o?.length)return!1;for(const r of o){if(void 0!==r.target)return!0;const o=st(r,t,e,s,{resolveActions:!1});if(o.targets?.length||o.context||rt(r,t.context,e,t,n))return!0}return!1}getExecutionErrorEvent(t,e){if("active"===t?.status&&t._nodes?.some(t=>t.config.onError))return c("execution",e)}_getPreInitialState(t,e){const{context:n}=this.config,s=mt({context:"function"!=typeof n&&n?n:{},_nodes:[this.root],children:{},status:"active"},this);if("function"==typeof n){const o={},r=n({spawn:ae(t,s,e,o),input:e.input,self:t.self,actorSources:this.implementations.actorSources}),[i]=$(s,e,t,[]);return r&&(i.context=r),Object.keys(o).length>0&&(i.children={...i.children,...o}),i}return s}getInitialSnapshot(t,e){return this.initialTransition(e,t)[0]}initialTransition(t,e){const n=a(t),s=[],o=this._getPreInitialState(e,n);let r,i,u=[],f=[];try{[r,u]=et(this.root,o,e,n,s),({snapshot:i,microsteps:f}=ot(r,n,e,s))}catch(t){if(!this.root.config.onError)throw t;const n=ot(o,c("execution",t),e,[]);i=n.snapshot,f=n.microsteps,u=[]}return[i,[...u,...f.flatMap(([,t])=>t)]]}start(t){if(t?.children)for(const e of Object.values(t.children))e._rehydrated&&"active"===e.getSnapshot?.().status&&e.start()}getStateNodeById(t){const e=wt(t),n=e.slice(1),s=C(e[0])?e[0].slice(1):e[0],o=this.idMap.get(s);if(!o)throw new Error(`Child state node '#${s}' does not exist on machine '${this.id}'`);return J(o,n)}getPersistedSnapshot(t,e){return function(t,e){const{_nodes:n,_stateInputs:s,tags:o,machine:r,children:i,context:c,can:a,hasTag:u,matches:f,getMeta:h,getInputs:d,toJSON:l,...p}=t,y={};for(const t in i){const n=i[t];y[t]={snapshot:n.getPersistedSnapshot(e),src:n.src,registryKey:n.registryKey,syncSnapshot:n._syncSnapshot}}const g={...p,context:bt(c),children:y,historyValue:_t(p.historyValue)};return void 0!==r.version&&(g.version=r.version),g}(t,e)}restoreSnapshot(t,e){const n=t.version;if(n!==this.version){const e=this.config.migrate;if("function"!=typeof e)throw new Error(`Persisted snapshot version '${n}' does not match machine version '${this.version}'.`);t=e(t,n)}const s=t,o={},r=s.children;for(const t of Object.keys(r)){const n=r[t],s=n.snapshot,i=n.src,c="string"==typeof i?Dt(this,i):i;if(!c)continue;const a=qt(c,{id:t,parent:e.self,syncSnapshot:n.syncSnapshot,snapshot:s,src:i,registryKey:n.registryKey});a._rehydrated=!0,o[t]=a}const i=(t=>{if(!t||"object"!=typeof t)return{};const e={};for(const n of Object.keys(t)){const s=t[n];for(const t of s){let s;if(t instanceof de)s=t;else try{s=this.root.machine.getStateNodeById(t.id)}catch{}s&&(e[n]??=[],e[n].push(s))}}return e})(s.historyValue),c=Array.from(N(F(this.root,s.value))),{version:a,...u}=t,f=mt({...u,children:o,_nodes:c,value:s.value,historyValue:i},this),h=new WeakSet;return function t(e){if(!h.has(e)){h.add(e);for(const n of Object.keys(e)){const s=e[n];if(s&&"object"==typeof s){if("xstate$$type"in s&&s.xstate$$type===Lt){e[n]=o[s.id];continue}t(s)}}}}(f.context),f}}function me(t){return new ve(t)}const xe={actions:{},actorSources:{},guards:{},delays:{}},_e=[],be=[],Se=new Set(Object.values(h));function we(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function $e(t,e){return"function"==typeof t?t(e):t}function Ee(t,e,n){return"function"==typeof t?t({context:e,event:n}):t}function ke(t,e){for(const n of Object.keys(e))if(!Object.prototype.hasOwnProperty.call(t,n)||!Object.is(t[n],e[n]))return{...t,...e};return t}function Ae(t,e,n,s){return{status:t.status,output:t.output,error:t.error,value:e,context:n,input:t.input,children:t.children,_stateInput:s,machine:t.machine}}function je(t){return{status:"stopped",output:void 0,error:void 0,value:t.value,context:t.context,input:void 0,children:t.children,_stateInput:t._stateInput,machine:t.machine}}function Ie(t){const e=j(t);return void 0!==e?e:"string"==typeof t?parseFloat(t)||0:t}function Te(t){return/^error(\.|$)/.test(t)?`xstate.${t}`:t}function Oe(t){return t.startsWith("xstate.error.")?t.slice(7):t}function Me(t){return!!t&&"object"==typeof t&&"string"==typeof t["@expr"]}function Ne(t){return Me(t)||function(t){return!!t&&"object"==typeof t&&"string"==typeof t["@code"]}(t)}function De(t,e){return"number"==typeof e?`${t}[${e}]`:`${t}.${e}`}function Pe(t){const e={};if(!t)return e;for(const n of Object.keys(t)){const s=t[n];"number"==typeof s?e[n]=s:s&&"object"==typeof s&&"number"==typeof s.duration&&(e[n]=s.duration)}return e}function Ce(t){return void 0===t?[]:Array.isArray(t)?t:[t]}function Re(t,e){Array.isArray(t)&&t.forEach((n,s)=>{if(void 0===n.when&&s!==t.length-1)throw new Error(`Choice fallback branch at ${e}[${s}] must be last.`)})}let Le="session_scxml",We="";function Ke(t,e,n,s){const o=`\nwith (context) {\n return (${e});\n}\n `.trim(),r=new Function("context","_event","_sessionid","_name","_ioprocessors","In",o),i=`#_scxml_${Le}`,c=n&&n._scxmlExternal,a=n&&"@xstate.init"===n.type,u=n&&"string"==typeof n.type&&n.type.startsWith("xstate.done."),f=n&&n._scxmlEventType;return r(t,n&&!a?{name:n._scxmlEventName??Oe(n.type),type:f||(c?"external":"internal"),sendid:n._scxmlSendId,origin:c?i:void 0,origintype:c?"http://www.w3.org/TR/scxml/#SCXMLEventProcessor":void 0,invokeid:n._scxmlInvokeId,data:u?n.output:void 0!==n._scxmlEventData?n._scxmlEventData:n}:void 0,Le,We,{scxml:{location:`#_scxml_${Le}`}},t=>{if(!s)return!1;try{const e=s.getSnapshot?.();if(e?._nodes){const n=t.replace(/\./g,"$");return e._nodes.some(t=>t.id===n||t.id.endsWith("."+n))}}catch{}return!1})}function Ve(t,e){const n=Object.keys(t),s=n.map(t=>`let ${t} = context.${t};`).join("\n"),o=n.map(t=>`updates.${t} = ${t};`).join("\n");return new Function("context","updates",`\n${s}\n${e}\n${o}\nreturn updates;\n `)(t,{})}function ze(t){return!Ne(t)&&t.type.startsWith("@xstate.")}function Be(t){if("function"==typeof t)return{"@code":t.toString(),"@lang":"ts"};if(null===t||"object"!=typeof t)return"bigint"==typeof t||"symbol"==typeof t?void 0:t;if(function(t){return!!t&&"object"==typeof t&&"function"==typeof t.transition&&"function"==typeof t.getInitialSnapshot}(t))return;if(function(t){return!!t&&"object"==typeof t&&"~standard"in t}(t))return;if(Array.isArray(t))return t.map(Be).filter(t=>void 0!==t);if(t.constructor!==Object&&void 0!==t.constructor)return;const e={};for(const n of Object.keys(t)){const s=t[n];if(void 0!==s){const t=Be(s);void 0!==t&&(e[n]=t)}}return e}function Je(t){if(Array.isArray(t)){const e=t.map(Je).filter(t=>void 0!==t);return e.length?e:void 0}const e=t,n={};for(const t of Object.keys(e)){const s=e[t];void 0!==s&&(n[t]="src"===t&&"string"!=typeof s?s.id:Be(s),void 0===n[t]&&delete n[t])}return void 0===n.src?void 0:n}function Fe(t){if(!t)return;const e={};for(const n of Object.keys(t)){const s=t[n];e[n]="function"==typeof s?void 0:Be(s),void 0===e[n]&&delete e[n]}return e}function qe(t){const e={};for(const n of Object.keys(t)){if("states"===n||"invoke"===n)continue;const s=t[n];void 0!==s&&(e[n]=Be(s))}if(void 0!==t.invoke){const n=Je(t.invoke);void 0!==n&&(e.invoke=n)}if(t.states){const n={};for(const e of Object.keys(t.states))n[e]=qe(t.states[e]);e.states=n}return e}function He(t){const e=qe(t);if(void 0!==t.internalEvents&&(e.internalEvents=Be(t.internalEvents)),t.schemas){const n={};for(const e of Object.keys(t.schemas)){const s=t.schemas[e];n[e]=s&&"object"==typeof s&&!("~standard"in s)?Fe(s):Be(s),void 0===n[e]&&delete n[e]}e.schemas=n}for(const n of["actions","guards","actorSources","delays"])if(t[n]){const s=Fe(t[n]);s&&Object.keys(s).length?e[n]=s:delete e[n]}return e}function Ue(t={}){const{states:e={},schemas:n,actions:s,actorSources:o,guards:r,delays:i}=t;return{extend:e=>Ue(function(t,e){return{...t,...e,schemas:Xe(t.schemas,e.schemas),states:Ge(t.states,e.states),actions:Ge(t.actions,e.actions),actorSources:Ge(t.actorSources,e.actorSources),guards:Ge(t.guards,e.guards),delays:Ge(t.delays,e.delays)}}(t,e)),createMachine(t){const e=Xe(t.schemas,n),c=Ge(s,t.actions),a=Ge(o,t.actorSources),u=Ge(r,t.guards),f=Ge(i,t.delays);return new ve({...t,...e?{schemas:e}:void 0,...c?{actions:c}:void 0,...a?{actorSources:a}:void 0,...u?{guards:u}:void 0,...f?{delays:f}:void 0})},createStateConfig:(...t)=>t.length>1?t[1]:t[0],states:e,schemas:n??{}}}function Ge(t,e){return t||e?{...t,...e}:void 0}function Xe(t,e){if(t||e)return{...t,...e,events:Ge(t?.events,e?.events),actions:Ge(t?.actions,e?.actions),guards:Ge(t?.guards,e?.guards),emitted:Ge(t?.emitted,e?.emitted),children:Ge(t?.children,e?.children)}}function Ze(t){const e=qt(t,{_inert:!0});return{self:e,defer:()=>{},id:"",logger:()=>{},sessionId:"",stopChild:()=>{},system:e.system,emit:()=>{},actionExecutor:()=>{}}}let Qe=function(t){return t.Internal="#_internal",t}({});const Ye={timeout:1/0};t.Actor=Jt,t.SimulatedClock=class{constructor(){this.timeouts=new Map,this._now=0,this._id=0,this._flushing=!1,this._flushingInvalidated=!1}now(){return this._now}getId(){return this._id++}setTimeout(t,e){this._flushingInvalidated=this._flushing;const n=this.getId();return this.timeouts.set(n,{start:this.now(),timeout:e,fn:t}),n}clearTimeout(t){this._flushingInvalidated=this._flushing,this.timeouts.delete(t)}set(t){if(this._now>t)throw new Error("Unable to travel back in time");this._now=t,this.flushTimeouts()}flushTimeouts(){if(this._flushing)return void(this._flushingInvalidated=!0);this._flushing=!0;const t=[...this.timeouts].sort(([t,e],[n,s])=>{const o=e.start+e.timeout;return s.start+s.timeout>o?-1:1});for(const[e,n]of t){if(this._flushingInvalidated)return this._flushingInvalidated=!1,this._flushing=!1,void this.flushTimeouts();this.now()-n.start>=n.timeout&&(this.timeouts.delete(e),n.fn.call(null))}this._flushing=!1,this._flushingInvalidated&&(this._flushingInvalidated=!1,this.flushTimeouts())}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=Qe,t.StateMachine=ve,t.StateNode=de,t.TimeoutError=ie,t.__unsafe_getAllOwnEventDescriptors=function(t){return[...new Set([...t._nodes.flatMap(t=>t.ownEvents)])]},t.assertEvent=function(t,e){const n=At(e);if(!n.some(e=>Pt(t.type,e))){const e=1===n.length?`type matching "${n[0]}"`:`one of types matching "${n.join('", "')}"`;throw new Error(`Expected event ${JSON.stringify(t)} to have ${e}`)}},t.checkStateIn=function(t,e){if("string"==typeof e&&C(e)){const n=t.machine.getStateNodeById(e);return t._nodes.some(t=>t===n)}return t.matches(e)},t.createActor=qt,t.createAsyncLogic=function(t){const e=t;return Yt({id:e.id,schemas:e.schemas,context:void 0,run:({event:t,input:s,self:o,system:r},i)=>{switch(t.type){case oe:{const e=t.data??t.output;return{status:"done",output:e,input:void 0,effects:{async:{status:"done",output:e}}}}case re:{const e=t.data??t.error;return{status:"error",error:e,input:void 0,effects:{async:{status:"error",error:e}}}}}if(t.type===n)return i.effect(()=>{const t=o,n=new AbortController,c=e.timeout,a=j(c),u=void 0===a?void 0:r._clock.setTimeout(()=>{"active"===o.getSnapshot().status&&(n.abort(),r._relay(t,t,{type:re,data:new ie(c)}))},a),f=()=>{void 0!==u&&r._clock.clearTimeout(u)};return Promise.resolve(e.run({input:s,system:r,self:o,signal:n.signal},{emit:i.emit,step:async(e,n)=>{const s=o.getSnapshot().effects?.[e];if("done"===s?.status)return s.output;if("error"===s?.status)throw s.error;if("active"===s?.status)return function(t,e){return new Promise((n,s)=>{const o=t.subscribe(t=>{const r=t.effects?.[e];"done"===r?.status?(o.unsubscribe(),n(r.output)):"error"===r?.status&&(o.unsubscribe(),s(r.error))})})}(o,e);r._relay(t,t,{type:Xt,key:e});try{const s=await n();return r._relay(t,t,{type:Ut,key:e,output:s}),s}catch(n){throw r._relay(t,t,{type:Gt,key:e,error:n}),n}}})).then(e=>{f(),"active"===o.getSnapshot().status&&r._relay(t,t,{type:oe,data:e})},e=>{f(),"active"===o.getSnapshot().status&&r._relay(t,t,{type:re,data:e})}),()=>{n.abort(),f()}}),{effects:{async:{status:"active"}}}}})},t.createCallbackLogic=function(t){const e="function"==typeof t?t:t.run;return Yt({schemas:"function"==typeof t?void 0:t.schemas,context:void 0,run:(t,n)=>{const{event:s,input:o,self:r,system:i}=t,c=t.emit,a=te.get(r);a?.receivers?.forEach(t=>t(s)),n.effect("callback",()=>{const t={receivers:void 0,dispose:void 0};return te.set(r,t),t.dispose=e({input:o,system:i,self:r,sendBack:t=>{if("stopped"===r.getSnapshot().status)return;const e=r._parent;e&&i._relay(r,e,t)},receive:e=>{t.receivers??=new Set,t.receivers.add(e)},emit:c}),()=>{te.delete(r),t.receivers?.clear(),t.dispose?.()}})}})},t.createEmptyActor=function(){return qt(ce)},t.createEventObservableLogic=function(t){const e="function"==typeof t?t:t.run,n={config:e,transition:(t,e)=>{if("active"!==t.status)return[t,[]];switch(e.type){case ne:return[{...t,status:"error",error:e.data,input:void 0,_subscription:void 0},[]];case se:return[{...t,status:"done",input:void 0,_subscription:void 0},[]];case s:return t._subscription.unsubscribe(),[{...t,status:"stopped",input:void 0,_subscription:void 0},[]];default:return[t,[]]}},initialTransition:(t,e)=>[{status:"active",output:void 0,error:void 0,context:void 0,input:t,_subscription:void 0},[]],getInitialSnapshot:(t,e)=>n.initialTransition(e,t)[0],start:(t,{self:n,system:s,emit:o})=>{"done"!==t.status&&(t._subscription=e({input:t.input,system:s,self:n,emit:o}).subscribe({next:t=>{n._parent&&s._relay(n,n._parent,t)},error:t=>{s._relay(n,n,{type:ne,data:t})},complete:()=>{s._relay(n,n,{type:se})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})};return n},t.createFSM=function(t){const e={id:t.id??"(fsm)",implementations:xe};!function(t){for(const[e,n]of Object.entries(t.states))for(const[t,s]of Object.entries(n.on??{}))for(const n of we(s))if("string"==typeof n)throw new Error(`Invalid transition for "${e}.${t}": use { target: "${n}" } instead of a string target.`)}(t);const o=(t,e,n,s)=>{if(!s?.length)return[t,_e];const o=function(t){const e=[];for(const n of t){if(!n||"object"!=typeof n||!("action"in n)||"function"!=typeof n.action||Se.has(n.action)||"_special"in n.action)return;e.push({type:n.action.name||"(anonymous)",params:void 0,args:n.args,exec:n.args.length?n.action.bind(null,...n.args):n.action})}return e}(s);return o?[t,o]:$(t,e,n,s)},r=(t,e,n,s,r,i)=>{if(!s)return[t,_e];const c=[],a=S(n,c,i,!0);let u;const f=Array.isArray(s)?s.length:1;for(let o=0;o<f;o++){const i=(Array.isArray(s)?s[o]:s)({context:u??t.context,event:e,input:r,value:t.value,self:n.self,system:n.system,parent:n.self._parent,children:t.children},a);if(void 0!==i?.context){const e=u??t.context,n=ke(e,i.context);n!==e&&(u=n)}}const h=void 0!==u?Ae(t,t.value,u,t._stateInput):t;return o(h,e,n,c)},i=(e,n,s,o)=>{const r=t.states[e.value],i=r?.on?.[n.type];if(!i)return;const c=Array.isArray(i)?i.length:1;for(let t=0;t<c;t++){const r=Array.isArray(i)?i[t]:i,c={context:e.context,event:n,input:e.input,value:e.value,self:s.self,system:s.system,parent:s.self._parent,children:e.children};if("function"==typeof r){const t=[],e=r(c,S(s,t,o,!0));if(!e){if(t.length)return{actions:t};continue}return{target:e.target,context:e.context,input:e.input,actions:t}}if(!("guard"in r)||!r.guard||r.guard(c))return{target:r.target,context:$e(r.context,c),input:r.input,actions:"actions"in r&&r.actions?we(r.actions):be}}},c=(e,n,c)=>{if("active"!==e.status)return[e,[]];if(n.type===s)return[je(e),_e];const a=t.states[e.value],u=a?.on?.[n.type];if(!u)return[e,_e];if(!(Array.isArray(u)||"function"==typeof u||"guard"in u||"actions"in u&&u.actions||"function"==typeof u.input)){const s=u.target??e.value,o=s!==e.value;if(!o||!a.exit&&!t.states[s]?.entry){const t=void 0!==u.context,r=void 0!==u.input,i=$e(u.context,{context:e.context,event:n,input:e.input,value:e.value,self:c.self,system:c.system,parent:c.self._parent,children:e.children}),a=t&&i?ke(e.context,i):e.context;return o||a!==e.context||r||void 0!==e._stateInput?[Ae(e,s,a,r?Ee(u.input,a,n):void 0),_e]:[e,_e]}}if("function"==typeof u&&u.length<2&&!a?.exit){const s=u({context:e.context,event:n,input:e.input,value:e.value,self:c.self,system:c.system,parent:c.self._parent,children:e.children},void 0);if(s){const o=s.target??e.value;if(!t.states[o]?.entry){const t=void 0!==s.context,r=void 0!==s.input,i=t&&s.context?ke(e.context,s.context):e.context;return o!==e.value||i!==e.context||r||void 0!==e._stateInput?[Ae(e,o,i,r?Ee(s.input,i,n):void 0),_e]:[e,_e]}}}let f=e;const h=[],d=[n];let l=0;for(;d.length;){if(++l>1e3)throw new Error("FSM microstep count exceeded 1000");const e=d.shift(),n=i(f,e,c,d);if(!n)continue;const s=n.target??f.value,a=s!==f.value;if(a){const[n,s]=r(f,e,c,t.states[f.value]?.exit,f._stateInput,d);f=n,h.push(...s)}let u=f.context;void 0!==n.context&&(u=ke(u,n.context));const p=void 0!==n.input,y=p?Ee(n.input,u,e):void 0;(a||u!==f.context||p||void 0!==f._stateInput)&&(f=Ae(f,s,u,y));const[g,v]=o(f,e,c,n.actions);if(f=g,h.push(...v),a){const[n,o]=r(f,e,c,t.states[s]?.entry,y,d);f=n,h.push(...o)}}return[f,h]},a={id:t.id,config:t,transition:c,initialTransition:(s,o)=>{const i=function(t,e){return"function"==typeof t?t({input:e}):t??{}}(t.context,s),a=function(t,e,n,s,o){return{status:"active",output:void 0,error:void 0,value:t,context:e,input:n,children:{},_stateInput:o,machine:s}}(t.initial,i,s,e),u=[];let[f,h]=r(a,{type:n},o,t.states[t.initial]?.entry,void 0,u);for(h.length||(h=[]);u.length;){const[t,e]=c(f,u.shift(),o);f=t,h.push(...e)}return[f,h]},getInitialSnapshot:(t,e)=>a.initialTransition(e,t)[0],getPersistedSnapshot:({machine:t,...e})=>e,restoreSnapshot:t=>({...t,machine:e})};return a},t.createListenerLogic=y,t.createLogic=Yt,t.createMachine=me,t.createMachineFromConfig=function t(e,n={}){const s=function(t,e){return{actions:e.actions??{},guards:e.guards??{},actorSources:e.actorSources??{},delays:{...Pe(t.delays),...e.delays??{}},evaluators:e.evaluators??{}}}(e,n),o=function(t,e){function n(n,s){const o=n["@lang"]??t;if(!o)throw new Error(`Missing @exprLang for expression at ${s}`);const r=e.evaluators[o];if(!r)throw new Error(`Missing evaluator for @lang '${o}' at ${s}`);return r}function s(t,e,s,o){const r=Me(t)?"expr":"code",i=Me(t)?t["@expr"]:t["@code"];return n(t,o)({source:i,kind:r,slot:e,scope:s,path:o})}function o(t,e,n,r){if(Ne(t))return s(t,e,n,r);if(Array.isArray(t))return t.map((t,s)=>o(t,e,n,De(r,s)));if(!t||"object"!=typeof t)return t;const i={};for(const s of Object.keys(t))i[s]=o(t[s],e,n,De(r,s));return i}function r(t,e){return{context:t.context,event:t.event,input:t.input,self:t.self,children:t.children,params:t.params,...e}}return{evaluateResolvable:s,resolveValue:o,makeScope:r,getDurationConfig:function(t,e){return Ne(t)?n=>Ie(o(t,"delay",r(n),e)):t},assertResolvable:function t(e,s){if(Ne(e))n(e,s);else if(Array.isArray(e))e.forEach((e,n)=>t(e,De(s,n)));else if(e&&"object"==typeof e)for(const n of Object.keys(e))t(e[n],De(s,n))}}}(e["@exprLang"],s),{evaluateResolvable:r,resolveValue:i,makeScope:c,getDurationConfig:a}=o;function u(t,n,s){if(t)return Ne(t)?e=>!!r(t,n,c(e),s):o=>{const r=i(t.params,n,c(o),`${s}.params`),a=e.guards?.[t.type];if(a){const e=u(a.when,"guard",`$.guards.${t.type}.when`);return!!e?.({...o,params:r})}const f=o.guards?.[t.type];if(!f)throw new Error((h=t.type,d=o.guards??{},`Guard '${h}' is not implemented in machine '${e.id??"(machine)"}'. Available guards: ${Object.keys(d).map(t=>`'${t}'`).join(", ")||"(none)"}.`));var h,d;return f(o,r)}}function f(t,e){if(t)return Ne(t)?n=>r(t,"choice",c(n),e):(Re(t,e),n=>{for(let s=0;s<t.length;s++){const o=t[s],r=u(o.when,"choice",`${e}[${s}].when`);if(!r||r(n))return{target:o.target,context:o.context?i(o.context,"transitionContext",c(n),`${e}[${s}].context`):void 0,input:void 0!==o.input?i(o.input,"input",c(n),`${e}[${s}].input`):void 0,description:o.description,reenter:o.reenter,meta:o.meta}}throw new Error(`Choice state at ${e} did not match any branch.`)})}const h={},d=[];let l=null;const p=[];function y(t,e){if(!t||"function"==typeof t)return t;if(Ne(t))return n=>r(t,"transition",c(n),e);const{guard:n,...s}=t;if(!n)return s;const o=u({type:n},"guard",e);return t=>o(t)?s:void 0}function g(e){return(Array.isArray(e)?e:[e]).map(e=>{const n=e;let o;return o=n._nestedMachineJSON?t(n._nestedMachineJSON,s):s.actorSources[e.src]??e.src,{src:o,id:e.id,registryKey:e.registryKey,input:void 0!==e.input?t=>i(e.input,"input",c(t),"$.invoke.input"):void 0,onDone:e.onDone?_(e.onDone):void 0,onError:e.onError?_(e.onError):void 0,onSnapshot:e.onSnapshot?_(e.onSnapshot):void 0,timeout:a(e.timeout,"$.invoke.timeout"),onTimeout:e.onTimeout?_(e.onTimeout):void 0}})}function v(t,e,n){const s=n instanceof Error?n.message:"string"==typeof n?n:"unknown error";t.enq.raise({type:"xstate.error.execution",error:{tagname:e,message:s,line:NaN,column:NaN,reason:s},_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:{tagname:e,message:s,line:NaN,column:NaN,reason:s}}),t.errored=!0}function m(t,n,s,o,r,i){const c=e.actions?.[t.type];if(!c)return s(n.actions[t.type],o),{context:void 0,errored:r.errored};if(i.includes(t.type))return v(r,"action",new Error(`Circular action reference: ${i.concat(t.type).join(" -> ")}`)),{context:void 0,errored:!0};return x(Array.isArray(c)?c:[c],{...n,params:o},s,r,i.concat(t.type))}function x(t,e,n,s,o=[]){const a=s??{enq:n,errored:!1};let u;for(const s of t){if(a.errored)break;if(Ne(s)){const t=r(s,"action",c(e,{params:e.params,enq:n}),"$.actions");t&&"object"==typeof t&&"context"in t&&t.context&&(u??={},Object.assign(u,t.context))}else if(ze(s))switch(s.type){case"@xstate.raise":{const t=void 0!==s.delay,o=i(s.event,"actionParams",c(e,{params:e.params}),"$.actions.event"),r=t||void 0!==s.id?{...o,...t?{_scxmlExternal:!0}:{},...void 0!==s.id?{_scxmlSendId:s.id}:{}}:o;n.raise(r,{id:s.id,delay:s.delay});break}case"@xstate.cancel":n.cancel(s.id);break;case"@xstate.log":n.log(...s.args);break;case"@xstate.emit":n.emit(i(s.event,"actionParams",c(e,{params:e.params}),"$.actions.event"));break;case"@xstate.assign":u??={},Object.assign(u,i(s.context,"transitionContext",c(e,{params:e.params}),"$.actions.context"));break;default:throw new Error(`Unknown built-in action: ${s.type}`)}else if("scxml.assign"===s.type){const t=s,n={...e.context,...u};let o;try{o=Ke(n,t.expr,e.event,e.self)}catch(t){v(a,"assign",t);continue}if(t.location.includes(".")){v(a,"assign",new Error(`Invalid assign location: ${t.location}`));continue}u??={},u[t.location]=o}else if("scxml.raise"===s.type){const t=s,o={...e.context,...u};let r,i,c,f;try{if(r=t.eventexpr?Ke(o,t.eventexpr,e.event,e.self):t.event||"unknown",r=Te(r),i={type:r,_scxmlEventName:Oe(r)},t.params)for(const n of t.params)i[n.name]=Ke(o,n.expr,e.event,e.self);c=t.targetexpr?Ke(o,t.targetexpr,e.event,e.self):t.target;const n="#_internal"===c;f=t.delayexpr?Ie(Ke(o,t.delayexpr,e.event,e.self)):n?void 0:t.delay}catch(t){v(a,"send",t);continue}const h="#_internal"===c,d="#_parent"===c;if("string"==typeof c&&c.length>0&&!c.startsWith("#_")){v(a,"send",new Error(`Invalid send target: ${c}`));continue}if(void 0!==t.id&&(i._scxmlSendId=t.id),d&&e.parent)n.sendTo(e.parent,i,void 0!==f?{delay:f}:void 0);else if("string"!=typeof c||!c.startsWith("#_")||d||h)h?n.raise(i,{id:t.id,delay:f}):(i._scxmlExternal=!0,n.sendTo(e.self,i,{id:t.id,delay:f}));else{const s=c.slice(2),o=e.children?.[s];if(o)n.sendTo(o,i);else if(s.startsWith("scxml_")&&s!==`scxml_${Le}`){const t=`Unable to dispatch event to target: ${c}`;n.raise({type:"xstate.error.communication",error:{tagname:"send",message:t,line:NaN,column:NaN,reason:t},_scxmlEventType:"platform",_scxmlEventName:"error.communication",_scxmlEventData:{tagname:"send",message:t,line:NaN,column:NaN,reason:t}})}else i._scxmlExternal=!0,n.sendTo(e.self,i,{id:t.id,delay:f})}}else if("scxml.cancel"===s.type){const t=s,o={...e.context,...u};try{const s=Ke(o,t.sendidexpr,e.event,e.self);s&&n.cancel(s)}catch{}}else if("scxml.script"===s.type){const t=s,n={...e.context,...u};try{const e=Ve(n,t.code);u??={},Object.assign(u,e)}catch(t){v(a,"script",t)}}else if("scxml.foreach"===s.type){const t=s,o={...e.context,...u},r=t=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t);if(!r(t.item)||t.index&&!r(t.index)){v(a,"foreach",new Error("foreach item/index is not a legal location"));continue}let i;try{i=Ke(o,t.array,e.event,e.self)}catch(t){v(a,"foreach",t);continue}if(!Array.isArray(i)){v(a,"foreach",new Error("foreach array is not iterable"));continue}u??={};for(let s=0;s<i.length;s++){u[t.item]=i[s],t.index&&(u[t.index]=s);const o={...e,context:{...e.context,...u}},r=x(t.actions,o,n,a);if(r.context&&Object.assign(u,r.context),a.errored)break}}else if("scxml.block"===s.type){const t=s,o={...e,context:{...e.context,...u}},r=x(t.actions,o,n);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}else if("scxml.if"===s.type){const t=s,o={...e.context,...u};for(const s of t.branches){let t;if(s.cond)try{t=!!Ke(o,s.cond,e.event,e.self)}catch(e){v(a,"if",e),t=!1}else t=!0;if(t){if(s.actions.length){const t={...e,context:o},r=x(s.actions,t,n,a);if(r.context){u??={};for(const t of Object.keys(r.context))r.context[t]!==e.context[t]&&(u[t]=r.context[t])}}break}}}else{const t=m(s,e,n,i(s.params,"actionParams",c(e,{params:e.params}),"$.actions.params"),a,o);t.context&&(u??={},Object.assign(u,t.context))}}return{context:u?{...e.context,...u}:void 0,errored:a.errored}}function _(t){const e=Array.isArray(t)?t:[t];return e.map((t,n)=>{if(Ne(t))return(s,o)=>r(t,"transition",c(s,{enq:o}),"$.transition"+(e.length>1?`[${n}]`:""));const s=Array.isArray(t.target)?t.target[0]:t.target,o=t.target,a=u(t.guard,"guard","$.transition.guard"),f=e=>t.context?i(t.context,"transitionContext",c(e),"$.transition.context"):void 0,p=e=>void 0!==t.input?i(t.input,"input",c(e),"$.transition.input"):void 0;return a||t.actions?.length?a&&!t.actions?.length?t.context?{guard:a,to:e=>({target:o,context:f(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{target:o,guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}:s?{guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,n)=>{const r=f(e);if(t.actions?.length){const e=s.replace(/^#/,"");h[e]=t.actions,d.includes(t.actions)||d.push(t.actions)}return{target:o,context:r,reenter:t.reenter}}}:{guard:a,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0,to:(e,n)=>{const s=f(e);if(t.actions?.length){d.includes(t.actions)||d.push(t.actions),l??=e.context;const o=x(t.actions,e,n);if(o.context)return{context:{...s,...o.context}}}return s?{context:s}:{}}}:t.context?{to:e=>({target:o,context:f(e),reenter:t.reenter}),description:t.description,meta:t.meta,input:void 0!==t.input?p:void 0}:{target:o,description:t.description,reenter:t.reenter,meta:t.meta,input:void 0!==t.input?p:void 0}})}if(e.delays)for(const t of Object.keys(e.delays)){const n=e.delays[t];"number"==typeof n?s.delays[t]=n:"string"==typeof n?s.delays[t]=Ie(n):n&&"object"==typeof n&&(s.delays[t]=e=>Ie(i(n.duration,"delay",c(e),`$.delays.${t}.duration`)))}!function(t,e,n){const{assertResolvable:s}=n;function o(n,r){if(n)if(Ne(n))s(n,r);else if(s(n.params,`${r}.params`),t.guards?.[n.type])o(t.guards[n.type].when,`$.guards.${n.type}.when`);else if(!e.guards[n.type]&&!["scxml.cond","xstate.stateIn","xstate.not"].includes(n.type))throw new Error(`Missing guard implementation "${n.type}"`)}function r(n,o,i=[]){if(Ne(n))return void s(n,o);if(!n||"string"!=typeof n.type)throw new Error(`Invalid action at ${o}`);if(s(n.params,`${o}.params`),n.type.startsWith("@xstate.")||n.type.startsWith("scxml."))return void s(n,o);const c=t.actions?.[n.type];if(c){if(i.includes(n.type))throw new Error(`Circular action reference: ${i.concat(n.type).join(" -> ")}`);const t=Array.isArray(c)?c:[c];return void t.forEach((e,s)=>r(e,`${o}.actions.${n.type}${t.length>1?`[${s}]`:""}`,i.concat(n.type)))}if(!e.actions[n.type])throw new Error(`Missing action implementation "${n.type}"`)}function i(t,e){Ce(t).forEach((t,n)=>r(t,`${e}[${n}]`))}function c(t,e){(Array.isArray(t)?t:t?[t]:[]).forEach((n,r)=>{const c=Array.isArray(t)?`${e}[${r}]`:e;Ne(n)?s(n,c):(o(n.guard,`${c}.guard`),i(n.actions,`${c}.actions`),s(n.context,`${c}.context`),s(n.input,`${c}.input`))})}if(t.actions)for(const e of Object.keys(t.actions)){const n=Array.isArray(t.actions[e])?t.actions[e]:[t.actions[e]];n.forEach((t,s)=>r(t,`$.actions.${e}${n.length>1?`[${s}]`:""}`,[e]))}if(t.guards)for(const e of Object.keys(t.guards))o(t.guards[e].when,`$.guards.${e}.when`);if(t.delays)for(const e of Object.keys(t.delays)){const n=t.delays[e];s(n&&"object"==typeof n&&"duration"in n?n.duration:n,`$.delays.${e}`)}!function n(r,a){if(s(r.context,`${a}.context`),s(r.input,`${a}.input`),s(r.output,`${a}.output`),s(r.timeout,`${a}.timeout`),i(r.entry,`${a}.entry`),i(r.exit,`${a}.exit`),"choice"===r.type){if(!r.choice)throw new Error(`Choice state at ${a} must declare choice.`);Array.isArray(r.choice)?(Re(r.choice,`${a}.choice`),r.choice.forEach((t,e)=>{o(t.when,`${a}.choice[${e}].when`),s(t.context,`${a}.choice[${e}].context`),s(t.input,`${a}.choice[${e}].input`)})):s(r.choice,`${a}.choice`)}if(Ne(r.route)&&s(r.route,`${a}.route`),r.invoke&&(Array.isArray(r.invoke)?r.invoke:[r.invoke]).forEach((t,n)=>{const o=`${a}.invoke${Array.isArray(r.invoke)?`[${n}]`:""}`;if(!t._nestedMachineJSON&&!e.actorSources[t.src])throw new Error(`Missing actorSource implementation "${t.src}"`);s(t.input,`${o}.input`),s(t.timeout,`${o}.timeout`),c(t.onDone,`${o}.onDone`),c(t.onError,`${o}.onError`),c(t.onSnapshot,`${o}.onSnapshot`),c(t.onTimeout,`${o}.onTimeout`)}),r.on)for(const t of Object.keys(r.on))c(r.on[t],`${a}.on.${t}`);if(r.after)for(const n of Object.keys(r.after)){if(Number.isNaN(Number(n))&&void 0===j(n)&&!t.delays?.[n]&&!e.delays[n])throw new Error(`Missing delay implementation "${n}"`);c(r.after[n],`${a}.after.${n}`)}if(c(r.always,`${a}.always`),c(r.onError,`${a}.onError`),c(r.onTimeout,`${a}.onTimeout`),r.states)for(const t of Object.keys(r.states))n(r.states[t],`${a}.states.${t}`)}(t,"$")}(e,s,o);const b=function t(e,n){const s=Ce(e.entry),o=e.id||n;var i,c;return{id:e.id,initial:e.initial,type:e.type,history:e.history,target:e.target,description:e.description,tags:e.tags,input:e.input,timeout:a(e.timeout,`$.states.${n}.timeout`),states:e.states?Object.entries(e.states).reduce((e,[n,s])=>(e[n]=t(s,n),e),{}):void 0,on:e.on?Object.entries(e.on).reduce((t,[e,n])=>(t[e]=_(n),t),{}):void 0,always:e.always?_(e.always):void 0,onError:e.onError?_(e.onError):void 0,choice:f(e.choice,`$.states.${n}.choice`),route:y(e.route,`$.states.${n}.route`),after:e.after?Object.entries(e.after).reduce((t,[e,n])=>(t[e]=_(n),t),{}):void 0,onTimeout:e.onTimeout?_(e.onTimeout):void 0,entry:"choice"===e.type?void 0:(t,e)=>{for(;p.length;){const t=p.shift();e.raise({type:"xstate.error.execution",error:t,_scxmlEventType:"platform",_scxmlEventName:"error.execution",_scxmlEventData:t})}let n;if(l&&d.length>0&&Object.keys(h).length>0){let s=l;for(const n of d){const o=x(n,{...t,context:s},e);o.context&&(s=o.context)}d.length=0,l=null;for(const t of Object.keys(h))delete h[t];n=s}else{const s=o?h[o]:void 0;if(s){delete h[o];const r=x(s,t,e);r.context&&(n=r.context)}l=null,d.length=0}if(s.length){const o=n?{...t,context:n}:t,r=x(s,o,e);r.context&&(n=r.context)}return{context:n}},exit:e.exit?(c=Ce(e.exit),(t,e)=>x(c,t,e)):void 0,invoke:e.invoke?g(e.invoke):void 0,meta:e.meta,output:e._scxmlDonedata?(i=e._scxmlDonedata,({context:t,event:e,self:n})=>{try{if(i.params&&i.params.length){const s={};for(const o of i.params)s[o.name]=Ke(t,o.expr,e,n);return s}if(void 0!==i.contentExpr)return Ke(t,i.contentExpr,e,n);if(void 0!==i.contentText)try{return Ke(t,i.contentText,e,n)}catch{return i.contentText}}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";p.push({tagname:"donedata",message:e,line:NaN,column:NaN,reason:e})}}):Ne(e.output)?({context:t,event:s,self:o})=>r(e.output,"output",{context:t,event:s,self:o},`$.states.${n}.output`):e.output}}(e),S=e.context?{context:t=>i(e.context,"context",t,"$.context")}:{};We=e.id||"",Le="session_scxml";const w={"scxml.cond":({context:t,event:e,self:n},s)=>{const o=s?.expr;if(!o)return!0;try{return!!Ke(t,o,e,n)}catch(t){const e=t instanceof Error?t.message:"string"==typeof t?t:"unknown error";return p.push({tagname:"cond",message:e,line:NaN,column:NaN,reason:e}),!1}},"xstate.stateIn":(t,e)=>{const n=e?.stateId;if(!n)return!1;const s=n.replace(/^#/,""),o=t._snapshot;return!!o?._nodes&&o._nodes.some(t=>t.id===s)},"xstate.not":(t,e)=>{const n=e?.guard,s=n&&t.guards?.[n.type];if(!s)throw new Error(`Guard '${n?.type}' referenced by 'xstate.not' is not implemented.`);return!s(t,n.params)}},$=me({...b,...S,version:e.version}).provide({actions:s.actions,actorSources:s.actorSources,guards:{...w,...s.guards},delays:s.delays});return $._json=e,$},t.createObservableLogic=function(t){const e="function"==typeof t?t:t.run;return Yt({schemas:"function"==typeof t?void 0:t.schemas,context:void 0,run:(t,n)=>{const{event:s,input:o,self:r,system:i}=t,c=t.emit;switch(s.type){case ee:return{context:s.data};case ne:return{status:"error",error:s.data,input:void 0,effects:{observable:{status:"error",error:s.data}}};case se:return{status:"done",input:void 0,effects:{observable:{status:"done"}}}}n.effect("observable",()=>{const t=r,n=e({input:o,system:i,self:r,emit:c}).subscribe({next:e=>{i._relay(t,t,{type:ee,data:e})},error:e=>{i._relay(t,t,{type:ne,data:e})},complete:()=>{i._relay(t,t,{type:se})}});return()=>n.unsubscribe()})}})},t.createStateConfig=function(t){return t},t.createSubscriptionLogic=v,t.createSystem=function(t={}){const e={},n=[];return{createActor(t,s){const o=qt(t,{...s,_systemRef:e});return(()=>{const t=e.current;if(t)for(const e of n)e.active&&!e.subscription&&(e.subscription=t.inspect(e.observer))})(),o},get:t=>e.current?.get(t),getAll:()=>e.current?.getAll()??{},inspect(t){const s=e.current;if(s)return s.inspect(t);const o={observer:t,active:!0};return n.push(o),{unsubscribe(){o.active=!1,o.subscription?.unsubscribe()}}},setup:t=>t?Ue(t):Ue()}},t.getInitialMicrosteps=function(t,...[e]){const n=Ze(t),s=a(e),o=[],r=t._getPreInitialState(n,s),i=et(t.root,r,n,s,o),{microsteps:c}=ot(i[0],s,n,o);return[i,...c]},t.getInitialSnapshot=function(t,...[e]){const n=Ze(t);return t.initialTransition(e,n)[0]},t.getMicrosteps=function(t,e,n){const s=Ze(t),{microsteps:o}=ot(e,n,s,[]);return o},t.getNextSnapshot=function(t,e,n){const s=Ze(t);s.self._snapshot=e;const o=t.transition(e,n,s);return Array.isArray(o)?o[0]:o},t.getNextTransitions=function(t){const e=[],n=t._nodes.filter(T),s=new Set;for(const t of n)for(const n of[t].concat(M(t,void 0)))if(!s.has(n.id)){s.add(n.id);for(const[,t]of n.transitions.entries())e.push(...t);n.always&&e.push(...n.always)}return e},t.getStateNodes=F,t.initialTransition=function(t,...[e]){const n=Ze(t),[s,o]=t.initialTransition(e,n);return[s,o]},t.isBuiltInExecutableAction=function(t){return Object.prototype.hasOwnProperty.call(h,t.type)},t.isMachineSnapshot=ft,t.isTypeSchema=function(t){return!!t&&"object"==typeof t&&"~standard"in t&&"xstate.types"===t["~standard"].vendor},t.listenerLogic=g,t.machineConfigToJSON=He,t.mapState=function(t,e){const n=[],s=(t,e)=>{let n=t;for(const t of e){if(!n?.states)return;const e=n.states;if(!(t in e))return;n=e[t]}return n},o=new Set;for(const r of t._nodes.filter(T)){let i=r;for(;i&&!o.has(i);){o.add(i);const r=s(e,i.path);r?.map&&n.push({stateNode:i,result:r.map(t)}),i=i.parent}}return n},t.matchesState=St,t.pathToStateValue=Et,t.serializeMachine=function(t){return t._json??He(t.config)},t.setup=Ue,t.subscriptionLogic=m,t.toObserver=Nt,t.toPromise=function(t){return new Promise((e,n)=>{t.subscribe({complete:()=>{e(t.getSnapshot().output)},error:n})})},t.transition=function(t,e,n){const s=Ze(t),[o,r]=t.transition(e,n,s);return[o,r]},t.types=function(){return{"~standard":{version:1,vendor:"xstate.types",validate:t=>({value:t})}}},t.waitFor=function(t,e,n){const s={...Ye,...n};return new Promise((n,o)=>{const{signal:r}=s;if(r?.aborted)return void o(r.reason);let i=!1;const c=s.timeout===1/0?void 0:setTimeout(()=>{a(),o(new Error(`Timeout of ${s.timeout} ms exceeded`))},s.timeout),a=()=>{clearTimeout(c),i=!0,h?.unsubscribe(),f&&r.removeEventListener("abort",f)};function u(t){e(t)&&(a(),n(t))}let f,h;u(t.getSnapshot()),i||(r&&(f=()=>{a(),o(r.reason)},r.addEventListener("abort",f)),h=t.subscribe({next:u,error:t=>{a(),o(t)},complete:()=>{a(),o(new Error("Actor terminated without satisfying predicate"))}}),i&&h.unsubscribe())})},Object.defineProperty(t,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=xstate.umd.min.js.map
|