xstate 5.6.0 → 5.6.2
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/actions/dist/xstate-actions.cjs.js +1 -1
- package/actions/dist/xstate-actions.development.cjs.js +1 -1
- package/actions/dist/xstate-actions.development.esm.js +1 -1
- package/actions/dist/xstate-actions.esm.js +1 -1
- package/actions/dist/xstate-actions.umd.min.js.map +1 -1
- package/dist/declarations/src/index.d.ts +1 -1
- package/dist/declarations/src/setup.d.ts +1 -1
- package/dist/declarations/src/types.d.ts +27 -3
- package/dist/{log-3552abe4.development.cjs.js → log-75c83841.development.cjs.js} +1 -9
- package/dist/{log-a8de0b28.esm.js → log-b6ecfc82.esm.js} +1 -9
- package/dist/{log-8a4f6e5c.cjs.js → log-c5c46d15.cjs.js} +1 -9
- package/dist/{log-fedd0292.development.esm.js → log-edca19d9.development.esm.js} +1 -9
- package/dist/xstate.cjs.js +6 -1
- package/dist/xstate.cjs.mjs +1 -0
- package/dist/xstate.development.cjs.js +6 -1
- package/dist/xstate.development.cjs.mjs +1 -0
- package/dist/xstate.development.esm.js +7 -3
- package/dist/xstate.esm.js +7 -3
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ export * from "./typegenTypes.js";
|
|
|
9
9
|
export * from "./types.js";
|
|
10
10
|
export { waitFor } from "./waitFor.js";
|
|
11
11
|
import { createMachine } from "./createMachine.js";
|
|
12
|
-
export { getNextSnapshot } from "./getNextSnapshot.js";
|
|
12
|
+
export { getNextSnapshot, getInitialSnapshot } from "./getNextSnapshot.js";
|
|
13
13
|
import { Actor, createActor, interpret, Interpreter } from "./createActor.js";
|
|
14
14
|
import { StateNode } from "./StateNode.js";
|
|
15
15
|
export { and, not, or, stateIn } from "./guards.js";
|
|
@@ -13,7 +13,7 @@ type ToProvidedActor<TChildrenMap extends Record<string, string>, TActors extend
|
|
|
13
13
|
[K in keyof TResolvedActors & string]: {
|
|
14
14
|
src: K;
|
|
15
15
|
logic: TResolvedActors[K];
|
|
16
|
-
id: IsNever<TChildrenMap> extends true ? string | undefined : K extends keyof Invert<TChildrenMap> ? Invert<TChildrenMap>[K] : string | undefined;
|
|
16
|
+
id: IsNever<TChildrenMap> extends true ? string | undefined : K extends keyof Invert<TChildrenMap> ? Invert<TChildrenMap>[K] & string : string | undefined;
|
|
17
17
|
};
|
|
18
18
|
}>;
|
|
19
19
|
type _GroupStateKeys<T extends StateSchema, S extends keyof T['states']> = S extends any ? T['states'][S] extends {
|
|
@@ -3,7 +3,7 @@ import type { StateMachine } from "./StateMachine.js";
|
|
|
3
3
|
import type { StateNode } from "./StateNode.js";
|
|
4
4
|
import { AssignArgs } from "./actions/assign.js";
|
|
5
5
|
import { PromiseActorLogic } from "./actors/promise.js";
|
|
6
|
-
import { Guard, UnknownGuard } from "./guards.js";
|
|
6
|
+
import { Guard, GuardPredicate, UnknownGuard } from "./guards.js";
|
|
7
7
|
import type { Actor } from "./createActor.js";
|
|
8
8
|
import { Spawner } from "./spawn.js";
|
|
9
9
|
import { AnyActorSystem, InspectionEvent, Clock } from './system.js';
|
|
@@ -383,8 +383,25 @@ export type ActionFunctionMap<TContext extends MachineContext, TEvent extends Ev
|
|
|
383
383
|
type: K;
|
|
384
384
|
} ? TAction : never>, TActor, TAction, TGuard, TDelay>;
|
|
385
385
|
};
|
|
386
|
+
type GuardMap<TContext extends MachineContext, TEvent extends EventObject, TGuard extends ParameterizedObject> = {
|
|
387
|
+
[K in TGuard['type']]?: GuardPredicate<TContext, TEvent, GetParameterizedParams<TGuard extends {
|
|
388
|
+
type: K;
|
|
389
|
+
} ? TGuard : never>, TGuard>;
|
|
390
|
+
};
|
|
386
391
|
export type DelayFunctionMap<TContext extends MachineContext, TEvent extends EventObject, TAction extends ParameterizedObject> = Record<string, DelayConfig<TContext, TEvent, TAction['params'], TEvent>>;
|
|
387
392
|
export type DelayConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject> = number | DelayExpr<TContext, TExpressionEvent, TParams, TEvent>;
|
|
393
|
+
/**
|
|
394
|
+
* @hidden
|
|
395
|
+
*/
|
|
396
|
+
export interface MachineImplementationsSimplified<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor = ProvidedActor, TAction extends ParameterizedObject = ParameterizedObject, TGuard extends ParameterizedObject = ParameterizedObject> {
|
|
397
|
+
guards: GuardMap<TContext, TEvent, TGuard>;
|
|
398
|
+
actions: ActionFunctionMap<TContext, TEvent, TActor, TAction>;
|
|
399
|
+
actors: Record<string, AnyActorLogic | {
|
|
400
|
+
src: AnyActorLogic;
|
|
401
|
+
input: Mapper<TContext, TEvent, unknown, TEvent> | NonReducibleUnknown;
|
|
402
|
+
}>;
|
|
403
|
+
delays: DelayFunctionMap<TContext, TEvent, TAction>;
|
|
404
|
+
}
|
|
388
405
|
type MaybeNarrowedEvent<TIndexedEvents, TCausingLookup, K> = Cast<Prop<TIndexedEvents, K extends keyof TCausingLookup ? TCausingLookup[K] : TIndexedEvents[keyof TIndexedEvents]>, EventObject>;
|
|
389
406
|
type MachineImplementationsActions<TContext extends MachineContext, TResolvedTypesMeta, TEventsCausingActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'eventsCausingActions'>, TIndexedEvents = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedEvents'>, TIndexedActors = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActors'>, TIndexedActions = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedActions'>, TIndexedGuards = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedGuards'>, TIndexedDelays = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'indexedDelays'>> = {
|
|
390
407
|
[K in keyof TIndexedActions]?: ActionFunction<TContext, MaybeNarrowedEvent<TIndexedEvents, TEventsCausingActions, K>, Cast<Prop<TIndexedEvents, keyof TIndexedEvents>, EventObject>, GetParameterizedParams<Cast<TIndexedActions[K], ParameterizedObject>>, Cast<Prop<TIndexedActors, keyof TIndexedActors>, ProvidedActor>, Cast<Prop<TIndexedActions, keyof TIndexedActions>, ParameterizedObject>, Cast<Prop<TIndexedGuards, keyof TIndexedGuards>, ParameterizedObject>, Cast<Prop<TIndexedDelays, keyof TIndexedDelays>, ParameterizedObject>['type']>;
|
|
@@ -439,6 +456,7 @@ export type MachineConfig<TContext extends MachineContext, TEvent extends EventO
|
|
|
439
456
|
} : {
|
|
440
457
|
context: InitialContext<LowInfer<TContext>, TActor, TInput, TEvent>;
|
|
441
458
|
});
|
|
459
|
+
export type UnknownMachineConfig = MachineConfig<MachineContext, EventObject>;
|
|
442
460
|
export interface ProvidedActor {
|
|
443
461
|
src: string;
|
|
444
462
|
logic: UnknownActorLogic;
|
|
@@ -704,6 +722,12 @@ export type Observer<T> = {
|
|
|
704
722
|
export interface Subscription {
|
|
705
723
|
unsubscribe(): void;
|
|
706
724
|
}
|
|
725
|
+
export interface InteropObservable<T> {
|
|
726
|
+
[Symbol.observable]: () => InteropSubscribable<T>;
|
|
727
|
+
}
|
|
728
|
+
export interface InteropSubscribable<T> {
|
|
729
|
+
subscribe(observer: Observer<T>): Subscription;
|
|
730
|
+
}
|
|
707
731
|
export interface Subscribable<T> extends InteropSubscribable<T> {
|
|
708
732
|
subscribe(observer: Observer<T>): Subscription;
|
|
709
733
|
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
@@ -859,12 +883,12 @@ type ExtractLiteralString<T extends string | undefined> = T extends string ? str
|
|
|
859
883
|
type ToConcreteChildren<TActor extends ProvidedActor> = {
|
|
860
884
|
[A in TActor as ExtractLiteralString<A['id']>]?: ActorRefFrom<A['logic']>;
|
|
861
885
|
};
|
|
862
|
-
export type ToChildren<TActor extends ProvidedActor> = string extends TActor['src'] ? Record<string, AnyActorRef> : ToConcreteChildren<TActor> & {
|
|
886
|
+
export type ToChildren<TActor extends ProvidedActor> = string extends TActor['src'] ? Record<string, AnyActorRef> : Compute<ToConcreteChildren<TActor> & {
|
|
863
887
|
include: {
|
|
864
888
|
[id: string]: TActor extends any ? ActorRefFrom<TActor['logic']> | undefined : never;
|
|
865
889
|
};
|
|
866
890
|
exclude: {};
|
|
867
|
-
}[undefined extends TActor['id'] ? 'include' : string extends TActor['id'] ? 'include' : 'exclude']
|
|
891
|
+
}[undefined extends TActor['id'] ? 'include' : string extends TActor['id'] ? 'include' : 'exclude']>;
|
|
868
892
|
export type StateSchema = {
|
|
869
893
|
states?: Record<string, StateSchema>;
|
|
870
894
|
};
|
|
@@ -171,7 +171,7 @@ function assign(assignment) {
|
|
|
171
171
|
|
|
172
172
|
// TODO: possibly refactor this somehow, use even a simpler type, and maybe even make `machine.options` private or something
|
|
173
173
|
/**
|
|
174
|
-
* @
|
|
174
|
+
* @hidden
|
|
175
175
|
*/
|
|
176
176
|
let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
177
177
|
SpecialTargets["Parent"] = "#_parent";
|
|
@@ -185,14 +185,6 @@ let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
|
185
185
|
|
|
186
186
|
// Based on RxJS types
|
|
187
187
|
|
|
188
|
-
/**
|
|
189
|
-
* @internal
|
|
190
|
-
*/
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* @internal
|
|
194
|
-
*/
|
|
195
|
-
|
|
196
188
|
/**
|
|
197
189
|
* @deprecated Use `Actor<T>` instead.
|
|
198
190
|
*/
|
|
@@ -166,7 +166,7 @@ function assign(assignment) {
|
|
|
166
166
|
|
|
167
167
|
// TODO: possibly refactor this somehow, use even a simpler type, and maybe even make `machine.options` private or something
|
|
168
168
|
/**
|
|
169
|
-
* @
|
|
169
|
+
* @hidden
|
|
170
170
|
*/
|
|
171
171
|
let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
172
172
|
SpecialTargets["Parent"] = "#_parent";
|
|
@@ -180,14 +180,6 @@ let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
|
180
180
|
|
|
181
181
|
// Based on RxJS types
|
|
182
182
|
|
|
183
|
-
/**
|
|
184
|
-
* @internal
|
|
185
|
-
*/
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* @internal
|
|
189
|
-
*/
|
|
190
|
-
|
|
191
183
|
/**
|
|
192
184
|
* @deprecated Use `Actor<T>` instead.
|
|
193
185
|
*/
|
|
@@ -168,7 +168,7 @@ function assign(assignment) {
|
|
|
168
168
|
|
|
169
169
|
// TODO: possibly refactor this somehow, use even a simpler type, and maybe even make `machine.options` private or something
|
|
170
170
|
/**
|
|
171
|
-
* @
|
|
171
|
+
* @hidden
|
|
172
172
|
*/
|
|
173
173
|
let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
174
174
|
SpecialTargets["Parent"] = "#_parent";
|
|
@@ -182,14 +182,6 @@ let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
|
182
182
|
|
|
183
183
|
// Based on RxJS types
|
|
184
184
|
|
|
185
|
-
/**
|
|
186
|
-
* @internal
|
|
187
|
-
*/
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* @internal
|
|
191
|
-
*/
|
|
192
|
-
|
|
193
185
|
/**
|
|
194
186
|
* @deprecated Use `Actor<T>` instead.
|
|
195
187
|
*/
|
|
@@ -169,7 +169,7 @@ function assign(assignment) {
|
|
|
169
169
|
|
|
170
170
|
// TODO: possibly refactor this somehow, use even a simpler type, and maybe even make `machine.options` private or something
|
|
171
171
|
/**
|
|
172
|
-
* @
|
|
172
|
+
* @hidden
|
|
173
173
|
*/
|
|
174
174
|
let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
175
175
|
SpecialTargets["Parent"] = "#_parent";
|
|
@@ -183,14 +183,6 @@ let SpecialTargets = /*#__PURE__*/function (SpecialTargets) {
|
|
|
183
183
|
|
|
184
184
|
// Based on RxJS types
|
|
185
185
|
|
|
186
|
-
/**
|
|
187
|
-
* @internal
|
|
188
|
-
*/
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* @internal
|
|
192
|
-
*/
|
|
193
|
-
|
|
194
186
|
/**
|
|
195
187
|
* @deprecated Use `Actor<T>` instead.
|
|
196
188
|
*/
|
package/dist/xstate.cjs.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var actors_dist_xstateActors = require('../actors/dist/xstate-actors.cjs.js');
|
|
6
6
|
var guards_dist_xstateGuards = require('./raise-540fdaf2.cjs.js');
|
|
7
|
-
var log = require('./log-
|
|
7
|
+
var log = require('./log-c5c46d15.cjs.js');
|
|
8
8
|
require('../dev/dist/xstate-dev.cjs.js');
|
|
9
9
|
|
|
10
10
|
class SimulatedClock {
|
|
@@ -760,6 +760,10 @@ function createInertActorScope(actorLogic) {
|
|
|
760
760
|
};
|
|
761
761
|
return inertActorScope;
|
|
762
762
|
}
|
|
763
|
+
function getInitialSnapshot(actorLogic, ...[input]) {
|
|
764
|
+
const actorScope = createInertActorScope(actorLogic);
|
|
765
|
+
return actorLogic.getInitialSnapshot(actorScope, input);
|
|
766
|
+
}
|
|
763
767
|
|
|
764
768
|
/**
|
|
765
769
|
* Determines the next snapshot for the given `actorLogic` based on
|
|
@@ -917,6 +921,7 @@ exports.StateMachine = StateMachine;
|
|
|
917
921
|
exports.StateNode = StateNode;
|
|
918
922
|
exports.assertEvent = assertEvent;
|
|
919
923
|
exports.createMachine = createMachine;
|
|
924
|
+
exports.getInitialSnapshot = getInitialSnapshot;
|
|
920
925
|
exports.getNextSnapshot = getNextSnapshot;
|
|
921
926
|
exports.setup = setup;
|
|
922
927
|
exports.toPromise = toPromise;
|
package/dist/xstate.cjs.mjs
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var actors_dist_xstateActors = require('../actors/dist/xstate-actors.development.cjs.js');
|
|
6
6
|
var guards_dist_xstateGuards = require('./raise-d7d9caaa.development.cjs.js');
|
|
7
|
-
var log = require('./log-
|
|
7
|
+
var log = require('./log-75c83841.development.cjs.js');
|
|
8
8
|
require('../dev/dist/xstate-dev.development.cjs.js');
|
|
9
9
|
|
|
10
10
|
class SimulatedClock {
|
|
@@ -766,6 +766,10 @@ function createInertActorScope(actorLogic) {
|
|
|
766
766
|
};
|
|
767
767
|
return inertActorScope;
|
|
768
768
|
}
|
|
769
|
+
function getInitialSnapshot(actorLogic, ...[input]) {
|
|
770
|
+
const actorScope = createInertActorScope(actorLogic);
|
|
771
|
+
return actorLogic.getInitialSnapshot(actorScope, input);
|
|
772
|
+
}
|
|
769
773
|
|
|
770
774
|
/**
|
|
771
775
|
* Determines the next snapshot for the given `actorLogic` based on
|
|
@@ -923,6 +927,7 @@ exports.StateMachine = StateMachine;
|
|
|
923
927
|
exports.StateNode = StateNode;
|
|
924
928
|
exports.assertEvent = assertEvent;
|
|
925
929
|
exports.createMachine = createMachine;
|
|
930
|
+
exports.getInitialSnapshot = getInitialSnapshot;
|
|
926
931
|
exports.getNextSnapshot = getNextSnapshot;
|
|
927
932
|
exports.setup = setup;
|
|
928
933
|
exports.toPromise = toPromise;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { createEmptyActor, fromCallback, fromEventObservable, fromObservable, fromPromise, fromTransition } from '../actors/dist/xstate-actors.development.esm.js';
|
|
2
2
|
import { S as STATE_DELIMITER, m as mapValues, t as toArray, f as formatTransitions, a as toTransitionConfigArray, b as formatTransition, N as NULL_EVENT, e as evaluateGuard, c as createInvokeId, g as getDelayedTransitions, d as formatInitialTransition, h as getCandidates, r as resolveStateValue, i as getAllStateNodes, j as getStateNodes, k as createMachineSnapshot, l as isInFinalState, n as macrostep, o as transitionNode, p as resolveActionsAndContext, q as createInitEvent, s as microstep, u as getInitialStateNodes, v as toStatePath, w as isStateId, x as getStateNodeByPath, y as getPersistedSnapshot, z as resolveReferencedActor, A as createActor, $ as $$ACTOR_TYPE } from './raise-2fdbadc6.development.esm.js';
|
|
3
3
|
export { B as Actor, I as __unsafe_getAllOwnEventDescriptors, E as and, M as cancel, A as createActor, j as getStateNodes, C as interpret, D as isMachineSnapshot, J as matchesState, F as not, G as or, K as pathToStateValue, O as raise, P as spawnChild, H as stateIn, Q as stop, R as stopChild, L as toObserver } from './raise-2fdbadc6.development.esm.js';
|
|
4
|
-
import { a as assign } from './log-
|
|
5
|
-
export { S as SpecialTargets, a as assign, e as enqueueActions, f as forwardTo, l as log, s as sendParent, b as sendTo } from './log-
|
|
4
|
+
import { a as assign } from './log-edca19d9.development.esm.js';
|
|
5
|
+
export { S as SpecialTargets, a as assign, e as enqueueActions, f as forwardTo, l as log, s as sendParent, b as sendTo } from './log-edca19d9.development.esm.js';
|
|
6
6
|
import '../dev/dist/xstate-dev.development.esm.js';
|
|
7
7
|
|
|
8
8
|
class SimulatedClock {
|
|
@@ -764,6 +764,10 @@ function createInertActorScope(actorLogic) {
|
|
|
764
764
|
};
|
|
765
765
|
return inertActorScope;
|
|
766
766
|
}
|
|
767
|
+
function getInitialSnapshot(actorLogic, ...[input]) {
|
|
768
|
+
const actorScope = createInertActorScope(actorLogic);
|
|
769
|
+
return actorLogic.getInitialSnapshot(actorScope, input);
|
|
770
|
+
}
|
|
767
771
|
|
|
768
772
|
/**
|
|
769
773
|
* Determines the next snapshot for the given `actorLogic` based on
|
|
@@ -885,4 +889,4 @@ function assertEvent(event, type) {
|
|
|
885
889
|
}
|
|
886
890
|
}
|
|
887
891
|
|
|
888
|
-
export { SimulatedClock, StateMachine, StateNode, assertEvent, createMachine, getNextSnapshot, setup, toPromise, waitFor };
|
|
892
|
+
export { SimulatedClock, StateMachine, StateNode, assertEvent, createMachine, getInitialSnapshot, getNextSnapshot, setup, toPromise, waitFor };
|
package/dist/xstate.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { createEmptyActor, fromCallback, fromEventObservable, fromObservable, fromPromise, fromTransition } from '../actors/dist/xstate-actors.esm.js';
|
|
2
2
|
import { S as STATE_DELIMITER, m as mapValues, t as toArray, f as formatTransitions, a as toTransitionConfigArray, b as formatTransition, N as NULL_EVENT, e as evaluateGuard, c as createInvokeId, g as getDelayedTransitions, d as formatInitialTransition, h as getCandidates, r as resolveStateValue, i as getAllStateNodes, j as getStateNodes, k as createMachineSnapshot, l as isInFinalState, n as macrostep, o as transitionNode, p as resolveActionsAndContext, q as createInitEvent, s as microstep, u as getInitialStateNodes, v as toStatePath, w as isStateId, x as getStateNodeByPath, y as getPersistedSnapshot, z as resolveReferencedActor, A as createActor, $ as $$ACTOR_TYPE } from './raise-309d511a.esm.js';
|
|
3
3
|
export { B as Actor, I as __unsafe_getAllOwnEventDescriptors, E as and, M as cancel, A as createActor, j as getStateNodes, C as interpret, D as isMachineSnapshot, J as matchesState, F as not, G as or, K as pathToStateValue, O as raise, P as spawnChild, H as stateIn, Q as stop, R as stopChild, L as toObserver } from './raise-309d511a.esm.js';
|
|
4
|
-
import { a as assign } from './log-
|
|
5
|
-
export { S as SpecialTargets, a as assign, e as enqueueActions, f as forwardTo, l as log, s as sendParent, b as sendTo } from './log-
|
|
4
|
+
import { a as assign } from './log-b6ecfc82.esm.js';
|
|
5
|
+
export { S as SpecialTargets, a as assign, e as enqueueActions, f as forwardTo, l as log, s as sendParent, b as sendTo } from './log-b6ecfc82.esm.js';
|
|
6
6
|
import '../dev/dist/xstate-dev.esm.js';
|
|
7
7
|
|
|
8
8
|
class SimulatedClock {
|
|
@@ -758,6 +758,10 @@ function createInertActorScope(actorLogic) {
|
|
|
758
758
|
};
|
|
759
759
|
return inertActorScope;
|
|
760
760
|
}
|
|
761
|
+
function getInitialSnapshot(actorLogic, ...[input]) {
|
|
762
|
+
const actorScope = createInertActorScope(actorLogic);
|
|
763
|
+
return actorLogic.getInitialSnapshot(actorScope, input);
|
|
764
|
+
}
|
|
761
765
|
|
|
762
766
|
/**
|
|
763
767
|
* Determines the next snapshot for the given `actorLogic` based on
|
|
@@ -879,4 +883,4 @@ function assertEvent(event, type) {
|
|
|
879
883
|
}
|
|
880
884
|
}
|
|
881
885
|
|
|
882
|
-
export { SimulatedClock, StateMachine, StateNode, assertEvent, createMachine, getNextSnapshot, setup, toPromise, waitFor };
|
|
886
|
+
export { SimulatedClock, StateMachine, StateNode, assertEvent, createMachine, getInitialSnapshot, getNextSnapshot, setup, toPromise, waitFor };
|
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 s=".",n="",o="",i="xstate.init",r="xstate.error",a="xstate.stop";function c(){const t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:window;if(t.__xstate__)return t.__xstate__}const u=t=>{const e=c();e&&e.register(t)};function h(t,e){return{type:`xstate.done.state.${t}`,output:e}}function f(t,e){return{type:`xstate.error.actor.${t}`,error:e}}function d(t){return{type:i,input:t}}function p(t){setTimeout((()=>{throw t}))}const l="function"==typeof Symbol&&Symbol.observable||"@@observable";function y(t,e){return`${t.sessionId}.${e}`}let g=0;function v(t,e){const s=_(t),n=_(e);return"string"==typeof n?"string"==typeof s&&n===s:"string"==typeof s?s in n:Object.keys(s).every((t=>t in n&&v(s[t],n[t])))}function m(t){if(I(t))return t;let e=[],s="";for(let n=0;n<t.length;n++){switch(t.charCodeAt(n)){case 92:s+=t[n+1],n++;continue;case 46:e.push(s),s="";continue}s+=t[n]}return e.push(s),e}function _(t){if(Rt(t))return t.value;if("string"!=typeof t)return t;return b(m(t))}function b(t){if(1===t.length)return t[0];const e={};let s=e;for(let e=0;e<t.length-1;e++)if(e===t.length-2)s[t[e]]=t[e+1];else{const n=s;s={},n[t[e]]=s}return e}function S(t,e){const s={},n=Object.keys(t);for(let o=0;o<n.length;o++){const i=n[o];s[i]=e(t[i],i,t,o)}return s}function x(t){return I(t)?t:[t]}function w(t){return void 0===t?[]:x(t)}function k(t,e,s,n){return"function"==typeof t?t({context:e,event:s,self:n}):t}function I(t){return Array.isArray(t)}function $(t){return x(t).map((t=>void 0===t||"string"==typeof t?{target:t}:t))}function E(t){if(void 0!==t&&t!==n)return w(t)}function T(t,e,s){const n="object"==typeof t,o=n?t:void 0;return{next:(n?t.next:t)?.bind(o),error:(n?t.error:e)?.bind(o),complete:(n?t.complete:s)?.bind(o)}}function O(t,e){return`${e}.${t}`}function j(t,e){const s=e.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!s)return t.implementations.actors[e];const[,n,o]=s,i=t.getStateNodeById(o).config.invoke;return(Array.isArray(i)?i[n]:i).src}const A=1;let M=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const N={clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console),devTools:!1};class P{constructor(t,s){this.logic=t,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this.mailbox=new e(this._process.bind(this)),this.observers=new Set,this.logger=void 0,this._processingStatus=M.NotStarted,this._parent=void 0,this._syncSnapshot=void 0,this.ref=void 0,this._actorScope=void 0,this._systemId=void 0,this.sessionId=void 0,this.system=void 0,this._doneEvent=void 0,this.src=void 0,this._deferred=[];const n={...N,...s},{clock:o,logger:i,parent:r,syncSnapshot:a,id:c,systemId:u,inspect:h}=n;this.system=r?r.system:function(t,e){const s=new Map,n=new Map,o=new WeakMap,i=new Set,r={},a=e.clock,c={schedule:(t,e,s,n,o=Math.random().toString(36).slice(2))=>{const i={source:t,target:e,event:s,delay:n,id:o,startedAt:Date.now()},c=y(t,o);u._snapshot._scheduledEvents[c]=i;const h=a.setTimeout((()=>{delete r[c],delete u._snapshot._scheduledEvents[c],u._relay(t,e,s)}),n);r[c]=h},cancel:(t,e)=>{const s=y(t,e),n=r[s];delete r[s],delete u._snapshot._scheduledEvents[s],a.clearTimeout(n)},cancelAll:t=>{for(const e in u._snapshot._scheduledEvents){const s=u._snapshot._scheduledEvents[e];s.source===t&&c.cancel(t,s.id)}}},u={_snapshot:{_scheduledEvents:(e?.snapshot&&e.snapshot.scheduler)??{}},_bookId:()=>"x:"+g++,_register:(t,e)=>(s.set(t,e),t),_unregister:t=>{s.delete(t.sessionId);const e=o.get(t);void 0!==e&&(n.delete(e),o.delete(t))},get:t=>n.get(t),_set:(t,e)=>{const s=n.get(t);if(s&&s!==e)throw new Error(`Actor with system ID '${t}' already exists.`);n.set(t,e),o.set(e,t)},inspect:t=>{i.add(t)},_sendInspectionEvent:e=>{const s={...e,rootId:t.sessionId};i.forEach((t=>t.next?.(s)))},_relay:(t,e,s)=>{u._sendInspectionEvent({type:"@xstate.event",sourceRef:t,actorRef:e,event:s}),e._send(s)},scheduler:c,getSnapshot:()=>({_scheduledEvents:{...u._snapshot._scheduledEvents}}),start:()=>{const t=u._snapshot._scheduledEvents;u._snapshot._scheduledEvents={};for(const e in t){const{source:s,target:n,event:o,delay:i,id:r}=t[e];c.schedule(s,n,o,i,r)}}};return u}(this,{clock:o}),h&&!r&&this.system.inspect(T(h)),this.sessionId=this.system._bookId(),this.id=c??this.sessionId,this.logger=i,this.clock=o,this._parent=r,this._syncSnapshot=a,this.options=n,this.src=n.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 child actor ${t.id} of ${this.id} because it is not a child`);t._stop()}},this.send=this.send.bind(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this}),u&&(this._systemId=u,this.system._set(u,this)),this._initState(s?.snapshot??s?.state),u&&"active"!==this._snapshot.status&&this.system._unregister(this)}_initState(t){try{this._snapshot=t?this.logic.restoreSnapshot?this.logic.restoreSnapshot(t,this._actorScope):t:this.logic.getInitialSnapshot(this._actorScope,this.options?.input)}catch(t){this._snapshot={status:"error",output:void 0,error:t}}}update(t,e){let s;for(this._snapshot=t;s=this._deferred.shift();)try{s()}catch(e){this._deferred.length=0,this._snapshot={...t,status:"error",error:e}}switch(this._snapshot.status){case"active":for(const e of this.observers)try{e.next?.(t)}catch(t){p(t)}break;case"done":for(const e of this.observers)try{e.next?.(t)}catch(t){p(t)}this._stopProcedure(),this._complete(),this._doneEvent=(n=this.id,o=this._snapshot.output,{type:`xstate.done.actor.${n}`,output:o}),this._parent&&this.system._relay(this,this._parent,this._doneEvent);break;case"error":this._error(this._snapshot.error)}var n,o;this.system._sendInspectionEvent({type:"@xstate.snapshot",actorRef:this,event:e,snapshot:t})}subscribe(t,e,s){const n=T(t,e,s);if(this._processingStatus!==M.Stopped)this.observers.add(n);else switch(this._snapshot.status){case"done":try{n.complete?.()}catch(t){p(t)}break;case"error":{const t=this._snapshot.error;if(n.error)try{n.error(t)}catch(t){p(t)}else p(t);break}}return{unsubscribe:()=>{this.observers.delete(n)}}}start(){if(this._processingStatus===M.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._systemId&&this.system._set(this._systemId,this),this._processingStatus=M.Running;const t=d(this.options.input);this.system._sendInspectionEvent({type:"@xstate.event",sourceRef:this._parent,actorRef:this,event:t});switch(this._snapshot.status){case"done":return this.update(this._snapshot,t),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._snapshot={...this._snapshot,status:"error",error:t},this._error(t),this}return this.update(this._snapshot,t),this.options.devTools&&this.attachDevTools(),this.mailbox.start(),this}_process(t){let e,s;try{e=this.logic.transition(this._snapshot,t,this._actorScope)}catch(t){s={err:t}}if(s){const{err:t}=s;return this._snapshot={...this._snapshot,status:"error",error:t},void this._error(t)}this.update(e,t),t.type===a&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===M.Stopped?this:(this.mailbox.clear(),this._processingStatus===M.NotStarted?(this._processingStatus=M.Stopped,this):(this.mailbox.enqueue({type:a}),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)try{t.complete?.()}catch(t){p(t)}this.observers.clear()}_reportError(t){if(!this.observers.size)return void(this._parent||p(t));let e=!1;for(const s of this.observers){const n=s.error;e||=!n;try{n?.(t)}catch(t){p(t)}}this.observers.clear(),e&&p(t)}_error(t){this._stopProcedure(),this._reportError(t),this._parent&&this.system._relay(this,this._parent,f(this.id,t))}_stopProcedure(){return this._processingStatus!==M.Running||(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new e(this._process.bind(this)),this._processingStatus=M.Stopped,this.system._unregister(this)),this}_send(t){this._processingStatus!==M.Stopped&&this.mailbox.enqueue(t)}send(t){this.system._relay(void 0,this,t)}attachDevTools(){const{devTools:t}=this.options;if(t){("function"==typeof t?t:u)(this)}}toJSON(){return{xstate$$type:A,id:this.id}}getPersistedSnapshot(t){return this.logic.getPersistedSnapshot(this._snapshot,t)}[l](){return this}getSnapshot(){return this._snapshot}}function R(t,...[e]){return new P(t,e)}const C=R;function D(t,e,s,n,{sendId:o}){return[e,"function"==typeof o?o(s,n):o]}function J(t,e){t.defer((()=>{t.system.scheduler.cancel(t.self,e)}))}function V(t){function e(t,e){}return e.type="xstate.cancel",e.sendId=t,e.resolve=D,e.execute=J,e}function B(t,e,s,n,{id:o,systemId:i,src:r,input:a,syncSnapshot:c}){const u="string"==typeof r?j(e.machine,r):r,h="function"==typeof o?o(s):o;let f;return u&&(f=R(u,{id:h,src:r,parent:t.self,syncSnapshot:c,systemId:i,input:"function"==typeof a?a({context:e.context,event:s.event,self:t.self}):a})),[zt(e,{children:{...e.children,[h]:f}}),{id:o,actorRef:f}]}function q(t,{id:e,actorRef:s}){s&&t.defer((()=>{s._processingStatus!==M.Stopped&&s.start()}))}function z(...[t,{id:e,systemId:s,input:n,syncSnapshot:o=!1}={}]){function i(t,e){}return i.type="snapshot.spawnChild",i.id=e,i.systemId=s,i.src=t,i.input=n,i.syncSnapshot=o,i.resolve=B,i.execute=q,i}function W(t,e,s,n,{actorRef:o}){const i="function"==typeof o?o(s,n):o,r="string"==typeof i?e.children[i]:i;let a=e.children;return r&&(a={...a},delete a[r.id]),[zt(e,{children:a}),r]}function U(t,e){e&&(t.system._unregister(e),e._processingStatus===M.Running?t.defer((()=>{t.stopChild(e)})):t.stopChild(e))}function Q(t){function e(t,e){}return e.type="xstate.stopChild",e.actorRef=t,e.resolve=W,e.execute=U,e}const F=Q;function G(t,e,{stateValue:s}){if("string"==typeof s&&rt(s)){const e=t.machine.getStateNodeById(s);return t._nodes.some((t=>t===e))}return t.matches(s)}function X(t,{context:e,event:s},{guards:n}){return!L(n[0],e,s,t)}function H(t,{context:e,event:s},{guards:n}){return n.every((n=>L(n,e,s,t)))}function K(t,{context:e,event:s},{guards:n}){return n.some((n=>L(n,e,s,t)))}function L(t,e,s,n){const{machine:o}=n,i="function"==typeof t,r=i?t:o.implementations.guards["string"==typeof t?t:t.type];if(!i&&!r)throw new Error(`Guard '${"string"==typeof t?t:t.type}' is not implemented.'.`);if("function"!=typeof r)return L(r,e,s,n);const a={context:e,event:s},c=i||"string"==typeof t?void 0:"params"in t?"function"==typeof t.params?t.params({context:e,event:s}):t.params:void 0;if(!("check"in r))return r(a,c);return r.check(n,a,r)}const Y=t=>"atomic"===t.type||"final"===t.type;function Z(t){return Object.values(t.states).filter((t=>"history"!==t.type))}function tt(t,e){const s=[];if(e===t)return s;let n=t.parent;for(;n&&n!==e;)s.push(n),n=n.parent;return s}function et(t){const e=new Set(t),s=nt(e);for(const t of e)if("compound"!==t.type||s.get(t)&&s.get(t).length){if("parallel"===t.type)for(const s of Z(t))if("history"!==s.type&&!e.has(s)){const t=ft(s);for(const s of t)e.add(s)}}else ft(t).forEach((t=>e.add(t)));for(const t of e){let s=t.parent;for(;s;)e.add(s),s=s.parent}return e}function st(t,e){const s=e.get(t);if(!s)return{};if("compound"===t.type){const t=s[0];if(!t)return{};if(Y(t))return t.key}const n={};for(const t of s)n[t.key]=st(t,e);return n}function nt(t){const e=new Map;for(const s of t)e.has(s)||e.set(s,[]),s.parent&&(e.has(s.parent)||e.set(s.parent,[]),e.get(s.parent).push(s));return e}function ot(t,e){return st(t,nt(et(e)))}function it(t,e){return"compound"===e.type?Z(e).some((e=>"final"===e.type&&t.has(e))):"parallel"===e.type?Z(e).every((e=>it(t,e))):"final"===e.type}const rt=t=>"#"===t[0];function at(t){const e=t.config.after;if(!e)return[];return Object.keys(e).flatMap(((s,n)=>{const o=e[s],i="string"==typeof o?{target:o}:o,r=Number.isNaN(+s)?s:+s,a=((e,s)=>{const n=(o=e,i=t.id,{type:`xstate.after.${o}.${i}`});var o,i;const r=n.type;return t.entry.push(Ht(n,{id:r,delay:e})),t.exit.push(V(r)),r})(r);return w(i).map((t=>({...t,event:a,delay:r})))})).map((e=>{const{delay:s}=e;return{...ct(t,e.event,e),delay:s}}))}function ct(t,e,n){const o=E(n.target),i=n.reenter??!1,r=function(t,e){if(void 0===e)return;return e.map((e=>{if("string"!=typeof e)return e;if(rt(e))return t.machine.getStateNodeById(e);const n=e[0]===s;if(n&&!t.parent)return lt(t,e.slice(1));const o=n?t.key+e:e;if(!t.parent)throw new Error(`Invalid target: "${e}" is not a valid target from the root node. Did you mean ".${e}"?`);try{return lt(t.parent,o)}catch(e){throw new Error(`Invalid transition definition for state node '${t.id}':\n${e.message}`)}}))}(t,o),a={...n,actions:w(n.actions),guard:n.guard,target:r,source:t,reenter:i,eventType:e,toJSON:()=>({...a,source:`#${t.id}`,target:r?r.map((t=>`#${t.id}`)):void 0})};return a}function ut(t){const e=E(t.config.target);return e?{target:e.map((e=>"string"==typeof e?lt(t.parent,e):e))}:t.parent.initial}function ht(t){return"history"===t.type}function ft(t){const e=dt(t);for(const s of e)for(const n of tt(s,t))e.add(n);return e}function dt(t){const e=new Set;return function t(s){if(!e.has(s))if(e.add(s),"compound"===s.type)t(s.initial.target[0]);else if("parallel"===s.type)for(const e of Z(s))t(e)}(t),e}function pt(t,e){if(rt(e))return t.machine.getStateNodeById(e);if(!t.states)throw new Error(`Unable to retrieve child state '${e}' from '${t.id}'; no child states exist.`);const s=t.states[e];if(!s)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return s}function lt(t,e){if("string"==typeof e&&rt(e))try{return t.machine.getStateNodeById(e)}catch(t){}const s=m(e).slice();let n=t;for(;s.length;){const t=s.shift();if(!t.length)break;n=pt(n,t)}return n}function yt(t,e){if("string"==typeof e)return[t,t.states[e]];const s=Object.keys(e),n=s.map((e=>pt(t,e))).filter(Boolean);return[t.machine.root,t].concat(n,s.reduce(((s,n)=>{const o=pt(t,n);if(!o)return s;const i=yt(o,e[n]);return s.concat(i)}),[]))}function gt(t,e,s,n){return"string"==typeof e?function(t,e,s,n){const o=pt(t,e).next(s,n);return o&&o.length?o:t.next(s,n)}(t,e,s,n):1===Object.keys(e).length?function(t,e,s,n){const o=Object.keys(e),i=gt(pt(t,o[0]),e[o[0]],s,n);return i&&i.length?i:t.next(s,n)}(t,e,s,n):function(t,e,s,n){const o=[];for(const i of Object.keys(e)){const r=e[i];if(!r)continue;const a=gt(pt(t,i),r,s,n);a&&o.push(...a)}return o.length?o:t.next(s,n)}(t,e,s,n)}function vt(t){return Object.keys(t.states).map((e=>t.states[e])).filter((t=>"history"===t.type))}function mt(t,e){let s=t;for(;s.parent&&s.parent!==e;)s=s.parent;return s.parent===e}function _t(t,e){const s=new Set(t),n=new Set(e);for(const t of s)if(n.has(t))return!0;for(const t of n)if(s.has(t))return!0;return!1}function bt(t,e,s){const n=new Set;for(const o of t){let t=!1;const i=new Set;for(const r of n)if(_t(wt([o],e,s),wt([r],e,s))){if(!mt(o.source,r.source)){t=!0;break}i.add(r)}if(!t){for(const t of i)n.delete(t);n.add(o)}}return Array.from(n)}function St(t,e){if(!t.target)return[];const s=new Set;for(const n of t.target)if(ht(n))if(e[n.id])for(const t of e[n.id])s.add(t);else for(const t of St(ut(n),e))s.add(t);else s.add(n);return[...s]}function xt(t,e){const s=St(t,e);if(!s)return;if(!t.reenter&&s.every((e=>e===t.source||mt(e,t.source))))return t.source;const n=function(t){const[e,...s]=t;for(const t of tt(e,void 0))if(s.every((e=>mt(e,t))))return t}(s.concat(t.source));return n||(t.reenter?void 0:t.source.machine.root)}function wt(t,e,s){const n=new Set;for(const o of t)if(o.target?.length){const t=xt(o,s);o.reenter&&o.source===t&&n.add(t);for(const s of e)mt(s,t)&&n.add(s)}return[...n]}function kt(t,e,s,n,o,i){if(!t.length)return e;const r=new Set(e._nodes);let a=e.historyValue;const c=bt(t,r,a);let u=e;o||([u,a]=function(t,e,s,n,o,i,r){let a=t;const c=wt(n,o,i);let u;c.sort(((t,e)=>e.order-t.order));for(const t of c)for(const e of vt(t)){let s;s="deep"===e.history?e=>Y(e)&&mt(e,t):e=>e.parent===t,u??={...i},u[e.id]=Array.from(o).filter(s)}for(const t of c)a=jt(a,e,s,[...t.exit,...t.invoke.map((t=>Q(t.id)))],r),o.delete(t);return[a,u||i]}(u,n,s,c,r,a,i)),u=jt(u,n,s,c.flatMap((t=>t.actions)),i),u=function(t,e,s,n,o,i,r,a){let c=t;const u=new Set,f=new Set;(function(t,e,s,n){for(const o of t){const t=xt(o,e);for(const i of o.target||[])ht(i)||o.source===i&&o.source===t&&!o.reenter||(n.add(i),s.add(i)),$t(i,e,s,n);const i=St(o,e);for(const r of i){const i=tt(r,t);"parallel"===t?.type&&i.push(t),Et(n,e,s,i,!o.source.parent&&o.reenter?void 0:t)}}})(n,r,f,u),a&&f.add(t.machine.root);const d=new Set;for(const t of[...u].sort(((t,e)=>t.order-e.order))){o.add(t);const n=[];n.push(...t.entry);for(const e of t.invoke)n.push(z(e.src,{...e,syncSnapshot:!!e.onSnapshot}));if(f.has(t)){const e=t.initial.actions;n.push(...e)}if(c=jt(c,e,s,n,i,t.invoke.map((t=>t.id))),"final"===t.type){const n=t.parent;let r="parallel"===n?.type?n:n?.parent,a=r||t;for("compound"===n?.type&&i.push(h(n.id,t.output?k(t.output,c.context,e,s.self):void 0));"parallel"===r?.type&&!d.has(r)&&it(o,r);)d.add(r),i.push(h(r.id)),a=r,r=r.parent;if(r)continue;c=zt(c,{status:"done",output:It(c,e,s,c.machine.root,a)})}}return c}(u,n,s,c,r,i,a,o);const f=[...r];"done"===u.status&&(u=jt(u,n,s,f.sort(((t,e)=>e.order-t.order)).flatMap((t=>t.exit)),i));try{return a===e.historyValue&&function(t,e){if(t.length!==e.size)return!1;for(const s of t)if(!e.has(s))return!1;return!0}(e._nodes,r)?u:zt(u,{_nodes:f,historyValue:a})}catch(t){throw t}}function It(t,e,s,n,o){if(!n.output)return;const i=h(o.id,o.output&&o.parent?k(o.output,t.context,e,s.self):void 0);return k(n.output,t.context,i,s.self)}function $t(t,e,s,n){if(ht(t))if(e[t.id]){const o=e[t.id];for(const t of o)n.add(t),$t(t,e,s,n);for(const i of o)Tt(i,t.parent,n,e,s)}else{const o=ut(t);for(const i of o.target)n.add(i),o===t.parent?.initial&&s.add(t.parent),$t(i,e,s,n);for(const i of o.target)Tt(i,t.parent,n,e,s)}else if("compound"===t.type){const[o]=t.initial.target;ht(o)||(n.add(o),s.add(o)),$t(o,e,s,n),Tt(o,t,n,e,s)}else if("parallel"===t.type)for(const o of Z(t).filter((t=>!ht(t))))[...n].some((t=>mt(t,o)))||(ht(o)||(n.add(o),s.add(o)),$t(o,e,s,n))}function Et(t,e,s,n,o){for(const i of n)if(o&&!mt(i,o)||t.add(i),"parallel"===i.type)for(const n of Z(i).filter((t=>!ht(t))))[...t].some((t=>mt(t,n)))||(t.add(n),$t(n,e,s,t))}function Tt(t,e,s,n,o){Et(s,n,o,tt(t,e))}function Ot(t,e,s,n,o,i){const{machine:r}=t;let a=t;for(const t of n){const n="function"==typeof t,c=n?t:r.implementations.actions["string"==typeof t?t:t.type];if(!c)continue;const u={context:a.context,event:e,self:s.self,system:s.system},h=n||"string"==typeof t?void 0:"params"in t?"function"==typeof t.params?t.params({context:a.context,event:e}):t.params:void 0;if(!("resolve"in c)){s.self._processingStatus===M.Running?c(u,h):s.defer((()=>{c(u,h)}));continue}const f=c,[d,p,l]=f.resolve(s,a,u,h,c,o);a=d,"retryResolve"in f&&i?.push([f,p]),"execute"in f&&(s.self._processingStatus===M.Running?f.execute(s,p):s.defer(f.execute.bind(null,s,p))),l&&(a=Ot(a,e,s,l,o,i))}return a}function jt(t,e,s,n,o,i){const r=i?[]:void 0,a=Ot(t,e,s,n,{internalQueue:o,deferredActorIds:i},r);return r?.forEach((([t,e])=>{t.retryResolve(s,a,e)})),a}function At(t,e,s,n=[]){let o=t;const r=[];if(e.type===a)return o=zt(Mt(o,e,s),{status:"stopped"}),r.push(o),{snapshot:o,microstates:r};let c=e;if(c.type!==i){const e=c,i=function(t){return t.type.startsWith("xstate.error.actor")}(e),a=Nt(e,o);if(i&&!a.length)return o=zt(t,{status:"error",error:e.error}),r.push(o),{snapshot:o,microstates:r};o=kt(a,t,s,c,!1,n),r.push(o)}let u=!0;for(;"active"===o.status;){let t=u?Pt(o,c):[];const e=t.length?o:void 0;if(!t.length){if(!n.length)break;c=n.shift(),t=Nt(c,o)}o=kt(t,o,s,c,!1,n),u=o!==e,r.push(o)}return"active"!==o.status&&Mt(o,c,s),{snapshot:o,microstates:r}}function Mt(t,e,s){return jt(t,e,s,Object.values(t.children).map((t=>Q(t))),[])}function Nt(t,e){return e.machine.getTransitionData(e,t)}function Pt(t,e){const s=new Set,n=t._nodes.filter(Y);for(const o of n)t:for(const n of[o].concat(tt(o,void 0)))if(n.always)for(const o of n.always)if(void 0===o.guard||L(o.guard,t.context,e,t)){s.add(o);break t}return bt(Array.from(s),new Set(t._nodes),t.historyValue)}function Rt(t){return!!t&&"object"==typeof t&&"machine"in t&&"value"in t}const Ct=function(t){return v(t,this.value)},Dt=function(t){return this.tags.has(t)},Jt=function(t){const e=this.machine.getTransitionData(this,t);return!!e?.length&&e.some((t=>void 0!==t.target||t.actions.length))},Vt=function(){const{_nodes:t,tags:e,machine:s,getMeta:n,toJSON:o,can:i,hasTag:r,matches:a,...c}=this;return{...c,tags:Array.from(e)}},Bt=function(){return this._nodes.reduce(((t,e)=>(void 0!==e.meta&&(t[e.id]=e.meta),t)),{})};function qt(t,e){return{status:t.status,output:t.output,error:t.error,machine:e,context:t.context,_nodes:t._nodes,value:ot(e.root,t._nodes),tags:new Set(t._nodes.flatMap((t=>t.tags))),children:t.children,historyValue:t.historyValue||{},matches:Ct,hasTag:Dt,can:Jt,getMeta:Bt,toJSON:Vt}}function zt(t,e={}){return qt({...t,...e},t.machine)}function Wt(t){let e;for(const s in t){const n=t[s];if(n&&"object"==typeof n)if("sessionId"in n&&"send"in n&&"ref"in n)e??=Array.isArray(t)?t.slice():{...t},e[s]={xstate$$type:A,id:n.id};else{const o=Wt(n);o!==n&&(e??=Array.isArray(t)?t.slice():{...t},e[s]=o)}}return e??t}function Ut(t,{machine:e,context:s},n,o){return(i,r)=>{const a=((i,r={})=>{const{systemId:a,input:c}=r;if("string"==typeof i){const u=j(e,i);if(!u)throw new Error(`Actor logic '${i}' not implemented in machine '${e.id}'`);const h=R(u,{id:r.id,parent:t.self,syncSnapshot:r.syncSnapshot,input:"function"==typeof c?c({context:s,event:n,self:t.self}):c,src:i,systemId:a});return o[h.id]=h,h}return R(i,{id:r.id,parent:t.self,syncSnapshot:r.syncSnapshot,input:r.input,src:i,systemId:a})})(i,r);return o[a.id]=a,t.defer((()=>{a._processingStatus!==M.Stopped&&a.start()})),a}}function Qt(t,e,s,n,{assignment:o}){if(!e.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const i={},r={context:e.context,event:s.event,spawn:Ut(t,e,s.event,i),self:t.self,system:t.system};let a={};if("function"==typeof o)a=o(r,n);else for(const t of Object.keys(o)){const e=o[t];a[t]="function"==typeof e?e(r,n):e}return[zt(e,{context:Object.assign({},e.context,a),children:Object.keys(i).length?{...e.children,...i}:e.children})]}function Ft(t){function e(t,e){}return e.type="xstate.assign",e.assignment=t,e.resolve=Qt,e}function Gt(t,e,s,n,{event:o,id:i,delay:r},{internalQueue:a}){const c=e.machine.implementations.delays;if("string"==typeof o)throw new Error(`Only event objects may be used with raise; use raise({ type: "${o}" }) instead`);const u="function"==typeof o?o(s,n):o;let h;if("string"==typeof r){const t=c&&c[r];h="function"==typeof t?t(s,n):t}else h="function"==typeof r?r(s,n):r;return"number"!=typeof h&&a.push(u),[e,{event:u,id:i,delay:h}]}function Xt(t,e){const{event:s,delay:n,id:o}=e;"number"!=typeof n||t.defer((()=>{const e=t.self;t.system.scheduler.schedule(e,e,s,n,o)}))}function Ht(t,e){function s(t,e){}return s.type="xstate.raise",s.event=t,s.id=e?.id,s.delay=e?.delay,s.resolve=Gt,s.execute=Xt,s}let Kt=function(t){return t.Parent="#_parent",t.Internal="#_internal",t}({});function Lt(t,e,s,n,{to:o,event:i,id:r,delay:a},c){const u=e.machine.implementations.delays;if("string"==typeof i)throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${i}" }) instead`);const h="function"==typeof i?i(s,n):i;let f;if("string"==typeof a){const t=u&&u[a];f="function"==typeof t?t(s,n):t}else f="function"==typeof a?a(s,n):a;const d="function"==typeof o?o(s,n):o;let p;if("string"==typeof d){if(p=d===Kt.Parent?t.self._parent:d===Kt.Internal?t.self:d.startsWith("#_")?e.children[d.slice(2)]:c.deferredActorIds?.includes(d)?d:e.children[d],!p)throw new Error(`Unable to send event to actor '${d}' from machine '${e.machine.id}'.`)}else p=d||t.self;return[e,{to:p,event:h,id:r,delay:f}]}function Yt(t,e,s){"string"==typeof s.to&&(s.to=e.children[s.to])}function Zt(t,e){t.defer((()=>{const{to:s,event:n,delay:o,id:i}=e;"number"!=typeof o?t.system._relay(t.self,s,n.type===r?f(t.self.id,n.data):n):t.system.scheduler.schedule(t.self,s,n,o,i)}))}function te(t,e,s){function n(t,e){}return n.type="xsnapshot.sendTo",n.to=t,n.event=e,n.id=s?.id,n.delay=s?.delay,n.resolve=Lt,n.retryResolve=Yt,n.execute=Zt,n}function ee(t,e,s,n,{collect:o}){const i=[],r=function(t){i.push(t)};return r.assign=(...t)=>{i.push(Ft(...t))},r.cancel=(...t)=>{i.push(V(...t))},r.raise=(...t)=>{i.push(Ht(...t))},r.sendTo=(...t)=>{i.push(te(...t))},r.spawnChild=(...t)=>{i.push(z(...t))},r.stopChild=(...t)=>{i.push(Q(...t))},o({context:s.context,event:s.event,enqueue:r,check:t=>L(t,e.context,s.event,e),self:t.self,system:t.system}),[e,void 0,i]}function se(t,e,s,n,{value:o,label:i}){return[e,{value:"function"==typeof o?o(s,n):o,label:i}]}function ne({logger:t},{value:e,label:s}){s?t(s,e):t(e)}function oe(t,e){return{config:t,transition:(e,s,n)=>({...e,context:t(e.context,s,n)}),getInitialSnapshot:(t,s)=>({status:"active",output:void 0,error:void 0,context:"function"==typeof e?e({input:s}):e}),getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}}const ie=new WeakMap;const re="xstate.observable.next",ae="xstate.observable.error",ce="xstate.observable.complete";const ue="xstate.promise.resolve",he="xstate.promise.reject";const fe=oe((t=>{}),void 0);const de=new WeakMap;function pe(t,e,s){let n=de.get(t);return n?e in n||(n[e]=s()):(n={[e]:s()},de.set(t,n)),n[e]}const le={},ye=t=>"string"==typeof t?{type:t}:"function"==typeof t?"resolve"in t?{type:t.type}:{type:t.name}:t;class ge{constructor(t,e){if(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.parent=e._parent,this.key=e._key,this.machine=e._machine,this.path=this.parent?this.parent.path.concat(this.key):[],this.id=this.config.id||[this.machine.id,...this.path].join(s),this.type=this.config.type||(this.config.states&&Object.keys(this.config.states).length?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?S(this.config.states,((t,e)=>new ge(t,{_parent:this,_key:e,_machine:this.machine}))):le,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}". Try adding { initial: "${Object.keys(this.states)[0]}" } to the state config.`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=w(this.config.entry).slice(),this.exit=w(this.config.exit).slice(),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=w(t.tags).slice()}_initialize(){this.transitions=function(t){const e=new Map;if(t.config.on)for(const s of Object.keys(t.config.on)){if(s===o)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const n=t.config.on[s];e.set(s,$(n).map((e=>ct(t,s,e))))}if(t.config.onDone){const s=`xstate.done.state.${t.id}`;e.set(s,$(t.config.onDone).map((e=>ct(t,s,e))))}for(const s of t.invoke){if(s.onDone){const n=`xstate.done.actor.${s.id}`;e.set(n,$(s.onDone).map((e=>ct(t,n,e))))}if(s.onError){const n=`xstate.error.actor.${s.id}`;e.set(n,$(s.onError).map((e=>ct(t,n,e))))}if(s.onSnapshot){const n=`xstate.snapshot.${s.id}`;e.set(n,$(s.onSnapshot).map((e=>ct(t,n,e))))}}for(const s of t.after){let t=e.get(s.eventType);t||(t=[],e.set(s.eventType,t)),t.push(s)}return e}(this),this.config.always&&(this.always=$(this.config.always).map((t=>ct(this,o,t)))),Object.keys(this.states).forEach((t=>{this.states[t]._initialize()}))}get definition(){return{id:this.id,key:this.key,version:this.machine.version,type:this.type,initial:this.initial?{target:this.initial.target,source:this,actions:this.initial.actions.map(ye),eventType:null,reenter:!1,toJSON:()=>({target:this.initial.target.map((t=>`#${t.id}`)),source:`#${this.id}`,actions:this.initial.actions.map(ye),eventType:null})}:void 0,history:this.history,states:S(this.states,(t=>t.definition)),on:this.on,transitions:[...this.transitions.values()].flat().map((t=>({...t,actions:t.actions.map(ye)}))),entry:this.entry.map(ye),exit:this.exit.map(ye),meta:this.meta,order:this.order||-1,output:this.output,invoke:this.invoke,description:this.description,tags:this.tags}}toJSON(){return this.definition}get invoke(){return pe(this,"invoke",(()=>w(this.config.invoke).map(((t,e)=>{const{src:s,systemId:n}=t,o=t.id??O(this.id,e),i="string"==typeof s?s:`xstate.invoke.${O(this.id,e)}`;return{...t,src:i,id:o,systemId:n,toJSON(){const{onDone:e,onError:s,...n}=t;return{...n,type:"xstate.invoke",src:i,id:o}}}}))))}get on(){return pe(this,"on",(()=>[...this.transitions].flatMap((([t,e])=>e.map((e=>[t,e])))).reduce(((t,[e,s])=>(t[e]=t[e]||[],t[e].push(s),t)),{})))}get after(){return pe(this,"delayedTransitions",(()=>at(this)))}get initial(){return pe(this,"initial",(()=>function(t,e){const s="string"==typeof e?t.states[e]:e?t.states[e.target]:void 0;if(!s&&e)throw new Error(`Initial state node "${e}" not found on parent state node #${t.id}`);const n={source:t,actions:e&&"string"!=typeof e?w(e.actions):[],eventType:null,reenter:!1,target:s?[s]:[],toJSON:()=>({...n,source:`#${t.id}`,target:s?[`#${s.id}`]:[]})};return n}(this,this.config.initial)))}next(t,e){const s=e.type,n=[];let o;const i=pe(this,`candidates-${s}`,(()=>{return e=s,(t=this).transitions.get(e)||[...t.transitions.keys()].filter((t=>{if("*"===t)return!0;if(!t.endsWith(".*"))return!1;const s=t.split("."),n=e.split(".");for(let t=0;t<s.length;t++){const e=s[t],o=n[t];if("*"===e)return t===s.length-1;if(e!==o)return!1}return!0})).sort(((t,e)=>e.length-t.length)).flatMap((e=>t.transitions.get(e)));var t,e}));for(const r of i){const{guard:i}=r,a=t.context;let c=!1;try{c=!i||L(i,a,e,t)}catch(t){const e="string"==typeof i?i:"object"==typeof i?i.type:void 0;throw new Error(`Unable to evaluate guard ${e?`'${e}' `:""}in transition for event '${s}' in state node '${this.id}':\n${t.message}`)}if(c){n.push(...r.actions),o=r;break}}return o?[o]:void 0}get events(){return pe(this,"events",(()=>{const{states:t}=this,e=new Set(this.ownEvents);if(t)for(const s of Object.keys(t)){const n=t[s];if(n.states)for(const t of n.events)e.add(`${t}`)}return Array.from(e)}))}get ownEvents(){const t=new Set([...this.transitions.keys()].filter((t=>this.transitions.get(t).some((t=>!(!t.target&&!t.actions.length&&!t.reenter))))));return Array.from(t)}}class ve{constructor(t,e){this.config=t,this.version=void 0,this.schemas=void 0,this.implementations=void 0,this.__xstatenode=!0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.__TResolvedTypesMeta=void 0,this.id=t.id||"(machine)",this.implementations={actors:e?.actors??{},actions:e?.actions??{},delays:e?.delays??{},guards:e?.guards??{}},this.version=this.config.version,this.schemas=this.config.schemas,this.transition=this.transition.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 ge(t,{_key:this.id,_machine:this}),this.root._initialize(),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:s,actors:n,delays:o}=this.implementations;return new ve(this.config,{actions:{...e,...t.actions},guards:{...s,...t.guards},actors:{...n,...t.actors},delays:{...o,...t.delays}})}resolveState(t){const e=(s=this.root,n=t.value,ot(s,[...et(yt(s,n))]));var s,n;const o=et(yt(this.root,e));return qt({_nodes:[...o],context:t.context||{},children:{},status:it(o,this.root)?"done":t.status||"active",output:t.output,error:t.error,historyValue:t.historyValue},this)}transition(t,e,s){return At(t,e,s).snapshot}microstep(t,e,s){return At(t,e,s).microstates}getTransitionData(t,e){return gt(this.root,t.value,t,e)||[]}getPreInitialState(t,e,s){const{context:n}=this.config,o=qt({context:"function"!=typeof n&&n?n:{},_nodes:[this.root],children:{},status:"active"},this);if("function"==typeof n){return jt(o,e,t,[Ft((({spawn:t,event:e,self:s})=>n({spawn:t,input:e.input,self:s})))],s)}return o}getInitialSnapshot(t,e){const s=d(e),n=[],o=this.getPreInitialState(t,s,n),i=kt([{target:[...dt(this.root)],source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],o,t,s,!0,n),{snapshot:r}=At(i,s,t,n);return r}start(t){Object.values(t.children).forEach((t=>{"active"===t.getSnapshot().status&&t.start()}))}getStateNodeById(t){const e=m(t),s=e.slice(1),n=rt(e[0])?e[0].slice(1):e[0],o=this.idMap.get(n);if(!o)throw new Error(`Child state node '#${n}' does not exist on machine '${this.id}'`);return lt(o,s)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedSnapshot(t,e){return function(t,e){const{_nodes:s,tags:n,machine:o,children:i,context:r,can:a,hasTag:c,matches:u,getMeta:h,toJSON:f,...d}=t,p={};for(const t in i){const s=i[t];p[t]={snapshot:s.getPersistedSnapshot(e),src:s.src,systemId:s._systemId,syncSnapshot:s._syncSnapshot}}return{...d,context:Wt(r),children:p}}(t,e)}restoreSnapshot(t,e){const s={},n=t.children;Object.keys(n).forEach((t=>{const o=n[t],i=o.snapshot,r=o.src,a="string"==typeof r?j(this,r):r;if(!a)return;const c=R(a,{id:t,parent:e.self,syncSnapshot:o.syncSnapshot,snapshot:i,src:r,systemId:o.systemId});s[t]=c}));const o=qt({...t,children:s,_nodes:Array.from(et(yt(this.root,t.value)))},this);let i=new Set;return function t(e,s){if(!i.has(e)){i.add(e);for(let n in e){const o=e[n];if(o&&"object"==typeof o){if("xstate$$type"in o&&o.xstate$$type===A){e[n]=s[o.id];continue}t(o,s)}}}}(o.context,s),o}}const me={timeout:1/0};function _e(t,e){return new ve(t,e)}t.Actor=P,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 s=this.getId();return this.timeouts.set(s,{start:this.now(),timeout:e,fn:t}),s}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],[s,n])=>{const o=e.start+e.timeout;return n.start+n.timeout>o?-1:1}));for(const[e,s]of t){if(this._flushingInvalidated)return this._flushingInvalidated=!1,this._flushing=!1,void this.flushTimeouts();this.now()-s.start>=s.timeout&&(this.timeouts.delete(e),s.fn.call(null))}this._flushing=!1}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=Kt,t.StateMachine=ve,t.StateNode=ge,t.__unsafe_getAllOwnEventDescriptors=function(t){return[...new Set([...t._nodes.flatMap((t=>t.ownEvents))])]},t.and=function(t){function e(t,e){return!1}return e.check=H,e.guards=t,e},t.assertEvent=function(t,e){const s=w(e);if(!s.includes(t.type)){const e=1===s.length?`type "${s[0]}"`:`one of types "${s.join('", "')}"`;throw new Error(`Expected event ${JSON.stringify(t)} to have ${e}`)}},t.assign=Ft,t.cancel=V,t.createActor=R,t.createEmptyActor=function(){return R(fe)},t.createMachine=_e,t.enqueueActions=function(t){function e(t,e){}return e.type="xstate.enqueueActions",e.collect=t,e.resolve=ee,e},t.forwardTo=function(t,e){return te(t,(({event:t})=>t),e)},t.fromCallback=function(t){return{config:t,start:(e,s)=>{const{self:n,system:o}=s,i={receivers:void 0,dispose:void 0};ie.set(n,i),i.dispose=t({input:e.input,system:o,self:n,sendBack:t=>{"stopped"!==n.getSnapshot().status&&n._parent&&o._relay(n,n._parent,t)},receive:t=>{i.receivers??=new Set,i.receivers.add(t)}})},transition:(t,e,s)=>{const n=ie.get(s.self);return e.type===a?(t={...t,status:"stopped",error:void 0},n.dispose?.(),t):(n.receivers?.forEach((t=>t(e))),t)},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,input:e}),getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}},t.fromEventObservable=function(t){return{config:t,transition:(t,e)=>{if("active"!==t.status)return t;switch(e.type){case ae:return{...t,status:"error",error:e.data,input:void 0,_subscription:void 0};case ce:return{...t,status:"done",input:void 0,_subscription:void 0};case a:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(e,{self:s,system:n})=>{"done"!==e.status&&(e._subscription=t({input:e.input,system:n,self:s}).subscribe({next:t=>{s._parent&&n._relay(s,s._parent,t)},error:t=>{n._relay(s,s,{type:ae,data:t})},complete:()=>{n._relay(s,s,{type:ce})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})}},t.fromObservable=function(t){return{config:t,transition:(t,e,{self:s,id:n,defer:o,system:i})=>{if("active"!==t.status)return t;switch(e.type){case re:return{...t,context:e.data};case ae:return{...t,status:"error",error:e.data,input:void 0,_subscription:void 0};case ce:return{...t,status:"done",input:void 0,_subscription:void 0};case a:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(e,{self:s,system:n})=>{"done"!==e.status&&(e._subscription=t({input:e.input,system:n,self:s}).subscribe({next:t=>{n._relay(s,s,{type:re,data:t})},error:t=>{n._relay(s,s,{type:ae,data:t})},complete:()=>{n._relay(s,s,{type:ce})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})}},t.fromPromise=function(t){return{config:t,transition:(t,e)=>{if("active"!==t.status)return t;switch(e.type){case ue:{const s=e.data;return{...t,status:"done",output:s,input:void 0}}case he:return{...t,status:"error",error:e.data,input:void 0};case a:return{...t,status:"stopped",input:void 0};default:return t}},start:(e,{self:s,system:n})=>{if("active"!==e.status)return;Promise.resolve(t({input:e.input,system:n,self:s})).then((t=>{"active"===s.getSnapshot().status&&n._relay(s,s,{type:ue,data:t})}),(t=>{"active"===s.getSnapshot().status&&n._relay(s,s,{type:he,data:t})}))},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,input:e}),getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}},t.fromTransition=oe,t.getNextSnapshot=function(t,e,s){const n=function(t){const e=R(t);return{self:e,defer:()=>{},id:"",logger:()=>{},sessionId:"",stopChild:()=>{},system:e.system}}(t);return n.self._snapshot=e,t.transition(e,s,n)},t.getStateNodes=yt,t.interpret=C,t.isMachineSnapshot=Rt,t.log=function(t=(({context:t,event:e})=>({context:t,event:e})),e){function s(t,e){}return s.type="xstate.log",s.value=t,s.label=e,s.resolve=se,s.execute=ne,s},t.matchesState=v,t.not=function(t){function e(t,e){return!1}return e.check=X,e.guards=[t],e},t.or=function(t){function e(t,e){return!1}return e.check=K,e.guards=t,e},t.pathToStateValue=b,t.raise=Ht,t.sendParent=function(t,e){return te(Kt.Parent,t,e)},t.sendTo=te,t.setup=function({schemas:t,actors:e,actions:s,guards:n,delays:o}){return{createMachine:i=>_e({...i,schemas:t},{actors:e,actions:s,guards:n,delays:o})}},t.spawnChild=z,t.stateIn=function(t){function e(t,e){return!1}return e.check=G,e.stateValue=t,e},t.stop=F,t.stopChild=Q,t.toObserver=T,t.toPromise=function(t){return new Promise(((e,s)=>{t.subscribe({complete:()=>{e(t.getSnapshot().output)},error:s})}))},t.waitFor=function(t,e,s){const n={...me,...s};return new Promise(((s,o)=>{let i=!1;const r=n.timeout===1/0?void 0:setTimeout((()=>{u.unsubscribe(),o(new Error(`Timeout of ${n.timeout} ms exceeded`))}),n.timeout),a=()=>{clearTimeout(r),i=!0,u?.unsubscribe()};function c(t){e(t)&&(a(),s(t))}let u;c(t.getSnapshot()),i||(u=t.subscribe({next:c,error:t=>{a(),o(t)},complete:()=>{a(),o(new Error("Actor terminated without satisfying predicate"))}}),i&&u.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 s=".",n="",o="",i="xstate.init",r="xstate.error",a="xstate.stop";function c(){const t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:window;if(t.__xstate__)return t.__xstate__}const u=t=>{const e=c();e&&e.register(t)};function h(t,e){return{type:`xstate.done.state.${t}`,output:e}}function f(t,e){return{type:`xstate.error.actor.${t}`,error:e}}function d(t){return{type:i,input:t}}function p(t){setTimeout((()=>{throw t}))}const l="function"==typeof Symbol&&Symbol.observable||"@@observable";function y(t,e){return`${t.sessionId}.${e}`}let g=0;function v(t,e){const s=_(t),n=_(e);return"string"==typeof n?"string"==typeof s&&n===s:"string"==typeof s?s in n:Object.keys(s).every((t=>t in n&&v(s[t],n[t])))}function m(t){if(k(t))return t;let e=[],s="";for(let n=0;n<t.length;n++){switch(t.charCodeAt(n)){case 92:s+=t[n+1],n++;continue;case 46:e.push(s),s="";continue}s+=t[n]}return e.push(s),e}function _(t){if(Rt(t))return t.value;if("string"!=typeof t)return t;return S(m(t))}function S(t){if(1===t.length)return t[0];const e={};let s=e;for(let e=0;e<t.length-1;e++)if(e===t.length-2)s[t[e]]=t[e+1];else{const n=s;s={},n[t[e]]=s}return e}function b(t,e){const s={},n=Object.keys(t);for(let o=0;o<n.length;o++){const i=n[o];s[i]=e(t[i],i,t,o)}return s}function x(t){return k(t)?t:[t]}function w(t){return void 0===t?[]:x(t)}function I(t,e,s,n){return"function"==typeof t?t({context:e,event:s,self:n}):t}function k(t){return Array.isArray(t)}function $(t){return x(t).map((t=>void 0===t||"string"==typeof t?{target:t}:t))}function E(t){if(void 0!==t&&t!==n)return w(t)}function T(t,e,s){const n="object"==typeof t,o=n?t:void 0;return{next:(n?t.next:t)?.bind(o),error:(n?t.error:e)?.bind(o),complete:(n?t.complete:s)?.bind(o)}}function O(t,e){return`${e}.${t}`}function j(t,e){const s=e.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!s)return t.implementations.actors[e];const[,n,o]=s,i=t.getStateNodeById(o).config.invoke;return(Array.isArray(i)?i[n]:i).src}const A=1;let M=function(t){return t[t.NotStarted=0]="NotStarted",t[t.Running=1]="Running",t[t.Stopped=2]="Stopped",t}({});const N={clock:{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},logger:console.log.bind(console),devTools:!1};class P{constructor(t,s){this.logic=t,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this.mailbox=new e(this._process.bind(this)),this.observers=new Set,this.logger=void 0,this._processingStatus=M.NotStarted,this._parent=void 0,this._syncSnapshot=void 0,this.ref=void 0,this._actorScope=void 0,this._systemId=void 0,this.sessionId=void 0,this.system=void 0,this._doneEvent=void 0,this.src=void 0,this._deferred=[];const n={...N,...s},{clock:o,logger:i,parent:r,syncSnapshot:a,id:c,systemId:u,inspect:h}=n;this.system=r?r.system:function(t,e){const s=new Map,n=new Map,o=new WeakMap,i=new Set,r={},a=e.clock,c={schedule:(t,e,s,n,o=Math.random().toString(36).slice(2))=>{const i={source:t,target:e,event:s,delay:n,id:o,startedAt:Date.now()},c=y(t,o);u._snapshot._scheduledEvents[c]=i;const h=a.setTimeout((()=>{delete r[c],delete u._snapshot._scheduledEvents[c],u._relay(t,e,s)}),n);r[c]=h},cancel:(t,e)=>{const s=y(t,e),n=r[s];delete r[s],delete u._snapshot._scheduledEvents[s],a.clearTimeout(n)},cancelAll:t=>{for(const e in u._snapshot._scheduledEvents){const s=u._snapshot._scheduledEvents[e];s.source===t&&c.cancel(t,s.id)}}},u={_snapshot:{_scheduledEvents:(e?.snapshot&&e.snapshot.scheduler)??{}},_bookId:()=>"x:"+g++,_register:(t,e)=>(s.set(t,e),t),_unregister:t=>{s.delete(t.sessionId);const e=o.get(t);void 0!==e&&(n.delete(e),o.delete(t))},get:t=>n.get(t),_set:(t,e)=>{const s=n.get(t);if(s&&s!==e)throw new Error(`Actor with system ID '${t}' already exists.`);n.set(t,e),o.set(e,t)},inspect:t=>{i.add(t)},_sendInspectionEvent:e=>{const s={...e,rootId:t.sessionId};i.forEach((t=>t.next?.(s)))},_relay:(t,e,s)=>{u._sendInspectionEvent({type:"@xstate.event",sourceRef:t,actorRef:e,event:s}),e._send(s)},scheduler:c,getSnapshot:()=>({_scheduledEvents:{...u._snapshot._scheduledEvents}}),start:()=>{const t=u._snapshot._scheduledEvents;u._snapshot._scheduledEvents={};for(const e in t){const{source:s,target:n,event:o,delay:i,id:r}=t[e];c.schedule(s,n,o,i,r)}}};return u}(this,{clock:o}),h&&!r&&this.system.inspect(T(h)),this.sessionId=this.system._bookId(),this.id=c??this.sessionId,this.logger=i,this.clock=o,this._parent=r,this._syncSnapshot=a,this.options=n,this.src=n.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 child actor ${t.id} of ${this.id} because it is not a child`);t._stop()}},this.send=this.send.bind(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this}),u&&(this._systemId=u,this.system._set(u,this)),this._initState(s?.snapshot??s?.state),u&&"active"!==this._snapshot.status&&this.system._unregister(this)}_initState(t){try{this._snapshot=t?this.logic.restoreSnapshot?this.logic.restoreSnapshot(t,this._actorScope):t:this.logic.getInitialSnapshot(this._actorScope,this.options?.input)}catch(t){this._snapshot={status:"error",output:void 0,error:t}}}update(t,e){let s;for(this._snapshot=t;s=this._deferred.shift();)try{s()}catch(e){this._deferred.length=0,this._snapshot={...t,status:"error",error:e}}switch(this._snapshot.status){case"active":for(const e of this.observers)try{e.next?.(t)}catch(t){p(t)}break;case"done":for(const e of this.observers)try{e.next?.(t)}catch(t){p(t)}this._stopProcedure(),this._complete(),this._doneEvent=(n=this.id,o=this._snapshot.output,{type:`xstate.done.actor.${n}`,output:o}),this._parent&&this.system._relay(this,this._parent,this._doneEvent);break;case"error":this._error(this._snapshot.error)}var n,o;this.system._sendInspectionEvent({type:"@xstate.snapshot",actorRef:this,event:e,snapshot:t})}subscribe(t,e,s){const n=T(t,e,s);if(this._processingStatus!==M.Stopped)this.observers.add(n);else switch(this._snapshot.status){case"done":try{n.complete?.()}catch(t){p(t)}break;case"error":{const t=this._snapshot.error;if(n.error)try{n.error(t)}catch(t){p(t)}else p(t);break}}return{unsubscribe:()=>{this.observers.delete(n)}}}start(){if(this._processingStatus===M.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._systemId&&this.system._set(this._systemId,this),this._processingStatus=M.Running;const t=d(this.options.input);this.system._sendInspectionEvent({type:"@xstate.event",sourceRef:this._parent,actorRef:this,event:t});switch(this._snapshot.status){case"done":return this.update(this._snapshot,t),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._snapshot={...this._snapshot,status:"error",error:t},this._error(t),this}return this.update(this._snapshot,t),this.options.devTools&&this.attachDevTools(),this.mailbox.start(),this}_process(t){let e,s;try{e=this.logic.transition(this._snapshot,t,this._actorScope)}catch(t){s={err:t}}if(s){const{err:t}=s;return this._snapshot={...this._snapshot,status:"error",error:t},void this._error(t)}this.update(e,t),t.type===a&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===M.Stopped?this:(this.mailbox.clear(),this._processingStatus===M.NotStarted?(this._processingStatus=M.Stopped,this):(this.mailbox.enqueue({type:a}),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)try{t.complete?.()}catch(t){p(t)}this.observers.clear()}_reportError(t){if(!this.observers.size)return void(this._parent||p(t));let e=!1;for(const s of this.observers){const n=s.error;e||=!n;try{n?.(t)}catch(t){p(t)}}this.observers.clear(),e&&p(t)}_error(t){this._stopProcedure(),this._reportError(t),this._parent&&this.system._relay(this,this._parent,f(this.id,t))}_stopProcedure(){return this._processingStatus!==M.Running||(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new e(this._process.bind(this)),this._processingStatus=M.Stopped,this.system._unregister(this)),this}_send(t){this._processingStatus!==M.Stopped&&this.mailbox.enqueue(t)}send(t){this.system._relay(void 0,this,t)}attachDevTools(){const{devTools:t}=this.options;if(t){("function"==typeof t?t:u)(this)}}toJSON(){return{xstate$$type:A,id:this.id}}getPersistedSnapshot(t){return this.logic.getPersistedSnapshot(this._snapshot,t)}[l](){return this}getSnapshot(){return this._snapshot}}function R(t,...[e]){return new P(t,e)}const C=R;function D(t,e,s,n,{sendId:o}){return[e,"function"==typeof o?o(s,n):o]}function J(t,e){t.defer((()=>{t.system.scheduler.cancel(t.self,e)}))}function V(t){function e(t,e){}return e.type="xstate.cancel",e.sendId=t,e.resolve=D,e.execute=J,e}function B(t,e,s,n,{id:o,systemId:i,src:r,input:a,syncSnapshot:c}){const u="string"==typeof r?j(e.machine,r):r,h="function"==typeof o?o(s):o;let f;return u&&(f=R(u,{id:h,src:r,parent:t.self,syncSnapshot:c,systemId:i,input:"function"==typeof a?a({context:e.context,event:s.event,self:t.self}):a})),[zt(e,{children:{...e.children,[h]:f}}),{id:o,actorRef:f}]}function q(t,{id:e,actorRef:s}){s&&t.defer((()=>{s._processingStatus!==M.Stopped&&s.start()}))}function z(...[t,{id:e,systemId:s,input:n,syncSnapshot:o=!1}={}]){function i(t,e){}return i.type="snapshot.spawnChild",i.id=e,i.systemId=s,i.src=t,i.input=n,i.syncSnapshot=o,i.resolve=B,i.execute=q,i}function W(t,e,s,n,{actorRef:o}){const i="function"==typeof o?o(s,n):o,r="string"==typeof i?e.children[i]:i;let a=e.children;return r&&(a={...a},delete a[r.id]),[zt(e,{children:a}),r]}function U(t,e){e&&(t.system._unregister(e),e._processingStatus===M.Running?t.defer((()=>{t.stopChild(e)})):t.stopChild(e))}function Q(t){function e(t,e){}return e.type="xstate.stopChild",e.actorRef=t,e.resolve=W,e.execute=U,e}const F=Q;function G(t,e,{stateValue:s}){if("string"==typeof s&&rt(s)){const e=t.machine.getStateNodeById(s);return t._nodes.some((t=>t===e))}return t.matches(s)}function X(t,{context:e,event:s},{guards:n}){return!L(n[0],e,s,t)}function H(t,{context:e,event:s},{guards:n}){return n.every((n=>L(n,e,s,t)))}function K(t,{context:e,event:s},{guards:n}){return n.some((n=>L(n,e,s,t)))}function L(t,e,s,n){const{machine:o}=n,i="function"==typeof t,r=i?t:o.implementations.guards["string"==typeof t?t:t.type];if(!i&&!r)throw new Error(`Guard '${"string"==typeof t?t:t.type}' is not implemented.'.`);if("function"!=typeof r)return L(r,e,s,n);const a={context:e,event:s},c=i||"string"==typeof t?void 0:"params"in t?"function"==typeof t.params?t.params({context:e,event:s}):t.params:void 0;if(!("check"in r))return r(a,c);return r.check(n,a,r)}const Y=t=>"atomic"===t.type||"final"===t.type;function Z(t){return Object.values(t.states).filter((t=>"history"!==t.type))}function tt(t,e){const s=[];if(e===t)return s;let n=t.parent;for(;n&&n!==e;)s.push(n),n=n.parent;return s}function et(t){const e=new Set(t),s=nt(e);for(const t of e)if("compound"!==t.type||s.get(t)&&s.get(t).length){if("parallel"===t.type)for(const s of Z(t))if("history"!==s.type&&!e.has(s)){const t=ft(s);for(const s of t)e.add(s)}}else ft(t).forEach((t=>e.add(t)));for(const t of e){let s=t.parent;for(;s;)e.add(s),s=s.parent}return e}function st(t,e){const s=e.get(t);if(!s)return{};if("compound"===t.type){const t=s[0];if(!t)return{};if(Y(t))return t.key}const n={};for(const t of s)n[t.key]=st(t,e);return n}function nt(t){const e=new Map;for(const s of t)e.has(s)||e.set(s,[]),s.parent&&(e.has(s.parent)||e.set(s.parent,[]),e.get(s.parent).push(s));return e}function ot(t,e){return st(t,nt(et(e)))}function it(t,e){return"compound"===e.type?Z(e).some((e=>"final"===e.type&&t.has(e))):"parallel"===e.type?Z(e).every((e=>it(t,e))):"final"===e.type}const rt=t=>"#"===t[0];function at(t){const e=t.config.after;if(!e)return[];return Object.keys(e).flatMap(((s,n)=>{const o=e[s],i="string"==typeof o?{target:o}:o,r=Number.isNaN(+s)?s:+s,a=((e,s)=>{const n=(o=e,i=t.id,{type:`xstate.after.${o}.${i}`});var o,i;const r=n.type;return t.entry.push(Ht(n,{id:r,delay:e})),t.exit.push(V(r)),r})(r);return w(i).map((t=>({...t,event:a,delay:r})))})).map((e=>{const{delay:s}=e;return{...ct(t,e.event,e),delay:s}}))}function ct(t,e,n){const o=E(n.target),i=n.reenter??!1,r=function(t,e){if(void 0===e)return;return e.map((e=>{if("string"!=typeof e)return e;if(rt(e))return t.machine.getStateNodeById(e);const n=e[0]===s;if(n&&!t.parent)return lt(t,e.slice(1));const o=n?t.key+e:e;if(!t.parent)throw new Error(`Invalid target: "${e}" is not a valid target from the root node. Did you mean ".${e}"?`);try{return lt(t.parent,o)}catch(e){throw new Error(`Invalid transition definition for state node '${t.id}':\n${e.message}`)}}))}(t,o),a={...n,actions:w(n.actions),guard:n.guard,target:r,source:t,reenter:i,eventType:e,toJSON:()=>({...a,source:`#${t.id}`,target:r?r.map((t=>`#${t.id}`)):void 0})};return a}function ut(t){const e=E(t.config.target);return e?{target:e.map((e=>"string"==typeof e?lt(t.parent,e):e))}:t.parent.initial}function ht(t){return"history"===t.type}function ft(t){const e=dt(t);for(const s of e)for(const n of tt(s,t))e.add(n);return e}function dt(t){const e=new Set;return function t(s){if(!e.has(s))if(e.add(s),"compound"===s.type)t(s.initial.target[0]);else if("parallel"===s.type)for(const e of Z(s))t(e)}(t),e}function pt(t,e){if(rt(e))return t.machine.getStateNodeById(e);if(!t.states)throw new Error(`Unable to retrieve child state '${e}' from '${t.id}'; no child states exist.`);const s=t.states[e];if(!s)throw new Error(`Child state '${e}' does not exist on '${t.id}'`);return s}function lt(t,e){if("string"==typeof e&&rt(e))try{return t.machine.getStateNodeById(e)}catch(t){}const s=m(e).slice();let n=t;for(;s.length;){const t=s.shift();if(!t.length)break;n=pt(n,t)}return n}function yt(t,e){if("string"==typeof e)return[t,t.states[e]];const s=Object.keys(e),n=s.map((e=>pt(t,e))).filter(Boolean);return[t.machine.root,t].concat(n,s.reduce(((s,n)=>{const o=pt(t,n);if(!o)return s;const i=yt(o,e[n]);return s.concat(i)}),[]))}function gt(t,e,s,n){return"string"==typeof e?function(t,e,s,n){const o=pt(t,e).next(s,n);return o&&o.length?o:t.next(s,n)}(t,e,s,n):1===Object.keys(e).length?function(t,e,s,n){const o=Object.keys(e),i=gt(pt(t,o[0]),e[o[0]],s,n);return i&&i.length?i:t.next(s,n)}(t,e,s,n):function(t,e,s,n){const o=[];for(const i of Object.keys(e)){const r=e[i];if(!r)continue;const a=gt(pt(t,i),r,s,n);a&&o.push(...a)}return o.length?o:t.next(s,n)}(t,e,s,n)}function vt(t){return Object.keys(t.states).map((e=>t.states[e])).filter((t=>"history"===t.type))}function mt(t,e){let s=t;for(;s.parent&&s.parent!==e;)s=s.parent;return s.parent===e}function _t(t,e){const s=new Set(t),n=new Set(e);for(const t of s)if(n.has(t))return!0;for(const t of n)if(s.has(t))return!0;return!1}function St(t,e,s){const n=new Set;for(const o of t){let t=!1;const i=new Set;for(const r of n)if(_t(wt([o],e,s),wt([r],e,s))){if(!mt(o.source,r.source)){t=!0;break}i.add(r)}if(!t){for(const t of i)n.delete(t);n.add(o)}}return Array.from(n)}function bt(t,e){if(!t.target)return[];const s=new Set;for(const n of t.target)if(ht(n))if(e[n.id])for(const t of e[n.id])s.add(t);else for(const t of bt(ut(n),e))s.add(t);else s.add(n);return[...s]}function xt(t,e){const s=bt(t,e);if(!s)return;if(!t.reenter&&s.every((e=>e===t.source||mt(e,t.source))))return t.source;const n=function(t){const[e,...s]=t;for(const t of tt(e,void 0))if(s.every((e=>mt(e,t))))return t}(s.concat(t.source));return n||(t.reenter?void 0:t.source.machine.root)}function wt(t,e,s){const n=new Set;for(const o of t)if(o.target?.length){const t=xt(o,s);o.reenter&&o.source===t&&n.add(t);for(const s of e)mt(s,t)&&n.add(s)}return[...n]}function It(t,e,s,n,o,i){if(!t.length)return e;const r=new Set(e._nodes);let a=e.historyValue;const c=St(t,r,a);let u=e;o||([u,a]=function(t,e,s,n,o,i,r){let a=t;const c=wt(n,o,i);let u;c.sort(((t,e)=>e.order-t.order));for(const t of c)for(const e of vt(t)){let s;s="deep"===e.history?e=>Y(e)&&mt(e,t):e=>e.parent===t,u??={...i},u[e.id]=Array.from(o).filter(s)}for(const t of c)a=jt(a,e,s,[...t.exit,...t.invoke.map((t=>Q(t.id)))],r),o.delete(t);return[a,u||i]}(u,n,s,c,r,a,i)),u=jt(u,n,s,c.flatMap((t=>t.actions)),i),u=function(t,e,s,n,o,i,r,a){let c=t;const u=new Set,f=new Set;(function(t,e,s,n){for(const o of t){const t=xt(o,e);for(const i of o.target||[])ht(i)||o.source===i&&o.source===t&&!o.reenter||(n.add(i),s.add(i)),$t(i,e,s,n);const i=bt(o,e);for(const r of i){const i=tt(r,t);"parallel"===t?.type&&i.push(t),Et(n,e,s,i,!o.source.parent&&o.reenter?void 0:t)}}})(n,r,f,u),a&&f.add(t.machine.root);const d=new Set;for(const t of[...u].sort(((t,e)=>t.order-e.order))){o.add(t);const n=[];n.push(...t.entry);for(const e of t.invoke)n.push(z(e.src,{...e,syncSnapshot:!!e.onSnapshot}));if(f.has(t)){const e=t.initial.actions;n.push(...e)}if(c=jt(c,e,s,n,i,t.invoke.map((t=>t.id))),"final"===t.type){const n=t.parent;let r="parallel"===n?.type?n:n?.parent,a=r||t;for("compound"===n?.type&&i.push(h(n.id,t.output?I(t.output,c.context,e,s.self):void 0));"parallel"===r?.type&&!d.has(r)&&it(o,r);)d.add(r),i.push(h(r.id)),a=r,r=r.parent;if(r)continue;c=zt(c,{status:"done",output:kt(c,e,s,c.machine.root,a)})}}return c}(u,n,s,c,r,i,a,o);const f=[...r];"done"===u.status&&(u=jt(u,n,s,f.sort(((t,e)=>e.order-t.order)).flatMap((t=>t.exit)),i));try{return a===e.historyValue&&function(t,e){if(t.length!==e.size)return!1;for(const s of t)if(!e.has(s))return!1;return!0}(e._nodes,r)?u:zt(u,{_nodes:f,historyValue:a})}catch(t){throw t}}function kt(t,e,s,n,o){if(!n.output)return;const i=h(o.id,o.output&&o.parent?I(o.output,t.context,e,s.self):void 0);return I(n.output,t.context,i,s.self)}function $t(t,e,s,n){if(ht(t))if(e[t.id]){const o=e[t.id];for(const t of o)n.add(t),$t(t,e,s,n);for(const i of o)Tt(i,t.parent,n,e,s)}else{const o=ut(t);for(const i of o.target)n.add(i),o===t.parent?.initial&&s.add(t.parent),$t(i,e,s,n);for(const i of o.target)Tt(i,t.parent,n,e,s)}else if("compound"===t.type){const[o]=t.initial.target;ht(o)||(n.add(o),s.add(o)),$t(o,e,s,n),Tt(o,t,n,e,s)}else if("parallel"===t.type)for(const o of Z(t).filter((t=>!ht(t))))[...n].some((t=>mt(t,o)))||(ht(o)||(n.add(o),s.add(o)),$t(o,e,s,n))}function Et(t,e,s,n,o){for(const i of n)if(o&&!mt(i,o)||t.add(i),"parallel"===i.type)for(const n of Z(i).filter((t=>!ht(t))))[...t].some((t=>mt(t,n)))||(t.add(n),$t(n,e,s,t))}function Tt(t,e,s,n,o){Et(s,n,o,tt(t,e))}function Ot(t,e,s,n,o,i){const{machine:r}=t;let a=t;for(const t of n){const n="function"==typeof t,c=n?t:r.implementations.actions["string"==typeof t?t:t.type];if(!c)continue;const u={context:a.context,event:e,self:s.self,system:s.system},h=n||"string"==typeof t?void 0:"params"in t?"function"==typeof t.params?t.params({context:a.context,event:e}):t.params:void 0;if(!("resolve"in c)){s.self._processingStatus===M.Running?c(u,h):s.defer((()=>{c(u,h)}));continue}const f=c,[d,p,l]=f.resolve(s,a,u,h,c,o);a=d,"retryResolve"in f&&i?.push([f,p]),"execute"in f&&(s.self._processingStatus===M.Running?f.execute(s,p):s.defer(f.execute.bind(null,s,p))),l&&(a=Ot(a,e,s,l,o,i))}return a}function jt(t,e,s,n,o,i){const r=i?[]:void 0,a=Ot(t,e,s,n,{internalQueue:o,deferredActorIds:i},r);return r?.forEach((([t,e])=>{t.retryResolve(s,a,e)})),a}function At(t,e,s,n=[]){let o=t;const r=[];if(e.type===a)return o=zt(Mt(o,e,s),{status:"stopped"}),r.push(o),{snapshot:o,microstates:r};let c=e;if(c.type!==i){const e=c,i=function(t){return t.type.startsWith("xstate.error.actor")}(e),a=Nt(e,o);if(i&&!a.length)return o=zt(t,{status:"error",error:e.error}),r.push(o),{snapshot:o,microstates:r};o=It(a,t,s,c,!1,n),r.push(o)}let u=!0;for(;"active"===o.status;){let t=u?Pt(o,c):[];const e=t.length?o:void 0;if(!t.length){if(!n.length)break;c=n.shift(),t=Nt(c,o)}o=It(t,o,s,c,!1,n),u=o!==e,r.push(o)}return"active"!==o.status&&Mt(o,c,s),{snapshot:o,microstates:r}}function Mt(t,e,s){return jt(t,e,s,Object.values(t.children).map((t=>Q(t))),[])}function Nt(t,e){return e.machine.getTransitionData(e,t)}function Pt(t,e){const s=new Set,n=t._nodes.filter(Y);for(const o of n)t:for(const n of[o].concat(tt(o,void 0)))if(n.always)for(const o of n.always)if(void 0===o.guard||L(o.guard,t.context,e,t)){s.add(o);break t}return St(Array.from(s),new Set(t._nodes),t.historyValue)}function Rt(t){return!!t&&"object"==typeof t&&"machine"in t&&"value"in t}const Ct=function(t){return v(t,this.value)},Dt=function(t){return this.tags.has(t)},Jt=function(t){const e=this.machine.getTransitionData(this,t);return!!e?.length&&e.some((t=>void 0!==t.target||t.actions.length))},Vt=function(){const{_nodes:t,tags:e,machine:s,getMeta:n,toJSON:o,can:i,hasTag:r,matches:a,...c}=this;return{...c,tags:Array.from(e)}},Bt=function(){return this._nodes.reduce(((t,e)=>(void 0!==e.meta&&(t[e.id]=e.meta),t)),{})};function qt(t,e){return{status:t.status,output:t.output,error:t.error,machine:e,context:t.context,_nodes:t._nodes,value:ot(e.root,t._nodes),tags:new Set(t._nodes.flatMap((t=>t.tags))),children:t.children,historyValue:t.historyValue||{},matches:Ct,hasTag:Dt,can:Jt,getMeta:Bt,toJSON:Vt}}function zt(t,e={}){return qt({...t,...e},t.machine)}function Wt(t){let e;for(const s in t){const n=t[s];if(n&&"object"==typeof n)if("sessionId"in n&&"send"in n&&"ref"in n)e??=Array.isArray(t)?t.slice():{...t},e[s]={xstate$$type:A,id:n.id};else{const o=Wt(n);o!==n&&(e??=Array.isArray(t)?t.slice():{...t},e[s]=o)}}return e??t}function Ut(t,{machine:e,context:s},n,o){return(i,r)=>{const a=((i,r={})=>{const{systemId:a,input:c}=r;if("string"==typeof i){const u=j(e,i);if(!u)throw new Error(`Actor logic '${i}' not implemented in machine '${e.id}'`);const h=R(u,{id:r.id,parent:t.self,syncSnapshot:r.syncSnapshot,input:"function"==typeof c?c({context:s,event:n,self:t.self}):c,src:i,systemId:a});return o[h.id]=h,h}return R(i,{id:r.id,parent:t.self,syncSnapshot:r.syncSnapshot,input:r.input,src:i,systemId:a})})(i,r);return o[a.id]=a,t.defer((()=>{a._processingStatus!==M.Stopped&&a.start()})),a}}function Qt(t,e,s,n,{assignment:o}){if(!e.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const i={},r={context:e.context,event:s.event,spawn:Ut(t,e,s.event,i),self:t.self,system:t.system};let a={};if("function"==typeof o)a=o(r,n);else for(const t of Object.keys(o)){const e=o[t];a[t]="function"==typeof e?e(r,n):e}return[zt(e,{context:Object.assign({},e.context,a),children:Object.keys(i).length?{...e.children,...i}:e.children})]}function Ft(t){function e(t,e){}return e.type="xstate.assign",e.assignment=t,e.resolve=Qt,e}function Gt(t,e,s,n,{event:o,id:i,delay:r},{internalQueue:a}){const c=e.machine.implementations.delays;if("string"==typeof o)throw new Error(`Only event objects may be used with raise; use raise({ type: "${o}" }) instead`);const u="function"==typeof o?o(s,n):o;let h;if("string"==typeof r){const t=c&&c[r];h="function"==typeof t?t(s,n):t}else h="function"==typeof r?r(s,n):r;return"number"!=typeof h&&a.push(u),[e,{event:u,id:i,delay:h}]}function Xt(t,e){const{event:s,delay:n,id:o}=e;"number"!=typeof n||t.defer((()=>{const e=t.self;t.system.scheduler.schedule(e,e,s,n,o)}))}function Ht(t,e){function s(t,e){}return s.type="xstate.raise",s.event=t,s.id=e?.id,s.delay=e?.delay,s.resolve=Gt,s.execute=Xt,s}let Kt=function(t){return t.Parent="#_parent",t.Internal="#_internal",t}({});function Lt(t,e,s,n,{to:o,event:i,id:r,delay:a},c){const u=e.machine.implementations.delays;if("string"==typeof i)throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${i}" }) instead`);const h="function"==typeof i?i(s,n):i;let f;if("string"==typeof a){const t=u&&u[a];f="function"==typeof t?t(s,n):t}else f="function"==typeof a?a(s,n):a;const d="function"==typeof o?o(s,n):o;let p;if("string"==typeof d){if(p=d===Kt.Parent?t.self._parent:d===Kt.Internal?t.self:d.startsWith("#_")?e.children[d.slice(2)]:c.deferredActorIds?.includes(d)?d:e.children[d],!p)throw new Error(`Unable to send event to actor '${d}' from machine '${e.machine.id}'.`)}else p=d||t.self;return[e,{to:p,event:h,id:r,delay:f}]}function Yt(t,e,s){"string"==typeof s.to&&(s.to=e.children[s.to])}function Zt(t,e){t.defer((()=>{const{to:s,event:n,delay:o,id:i}=e;"number"!=typeof o?t.system._relay(t.self,s,n.type===r?f(t.self.id,n.data):n):t.system.scheduler.schedule(t.self,s,n,o,i)}))}function te(t,e,s){function n(t,e){}return n.type="xsnapshot.sendTo",n.to=t,n.event=e,n.id=s?.id,n.delay=s?.delay,n.resolve=Lt,n.retryResolve=Yt,n.execute=Zt,n}function ee(t,e,s,n,{collect:o}){const i=[],r=function(t){i.push(t)};return r.assign=(...t)=>{i.push(Ft(...t))},r.cancel=(...t)=>{i.push(V(...t))},r.raise=(...t)=>{i.push(Ht(...t))},r.sendTo=(...t)=>{i.push(te(...t))},r.spawnChild=(...t)=>{i.push(z(...t))},r.stopChild=(...t)=>{i.push(Q(...t))},o({context:s.context,event:s.event,enqueue:r,check:t=>L(t,e.context,s.event,e),self:t.self,system:t.system}),[e,void 0,i]}function se(t,e,s,n,{value:o,label:i}){return[e,{value:"function"==typeof o?o(s,n):o,label:i}]}function ne({logger:t},{value:e,label:s}){s?t(s,e):t(e)}function oe(t,e){return{config:t,transition:(e,s,n)=>({...e,context:t(e.context,s,n)}),getInitialSnapshot:(t,s)=>({status:"active",output:void 0,error:void 0,context:"function"==typeof e?e({input:s}):e}),getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}}const ie=new WeakMap;const re="xstate.observable.next",ae="xstate.observable.error",ce="xstate.observable.complete";const ue="xstate.promise.resolve",he="xstate.promise.reject";const fe=oe((t=>{}),void 0);const de=new WeakMap;function pe(t,e,s){let n=de.get(t);return n?e in n||(n[e]=s()):(n={[e]:s()},de.set(t,n)),n[e]}const le={},ye=t=>"string"==typeof t?{type:t}:"function"==typeof t?"resolve"in t?{type:t.type}:{type:t.name}:t;class ge{constructor(t,e){if(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.parent=e._parent,this.key=e._key,this.machine=e._machine,this.path=this.parent?this.parent.path.concat(this.key):[],this.id=this.config.id||[this.machine.id,...this.path].join(s),this.type=this.config.type||(this.config.states&&Object.keys(this.config.states).length?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?b(this.config.states,((t,e)=>new ge(t,{_parent:this,_key:e,_machine:this.machine}))):le,"compound"===this.type&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}". Try adding { initial: "${Object.keys(this.states)[0]}" } to the state config.`);this.history=!0===this.config.history?"shallow":this.config.history||!1,this.entry=w(this.config.entry).slice(),this.exit=w(this.config.exit).slice(),this.meta=this.config.meta,this.output="final"!==this.type&&this.parent?void 0:this.config.output,this.tags=w(t.tags).slice()}_initialize(){this.transitions=function(t){const e=new Map;if(t.config.on)for(const s of Object.keys(t.config.on)){if(s===o)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const n=t.config.on[s];e.set(s,$(n).map((e=>ct(t,s,e))))}if(t.config.onDone){const s=`xstate.done.state.${t.id}`;e.set(s,$(t.config.onDone).map((e=>ct(t,s,e))))}for(const s of t.invoke){if(s.onDone){const n=`xstate.done.actor.${s.id}`;e.set(n,$(s.onDone).map((e=>ct(t,n,e))))}if(s.onError){const n=`xstate.error.actor.${s.id}`;e.set(n,$(s.onError).map((e=>ct(t,n,e))))}if(s.onSnapshot){const n=`xstate.snapshot.${s.id}`;e.set(n,$(s.onSnapshot).map((e=>ct(t,n,e))))}}for(const s of t.after){let t=e.get(s.eventType);t||(t=[],e.set(s.eventType,t)),t.push(s)}return e}(this),this.config.always&&(this.always=$(this.config.always).map((t=>ct(this,o,t)))),Object.keys(this.states).forEach((t=>{this.states[t]._initialize()}))}get definition(){return{id:this.id,key:this.key,version:this.machine.version,type:this.type,initial:this.initial?{target:this.initial.target,source:this,actions:this.initial.actions.map(ye),eventType:null,reenter:!1,toJSON:()=>({target:this.initial.target.map((t=>`#${t.id}`)),source:`#${this.id}`,actions:this.initial.actions.map(ye),eventType:null})}:void 0,history:this.history,states:b(this.states,(t=>t.definition)),on:this.on,transitions:[...this.transitions.values()].flat().map((t=>({...t,actions:t.actions.map(ye)}))),entry:this.entry.map(ye),exit:this.exit.map(ye),meta:this.meta,order:this.order||-1,output:this.output,invoke:this.invoke,description:this.description,tags:this.tags}}toJSON(){return this.definition}get invoke(){return pe(this,"invoke",(()=>w(this.config.invoke).map(((t,e)=>{const{src:s,systemId:n}=t,o=t.id??O(this.id,e),i="string"==typeof s?s:`xstate.invoke.${O(this.id,e)}`;return{...t,src:i,id:o,systemId:n,toJSON(){const{onDone:e,onError:s,...n}=t;return{...n,type:"xstate.invoke",src:i,id:o}}}}))))}get on(){return pe(this,"on",(()=>[...this.transitions].flatMap((([t,e])=>e.map((e=>[t,e])))).reduce(((t,[e,s])=>(t[e]=t[e]||[],t[e].push(s),t)),{})))}get after(){return pe(this,"delayedTransitions",(()=>at(this)))}get initial(){return pe(this,"initial",(()=>function(t,e){const s="string"==typeof e?t.states[e]:e?t.states[e.target]:void 0;if(!s&&e)throw new Error(`Initial state node "${e}" not found on parent state node #${t.id}`);const n={source:t,actions:e&&"string"!=typeof e?w(e.actions):[],eventType:null,reenter:!1,target:s?[s]:[],toJSON:()=>({...n,source:`#${t.id}`,target:s?[`#${s.id}`]:[]})};return n}(this,this.config.initial)))}next(t,e){const s=e.type,n=[];let o;const i=pe(this,`candidates-${s}`,(()=>{return e=s,(t=this).transitions.get(e)||[...t.transitions.keys()].filter((t=>{if("*"===t)return!0;if(!t.endsWith(".*"))return!1;const s=t.split("."),n=e.split(".");for(let t=0;t<s.length;t++){const e=s[t],o=n[t];if("*"===e)return t===s.length-1;if(e!==o)return!1}return!0})).sort(((t,e)=>e.length-t.length)).flatMap((e=>t.transitions.get(e)));var t,e}));for(const r of i){const{guard:i}=r,a=t.context;let c=!1;try{c=!i||L(i,a,e,t)}catch(t){const e="string"==typeof i?i:"object"==typeof i?i.type:void 0;throw new Error(`Unable to evaluate guard ${e?`'${e}' `:""}in transition for event '${s}' in state node '${this.id}':\n${t.message}`)}if(c){n.push(...r.actions),o=r;break}}return o?[o]:void 0}get events(){return pe(this,"events",(()=>{const{states:t}=this,e=new Set(this.ownEvents);if(t)for(const s of Object.keys(t)){const n=t[s];if(n.states)for(const t of n.events)e.add(`${t}`)}return Array.from(e)}))}get ownEvents(){const t=new Set([...this.transitions.keys()].filter((t=>this.transitions.get(t).some((t=>!(!t.target&&!t.actions.length&&!t.reenter))))));return Array.from(t)}}class ve{constructor(t,e){this.config=t,this.version=void 0,this.schemas=void 0,this.implementations=void 0,this.__xstatenode=!0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.__TResolvedTypesMeta=void 0,this.id=t.id||"(machine)",this.implementations={actors:e?.actors??{},actions:e?.actions??{},delays:e?.delays??{},guards:e?.guards??{}},this.version=this.config.version,this.schemas=this.config.schemas,this.transition=this.transition.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 ge(t,{_key:this.id,_machine:this}),this.root._initialize(),this.states=this.root.states,this.events=this.root.events}provide(t){const{actions:e,guards:s,actors:n,delays:o}=this.implementations;return new ve(this.config,{actions:{...e,...t.actions},guards:{...s,...t.guards},actors:{...n,...t.actors},delays:{...o,...t.delays}})}resolveState(t){const e=(s=this.root,n=t.value,ot(s,[...et(yt(s,n))]));var s,n;const o=et(yt(this.root,e));return qt({_nodes:[...o],context:t.context||{},children:{},status:it(o,this.root)?"done":t.status||"active",output:t.output,error:t.error,historyValue:t.historyValue},this)}transition(t,e,s){return At(t,e,s).snapshot}microstep(t,e,s){return At(t,e,s).microstates}getTransitionData(t,e){return gt(this.root,t.value,t,e)||[]}getPreInitialState(t,e,s){const{context:n}=this.config,o=qt({context:"function"!=typeof n&&n?n:{},_nodes:[this.root],children:{},status:"active"},this);if("function"==typeof n){return jt(o,e,t,[Ft((({spawn:t,event:e,self:s})=>n({spawn:t,input:e.input,self:s})))],s)}return o}getInitialSnapshot(t,e){const s=d(e),n=[],o=this.getPreInitialState(t,s,n),i=It([{target:[...dt(this.root)],source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],o,t,s,!0,n),{snapshot:r}=At(i,s,t,n);return r}start(t){Object.values(t.children).forEach((t=>{"active"===t.getSnapshot().status&&t.start()}))}getStateNodeById(t){const e=m(t),s=e.slice(1),n=rt(e[0])?e[0].slice(1):e[0],o=this.idMap.get(n);if(!o)throw new Error(`Child state node '#${n}' does not exist on machine '${this.id}'`);return lt(o,s)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedSnapshot(t,e){return function(t,e){const{_nodes:s,tags:n,machine:o,children:i,context:r,can:a,hasTag:c,matches:u,getMeta:h,toJSON:f,...d}=t,p={};for(const t in i){const s=i[t];p[t]={snapshot:s.getPersistedSnapshot(e),src:s.src,systemId:s._systemId,syncSnapshot:s._syncSnapshot}}return{...d,context:Wt(r),children:p}}(t,e)}restoreSnapshot(t,e){const s={},n=t.children;Object.keys(n).forEach((t=>{const o=n[t],i=o.snapshot,r=o.src,a="string"==typeof r?j(this,r):r;if(!a)return;const c=R(a,{id:t,parent:e.self,syncSnapshot:o.syncSnapshot,snapshot:i,src:r,systemId:o.systemId});s[t]=c}));const o=qt({...t,children:s,_nodes:Array.from(et(yt(this.root,t.value)))},this);let i=new Set;return function t(e,s){if(!i.has(e)){i.add(e);for(let n in e){const o=e[n];if(o&&"object"==typeof o){if("xstate$$type"in o&&o.xstate$$type===A){e[n]=s[o.id];continue}t(o,s)}}}}(o.context,s),o}}const me={timeout:1/0};function _e(t,e){return new ve(t,e)}function Se(t){const e=R(t);return{self:e,defer:()=>{},id:"",logger:()=>{},sessionId:"",stopChild:()=>{},system:e.system}}t.Actor=P,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 s=this.getId();return this.timeouts.set(s,{start:this.now(),timeout:e,fn:t}),s}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],[s,n])=>{const o=e.start+e.timeout;return n.start+n.timeout>o?-1:1}));for(const[e,s]of t){if(this._flushingInvalidated)return this._flushingInvalidated=!1,this._flushing=!1,void this.flushTimeouts();this.now()-s.start>=s.timeout&&(this.timeouts.delete(e),s.fn.call(null))}this._flushing=!1}increment(t){this._now+=t,this.flushTimeouts()}},t.SpecialTargets=Kt,t.StateMachine=ve,t.StateNode=ge,t.__unsafe_getAllOwnEventDescriptors=function(t){return[...new Set([...t._nodes.flatMap((t=>t.ownEvents))])]},t.and=function(t){function e(t,e){return!1}return e.check=H,e.guards=t,e},t.assertEvent=function(t,e){const s=w(e);if(!s.includes(t.type)){const e=1===s.length?`type "${s[0]}"`:`one of types "${s.join('", "')}"`;throw new Error(`Expected event ${JSON.stringify(t)} to have ${e}`)}},t.assign=Ft,t.cancel=V,t.createActor=R,t.createEmptyActor=function(){return R(fe)},t.createMachine=_e,t.enqueueActions=function(t){function e(t,e){}return e.type="xstate.enqueueActions",e.collect=t,e.resolve=ee,e},t.forwardTo=function(t,e){return te(t,(({event:t})=>t),e)},t.fromCallback=function(t){return{config:t,start:(e,s)=>{const{self:n,system:o}=s,i={receivers:void 0,dispose:void 0};ie.set(n,i),i.dispose=t({input:e.input,system:o,self:n,sendBack:t=>{"stopped"!==n.getSnapshot().status&&n._parent&&o._relay(n,n._parent,t)},receive:t=>{i.receivers??=new Set,i.receivers.add(t)}})},transition:(t,e,s)=>{const n=ie.get(s.self);return e.type===a?(t={...t,status:"stopped",error:void 0},n.dispose?.(),t):(n.receivers?.forEach((t=>t(e))),t)},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,input:e}),getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}},t.fromEventObservable=function(t){return{config:t,transition:(t,e)=>{if("active"!==t.status)return t;switch(e.type){case ae:return{...t,status:"error",error:e.data,input:void 0,_subscription:void 0};case ce:return{...t,status:"done",input:void 0,_subscription:void 0};case a:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(e,{self:s,system:n})=>{"done"!==e.status&&(e._subscription=t({input:e.input,system:n,self:s}).subscribe({next:t=>{s._parent&&n._relay(s,s._parent,t)},error:t=>{n._relay(s,s,{type:ae,data:t})},complete:()=>{n._relay(s,s,{type:ce})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})}},t.fromObservable=function(t){return{config:t,transition:(t,e,{self:s,id:n,defer:o,system:i})=>{if("active"!==t.status)return t;switch(e.type){case re:return{...t,context:e.data};case ae:return{...t,status:"error",error:e.data,input:void 0,_subscription:void 0};case ce:return{...t,status:"done",input:void 0,_subscription:void 0};case a:return t._subscription.unsubscribe(),{...t,status:"stopped",input:void 0,_subscription:void 0};default:return t}},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,context:void 0,input:e,_subscription:void 0}),start:(e,{self:s,system:n})=>{"done"!==e.status&&(e._subscription=t({input:e.input,system:n,self:s}).subscribe({next:t=>{n._relay(s,s,{type:re,data:t})},error:t=>{n._relay(s,s,{type:ae,data:t})},complete:()=>{n._relay(s,s,{type:ce})}}))},getPersistedSnapshot:({_subscription:t,...e})=>e,restoreSnapshot:t=>({...t,_subscription:void 0})}},t.fromPromise=function(t){return{config:t,transition:(t,e)=>{if("active"!==t.status)return t;switch(e.type){case ue:{const s=e.data;return{...t,status:"done",output:s,input:void 0}}case he:return{...t,status:"error",error:e.data,input:void 0};case a:return{...t,status:"stopped",input:void 0};default:return t}},start:(e,{self:s,system:n})=>{if("active"!==e.status)return;Promise.resolve(t({input:e.input,system:n,self:s})).then((t=>{"active"===s.getSnapshot().status&&n._relay(s,s,{type:ue,data:t})}),(t=>{"active"===s.getSnapshot().status&&n._relay(s,s,{type:he,data:t})}))},getInitialSnapshot:(t,e)=>({status:"active",output:void 0,error:void 0,input:e}),getPersistedSnapshot:t=>t,restoreSnapshot:t=>t}},t.fromTransition=oe,t.getInitialSnapshot=function(t,...[e]){const s=Se(t);return t.getInitialSnapshot(s,e)},t.getNextSnapshot=function(t,e,s){const n=Se(t);return n.self._snapshot=e,t.transition(e,s,n)},t.getStateNodes=yt,t.interpret=C,t.isMachineSnapshot=Rt,t.log=function(t=(({context:t,event:e})=>({context:t,event:e})),e){function s(t,e){}return s.type="xstate.log",s.value=t,s.label=e,s.resolve=se,s.execute=ne,s},t.matchesState=v,t.not=function(t){function e(t,e){return!1}return e.check=X,e.guards=[t],e},t.or=function(t){function e(t,e){return!1}return e.check=K,e.guards=t,e},t.pathToStateValue=S,t.raise=Ht,t.sendParent=function(t,e){return te(Kt.Parent,t,e)},t.sendTo=te,t.setup=function({schemas:t,actors:e,actions:s,guards:n,delays:o}){return{createMachine:i=>_e({...i,schemas:t},{actors:e,actions:s,guards:n,delays:o})}},t.spawnChild=z,t.stateIn=function(t){function e(t,e){return!1}return e.check=G,e.stateValue=t,e},t.stop=F,t.stopChild=Q,t.toObserver=T,t.toPromise=function(t){return new Promise(((e,s)=>{t.subscribe({complete:()=>{e(t.getSnapshot().output)},error:s})}))},t.waitFor=function(t,e,s){const n={...me,...s};return new Promise(((s,o)=>{let i=!1;const r=n.timeout===1/0?void 0:setTimeout((()=>{u.unsubscribe(),o(new Error(`Timeout of ${n.timeout} ms exceeded`))}),n.timeout),a=()=>{clearTimeout(r),i=!0,u?.unsubscribe()};function c(t){e(t)&&(a(),s(t))}let u;c(t.getSnapshot()),i||(u=t.subscribe({next:c,error:t=>{a(),o(t)},complete:()=>{a(),o(new Error("Actor terminated without satisfying predicate"))}}),i&&u.unsubscribe())}))},Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=xstate.umd.min.js.map
|