xstate 5.6.1 → 5.7.0
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 +2 -2
- package/actions/dist/xstate-actions.development.cjs.js +2 -2
- package/actions/dist/xstate-actions.development.esm.js +2 -2
- package/actions/dist/xstate-actions.esm.js +2 -2
- package/actions/dist/xstate-actions.umd.min.js +1 -1
- package/actions/dist/xstate-actions.umd.min.js.map +1 -1
- package/actors/dist/xstate-actors.cjs.js +1 -1
- package/actors/dist/xstate-actors.development.cjs.js +1 -1
- package/actors/dist/xstate-actors.development.esm.js +1 -1
- package/actors/dist/xstate-actors.esm.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/declarations/src/index.d.ts +3 -2
- package/dist/declarations/src/inspection.d.ts +38 -0
- package/dist/declarations/src/system.d.ts +2 -25
- package/dist/declarations/src/types.d.ts +2 -1
- package/dist/{log-75c83841.development.cjs.js → log-9b34dd45.development.cjs.js} +1 -1
- package/dist/{log-c5c46d15.cjs.js → log-c2d7ade7.cjs.js} +1 -1
- package/dist/{log-edca19d9.development.esm.js → log-dc9ca1e2.development.esm.js} +1 -1
- package/dist/{log-b6ecfc82.esm.js → log-f78f0918.esm.js} +1 -1
- package/dist/{raise-d7d9caaa.development.cjs.js → raise-0ce4ccae.development.cjs.js} +55 -26
- package/dist/{raise-2fdbadc6.development.esm.js → raise-4593d184.development.esm.js} +55 -26
- package/dist/{raise-309d511a.esm.js → raise-6420fe44.esm.js} +55 -26
- package/dist/{raise-540fdaf2.cjs.js → raise-932934e8.cjs.js} +55 -26
- package/dist/xstate.cjs.js +7 -2
- package/dist/xstate.cjs.mjs +1 -0
- package/dist/xstate.development.cjs.js +7 -2
- package/dist/xstate.development.cjs.mjs +1 -0
- package/dist/xstate.development.esm.js +9 -5
- package/dist/xstate.esm.js +9 -5
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.cjs.js +1 -1
- package/guards/dist/xstate-guards.development.esm.js +1 -1
- package/guards/dist/xstate-guards.esm.js +1 -1
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -136,7 +136,7 @@ function createSystem(rootActor, options) {
|
|
|
136
136
|
const children = new Map();
|
|
137
137
|
const keyedActors = new Map();
|
|
138
138
|
const reverseKeyedActors = new WeakMap();
|
|
139
|
-
const
|
|
139
|
+
const inspectionObservers = new Set();
|
|
140
140
|
const timerMap = {};
|
|
141
141
|
const clock = options.clock;
|
|
142
142
|
const scheduler = {
|
|
@@ -174,6 +174,16 @@ function createSystem(rootActor, options) {
|
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
};
|
|
177
|
+
const sendInspectionEvent = event => {
|
|
178
|
+
if (!inspectionObservers.size) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const resolvedInspectionEvent = {
|
|
182
|
+
...event,
|
|
183
|
+
rootId: rootActor.sessionId
|
|
184
|
+
};
|
|
185
|
+
inspectionObservers.forEach(observer => observer.next?.(resolvedInspectionEvent));
|
|
186
|
+
};
|
|
177
187
|
const system = {
|
|
178
188
|
_snapshot: {
|
|
179
189
|
_scheduledEvents: (options?.snapshot && options.snapshot.scheduler) ?? {}
|
|
@@ -203,15 +213,9 @@ function createSystem(rootActor, options) {
|
|
|
203
213
|
reverseKeyedActors.set(actorRef, systemId);
|
|
204
214
|
},
|
|
205
215
|
inspect: observer => {
|
|
206
|
-
|
|
207
|
-
},
|
|
208
|
-
_sendInspectionEvent: event => {
|
|
209
|
-
const resolvedInspectionEvent = {
|
|
210
|
-
...event,
|
|
211
|
-
rootId: rootActor.sessionId
|
|
212
|
-
};
|
|
213
|
-
observers.forEach(observer => observer.next?.(resolvedInspectionEvent));
|
|
216
|
+
inspectionObservers.add(observer);
|
|
214
217
|
},
|
|
218
|
+
_sendInspectionEvent: sendInspectionEvent,
|
|
215
219
|
_relay: (source, target, event) => {
|
|
216
220
|
system._sendInspectionEvent({
|
|
217
221
|
type: '@xstate.event',
|
|
@@ -230,16 +234,16 @@ function createSystem(rootActor, options) {
|
|
|
230
234
|
};
|
|
231
235
|
},
|
|
232
236
|
start: () => {
|
|
233
|
-
const
|
|
237
|
+
const scheduledEvents = system._snapshot._scheduledEvents;
|
|
234
238
|
system._snapshot._scheduledEvents = {};
|
|
235
|
-
for (const scheduledId in
|
|
239
|
+
for (const scheduledId in scheduledEvents) {
|
|
236
240
|
const {
|
|
237
241
|
source,
|
|
238
242
|
target,
|
|
239
243
|
event,
|
|
240
244
|
delay,
|
|
241
245
|
id
|
|
242
|
-
} =
|
|
246
|
+
} = scheduledEvents[scheduledId];
|
|
243
247
|
scheduler.schedule(source, target, event, delay, id);
|
|
244
248
|
}
|
|
245
249
|
}
|
|
@@ -1745,7 +1749,11 @@ function getStateNodeByPath(stateNode, statePath) {
|
|
|
1745
1749
|
*/
|
|
1746
1750
|
function getStateNodes(stateNode, stateValue) {
|
|
1747
1751
|
if (typeof stateValue === 'string') {
|
|
1748
|
-
|
|
1752
|
+
const childStateNode = stateNode.states[stateValue];
|
|
1753
|
+
if (!childStateNode) {
|
|
1754
|
+
throw new Error(`State '${stateValue}' does not exist on '${stateNode.id}'`);
|
|
1755
|
+
}
|
|
1756
|
+
return [stateNode, childStateNode];
|
|
1749
1757
|
}
|
|
1750
1758
|
const childStateKeys = Object.keys(stateValue);
|
|
1751
1759
|
const childStateNodes = childStateKeys.map(subStateKey => getStateNode(stateNode, subStateKey)).filter(Boolean);
|
|
@@ -2158,7 +2166,7 @@ function exitStates(currentSnapshot, event, actorScope, transitions, mutStateNod
|
|
|
2158
2166
|
}
|
|
2159
2167
|
return [nextSnapshot, changedHistory || historyValue];
|
|
2160
2168
|
}
|
|
2161
|
-
function
|
|
2169
|
+
function resolveAndExecuteActionsWithContext(currentSnapshot, event, actorScope, actions, extra, retries) {
|
|
2162
2170
|
const {
|
|
2163
2171
|
machine
|
|
2164
2172
|
} = currentSnapshot;
|
|
@@ -2183,12 +2191,23 @@ function resolveActionsAndContextWorker(currentSnapshot, event, actorScope, acti
|
|
|
2183
2191
|
context: intermediateSnapshot.context,
|
|
2184
2192
|
event
|
|
2185
2193
|
}) : action.params : undefined;
|
|
2194
|
+
function executeAction() {
|
|
2195
|
+
actorScope.system._sendInspectionEvent({
|
|
2196
|
+
type: '@xstate.action',
|
|
2197
|
+
actorRef: actorScope.self,
|
|
2198
|
+
action: {
|
|
2199
|
+
type: typeof action === 'string' ? action : typeof action === 'object' ? action.type : action.name || '(anonymous)',
|
|
2200
|
+
params: actionParams
|
|
2201
|
+
}
|
|
2202
|
+
});
|
|
2203
|
+
resolvedAction(actionArgs, actionParams);
|
|
2204
|
+
}
|
|
2186
2205
|
if (!('resolve' in resolvedAction)) {
|
|
2187
2206
|
if (actorScope.self._processingStatus === ProcessingStatus.Running) {
|
|
2188
|
-
|
|
2207
|
+
executeAction();
|
|
2189
2208
|
} else {
|
|
2190
2209
|
actorScope.defer(() => {
|
|
2191
|
-
|
|
2210
|
+
executeAction();
|
|
2192
2211
|
});
|
|
2193
2212
|
}
|
|
2194
2213
|
continue;
|
|
@@ -2209,14 +2228,14 @@ function resolveActionsAndContextWorker(currentSnapshot, event, actorScope, acti
|
|
|
2209
2228
|
}
|
|
2210
2229
|
}
|
|
2211
2230
|
if (actions) {
|
|
2212
|
-
intermediateSnapshot =
|
|
2231
|
+
intermediateSnapshot = resolveAndExecuteActionsWithContext(intermediateSnapshot, event, actorScope, actions, extra, retries);
|
|
2213
2232
|
}
|
|
2214
2233
|
}
|
|
2215
2234
|
return intermediateSnapshot;
|
|
2216
2235
|
}
|
|
2217
2236
|
function resolveActionsAndContext(currentSnapshot, event, actorScope, actions, internalQueue, deferredActorIds) {
|
|
2218
2237
|
const retries = deferredActorIds ? [] : undefined;
|
|
2219
|
-
const nextState =
|
|
2238
|
+
const nextState = resolveAndExecuteActionsWithContext(currentSnapshot, event, actorScope, actions, {
|
|
2220
2239
|
internalQueue,
|
|
2221
2240
|
deferredActorIds
|
|
2222
2241
|
}, retries);
|
|
@@ -2227,17 +2246,27 @@ function resolveActionsAndContext(currentSnapshot, event, actorScope, actions, i
|
|
|
2227
2246
|
}
|
|
2228
2247
|
function macrostep(snapshot, event, actorScope, internalQueue = []) {
|
|
2229
2248
|
let nextSnapshot = snapshot;
|
|
2230
|
-
const
|
|
2249
|
+
const microstates = [];
|
|
2250
|
+
function addMicrostate(microstate, event, transitions) {
|
|
2251
|
+
actorScope.system._sendInspectionEvent({
|
|
2252
|
+
type: '@xstate.microstep',
|
|
2253
|
+
actorRef: actorScope.self,
|
|
2254
|
+
event,
|
|
2255
|
+
snapshot: microstate,
|
|
2256
|
+
_transitions: transitions
|
|
2257
|
+
});
|
|
2258
|
+
microstates.push(microstate);
|
|
2259
|
+
}
|
|
2231
2260
|
|
|
2232
2261
|
// Handle stop event
|
|
2233
2262
|
if (event.type === XSTATE_STOP) {
|
|
2234
2263
|
nextSnapshot = cloneMachineSnapshot(stopChildren(nextSnapshot, event, actorScope), {
|
|
2235
2264
|
status: 'stopped'
|
|
2236
2265
|
});
|
|
2237
|
-
|
|
2266
|
+
addMicrostate(nextSnapshot, event, []);
|
|
2238
2267
|
return {
|
|
2239
2268
|
snapshot: nextSnapshot,
|
|
2240
|
-
microstates
|
|
2269
|
+
microstates
|
|
2241
2270
|
};
|
|
2242
2271
|
}
|
|
2243
2272
|
let nextEvent = event;
|
|
@@ -2256,16 +2285,16 @@ function macrostep(snapshot, event, actorScope, internalQueue = []) {
|
|
|
2256
2285
|
status: 'error',
|
|
2257
2286
|
error: currentEvent.error
|
|
2258
2287
|
});
|
|
2259
|
-
|
|
2288
|
+
addMicrostate(nextSnapshot, currentEvent, []);
|
|
2260
2289
|
return {
|
|
2261
2290
|
snapshot: nextSnapshot,
|
|
2262
|
-
microstates
|
|
2291
|
+
microstates
|
|
2263
2292
|
};
|
|
2264
2293
|
}
|
|
2265
2294
|
nextSnapshot = microstep(transitions, snapshot, actorScope, nextEvent, false,
|
|
2266
2295
|
// isInitial
|
|
2267
2296
|
internalQueue);
|
|
2268
|
-
|
|
2297
|
+
addMicrostate(nextSnapshot, currentEvent, transitions);
|
|
2269
2298
|
}
|
|
2270
2299
|
let shouldSelectEventlessTransitions = true;
|
|
2271
2300
|
while (nextSnapshot.status === 'active') {
|
|
@@ -2283,14 +2312,14 @@ function macrostep(snapshot, event, actorScope, internalQueue = []) {
|
|
|
2283
2312
|
}
|
|
2284
2313
|
nextSnapshot = microstep(enabledTransitions, nextSnapshot, actorScope, nextEvent, false, internalQueue);
|
|
2285
2314
|
shouldSelectEventlessTransitions = nextSnapshot !== previousState;
|
|
2286
|
-
|
|
2315
|
+
addMicrostate(nextSnapshot, nextEvent, enabledTransitions);
|
|
2287
2316
|
}
|
|
2288
2317
|
if (nextSnapshot.status !== 'active') {
|
|
2289
2318
|
stopChildren(nextSnapshot, nextEvent, actorScope);
|
|
2290
2319
|
}
|
|
2291
2320
|
return {
|
|
2292
2321
|
snapshot: nextSnapshot,
|
|
2293
|
-
microstates
|
|
2322
|
+
microstates
|
|
2294
2323
|
};
|
|
2295
2324
|
}
|
|
2296
2325
|
function stopChildren(nextState, event, actorScope) {
|
package/dist/xstate.cjs.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var actors_dist_xstateActors = require('../actors/dist/xstate-actors.cjs.js');
|
|
6
|
-
var guards_dist_xstateGuards = require('./raise-
|
|
7
|
-
var log = require('./log-
|
|
6
|
+
var guards_dist_xstateGuards = require('./raise-932934e8.cjs.js');
|
|
7
|
+
var log = require('./log-c2d7ade7.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
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var actors_dist_xstateActors = require('../actors/dist/xstate-actors.development.cjs.js');
|
|
6
|
-
var guards_dist_xstateGuards = require('./raise-
|
|
7
|
-
var log = require('./log-
|
|
6
|
+
var guards_dist_xstateGuards = require('./raise-0ce4ccae.development.cjs.js');
|
|
7
|
+
var log = require('./log-9b34dd45.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
|
-
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-
|
|
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-
|
|
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-
|
|
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-4593d184.development.esm.js';
|
|
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-4593d184.development.esm.js';
|
|
4
|
+
import { a as assign } from './log-dc9ca1e2.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-dc9ca1e2.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
|
-
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-
|
|
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-
|
|
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-
|
|
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-6420fe44.esm.js';
|
|
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-6420fe44.esm.js';
|
|
4
|
+
import { a as assign } from './log-f78f0918.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-f78f0918.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=>{if(!i.size)return;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})),[qt(e,{children:{...e.children,[h]:f}}),{id:o,actorRef:f}]}function z(t,{id:e,actorRef:s}){s&&t.defer((()=>{s._processingStatus!==M.Stopped&&s.start()}))}function q(...[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=z,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]),[qt(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){const s=t.states[e];if(!s)throw new Error(`State '${e}' does not exist on '${t.id}'`);return[t,s]}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(q(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=qt(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:qt(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 c of n){const u="function"==typeof c,h=u?c:r.implementations.actions["string"==typeof c?c:c.type];if(!h)continue;const f={context:a.context,event:e,self:s.self,system:s.system},d=u||"string"==typeof c?void 0:"params"in c?"function"==typeof c.params?c.params({context:a.context,event:e}):c.params:void 0;function p(){s.system._sendInspectionEvent({type:"@xstate.action",actorRef:s.self,action:{type:"string"==typeof c?c:"object"==typeof c?c.type:c.name||"(anonymous)",params:d}}),h(f,d)}if(!("resolve"in h)){s.self._processingStatus===M.Running?p():s.defer((()=>{p()}));continue}const l=h,[y,g,v]=l.resolve(s,a,f,d,h,o);a=y,"retryResolve"in l&&i?.push([l,g]),"execute"in l&&(s.self._processingStatus===M.Running?l.execute(s,g):s.defer(l.execute.bind(null,s,g))),v&&(a=Ot(a,e,s,v,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=[];function c(t,e,n){s.system._sendInspectionEvent({type:"@xstate.microstep",actorRef:s.self,event:e,snapshot:t,_transitions:n}),r.push(t)}if(e.type===a)return o=qt(Mt(o,e,s),{status:"stopped"}),c(o,e,[]),{snapshot:o,microstates:r};let u=e;if(u.type!==i){const e=u,i=function(t){return t.type.startsWith("xstate.error.actor")}(e),a=Nt(e,o);if(i&&!a.length)return o=qt(t,{status:"error",error:e.error}),c(o,e,[]),{snapshot:o,microstates:r};o=It(a,t,s,u,!1,n),c(o,e,a)}let h=!0;for(;"active"===o.status;){let t=h?Pt(o,u):[];const e=t.length?o:void 0;if(!t.length){if(!n.length)break;u=n.shift(),t=Nt(u,o)}o=It(t,o,s,u,!1,n),h=o!==e,c(o,u,t)}return"active"!==o.status&&Mt(o,u,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 zt(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 qt(t,e={}){return zt({...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[qt(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(q(...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 zt({_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=zt({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=zt({...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=q,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
|