xstate 6.0.0-alpha.17 → 6.0.0-alpha.19
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/README.md +1 -1
- package/dist/{StateMachine-a10528bb.cjs.js → StateMachine-20b7d63b.cjs.js} +1 -1
- package/dist/{StateMachine-4d17c47e.development.cjs.js → StateMachine-9e72e36d.development.cjs.js} +1 -1
- package/dist/{StateMachine-c2d32ddd.esm.js → StateMachine-bb722e90.esm.js} +1 -1
- package/dist/{StateMachine-114b1598.development.esm.js → StateMachine-f777a374.development.esm.js} +1 -1
- package/dist/declarations/src/setup.d.ts +10 -7
- package/dist/declarations/src/types.d.ts +5 -1
- package/dist/declarations/src/types.v6.d.ts +9 -9
- package/dist/{index-addc01a2.esm.js → index-0842e9fd.esm.js} +22 -8
- package/dist/{index-1ac35571.cjs.js → index-626fe0b0.cjs.js} +22 -8
- package/dist/{index-415cdd3a.development.cjs.js → index-792d3638.development.cjs.js} +22 -8
- package/dist/{index-31e8ad34.development.esm.js → index-b5a6f830.development.esm.js} +22 -8
- package/dist/xstate-actors.cjs.js +1 -1
- package/dist/xstate-actors.development.cjs.js +1 -1
- package/dist/xstate-actors.development.esm.js +1 -1
- package/dist/xstate-actors.esm.js +1 -1
- package/dist/xstate-graph.cjs.js +2 -2
- package/dist/xstate-graph.development.cjs.js +2 -2
- package/dist/xstate-graph.development.esm.js +2 -2
- package/dist/xstate-graph.esm.js +2 -2
- package/dist/xstate-graph.umd.min.js +1 -1
- package/dist/xstate-graph.umd.min.js.map +1 -1
- package/dist/xstate.cjs.js +6 -3
- package/dist/xstate.development.cjs.js +6 -3
- package/dist/xstate.development.esm.js +8 -5
- package/dist/xstate.esm.js +8 -5
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -166,7 +166,7 @@ toggleActor.send({ type: 'TOGGLE' });
|
|
|
166
166
|
- Deploy to Stately Sky
|
|
167
167
|
- Generate & modify machines with Stately AI
|
|
168
168
|
|
|
169
|
-
<a href="stately.ai/registry/new?ref=github" title="Stately Studio">
|
|
169
|
+
<a href="https://stately.ai/registry/new?ref=github" title="Stately Studio">
|
|
170
170
|
<img src="https://github.com/statelyai/xstate/assets/1093738/74ed9cbc-b824-4ed7-a16d-f104947af8a7" alt="XState Viz" width="800" />
|
|
171
171
|
</a>
|
|
172
172
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-
|
|
1
|
+
import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-0842e9fd.esm.js';
|
|
2
2
|
|
|
3
3
|
function createSpawner(actorScope, {
|
|
4
4
|
machine,
|
package/dist/{StateMachine-114b1598.development.esm.js → StateMachine-f777a374.development.esm.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-
|
|
1
|
+
import { P as ProcessingStatus, G as resolveReferencedActor, d as createActor, S as STATE_DELIMITER, H as mapValues, t as toArray, I as createInvokeId, J as getDelayedTransitions, K as evaluateCandidate, L as formatTransition, N as NULL_EVENT, M as toTransitionConfigArray, O as createInvokeTimeoutEvent, Q as getCandidates, R as formatRouteTransitions, U as resolveStateValue, V as getAllStateNodes, k as getStateNodes, W as createMachineSnapshot, Y as isInFinalState, e as macrostep, Z as cloneMachineSnapshot, _ as transitionNode, m as matchesEventDescriptor, $ as getTransitionResult, a0 as hasEffect, a1 as createErrorPlatformEvent, r as resolveActionsWithContext, f as createInitEvent, g as initialMicrostep, a2 as toStatePath, a3 as isStateId, a4 as getStateNodeByPath, a5 as getPersistedSnapshot, a6 as $$ACTOR_TYPE } from './index-b5a6f830.development.esm.js';
|
|
2
2
|
|
|
3
3
|
function createSpawner(actorScope, {
|
|
4
4
|
machine,
|
|
@@ -259,15 +259,15 @@ type StateNodeConfigWithNestedInput<TSiblingStateSchemas extends Record<string,
|
|
|
259
259
|
target: string;
|
|
260
260
|
input?: Record<string, unknown>;
|
|
261
261
|
} | undefined;
|
|
262
|
-
on?: StateTransitions<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry
|
|
263
|
-
always?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry
|
|
262
|
+
on?: StateTransitions<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, StateInput<TStateSchema>>;
|
|
263
|
+
always?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, StateInput<TStateSchema>>;
|
|
264
264
|
invoke?: SingleOrArray<SetupInvokeConfig<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>>;
|
|
265
|
-
onDone?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, DoneStateEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry
|
|
265
|
+
onDone?: StateTransitionConfigOrTarget<TSiblingStateSchemas, StateContext<TStateSchema, TContext>, StateContextShape<TStateSchema, TContextShape>, DoneStateEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, StateInput<TStateSchema>>;
|
|
266
266
|
}, TStateSchema['states'] extends Record<string, SetupStateSchema> ? StatesWithInput<TStateSchema['states'], TStateSchema['states'], TContext, StateContextShape<TStateSchema, TContextShape>, TEvent, TChildren, TDelays, TTag, TOutput, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> : {
|
|
267
267
|
[K in string]?: Next_StateNodeConfig<TContext, TEvent, TDelays, TTag, TOutput, TEmitted, TMeta, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, undefined, Record<string, unknown>, TSystemRegistry>;
|
|
268
268
|
}>;
|
|
269
|
-
type StateTransitions<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = {
|
|
270
|
-
[K in EventDescriptor<TEvent>]?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, ExtractEvent<TEvent, K>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
|
|
269
|
+
type StateTransitions<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry, TInput = undefined> = {
|
|
270
|
+
[K in EventDescriptor<TEvent>]?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, ExtractEvent<TEvent, K>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, TInput>;
|
|
271
271
|
};
|
|
272
272
|
type InvokeDoneEvent<TInvoke> = TInvoke extends {
|
|
273
273
|
onDone?: Next_TransitionConfigOrTarget<infer _TContext, infer TDoneEvent, infer _TEvent, infer _TEmitted, infer _TActionMap, infer _TActorMap, infer _TGuardMap, infer _TDelayMap, infer _TMeta>;
|
|
@@ -278,7 +278,7 @@ type SetupInvokeConfig<TStateSchemas extends Record<string, SetupStateSchema>, T
|
|
|
278
278
|
onSnapshot?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, SnapshotEvent<any>, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
|
|
279
279
|
onTimeout?: StateTransitionConfigOrTarget<TStateSchemas, TContext, TContextShape, TEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
|
|
280
280
|
} : never : never;
|
|
281
|
-
type StateTransitionConfigOrTarget<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = undefined | StateTransitionObjectConfig<TStateSchemas, TContext, TContextShape, TExpressionEvent, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> | StateTransitionFunction<TStateSchemas, TContext, TContextShape, TExpressionEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
|
|
281
|
+
type StateTransitionConfigOrTarget<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry, TInput = undefined> = undefined | StateTransitionObjectConfig<TStateSchemas, TContext, TContextShape, TExpressionEvent, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> | StateTransitionFunction<TStateSchemas, TContext, TContextShape, TExpressionEvent, TEvent, TEmitted, TChildren, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, TInput>;
|
|
282
282
|
type StateTransitionObjectConfig<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = (StateTransitionResult<TStateSchemas, TContext, TContextShape, TMeta, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, true> & {
|
|
283
283
|
description?: string;
|
|
284
284
|
}) | {
|
|
@@ -307,7 +307,7 @@ type StateTransitionContextMapper<TContext extends MachineContext, TContextShape
|
|
|
307
307
|
} & OutputArg<TExpressionEvent>) => ContextPatch<TContextShape, TTargetContextShape, TResolvedTargetContext>;
|
|
308
308
|
type StateTransitionContextOrMapper<TContext extends MachineContext, TContextShape, TTargetContextShape, TResolvedTargetContext extends MachineContext, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = ContextPatch<TContextShape, TTargetContextShape, TResolvedTargetContext> | StateTransitionContextMapper<TContext, TContextShape, TTargetContextShape, TResolvedTargetContext, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry>;
|
|
309
309
|
type StateTransitionContext<TAllowMapper extends boolean, TContext extends MachineContext, TContextShape, TTargetContextShape, TResolvedTargetContext extends MachineContext, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = TAllowMapper extends true ? StateTransitionContextOrMapper<TContext, TContextShape, TTargetContextShape, TResolvedTargetContext, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry> : ContextPatch<TContextShape, TTargetContextShape, TResolvedTargetContext>;
|
|
310
|
-
type StateTransitionFunction<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry> = (args: {
|
|
310
|
+
type StateTransitionFunction<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry, TInput = undefined> = (args: {
|
|
311
311
|
context: TContext;
|
|
312
312
|
event: TExpressionEvent;
|
|
313
313
|
self: AnyActorRef;
|
|
@@ -319,6 +319,7 @@ type StateTransitionFunction<TStateSchemas extends Record<string, SetupStateSche
|
|
|
319
319
|
actorSources: TActorMap;
|
|
320
320
|
guards: TGuardMap;
|
|
321
321
|
delays: TDelayMap;
|
|
322
|
+
input: TInput;
|
|
322
323
|
} & OutputArg<TExpressionEvent>, enq: EnqueueObject<TEvent, TEmitted, TSystemRegistry>) => StateTransitionResult<TStateSchemas, TContext, TContextShape, TMeta, TExpressionEvent, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TSystemRegistry, false> | void;
|
|
323
324
|
type StateTransitionResult<TStateSchemas extends Record<string, SetupStateSchema>, TContext extends MachineContext, TContextShape, TMeta extends MetaObject, TExpressionEvent extends EventObject, TChildren extends Record<string, AnyActorRef | undefined>, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TSystemRegistry extends SystemRegistry, TAllowContextMapper extends boolean> = {
|
|
324
325
|
target?: never;
|
|
@@ -403,6 +404,8 @@ export interface SetupReturn<TStates extends Record<string, SetupStateSchema> =
|
|
|
403
404
|
createStateConfig<const TConfig extends SetupStateNodeConfig<TStates, SetupStateSchema, TSchemas, TSetupActionMap, TSetupActorMap, TSetupGuardMap, TSetupDelayMap, TSystemRegistry>>(config: TConfig): TConfig;
|
|
404
405
|
/** State input schemas from setup config */
|
|
405
406
|
states: TStates;
|
|
407
|
+
/** Schemas from setup config */
|
|
408
|
+
schemas: TSchemas;
|
|
406
409
|
}
|
|
407
410
|
type SetupConfigSchemas<TConfig> = TConfig extends {
|
|
408
411
|
schemas?: infer TSchemas;
|
|
@@ -204,7 +204,9 @@ export type StateNodesConfig<TContext extends MachineContext, TEvent extends Eve
|
|
|
204
204
|
};
|
|
205
205
|
export type TransitionConfigTarget = string | undefined;
|
|
206
206
|
export type TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TMeta extends MetaObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays']> = SingleOrArray<TransitionConfigTarget | TransitionConfig<TContext, TExpressionEvent, TEvent, TEmitted, TMeta, TActionMap, TActorMap, TGuardMap, TDelayMap> | TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>>;
|
|
207
|
-
export type TransitionConfigFunction<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject, _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = (args: TransitionFunctionArgs<_TCtx, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap
|
|
207
|
+
export type TransitionConfigFunction<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject, TInput = undefined, _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = (args: TransitionFunctionArgs<_TCtx, TCurrentEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap> & {
|
|
208
|
+
input: TInput;
|
|
209
|
+
}, enq: EnqueueObject<TEvent, TEmitted>) => {
|
|
208
210
|
target?: string | string[];
|
|
209
211
|
context?: TransitionContextPatch<_TCtx>;
|
|
210
212
|
reenter?: boolean;
|
|
@@ -962,6 +964,8 @@ export type StateSchema = {
|
|
|
962
964
|
exit?: unknown;
|
|
963
965
|
onDone?: unknown;
|
|
964
966
|
onError?: unknown;
|
|
967
|
+
timeout?: unknown;
|
|
968
|
+
onTimeout?: unknown;
|
|
965
969
|
after?: unknown;
|
|
966
970
|
always?: unknown;
|
|
967
971
|
choice?: unknown;
|
|
@@ -229,7 +229,8 @@ type Next_ChoiceTarget<TMeta extends MetaObject> = {
|
|
|
229
229
|
event: any;
|
|
230
230
|
}) => Record<string, unknown>);
|
|
231
231
|
};
|
|
232
|
-
type Next_ChoiceArgs<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = Parameters<TransitionConfigFunction<TContext, TCurrentEvent, TEvent, EventObject, TActionMap, TActorMap, TGuardMap, TDelayMap, MetaObject,
|
|
232
|
+
type Next_ChoiceArgs<TContext extends MachineContext, TCurrentEvent extends EventObject, TEvent extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], _TCtx extends MachineContext = [TContext] extends [never] ? any : TContext> = Parameters<TransitionConfigFunction<TContext, TCurrentEvent, TEvent, EventObject, TActionMap, TActorMap, TGuardMap, TDelayMap, MetaObject, undefined, // TInput
|
|
233
|
+
_TCtx>>[0];
|
|
233
234
|
/**
|
|
234
235
|
* Route config: either a static config object, or a transition-style function
|
|
235
236
|
* that acts as the route's guard and resolver — returning `undefined`/`false`
|
|
@@ -325,7 +326,7 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
|
|
|
325
326
|
invoke?: SingleOrArray<Next_InvokeConfig<TContext, TEvent, TEmitted, TChildren, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TSystemRegistry>>;
|
|
326
327
|
/** The mapping of event types to their potential transition(s). */
|
|
327
328
|
on?: {
|
|
328
|
-
[K in EventDescriptor<TEvent>]?: Next_TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
|
|
329
|
+
[K in EventDescriptor<TEvent>]?: Next_TransitionConfigOrTarget<TContext, ExtractEvent<TEvent, K>, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
|
|
329
330
|
};
|
|
330
331
|
/**
|
|
331
332
|
* Enables routing to this state via `{ type: 'xstate.route', to: '#id' }`.
|
|
@@ -356,7 +357,7 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
|
|
|
356
357
|
[K in NoInfer<TDelays> | number]?: {
|
|
357
358
|
target: string;
|
|
358
359
|
} | TransitionConfigFunction<TContext, TEvent, TEvent, TODO, // TEmitted
|
|
359
|
-
TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
|
|
360
|
+
TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
|
|
360
361
|
};
|
|
361
362
|
/**
|
|
362
363
|
* The duration (in ms) after which this state will transition via `onTimeout`
|
|
@@ -371,9 +372,10 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
|
|
|
371
372
|
context: TContext;
|
|
372
373
|
event: TEvent;
|
|
373
374
|
stateNode: AnyStateNode;
|
|
375
|
+
input: TInput;
|
|
374
376
|
}) => number);
|
|
375
377
|
/** Transition taken when `timeout` expires. Required when `timeout` is set. */
|
|
376
|
-
onTimeout?: Next_TransitionConfigOrTarget<TContext, TEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
|
|
378
|
+
onTimeout?: Next_TransitionConfigOrTarget<TContext, TEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
|
|
377
379
|
/**
|
|
378
380
|
* An eventless transition that is always taken when this state node is
|
|
379
381
|
* active.
|
|
@@ -413,7 +415,7 @@ interface Next_RegularStateNodeConfig<TContext extends MachineContext, TEvent ex
|
|
|
413
415
|
/** A default target for a history state */
|
|
414
416
|
target?: string | undefined;
|
|
415
417
|
}
|
|
416
|
-
export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject> = undefined | {
|
|
418
|
+
export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TEmitted extends EventObject, TActionMap extends Implementations['actions'], TActorMap extends Implementations['actorSources'], TGuardMap extends Implementations['guards'], TDelayMap extends Implementations['delays'], TMeta extends MetaObject, TInput = undefined> = undefined | {
|
|
417
419
|
target?: string | string[];
|
|
418
420
|
context?: TransitionContextPatch<TContext> | TransitionContextMapper<TContext, TExpressionEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>;
|
|
419
421
|
description?: string;
|
|
@@ -424,7 +426,7 @@ export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpr
|
|
|
424
426
|
event: any;
|
|
425
427
|
}) => Record<string, unknown>);
|
|
426
428
|
} | {
|
|
427
|
-
to?: TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
|
|
429
|
+
to?: TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
|
|
428
430
|
context?: TransitionContextPatch<TContext> | TransitionContextMapper<TContext, TExpressionEvent, TEvent, TActionMap, TActorMap, TGuardMap, TDelayMap>;
|
|
429
431
|
description?: string;
|
|
430
432
|
reenter?: boolean;
|
|
@@ -433,7 +435,7 @@ export type Next_TransitionConfigOrTarget<TContext extends MachineContext, TExpr
|
|
|
433
435
|
context: any;
|
|
434
436
|
event: any;
|
|
435
437
|
}) => Record<string, unknown>);
|
|
436
|
-
} | TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta>;
|
|
438
|
+
} | TransitionConfigFunction<TContext, TExpressionEvent, TEvent, TEmitted, TActionMap, TActorMap, TGuardMap, TDelayMap, TMeta, TInput>;
|
|
437
439
|
export type WithDefault<T, Default> = IsNever<T> extends true ? Default : T;
|
|
438
440
|
export interface Implementations {
|
|
439
441
|
actions: Record<string, (...args: any[]) => void | {
|
|
@@ -453,8 +455,6 @@ type DelayNamesFromConfig<TConfig> = TConfig extends {
|
|
|
453
455
|
type InvalidDelayReferences<TConfig, TDelays extends string> = (TConfig extends {
|
|
454
456
|
after: infer TAfter;
|
|
455
457
|
} ? Exclude<Extract<keyof TAfter, string>, TDelays> : never) | (TConfig extends {
|
|
456
|
-
timeout: infer TTimeout;
|
|
457
|
-
} ? TTimeout extends string ? TTimeout extends TDelays ? never : TTimeout : never : never) | (TConfig extends {
|
|
458
458
|
states: infer TStates;
|
|
459
459
|
} ? TStates extends Record<string, unknown> ? {
|
|
460
460
|
[K in keyof TStates]: InvalidDelayReferences<TStates[K], TDelays>;
|
|
@@ -673,6 +673,9 @@ function resolveDelay(delay, delaySource, args) {
|
|
|
673
673
|
}
|
|
674
674
|
return configuredDelay;
|
|
675
675
|
}
|
|
676
|
+
function getStateInput(snapshot, stateNodeId) {
|
|
677
|
+
return snapshot._stateInputs?.[stateNodeId];
|
|
678
|
+
}
|
|
676
679
|
function isAtomicStateNode(stateNode) {
|
|
677
680
|
return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
|
|
678
681
|
}
|
|
@@ -869,7 +872,8 @@ function getDelayedTransitions(stateNode) {
|
|
|
869
872
|
const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
|
|
870
873
|
context: x.context,
|
|
871
874
|
event: x.event,
|
|
872
|
-
stateNode
|
|
875
|
+
stateNode,
|
|
876
|
+
input: x.input
|
|
873
877
|
}));
|
|
874
878
|
for (const transition of toTransitionConfigArray(transitions)) {
|
|
875
879
|
delayedTransitions.push({
|
|
@@ -994,6 +998,14 @@ function resolveTarget(stateNode, targets) {
|
|
|
994
998
|
function resolveHistoryDefaultTransition(stateNode) {
|
|
995
999
|
const normalizedTarget = normalizeTarget(stateNode.config.target);
|
|
996
1000
|
if (!normalizedTarget) {
|
|
1001
|
+
if (stateNode.parent.type === 'parallel') {
|
|
1002
|
+
return {
|
|
1003
|
+
target: [stateNode.parent],
|
|
1004
|
+
source: stateNode,
|
|
1005
|
+
reenter: false,
|
|
1006
|
+
eventType: ''
|
|
1007
|
+
};
|
|
1008
|
+
}
|
|
997
1009
|
return stateNode.parent.initial;
|
|
998
1010
|
}
|
|
999
1011
|
return {
|
|
@@ -1375,7 +1387,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1375
1387
|
}
|
|
1376
1388
|
}
|
|
1377
1389
|
for (const exitStateNode of statesToExit) {
|
|
1378
|
-
const stateInput = currentSnapshot
|
|
1390
|
+
const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
|
|
1379
1391
|
const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
|
|
1380
1392
|
if (internalEvents?.length) {
|
|
1381
1393
|
internalQueue.push(...internalEvents);
|
|
@@ -1709,7 +1721,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1709
1721
|
const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
|
|
1710
1722
|
nextStateNodesToExit.forEach(stateNode => {
|
|
1711
1723
|
if (stateNode.exit) {
|
|
1712
|
-
const stateInput = nextState
|
|
1724
|
+
const stateInput = getStateInput(nextState, stateNode.id);
|
|
1713
1725
|
const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
|
|
1714
1726
|
allExitActions.push(...exitActions);
|
|
1715
1727
|
if (nextInternalEvents?.length) {
|
|
@@ -1753,7 +1765,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
|
|
|
1753
1765
|
actions: snapshot.machine.implementations.actions,
|
|
1754
1766
|
actorSources: snapshot.machine.implementations.actorSources,
|
|
1755
1767
|
guards: snapshot.machine.implementations.guards,
|
|
1756
|
-
delays: snapshot.machine.implementations.delays
|
|
1768
|
+
delays: snapshot.machine.implementations.delays,
|
|
1769
|
+
input: getStateInput(snapshot, transition.source.id)
|
|
1757
1770
|
};
|
|
1758
1771
|
if (transition.to) {
|
|
1759
1772
|
const actions = [];
|
|
@@ -1894,11 +1907,11 @@ function resolveStateValue(rootNode, stateValue) {
|
|
|
1894
1907
|
}
|
|
1895
1908
|
function hasEffect(transition, context, event, snapshot, self) {
|
|
1896
1909
|
if (transition.to) {
|
|
1897
|
-
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
|
|
1910
|
+
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
|
|
1898
1911
|
}
|
|
1899
1912
|
return false;
|
|
1900
1913
|
}
|
|
1901
|
-
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
|
|
1914
|
+
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
|
|
1902
1915
|
let hasEffect = false;
|
|
1903
1916
|
let res;
|
|
1904
1917
|
try {
|
|
@@ -1920,7 +1933,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
|
|
|
1920
1933
|
actions: implementations.actions,
|
|
1921
1934
|
actorSources: implementations.actorSources,
|
|
1922
1935
|
guards: implementations.guards,
|
|
1923
|
-
delays: implementations.delays
|
|
1936
|
+
delays: implementations.delays,
|
|
1937
|
+
input: getStateInput(snapshot, sourceId)
|
|
1924
1938
|
}, createEnqueueObject({
|
|
1925
1939
|
emit: triggerEffect,
|
|
1926
1940
|
cancel: triggerEffect,
|
|
@@ -1988,7 +2002,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
|
|
|
1988
2002
|
}
|
|
1989
2003
|
}
|
|
1990
2004
|
if (candidate.to) {
|
|
1991
|
-
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
|
|
2005
|
+
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
|
|
1992
2006
|
}
|
|
1993
2007
|
return true;
|
|
1994
2008
|
}
|
|
@@ -675,6 +675,9 @@ function resolveDelay(delay, delaySource, args) {
|
|
|
675
675
|
}
|
|
676
676
|
return configuredDelay;
|
|
677
677
|
}
|
|
678
|
+
function getStateInput(snapshot, stateNodeId) {
|
|
679
|
+
return snapshot._stateInputs?.[stateNodeId];
|
|
680
|
+
}
|
|
678
681
|
function isAtomicStateNode(stateNode) {
|
|
679
682
|
return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
|
|
680
683
|
}
|
|
@@ -871,7 +874,8 @@ function getDelayedTransitions(stateNode) {
|
|
|
871
874
|
const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
|
|
872
875
|
context: x.context,
|
|
873
876
|
event: x.event,
|
|
874
|
-
stateNode
|
|
877
|
+
stateNode,
|
|
878
|
+
input: x.input
|
|
875
879
|
}));
|
|
876
880
|
for (const transition of toTransitionConfigArray(transitions)) {
|
|
877
881
|
delayedTransitions.push({
|
|
@@ -996,6 +1000,14 @@ function resolveTarget(stateNode, targets) {
|
|
|
996
1000
|
function resolveHistoryDefaultTransition(stateNode) {
|
|
997
1001
|
const normalizedTarget = normalizeTarget(stateNode.config.target);
|
|
998
1002
|
if (!normalizedTarget) {
|
|
1003
|
+
if (stateNode.parent.type === 'parallel') {
|
|
1004
|
+
return {
|
|
1005
|
+
target: [stateNode.parent],
|
|
1006
|
+
source: stateNode,
|
|
1007
|
+
reenter: false,
|
|
1008
|
+
eventType: ''
|
|
1009
|
+
};
|
|
1010
|
+
}
|
|
999
1011
|
return stateNode.parent.initial;
|
|
1000
1012
|
}
|
|
1001
1013
|
return {
|
|
@@ -1377,7 +1389,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1377
1389
|
}
|
|
1378
1390
|
}
|
|
1379
1391
|
for (const exitStateNode of statesToExit) {
|
|
1380
|
-
const stateInput = currentSnapshot
|
|
1392
|
+
const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
|
|
1381
1393
|
const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
|
|
1382
1394
|
if (internalEvents?.length) {
|
|
1383
1395
|
internalQueue.push(...internalEvents);
|
|
@@ -1711,7 +1723,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1711
1723
|
const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
|
|
1712
1724
|
nextStateNodesToExit.forEach(stateNode => {
|
|
1713
1725
|
if (stateNode.exit) {
|
|
1714
|
-
const stateInput = nextState
|
|
1726
|
+
const stateInput = getStateInput(nextState, stateNode.id);
|
|
1715
1727
|
const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
|
|
1716
1728
|
allExitActions.push(...exitActions);
|
|
1717
1729
|
if (nextInternalEvents?.length) {
|
|
@@ -1755,7 +1767,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
|
|
|
1755
1767
|
actions: snapshot.machine.implementations.actions,
|
|
1756
1768
|
actorSources: snapshot.machine.implementations.actorSources,
|
|
1757
1769
|
guards: snapshot.machine.implementations.guards,
|
|
1758
|
-
delays: snapshot.machine.implementations.delays
|
|
1770
|
+
delays: snapshot.machine.implementations.delays,
|
|
1771
|
+
input: getStateInput(snapshot, transition.source.id)
|
|
1759
1772
|
};
|
|
1760
1773
|
if (transition.to) {
|
|
1761
1774
|
const actions = [];
|
|
@@ -1896,11 +1909,11 @@ function resolveStateValue(rootNode, stateValue) {
|
|
|
1896
1909
|
}
|
|
1897
1910
|
function hasEffect(transition, context, event, snapshot, self) {
|
|
1898
1911
|
if (transition.to) {
|
|
1899
|
-
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
|
|
1912
|
+
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
|
|
1900
1913
|
}
|
|
1901
1914
|
return false;
|
|
1902
1915
|
}
|
|
1903
|
-
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
|
|
1916
|
+
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
|
|
1904
1917
|
let hasEffect = false;
|
|
1905
1918
|
let res;
|
|
1906
1919
|
try {
|
|
@@ -1922,7 +1935,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
|
|
|
1922
1935
|
actions: implementations.actions,
|
|
1923
1936
|
actorSources: implementations.actorSources,
|
|
1924
1937
|
guards: implementations.guards,
|
|
1925
|
-
delays: implementations.delays
|
|
1938
|
+
delays: implementations.delays,
|
|
1939
|
+
input: getStateInput(snapshot, sourceId)
|
|
1926
1940
|
}, createEnqueueObject({
|
|
1927
1941
|
emit: triggerEffect,
|
|
1928
1942
|
cancel: triggerEffect,
|
|
@@ -1990,7 +2004,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
|
|
|
1990
2004
|
}
|
|
1991
2005
|
}
|
|
1992
2006
|
if (candidate.to) {
|
|
1993
|
-
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
|
|
2007
|
+
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
|
|
1994
2008
|
}
|
|
1995
2009
|
return true;
|
|
1996
2010
|
}
|
|
@@ -676,6 +676,9 @@ function resolveDelay(delay, delaySource, args) {
|
|
|
676
676
|
}
|
|
677
677
|
return configuredDelay;
|
|
678
678
|
}
|
|
679
|
+
function getStateInput(snapshot, stateNodeId) {
|
|
680
|
+
return snapshot._stateInputs?.[stateNodeId];
|
|
681
|
+
}
|
|
679
682
|
function isAtomicStateNode(stateNode) {
|
|
680
683
|
return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
|
|
681
684
|
}
|
|
@@ -882,7 +885,8 @@ function getDelayedTransitions(stateNode) {
|
|
|
882
885
|
const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
|
|
883
886
|
context: x.context,
|
|
884
887
|
event: x.event,
|
|
885
|
-
stateNode
|
|
888
|
+
stateNode,
|
|
889
|
+
input: x.input
|
|
886
890
|
}));
|
|
887
891
|
for (const transition of toTransitionConfigArray(transitions)) {
|
|
888
892
|
delayedTransitions.push({
|
|
@@ -1007,6 +1011,14 @@ function resolveTarget(stateNode, targets) {
|
|
|
1007
1011
|
function resolveHistoryDefaultTransition(stateNode) {
|
|
1008
1012
|
const normalizedTarget = normalizeTarget(stateNode.config.target);
|
|
1009
1013
|
if (!normalizedTarget) {
|
|
1014
|
+
if (stateNode.parent.type === 'parallel') {
|
|
1015
|
+
return {
|
|
1016
|
+
target: [stateNode.parent],
|
|
1017
|
+
source: stateNode,
|
|
1018
|
+
reenter: false,
|
|
1019
|
+
eventType: ''
|
|
1020
|
+
};
|
|
1021
|
+
}
|
|
1010
1022
|
return stateNode.parent.initial;
|
|
1011
1023
|
}
|
|
1012
1024
|
return {
|
|
@@ -1388,7 +1400,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1388
1400
|
}
|
|
1389
1401
|
}
|
|
1390
1402
|
for (const exitStateNode of statesToExit) {
|
|
1391
|
-
const stateInput = currentSnapshot
|
|
1403
|
+
const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
|
|
1392
1404
|
const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
|
|
1393
1405
|
if (internalEvents?.length) {
|
|
1394
1406
|
internalQueue.push(...internalEvents);
|
|
@@ -1722,7 +1734,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1722
1734
|
const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
|
|
1723
1735
|
nextStateNodesToExit.forEach(stateNode => {
|
|
1724
1736
|
if (stateNode.exit) {
|
|
1725
|
-
const stateInput = nextState
|
|
1737
|
+
const stateInput = getStateInput(nextState, stateNode.id);
|
|
1726
1738
|
const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
|
|
1727
1739
|
allExitActions.push(...exitActions);
|
|
1728
1740
|
if (nextInternalEvents?.length) {
|
|
@@ -1766,7 +1778,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
|
|
|
1766
1778
|
actions: snapshot.machine.implementations.actions,
|
|
1767
1779
|
actorSources: snapshot.machine.implementations.actorSources,
|
|
1768
1780
|
guards: snapshot.machine.implementations.guards,
|
|
1769
|
-
delays: snapshot.machine.implementations.delays
|
|
1781
|
+
delays: snapshot.machine.implementations.delays,
|
|
1782
|
+
input: getStateInput(snapshot, transition.source.id)
|
|
1770
1783
|
};
|
|
1771
1784
|
if (transition.to) {
|
|
1772
1785
|
const actions = [];
|
|
@@ -1907,11 +1920,11 @@ function resolveStateValue(rootNode, stateValue) {
|
|
|
1907
1920
|
}
|
|
1908
1921
|
function hasEffect(transition, context, event, snapshot, self) {
|
|
1909
1922
|
if (transition.to) {
|
|
1910
|
-
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
|
|
1923
|
+
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
|
|
1911
1924
|
}
|
|
1912
1925
|
return false;
|
|
1913
1926
|
}
|
|
1914
|
-
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
|
|
1927
|
+
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
|
|
1915
1928
|
let hasEffect = false;
|
|
1916
1929
|
let res;
|
|
1917
1930
|
try {
|
|
@@ -1933,7 +1946,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
|
|
|
1933
1946
|
actions: implementations.actions,
|
|
1934
1947
|
actorSources: implementations.actorSources,
|
|
1935
1948
|
guards: implementations.guards,
|
|
1936
|
-
delays: implementations.delays
|
|
1949
|
+
delays: implementations.delays,
|
|
1950
|
+
input: getStateInput(snapshot, sourceId)
|
|
1937
1951
|
}, createEnqueueObject({
|
|
1938
1952
|
emit: triggerEffect,
|
|
1939
1953
|
cancel: triggerEffect,
|
|
@@ -2001,7 +2015,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
|
|
|
2001
2015
|
}
|
|
2002
2016
|
}
|
|
2003
2017
|
if (candidate.to) {
|
|
2004
|
-
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
|
|
2018
|
+
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
|
|
2005
2019
|
}
|
|
2006
2020
|
return true;
|
|
2007
2021
|
}
|
|
@@ -674,6 +674,9 @@ function resolveDelay(delay, delaySource, args) {
|
|
|
674
674
|
}
|
|
675
675
|
return configuredDelay;
|
|
676
676
|
}
|
|
677
|
+
function getStateInput(snapshot, stateNodeId) {
|
|
678
|
+
return snapshot._stateInputs?.[stateNodeId];
|
|
679
|
+
}
|
|
677
680
|
function isAtomicStateNode(stateNode) {
|
|
678
681
|
return stateNode.type === 'atomic' || stateNode.type === 'final' || stateNode.type === 'choice';
|
|
679
682
|
}
|
|
@@ -880,7 +883,8 @@ function getDelayedTransitions(stateNode) {
|
|
|
880
883
|
const eventType = scheduleDelayedEvent(stateNode, event, x => resolveDelay(delay, fromDelaysMap ? x.delays : {}, {
|
|
881
884
|
context: x.context,
|
|
882
885
|
event: x.event,
|
|
883
|
-
stateNode
|
|
886
|
+
stateNode,
|
|
887
|
+
input: x.input
|
|
884
888
|
}));
|
|
885
889
|
for (const transition of toTransitionConfigArray(transitions)) {
|
|
886
890
|
delayedTransitions.push({
|
|
@@ -1005,6 +1009,14 @@ function resolveTarget(stateNode, targets) {
|
|
|
1005
1009
|
function resolveHistoryDefaultTransition(stateNode) {
|
|
1006
1010
|
const normalizedTarget = normalizeTarget(stateNode.config.target);
|
|
1007
1011
|
if (!normalizedTarget) {
|
|
1012
|
+
if (stateNode.parent.type === 'parallel') {
|
|
1013
|
+
return {
|
|
1014
|
+
target: [stateNode.parent],
|
|
1015
|
+
source: stateNode,
|
|
1016
|
+
reenter: false,
|
|
1017
|
+
eventType: ''
|
|
1018
|
+
};
|
|
1019
|
+
}
|
|
1008
1020
|
return stateNode.parent.initial;
|
|
1009
1021
|
}
|
|
1010
1022
|
return {
|
|
@@ -1386,7 +1398,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1386
1398
|
}
|
|
1387
1399
|
}
|
|
1388
1400
|
for (const exitStateNode of statesToExit) {
|
|
1389
|
-
const stateInput = currentSnapshot
|
|
1401
|
+
const stateInput = getStateInput(currentSnapshot, exitStateNode.id);
|
|
1390
1402
|
const [exitActions, nextContext, internalEvents] = exitStateNode.exit ? getStateActionsAndContext(exitStateNode.exit, nextState.context, currentSnapshot.children, stateInput) : [[]];
|
|
1391
1403
|
if (internalEvents?.length) {
|
|
1392
1404
|
internalQueue.push(...internalEvents);
|
|
@@ -1720,7 +1732,7 @@ function microstep(transitions, currentSnapshot, actorScope, event, isInitial, i
|
|
|
1720
1732
|
const nextStateNodesToExit = nextStateNodes.sort((a, b) => b.order - a.order);
|
|
1721
1733
|
nextStateNodesToExit.forEach(stateNode => {
|
|
1722
1734
|
if (stateNode.exit) {
|
|
1723
|
-
const stateInput = nextState
|
|
1735
|
+
const stateInput = getStateInput(nextState, stateNode.id);
|
|
1724
1736
|
const [exitActions,, nextInternalEvents] = getStateActionsAndContext(stateNode.exit, nextState.context, nextState.children, stateInput);
|
|
1725
1737
|
allExitActions.push(...exitActions);
|
|
1726
1738
|
if (nextInternalEvents?.length) {
|
|
@@ -1764,7 +1776,8 @@ function getTransitionResult(transition, snapshot, event, actorScope, options) {
|
|
|
1764
1776
|
actions: snapshot.machine.implementations.actions,
|
|
1765
1777
|
actorSources: snapshot.machine.implementations.actorSources,
|
|
1766
1778
|
guards: snapshot.machine.implementations.guards,
|
|
1767
|
-
delays: snapshot.machine.implementations.delays
|
|
1779
|
+
delays: snapshot.machine.implementations.delays,
|
|
1780
|
+
input: getStateInput(snapshot, transition.source.id)
|
|
1768
1781
|
};
|
|
1769
1782
|
if (transition.to) {
|
|
1770
1783
|
const actions = [];
|
|
@@ -1905,11 +1918,11 @@ function resolveStateValue(rootNode, stateValue) {
|
|
|
1905
1918
|
}
|
|
1906
1919
|
function hasEffect(transition, context, event, snapshot, self) {
|
|
1907
1920
|
if (transition.to) {
|
|
1908
|
-
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations);
|
|
1921
|
+
return transitionToHasEffect(transition.to, context, event, snapshot, self, snapshot.machine.implementations, transition.source.id);
|
|
1909
1922
|
}
|
|
1910
1923
|
return false;
|
|
1911
1924
|
}
|
|
1912
|
-
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations) {
|
|
1925
|
+
function transitionToHasEffect(transitionTo, context, event, snapshot, self, implementations, sourceId) {
|
|
1913
1926
|
let hasEffect = false;
|
|
1914
1927
|
let res;
|
|
1915
1928
|
try {
|
|
@@ -1931,7 +1944,8 @@ function transitionToHasEffect(transitionTo, context, event, snapshot, self, imp
|
|
|
1931
1944
|
actions: implementations.actions,
|
|
1932
1945
|
actorSources: implementations.actorSources,
|
|
1933
1946
|
guards: implementations.guards,
|
|
1934
|
-
delays: implementations.delays
|
|
1947
|
+
delays: implementations.delays,
|
|
1948
|
+
input: getStateInput(snapshot, sourceId)
|
|
1935
1949
|
}, createEnqueueObject({
|
|
1936
1950
|
emit: triggerEffect,
|
|
1937
1951
|
cancel: triggerEffect,
|
|
@@ -1999,7 +2013,7 @@ function evaluateCandidate(candidate, event, snapshot, stateNode, self) {
|
|
|
1999
2013
|
}
|
|
2000
2014
|
}
|
|
2001
2015
|
if (candidate.to) {
|
|
2002
|
-
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations);
|
|
2016
|
+
return transitionToHasEffect(candidate.to, snapshot.context, event, snapshot, self, stateNode.machine.implementations, candidate.source.id);
|
|
2003
2017
|
}
|
|
2004
2018
|
return true;
|
|
2005
2019
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-
|
|
1
|
+
export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-b5a6f830.development.esm.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-
|
|
1
|
+
export { T as TimeoutError, B as createAsyncLogic, w as createCallbackLogic, v as createEmptyActor, y as createEventObservableLogic, C as createListenerLogic, z as createLogic, x as createObservableLogic, E as createSubscriptionLogic, D as listenerLogic, F as subscriptionLogic } from './index-0842e9fd.esm.js';
|
package/dist/xstate-graph.cjs.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var dist_xstateActors = require('./index-
|
|
6
|
-
var StateMachine = require('./StateMachine-
|
|
5
|
+
var dist_xstateActors = require('./index-626fe0b0.cjs.js');
|
|
6
|
+
var StateMachine = require('./StateMachine-20b7d63b.cjs.js');
|
|
7
7
|
|
|
8
8
|
function simpleStringify(value) {
|
|
9
9
|
return JSON.stringify(value);
|