{"version":3,"sources":["webpack:///./node_modules/xstate/lib/environment.js","webpack:///./node_modules/xstate/lib/_virtual/_tslib.js","webpack:///./node_modules/xstate/lib/utils.js","webpack:///./node_modules/xstate/lib/serviceScope.js","webpack:///./node_modules/xstate/lib/scheduler.js","webpack:///./node_modules/xstate/lib/actions.js","webpack:///./node_modules/xstate/lib/devTools.js","webpack:///./node_modules/xstate/lib/behaviors.js","webpack:///./node_modules/xstate/lib/interpreter.js","webpack:///./node_modules/xstate/lib/constants.js","webpack:///./node_modules/xstate/lib/types.js","webpack:///./node_modules/xstate/lib/Actor.js","webpack:///./node_modules/xstate/lib/stateUtils.js","webpack:///./node_modules/xstate/lib/registry.js","webpack:///./node_modules/xstate/lib/State.js","webpack:///./node_modules/xstate/lib/actionTypes.js"],"names":["Object","defineProperty","exports","value","IS_PRODUCTION","__rest","s","e","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__values","o","Symbol","iterator","m","next","done","TypeError","__read","n","r","ar","push","error","__spreadArray","to","from","il","j","__assign","assign","arguments","apply","this","_tslib","constants","environment","keys","matchesState","parentStateId","childStateId","delimiter","STATE_DELIMITER","parentStateValue","toStateValue","childStateValue","isString","every","key","getEventType","event","type","Error","toStatePath","stateId","isArray","toString","split","isStateLike","state","stateValue","pathToStateValue","statePath","marker","mapValues","collection","iteratee","result","collectionKeys","mapFilterValues","predicate","e_1","_a","_b","_c","item","e_1_1","return","path","props","object","e_2","props_1","props_1_1","prop","e_2_1","nestedPath","accessorProp","e_3","props_2","props_2_1","e_3_1","toStatePaths","flatten","map","subStateValue","subPath","concat","array","toArrayStrict","toArray","undefined","mapContext","mapper","context","_event","e_5","isFunction","data","subMapper","e_5_1","isBuiltInEvent","eventType","test","isPromiseLike","Promise","then","isBehavior","transition","partition","items","e_6","truthy","falsy","items_1","items_1_1","e_6_1","updateHistoryStates","hist","states","subHist","current","updateHistoryValue","updateContext","assignActions","warn","updatedContext","reduce","acc","assignAction","e_7","assignment","meta","action","partialUpdate","propAssignment","e_7_1","Array","toGuard","condition","guardMap","DEFAULT_GUARD_TYPE","name","isObservable","subscribe","message","console","args","symbolObservable","observable","isMachine","isActor","send","uniqueId","currentId","toEventObject","payload","toSCXMLEvent","scxmlEvent","$$type","eventObject","toTransitionConfigArray","configLike","transitions","transitionLike","target","normalizeTarget","TARGETLESS_KEY","reportUnhandledExceptionOnInvocation","originalError","currentError","id","originalStackTrace","stack","stackTrace","evaluateGuard","machine","guard","guards","options","guardMeta","cond","condFn","toInvokeSource","src","toObserver","nextHandler","errorHandler","completionHandler","noop","complete","serviceStack","provide","service","fn","pop","consume","defaultOptions","deferEvents","Scheduler","processingEvent","queue","initialized","initialize","callback","schedule","process","flushEvents","task","clear","nextCallback","shift","utils","types","actionTypes","initEvent","init","getActionFunction","actionType","actionFunctionMap","toActionObject","actionObject","exec","enumerable","configurable","toActionObjects","actions","subAction","toActivityDefinition","raise","SpecialTargets","Internal","resolveRaise","delay","resolveSend","ctx","delaysMap","resolvedDelay","resolvedEvent","configDelay","resolvedTarget","sendParent","Parent","sendUpdate","update","respond","_","__","origin","defaultLogExpr","log","expr","label","resolveLog","cancel","sendId","start","activity","activityDef","ActionTypes","Start","stop","actorRef","Stop","resolveStop","actorRefOrString","resolvedActorRef","after","delayRef","idSuffix","After","DoneState","doneInvoke","DoneInvoke","ErrorPlatform","pure","getActions","Pure","get","forwardTo","escalate","errorData","choose","conds","Choose","resolveActions","currentState","currentContext","preserveActionOrder","otherActions","preservedContexts","resolvedActions","sendAction","delays","chooseAction","matchedActions","find","resolvedActionsFromChoose","resolvedContextFromChoose","resolvedActionsFromPure","resolvedContext","resolvedActionObject","exec_1","contextIndex_1","_ctx","_i","filter","a","getGlobal","self","window","global","getDevTools","__xstate__","registerService","devTools","register","Actor","spawnBehavior","behavior","initialState","observers","Set","mailbox","flushing","flush","event_1","actorCtx","forEach","observer","actor","toActorRef","getSnapshot","handleError","add","unsubscribe","delete","parent","stateUtils","State","serviceScope","scheduler","registry","behaviors","DEFAULT_SPAWN_OPTIONS","sync","autoForward","InterpreterStatus","Interpreter","_this","delayedEventsMap","listeners","contextListeners","stopListeners","doneListeners","eventListeners","sendListeners","status","NotStarted","children","Map","batch","Stopped","JSON","stringify","Running","forward","nextState","_state","sendTo","isParent","sessionId","resolvedOptions","clock","logger","resolvedId","bookId","_initialState","execute","actionsConfig","e_4","_d","_sessionid","child","_e","_f","listener","_g","_h","_j","_k","contextListener","history","e_4_1","isDone","isInFinalState","configuration","finalChildStateNode","sn","doneData","_l","_m","onTransition","nextListenerOrObserver","completeListener","resolvedCompleteListener","bind","onDone","onEvent","onSend","onChange","onStop","off","resolvedState","isState","resolveState","attachDev","e_8","e_9","e_10","e_8_1","_o","e_9_1","stateNode","e_11","definition","exit","e_11_1","_p","_q","clearTimeout","e_10_1","free","events","e_12","batchChanged","batchedActions","_loop_1","bindActionToState","changed","events_1","events_1_1","e_12_1","sender","errorPlatform","nextEvents","some","nextEvent","e_13","e_13_1","defer","setTimeout","actionOrExec","err","activities","Invoke","invokeSource","serviceCreator","services","resolvedData","source","withContext","spawn","spawnActivity","stopChild","removeChild","childId","entity","spawnPromise","resolve","spawnCallback","isSpawnedActor","spawnActor","spawnObservable","spawnMachine","childService","set","doneEvent","promise","canceled","response","errorEvent","strict","unsubscribed","toJSON","emitted","callbackStop","receivers","receive","newListener","receiver","subscription","implementation","dispose","spawnEffect","__REDUX_DEVTOOLS_EXTENSION__","devToolsOptions","connect","autoPause","stateSanitizer","features","jump","skip","ms","interpret","resolveSpawnOptions","nameOrOptions","isLazyEntity","createDeferredActor","interpreter","EMPTY_ACTIVITY_MAP","createNullActor","createInvocableActor","invokeDefinition","invokeSrc","tempActor","deferred","initialState_1","actorRefLike","isLeafNode","getChildren","getAllStateNodes","stateNodes","getConfiguration","prevStateNodes","prevConfiguration","prevAdjList","getAdjList","configuration_1","configuration_1_1","has","adjList","configuration_2","configuration_2_1","initialStateNodes","configuration_3","configuration_3_1","getValueFromAdj","baseNode","childStateNodes","childStateNode","csn","configuration_4","configuration_4_1","getValue","rootNode","config","iterable","member","ownEvents","getMeta","sessionIdIndex","stateValuesEqual","b","aKeys","bKeys","boundAction","historyValue","matches","toStrings","tags","create","inert","valueKeys","jsonValues","hasTag","tag","Raise","Send","Cancel","nullEvent","NullEvent","Assign","doneState","Log","Init","invoke","errorExecution","ErrorExecution","ErrorCustom","Update"],"mappings":"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","file":"js/chunk-19b8ea6f.53ee3998.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar IS_PRODUCTION = process.env.NODE_ENV === 'production';\n\nexports.IS_PRODUCTION = IS_PRODUCTION;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nexports.__assign = function() {\r\n exports.__assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return exports.__assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\n\nexports.__read = __read;\nexports.__rest = __rest;\nexports.__spreadArray = __spreadArray;\nexports.__values = __values;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _tslib = require('./_virtual/_tslib.js');\nvar constants = require('./constants.js');\nvar environment = require('./environment.js');\n\nfunction keys(value) {\n return Object.keys(value);\n}\nfunction matchesState(parentStateId, childStateId, delimiter) {\n if (delimiter === void 0) {\n delimiter = constants.STATE_DELIMITER;\n }\n\n var parentStateValue = toStateValue(parentStateId, delimiter);\n var childStateValue = toStateValue(childStateId, delimiter);\n\n if (isString(childStateValue)) {\n if (isString(parentStateValue)) {\n return childStateValue === parentStateValue;\n } // Parent more specific than child\n\n\n return false;\n }\n\n if (isString(parentStateValue)) {\n return parentStateValue in childStateValue;\n }\n\n return keys(parentStateValue).every(function (key) {\n if (!(key in childStateValue)) {\n return false;\n }\n\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\nfunction getEventType(event) {\n try {\n return isString(event) || typeof event === 'number' ? \"\" + event : event.type;\n } catch (e) {\n throw new Error('Events must be strings or objects with a string event.type property.');\n }\n}\nfunction toStatePath(stateId, delimiter) {\n try {\n if (isArray(stateId)) {\n return stateId;\n }\n\n return stateId.toString().split(delimiter);\n } catch (e) {\n throw new Error(\"'\" + stateId + \"' is not a valid state path.\");\n }\n}\nfunction isStateLike(state) {\n return typeof state === 'object' && 'value' in state && 'context' in state && 'event' in state && '_event' in state;\n}\nfunction toStateValue(stateValue, delimiter) {\n if (isStateLike(stateValue)) {\n return stateValue.value;\n }\n\n if (isArray(stateValue)) {\n return pathToStateValue(stateValue);\n }\n\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n\n var statePath = toStatePath(stateValue, delimiter);\n return pathToStateValue(statePath);\n}\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n\n var value = {};\n var marker = value;\n\n for (var i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n } else {\n marker[statePath[i]] = {};\n marker = marker[statePath[i]];\n }\n }\n\n return value;\n}\nfunction mapValues(collection, iteratee) {\n var result = {};\n var collectionKeys = keys(collection);\n\n for (var i = 0; i < collectionKeys.length; i++) {\n var key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n\n return result;\n}\nfunction mapFilterValues(collection, iteratee, predicate) {\n var e_1, _a;\n\n var result = {};\n\n try {\n for (var _b = _tslib.__values(keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var item = collection[key];\n\n if (!predicate(item)) {\n continue;\n }\n\n result[key] = iteratee(item, key, collection);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return result;\n}\n/**\r\n * Retrieves a value at the given path.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\nvar path = function (props) {\n return function (object) {\n var e_2, _a;\n\n var result = object;\n\n try {\n for (var props_1 = _tslib.__values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n result = result[prop];\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return result;\n };\n};\n/**\r\n * Retrieves a value at the given path via the nested accessor prop.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\nfunction nestedPath(props, accessorProp) {\n return function (object) {\n var e_3, _a;\n\n var result = object;\n\n try {\n for (var props_2 = _tslib.__values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) {\n var prop = props_2_1.value;\n result = result[accessorProp][prop];\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (props_2_1 && !props_2_1.done && (_a = props_2.return)) _a.call(props_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n return result;\n };\n}\nfunction toStatePaths(stateValue) {\n if (!stateValue) {\n return [[]];\n }\n\n if (isString(stateValue)) {\n return [[stateValue]];\n }\n\n var result = flatten(keys(stateValue).map(function (key) {\n var subStateValue = stateValue[key];\n\n if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {\n return [[key]];\n }\n\n return toStatePaths(stateValue[key]).map(function (subPath) {\n return [key].concat(subPath);\n });\n }));\n return result;\n}\nfunction flatten(array) {\n var _a;\n\n return (_a = []).concat.apply(_a, _tslib.__spreadArray([], _tslib.__read(array)));\n}\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n\n return [value];\n}\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n\n return toArrayStrict(value);\n}\nfunction mapContext(mapper, context, _event) {\n var e_5, _a;\n\n if (isFunction(mapper)) {\n return mapper(context, _event.data);\n }\n\n var result = {};\n\n try {\n for (var _b = _tslib.__values(Object.keys(mapper)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var subMapper = mapper[key];\n\n if (isFunction(subMapper)) {\n result[key] = subMapper(context, _event.data);\n } else {\n result[key] = subMapper;\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n}\nfunction isBuiltInEvent(eventType) {\n return /^(done|error)\\./.test(eventType);\n}\nfunction isPromiseLike(value) {\n if (value instanceof Promise) {\n return true;\n } // Check if shape matches the Promise/A+ specification for a \"thenable\".\n\n\n if (value !== null && (isFunction(value) || typeof value === 'object') && isFunction(value.then)) {\n return true;\n }\n\n return false;\n}\nfunction isBehavior(value) {\n return value !== null && typeof value === 'object' && 'transition' in value && typeof value.transition === 'function';\n}\nfunction partition(items, predicate) {\n var e_6, _a;\n\n var _b = _tslib.__read([[], []], 2),\n truthy = _b[0],\n falsy = _b[1];\n\n try {\n for (var items_1 = _tslib.__values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n\n if (predicate(item)) {\n truthy.push(item);\n } else {\n falsy.push(item);\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n return [truthy, falsy];\n}\nfunction updateHistoryStates(hist, stateValue) {\n return mapValues(hist.states, function (subHist, key) {\n if (!subHist) {\n return undefined;\n }\n\n var subStateValue = (isString(stateValue) ? undefined : stateValue[key]) || (subHist ? subHist.current : undefined);\n\n if (!subStateValue) {\n return undefined;\n }\n\n return {\n current: subStateValue,\n states: updateHistoryStates(subHist, subStateValue)\n };\n });\n}\nfunction updateHistoryValue(hist, stateValue) {\n return {\n current: stateValue,\n states: updateHistoryStates(hist, stateValue)\n };\n}\nfunction updateContext(context, _event, assignActions, state) {\n if (!environment.IS_PRODUCTION) {\n exports.warn(!!context, 'Attempting to update undefined context');\n }\n\n var updatedContext = context ? assignActions.reduce(function (acc, assignAction) {\n var e_7, _a;\n\n var assignment = assignAction.assignment;\n var meta = {\n state: state,\n action: assignAction,\n _event: _event\n };\n var partialUpdate = {};\n\n if (isFunction(assignment)) {\n partialUpdate = assignment(acc, _event.data, meta);\n } else {\n try {\n for (var _b = _tslib.__values(keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var propAssignment = assignment[key];\n partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return Object.assign({}, acc, partialUpdate);\n }, context) : context;\n return updatedContext;\n} // tslint:disable-next-line:no-empty\n\nexports.warn = function () {};\n\nif (!environment.IS_PRODUCTION) {\n exports.warn = function (condition, message) {\n var error = condition instanceof Error ? condition : undefined;\n\n if (!error && condition) {\n return;\n }\n\n if (console !== undefined) {\n var args = [\"Warning: \" + message];\n\n if (error) {\n args.push(error);\n } // tslint:disable-next-line:no-console\n\n\n console.warn.apply(console, args);\n }\n };\n}\nfunction isArray(value) {\n return Array.isArray(value);\n} // tslint:disable-next-line:ban-types\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isString(value) {\n return typeof value === 'string';\n} // export function memoizedGetter(\n// o: TP,\n// property: string,\n// getter: () => T\n// ): void {\n// Object.defineProperty(o.prototype, property, {\n// get: getter,\n// enumerable: false,\n// configurable: false\n// });\n// }\n\nfunction toGuard(condition, guardMap) {\n if (!condition) {\n return undefined;\n }\n\n if (isString(condition)) {\n return {\n type: constants.DEFAULT_GUARD_TYPE,\n name: condition,\n predicate: guardMap ? guardMap[condition] : undefined\n };\n }\n\n if (isFunction(condition)) {\n return {\n type: constants.DEFAULT_GUARD_TYPE,\n name: condition.name,\n predicate: condition\n };\n }\n\n return condition;\n}\nfunction isObservable(value) {\n try {\n return 'subscribe' in value && isFunction(value.subscribe);\n } catch (e) {\n return false;\n }\n}\nvar symbolObservable = /*#__PURE__*/function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\nfunction isMachine(value) {\n try {\n return '__xstatenode' in value;\n } catch (e) {\n return false;\n }\n}\nfunction isActor(value) {\n return !!value && typeof value.send === 'function';\n}\nvar uniqueId = /*#__PURE__*/function () {\n var currentId = 0;\n return function () {\n currentId++;\n return currentId.toString(16);\n };\n}();\nfunction toEventObject(event, payload // id?: TEvent['type']\n) {\n if (isString(event) || typeof event === 'number') {\n return _tslib.__assign({\n type: event\n }, payload);\n }\n\n return event;\n}\nfunction toSCXMLEvent(event, scxmlEvent) {\n if (!isString(event) && '$$type' in event && event.$$type === 'scxml') {\n return event;\n }\n\n var eventObject = toEventObject(event);\n return _tslib.__assign({\n name: eventObject.type,\n data: eventObject,\n $$type: 'scxml',\n type: 'external'\n }, scxmlEvent);\n}\nfunction toTransitionConfigArray(event, configLike) {\n var transitions = toArrayStrict(configLike).map(function (transitionLike) {\n if (typeof transitionLike === 'undefined' || typeof transitionLike === 'string' || isMachine(transitionLike)) {\n return {\n target: transitionLike,\n event: event\n };\n }\n\n return _tslib.__assign(_tslib.__assign({}, transitionLike), {\n event: event\n });\n });\n return transitions;\n}\nfunction normalizeTarget(target) {\n if (target === undefined || target === constants.TARGETLESS_KEY) {\n return undefined;\n }\n\n return toArray(target);\n}\nfunction reportUnhandledExceptionOnInvocation(originalError, currentError, id) {\n if (!environment.IS_PRODUCTION) {\n var originalStackTrace = originalError.stack ? \" Stacktrace was '\" + originalError.stack + \"'\" : '';\n\n if (originalError === currentError) {\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler for invocation '\" + id + \"', error was '\" + originalError + \"'.\" + originalStackTrace);\n } else {\n var stackTrace = currentError.stack ? \" Stacktrace was '\" + currentError.stack + \"'\" : ''; // tslint:disable-next-line:no-console\n\n console.error(\"Missing onError handler and/or unhandled exception/promise rejection for invocation '\" + id + \"'. \" + (\"Original error: '\" + originalError + \"'. \" + originalStackTrace + \" Current error is '\" + currentError + \"'.\" + stackTrace));\n }\n }\n}\nfunction evaluateGuard(machine, guard, context, _event, state) {\n var guards = machine.options.guards;\n var guardMeta = {\n state: state,\n cond: guard,\n _event: _event\n }; // TODO: do not hardcode!\n\n if (guard.type === constants.DEFAULT_GUARD_TYPE) {\n return guard.predicate(context, _event.data, guardMeta);\n }\n\n var condFn = guards[guard.type];\n\n if (!condFn) {\n throw new Error(\"Guard '\" + guard.type + \"' is not implemented on machine '\" + machine.id + \"'.\");\n }\n\n return condFn(context, _event.data, guardMeta);\n}\nfunction toInvokeSource(src) {\n if (typeof src === 'string') {\n return {\n type: src\n };\n }\n\n return src;\n}\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n if (typeof nextHandler === 'object') {\n return nextHandler;\n }\n\n var noop = function () {\n return void 0;\n };\n\n return {\n next: nextHandler,\n error: errorHandler || noop,\n complete: completionHandler || noop\n };\n}\n\nexports.evaluateGuard = evaluateGuard;\nexports.flatten = flatten;\nexports.getEventType = getEventType;\nexports.isActor = isActor;\nexports.isArray = isArray;\nexports.isBehavior = isBehavior;\nexports.isBuiltInEvent = isBuiltInEvent;\nexports.isFunction = isFunction;\nexports.isMachine = isMachine;\nexports.isObservable = isObservable;\nexports.isPromiseLike = isPromiseLike;\nexports.isStateLike = isStateLike;\nexports.isString = isString;\nexports.keys = keys;\nexports.mapContext = mapContext;\nexports.mapFilterValues = mapFilterValues;\nexports.mapValues = mapValues;\nexports.matchesState = matchesState;\nexports.nestedPath = nestedPath;\nexports.normalizeTarget = normalizeTarget;\nexports.partition = partition;\nexports.path = path;\nexports.pathToStateValue = pathToStateValue;\nexports.reportUnhandledExceptionOnInvocation = reportUnhandledExceptionOnInvocation;\nexports.symbolObservable = symbolObservable;\nexports.toArray = toArray;\nexports.toArrayStrict = toArrayStrict;\nexports.toEventObject = toEventObject;\nexports.toGuard = toGuard;\nexports.toInvokeSource = toInvokeSource;\nexports.toObserver = toObserver;\nexports.toSCXMLEvent = toSCXMLEvent;\nexports.toStatePath = toStatePath;\nexports.toStatePaths = toStatePaths;\nexports.toStateValue = toStateValue;\nexports.toTransitionConfigArray = toTransitionConfigArray;\nexports.uniqueId = uniqueId;\nexports.updateContext = updateContext;\nexports.updateHistoryStates = updateHistoryStates;\nexports.updateHistoryValue = updateHistoryValue;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\r\n * Maintains a stack of the current service in scope.\r\n * This is used to provide the correct service to spawn().\r\n */\nvar serviceStack = [];\nvar provide = function (service, fn) {\n serviceStack.push(service);\n var result = fn(service);\n serviceStack.pop();\n return result;\n};\nvar consume = function (fn) {\n return fn(serviceStack[serviceStack.length - 1]);\n};\n\nexports.consume = consume;\nexports.provide = provide;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _tslib = require('./_virtual/_tslib.js');\n\nvar defaultOptions = {\n deferEvents: false\n};\n\nvar Scheduler =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function Scheduler(options) {\n this.processingEvent = false;\n this.queue = [];\n this.initialized = false;\n this.options = _tslib.__assign(_tslib.__assign({}, defaultOptions), options);\n }\n\n Scheduler.prototype.initialize = function (callback) {\n this.initialized = true;\n\n if (callback) {\n if (!this.options.deferEvents) {\n this.schedule(callback);\n return;\n }\n\n this.process(callback);\n }\n\n this.flushEvents();\n };\n\n Scheduler.prototype.schedule = function (task) {\n if (!this.initialized || this.processingEvent) {\n this.queue.push(task);\n return;\n }\n\n if (this.queue.length !== 0) {\n throw new Error('Event queue should be empty when it is not processing events');\n }\n\n this.process(task);\n this.flushEvents();\n };\n\n Scheduler.prototype.clear = function () {\n this.queue = [];\n };\n\n Scheduler.prototype.flushEvents = function () {\n var nextCallback = this.queue.shift();\n\n while (nextCallback) {\n this.process(nextCallback);\n nextCallback = this.queue.shift();\n }\n };\n\n Scheduler.prototype.process = function (callback) {\n this.processingEvent = true;\n\n try {\n callback();\n } catch (e) {\n // there is no use to keep the future events\n // as the situation is not anymore the same\n this.clear();\n throw e;\n } finally {\n this.processingEvent = false;\n }\n };\n\n return Scheduler;\n}();\n\nexports.Scheduler = Scheduler;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _tslib = require('./_virtual/_tslib.js');\nvar environment = require('./environment.js');\nvar utils = require('./utils.js');\nvar types = require('./types.js');\nvar actionTypes = require('./actionTypes.js');\n\nvar initEvent = /*#__PURE__*/utils.toSCXMLEvent({\n type: actionTypes.init\n});\nfunction getActionFunction(actionType, actionFunctionMap) {\n return actionFunctionMap ? actionFunctionMap[actionType] || undefined : undefined;\n}\nfunction toActionObject(action, actionFunctionMap) {\n var actionObject;\n\n if (utils.isString(action) || typeof action === 'number') {\n var exec = getActionFunction(action, actionFunctionMap);\n\n if (utils.isFunction(exec)) {\n actionObject = {\n type: action,\n exec: exec\n };\n } else if (exec) {\n actionObject = exec;\n } else {\n actionObject = {\n type: action,\n exec: undefined\n };\n }\n } else if (utils.isFunction(action)) {\n actionObject = {\n // Convert action to string if unnamed\n type: action.name || action.toString(),\n exec: action\n };\n } else {\n var exec = getActionFunction(action.type, actionFunctionMap);\n\n if (utils.isFunction(exec)) {\n actionObject = _tslib.__assign(_tslib.__assign({}, action), {\n exec: exec\n });\n } else if (exec) {\n var actionType = exec.type || action.type;\n actionObject = _tslib.__assign(_tslib.__assign(_tslib.__assign({}, exec), action), {\n type: actionType\n });\n } else {\n actionObject = action;\n }\n }\n\n Object.defineProperty(actionObject, 'toString', {\n value: function () {\n return actionObject.type;\n },\n enumerable: false,\n configurable: true\n });\n return actionObject;\n}\nvar toActionObjects = function (action, actionFunctionMap) {\n if (!action) {\n return [];\n }\n\n var actions = utils.isArray(action) ? action : [action];\n return actions.map(function (subAction) {\n return toActionObject(subAction, actionFunctionMap);\n });\n};\nfunction toActivityDefinition(action) {\n var actionObject = toActionObject(action);\n return _tslib.__assign(_tslib.__assign({\n id: utils.isString(action) ? action : actionObject.id\n }, actionObject), {\n type: actionObject.type\n });\n}\n/**\r\n * Raises an event. This places the event in the internal event queue, so that\r\n * the event is immediately consumed by the machine in the current step.\r\n *\r\n * @param eventType The event to raise.\r\n */\n\nfunction raise(event) {\n if (!utils.isString(event)) {\n return send(event, {\n to: types.SpecialTargets.Internal\n });\n }\n\n return {\n type: actionTypes.raise,\n event: event\n };\n}\nfunction resolveRaise(action) {\n return {\n type: actionTypes.raise,\n _event: utils.toSCXMLEvent(action.event)\n };\n}\n/**\r\n * Sends an event. This returns an action that will be read by an interpreter to\r\n * send the event in the next step, after the current step is finished executing.\r\n *\r\n * @param event The event to send.\r\n * @param options Options to pass into the send event:\r\n * - `id` - The unique send event identifier (used with `cancel()`).\r\n * - `delay` - The number of milliseconds to delay the sending of the event.\r\n * - `to` - The target of this event (by default, the machine the event was sent from).\r\n */\n\nfunction send(event, options) {\n return {\n to: options ? options.to : undefined,\n type: actionTypes.send,\n event: utils.isFunction(event) ? event : utils.toEventObject(event),\n delay: options ? options.delay : undefined,\n id: options && options.id !== undefined ? options.id : utils.isFunction(event) ? event.name : utils.getEventType(event)\n };\n}\nfunction resolveSend(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n }; // TODO: helper function for resolving Expr\n\n var resolvedEvent = utils.toSCXMLEvent(utils.isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);\n var resolvedDelay;\n\n if (utils.isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = utils.isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;\n } else {\n resolvedDelay = utils.isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;\n }\n\n var resolvedTarget = utils.isFunction(action.to) ? action.to(ctx, _event.data, meta) : action.to;\n return _tslib.__assign(_tslib.__assign({}, action), {\n to: resolvedTarget,\n _event: resolvedEvent,\n event: resolvedEvent.data,\n delay: resolvedDelay\n });\n}\n/**\r\n * Sends an event to this machine's parent.\r\n *\r\n * @param event The event to send to the parent machine.\r\n * @param options Options to pass into the send event.\r\n */\n\nfunction sendParent(event, options) {\n return send(event, _tslib.__assign(_tslib.__assign({}, options), {\n to: types.SpecialTargets.Parent\n }));\n}\n/**\r\n * Sends an update event to this machine's parent.\r\n */\n\nfunction sendUpdate() {\n return sendParent(actionTypes.update);\n}\n/**\r\n * Sends an event back to the sender of the original event.\r\n *\r\n * @param event The event to send back to the sender\r\n * @param options Options to pass into the send event\r\n */\n\nfunction respond(event, options) {\n return send(event, _tslib.__assign(_tslib.__assign({}, options), {\n to: function (_, __, _a) {\n var _event = _a._event;\n return _event.origin; // TODO: handle when _event.origin is undefined\n }\n }));\n}\n\nvar defaultLogExpr = function (context, event) {\n return {\n context: context,\n event: event\n };\n};\n/**\r\n *\r\n * @param expr The expression function to evaluate which will be logged.\r\n * Takes in 2 arguments:\r\n * - `ctx` - the current state context\r\n * - `event` - the event that caused this action to be executed.\r\n * @param label The label to give to the logged expression.\r\n */\n\n\nfunction log(expr, label) {\n if (expr === void 0) {\n expr = defaultLogExpr;\n }\n\n return {\n type: actionTypes.log,\n label: label,\n expr: expr\n };\n}\nvar resolveLog = function (action, ctx, _event) {\n return _tslib.__assign(_tslib.__assign({}, action), {\n value: utils.isString(action.expr) ? action.expr : action.expr(ctx, _event.data, {\n _event: _event\n })\n });\n};\n/**\r\n * Cancels an in-flight `send(...)` action. A canceled sent action will not\r\n * be executed, nor will its event be sent, unless it has already been sent\r\n * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).\r\n *\r\n * @param sendId The `id` of the `send(...)` action to cancel.\r\n */\n\nvar cancel = function (sendId) {\n return {\n type: actionTypes.cancel,\n sendId: sendId\n };\n};\n/**\r\n * Starts an activity.\r\n *\r\n * @param activity The activity to start.\r\n */\n\nfunction start(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: types.ActionTypes.Start,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Stops an activity.\r\n *\r\n * @param actorRef The activity to stop.\r\n */\n\nfunction stop(actorRef) {\n var activity = utils.isFunction(actorRef) ? actorRef : toActivityDefinition(actorRef);\n return {\n type: types.ActionTypes.Stop,\n activity: activity,\n exec: undefined\n };\n}\nfunction resolveStop(action, context, _event) {\n var actorRefOrString = utils.isFunction(action.activity) ? action.activity(context, _event.data) : action.activity;\n var resolvedActorRef = typeof actorRefOrString === 'string' ? {\n id: actorRefOrString\n } : actorRefOrString;\n var actionObject = {\n type: types.ActionTypes.Stop,\n activity: resolvedActorRef\n };\n return actionObject;\n}\n/**\r\n * Updates the current context of the machine.\r\n *\r\n * @param assignment An object that represents the partial context to update.\r\n */\n\nvar assign = function (assignment) {\n return {\n type: actionTypes.assign,\n assignment: assignment\n };\n};\n/**\r\n * Returns an event type that represents an implicit event that\r\n * is sent after the specified `delay`.\r\n *\r\n * @param delayRef The delay in milliseconds\r\n * @param id The state node ID where this event is handled\r\n */\n\nfunction after(delayRef, id) {\n var idSuffix = id ? \"#\" + id : '';\n return types.ActionTypes.After + \"(\" + delayRef + \")\" + idSuffix;\n}\n/**\r\n * Returns an event that represents that a final state node\r\n * has been reached in the parent state node.\r\n *\r\n * @param id The final state node's parent state node `id`\r\n * @param data The data to pass into the event\r\n */\n\nfunction done(id, data) {\n var type = types.ActionTypes.DoneState + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Returns an event that represents that an invoked service has terminated.\r\n *\r\n * An invoked service is terminated when it has reached a top-level final state node,\r\n * but not when it is canceled.\r\n *\r\n * @param id The final state node ID\r\n * @param data The data to pass into the event\r\n */\n\nfunction doneInvoke(id, data) {\n var type = types.ActionTypes.DoneInvoke + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\nfunction error(id, data) {\n var type = types.ActionTypes.ErrorPlatform + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\nfunction pure(getActions) {\n return {\n type: types.ActionTypes.Pure,\n get: getActions\n };\n}\n/**\r\n * Forwards (sends) an event to a specified service.\r\n *\r\n * @param target The target service to forward the event to.\r\n * @param options Options to pass into the send action creator.\r\n */\n\nfunction forwardTo(target, options) {\n return send(function (_, event) {\n return event;\n }, _tslib.__assign(_tslib.__assign({}, options), {\n to: target\n }));\n}\n/**\r\n * Escalates an error by sending it as an event to this machine's parent.\r\n *\r\n * @param errorData The error data to send, or the expression function that\r\n * takes in the `context`, `event`, and `meta`, and returns the error data to send.\r\n * @param options Options to pass into the send action creator.\r\n */\n\nfunction escalate(errorData, options) {\n return sendParent(function (context, event, meta) {\n return {\n type: actionTypes.error,\n data: utils.isFunction(errorData) ? errorData(context, event, meta) : errorData\n };\n }, _tslib.__assign(_tslib.__assign({}, options), {\n to: types.SpecialTargets.Parent\n }));\n}\nfunction choose(conds) {\n return {\n type: types.ActionTypes.Choose,\n conds: conds\n };\n}\nfunction resolveActions(machine, currentState, currentContext, _event, actions, preserveActionOrder) {\n if (preserveActionOrder === void 0) {\n preserveActionOrder = false;\n }\n\n var _a = _tslib.__read(preserveActionOrder ? [[], actions] : utils.partition(actions, function (action) {\n return action.type === actionTypes.assign;\n }), 2),\n assignActions = _a[0],\n otherActions = _a[1];\n\n var updatedContext = assignActions.length ? utils.updateContext(currentContext, _event, assignActions, currentState) : currentContext;\n var preservedContexts = preserveActionOrder ? [currentContext] : undefined;\n var resolvedActions = utils.flatten(otherActions.map(function (actionObject) {\n var _a;\n\n switch (actionObject.type) {\n case actionTypes.raise:\n return resolveRaise(actionObject);\n\n case actionTypes.send:\n var sendAction = resolveSend(actionObject, updatedContext, _event, machine.options.delays); // TODO: fix ActionTypes.Init\n\n if (!environment.IS_PRODUCTION) {\n // warn after resolving as we can create better contextual message here\n utils.warn(!utils.isString(actionObject.delay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length\n \"No delay reference for delay expression '\" + actionObject.delay + \"' was found on machine '\" + machine.id + \"'\");\n }\n\n return sendAction;\n\n case actionTypes.log:\n return resolveLog(actionObject, updatedContext, _event);\n\n case actionTypes.choose:\n {\n var chooseAction = actionObject;\n var matchedActions = (_a = chooseAction.conds.find(function (condition) {\n var guard = utils.toGuard(condition.cond, machine.options.guards);\n return !guard || utils.evaluateGuard(machine, guard, updatedContext, _event, currentState);\n })) === null || _a === void 0 ? void 0 : _a.actions;\n\n if (!matchedActions) {\n return [];\n }\n\n var _b = _tslib.__read(resolveActions(machine, currentState, updatedContext, _event, toActionObjects(utils.toArray(matchedActions), machine.options.actions), preserveActionOrder), 2),\n resolvedActionsFromChoose = _b[0],\n resolvedContextFromChoose = _b[1];\n\n updatedContext = resolvedContextFromChoose;\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n return resolvedActionsFromChoose;\n }\n\n case actionTypes.pure:\n {\n var matchedActions = actionObject.get(updatedContext, _event.data);\n\n if (!matchedActions) {\n return [];\n }\n\n var _c = _tslib.__read(resolveActions(machine, currentState, updatedContext, _event, toActionObjects(utils.toArray(matchedActions), machine.options.actions), preserveActionOrder), 2),\n resolvedActionsFromPure = _c[0],\n resolvedContext = _c[1];\n\n updatedContext = resolvedContext;\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n return resolvedActionsFromPure;\n }\n\n case actionTypes.stop:\n {\n return resolveStop(actionObject, updatedContext, _event);\n }\n\n case actionTypes.assign:\n {\n updatedContext = utils.updateContext(updatedContext, _event, [actionObject], currentState);\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n break;\n }\n\n default:\n var resolvedActionObject = toActionObject(actionObject, machine.options.actions);\n var exec_1 = resolvedActionObject.exec;\n\n if (exec_1 && preservedContexts) {\n var contextIndex_1 = preservedContexts.length - 1;\n\n resolvedActionObject.exec = function (_ctx) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n exec_1 === null || exec_1 === void 0 ? void 0 : exec_1.apply(void 0, _tslib.__spreadArray([preservedContexts[contextIndex_1]], _tslib.__read(args)));\n };\n }\n\n return resolvedActionObject;\n }\n }).filter(function (a) {\n return !!a;\n }));\n return [resolvedActions, updatedContext];\n}\n\nexports.after = after;\nexports.assign = assign;\nexports.cancel = cancel;\nexports.choose = choose;\nexports.done = done;\nexports.doneInvoke = doneInvoke;\nexports.error = error;\nexports.escalate = escalate;\nexports.forwardTo = forwardTo;\nexports.getActionFunction = getActionFunction;\nexports.initEvent = initEvent;\nexports.log = log;\nexports.pure = pure;\nexports.raise = raise;\nexports.resolveActions = resolveActions;\nexports.resolveLog = resolveLog;\nexports.resolveRaise = resolveRaise;\nexports.resolveSend = resolveSend;\nexports.resolveStop = resolveStop;\nexports.respond = respond;\nexports.send = send;\nexports.sendParent = sendParent;\nexports.sendUpdate = sendUpdate;\nexports.start = start;\nexports.stop = stop;\nexports.toActionObject = toActionObject;\nexports.toActionObjects = toActionObjects;\nexports.toActivityDefinition = toActivityDefinition;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n return undefined;\n}\n\nfunction getDevTools() {\n var global = getGlobal();\n\n if (global && '__xstate__' in global) {\n return global.__xstate__;\n }\n\n return undefined;\n}\n\nfunction registerService(service) {\n if (!getGlobal()) {\n return;\n }\n\n var devTools = getDevTools();\n\n if (devTools) {\n devTools.register(service);\n }\n}\n\nexports.getGlobal = getGlobal;\nexports.registerService = registerService;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nrequire('./environment.js');\nvar utils = require('./utils.js');\nrequire('./types.js');\nrequire('./actionTypes.js');\nvar Actor = require('./Actor.js');\n\nfunction spawnBehavior(behavior, options) {\n if (options === void 0) {\n options = {};\n }\n\n var state = behavior.initialState;\n var observers = new Set();\n var mailbox = [];\n var flushing = false;\n\n var flush = function () {\n if (flushing) {\n return;\n }\n\n flushing = true;\n\n while (mailbox.length > 0) {\n var event_1 = mailbox.shift();\n state = behavior.transition(state, event_1, actorCtx);\n observers.forEach(function (observer) {\n return observer.next(state);\n });\n }\n\n flushing = false;\n };\n\n var actor = Actor.toActorRef({\n id: options.id,\n send: function (event) {\n mailbox.push(event);\n flush();\n },\n getSnapshot: function () {\n return state;\n },\n subscribe: function (next, handleError, complete) {\n var observer = utils.toObserver(next, handleError, complete);\n observers.add(observer);\n observer.next(state);\n return {\n unsubscribe: function () {\n observers.delete(observer);\n }\n };\n }\n });\n var actorCtx = {\n parent: options.parent,\n self: actor,\n id: options.id || 'anonymous',\n observers: observers\n };\n state = behavior.start ? behavior.start(actorCtx) : state;\n return actor;\n}\n\nexports.spawnBehavior = spawnBehavior;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _tslib = require('./_virtual/_tslib.js');\nvar environment = require('./environment.js');\nvar utils = require('./utils.js');\nvar types = require('./types.js');\nvar stateUtils = require('./stateUtils.js');\nvar actionTypes = require('./actionTypes.js');\nvar actions = require('./actions.js');\nvar State = require('./State.js');\nvar serviceScope = require('./serviceScope.js');\nvar Actor = require('./Actor.js');\nvar scheduler = require('./scheduler.js');\nvar registry = require('./registry.js');\nvar devTools = require('./devTools.js');\nvar behaviors = require('./behaviors.js');\n\nvar DEFAULT_SPAWN_OPTIONS = {\n sync: false,\n autoForward: false\n};\n\n(function (InterpreterStatus) {\n InterpreterStatus[InterpreterStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n InterpreterStatus[InterpreterStatus[\"Running\"] = 1] = \"Running\";\n InterpreterStatus[InterpreterStatus[\"Stopped\"] = 2] = \"Stopped\";\n})(exports.InterpreterStatus || (exports.InterpreterStatus = {}));\n\nvar Interpreter =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new Interpreter instance (i.e., service) for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to be interpreted\r\n * @param options Interpreter options\r\n */\n function Interpreter(machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = Interpreter.defaultOptions;\n }\n\n this.machine = machine;\n this.scheduler = new scheduler.Scheduler();\n this.delayedEventsMap = {};\n this.listeners = new Set();\n this.contextListeners = new Set();\n this.stopListeners = new Set();\n this.doneListeners = new Set();\n this.eventListeners = new Set();\n this.sendListeners = new Set();\n /**\r\n * Whether the service is started.\r\n */\n\n this.initialized = false;\n this.status = exports.InterpreterStatus.NotStarted;\n this.children = new Map();\n this.forwardTo = new Set();\n /**\r\n * Alias for Interpreter.prototype.start\r\n */\n\n this.init = this.start;\n /**\r\n * Sends an event to the running interpreter to trigger a transition.\r\n *\r\n * An array of events (batched) can be sent as well, which will send all\r\n * batched events to the running interpreter. The listeners will be\r\n * notified only **once** when all events are processed.\r\n *\r\n * @param event The event(s) to send\r\n */\n\n this.send = function (event, payload) {\n if (utils.isArray(event)) {\n _this.batch(event);\n\n return _this.state;\n }\n\n var _event = utils.toSCXMLEvent(utils.toEventObject(event, payload));\n\n if (_this.status === exports.InterpreterStatus.Stopped) {\n // do nothing\n if (!environment.IS_PRODUCTION) {\n utils.warn(false, \"Event \\\"\" + _event.name + \"\\\" was sent to stopped service \\\"\" + _this.machine.id + \"\\\". This service has already reached its final state, and will not transition.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n return _this.state;\n }\n\n if (_this.status !== exports.InterpreterStatus.Running && !_this.options.deferEvents) {\n throw new Error(\"Event \\\"\" + _event.name + \"\\\" was sent to uninitialized service \\\"\" + _this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n _this.scheduler.schedule(function () {\n // Forward copy of event to child actors\n _this.forward(_event);\n\n var nextState = _this.nextState(_event);\n\n _this.update(nextState, _event);\n });\n\n return _this._state; // TODO: deprecate (should return void)\n // tslint:disable-next-line:semicolon\n };\n\n this.sendTo = function (event, to) {\n var isParent = _this.parent && (to === types.SpecialTargets.Parent || _this.parent.id === to);\n var target = isParent ? _this.parent : utils.isString(to) ? _this.children.get(to) || registry.registry.get(to) : utils.isActor(to) ? to : undefined;\n\n if (!target) {\n if (!isParent) {\n throw new Error(\"Unable to send event to child '\" + to + \"' from service '\" + _this.id + \"'.\");\n } // tslint:disable-next-line:no-console\n\n\n if (!environment.IS_PRODUCTION) {\n utils.warn(false, \"Service '\" + _this.id + \"' has no parent: unable to send event \" + event.type);\n }\n\n return;\n }\n\n if ('machine' in target) {\n // Send SCXML events to machines\n target.send(_tslib.__assign(_tslib.__assign({}, event), {\n name: event.name === actionTypes.error ? \"\" + actions.error(_this.id) : event.name,\n origin: _this.sessionId\n }));\n } else {\n // Send normal events to other targets\n target.send(event.data);\n }\n };\n\n var resolvedOptions = _tslib.__assign(_tslib.__assign({}, Interpreter.defaultOptions), options);\n\n var clock = resolvedOptions.clock,\n logger = resolvedOptions.logger,\n parent = resolvedOptions.parent,\n id = resolvedOptions.id;\n var resolvedId = id !== undefined ? id : machine.id;\n this.id = resolvedId;\n this.logger = logger;\n this.clock = clock;\n this.parent = parent;\n this.options = resolvedOptions;\n this.scheduler = new scheduler.Scheduler({\n deferEvents: this.options.deferEvents\n });\n this.sessionId = registry.registry.bookId();\n }\n\n Object.defineProperty(Interpreter.prototype, \"initialState\", {\n get: function () {\n var _this = this;\n\n if (this._initialState) {\n return this._initialState;\n }\n\n return serviceScope.provide(this, function () {\n _this._initialState = _this.machine.initialState;\n return _this._initialState;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Interpreter.prototype, \"state\", {\n get: function () {\n if (!environment.IS_PRODUCTION) {\n utils.warn(this.status !== exports.InterpreterStatus.NotStarted, \"Attempted to read state from uninitialized service '\" + this.id + \"'. Make sure the service is started first.\");\n }\n\n return this._state;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Executes the actions of the given state, with that state's `context` and `event`.\r\n *\r\n * @param state The state whose actions will be executed\r\n * @param actionsConfig The action implementations to use\r\n */\n\n Interpreter.prototype.execute = function (state, actionsConfig) {\n var e_1, _a;\n\n try {\n for (var _b = _tslib.__values(state.actions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n this.exec(action, state, actionsConfig);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Interpreter.prototype.update = function (state, _event) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d;\n\n var _this = this; // Attach session ID to state\n\n\n state._sessionid = this.sessionId; // Update state\n\n this._state = state; // Execute actions\n\n if (this.options.execute) {\n this.execute(this.state);\n } // Update children\n\n\n this.children.forEach(function (child) {\n _this.state.children[child.id] = child;\n }); // Dev tools\n\n if (this.devTools) {\n this.devTools.send(_event.data, state);\n } // Execute listeners\n\n\n if (state.event) {\n try {\n for (var _e = _tslib.__values(this.eventListeners), _f = _e.next(); !_f.done; _f = _e.next()) {\n var listener = _f.value;\n listener(state.event);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n\n try {\n for (var _g = _tslib.__values(this.listeners), _h = _g.next(); !_h.done; _h = _g.next()) {\n var listener = _h.value;\n listener(state, state.event);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_h && !_h.done && (_b = _g.return)) _b.call(_g);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n try {\n for (var _j = _tslib.__values(this.contextListeners), _k = _j.next(); !_k.done; _k = _j.next()) {\n var contextListener = _k.value;\n contextListener(this.state.context, this.state.history ? this.state.history.context : undefined);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_k && !_k.done && (_c = _j.return)) _c.call(_j);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n var isDone = stateUtils.isInFinalState(state.configuration || [], this.machine);\n\n if (this.state.configuration && isDone) {\n // get final child state node\n var finalChildStateNode = state.configuration.find(function (sn) {\n return sn.type === 'final' && sn.parent === _this.machine;\n });\n var doneData = finalChildStateNode && finalChildStateNode.doneData ? utils.mapContext(finalChildStateNode.doneData, state.context, _event) : undefined;\n\n try {\n for (var _l = _tslib.__values(this.doneListeners), _m = _l.next(); !_m.done; _m = _l.next()) {\n var listener = _m.value;\n listener(actions.doneInvoke(this.id, doneData));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_m && !_m.done && (_d = _l.return)) _d.call(_l);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n this.stop();\n }\n };\n /*\r\n * Adds a listener that is notified whenever a state transition happens. The listener is called with\r\n * the next state and the event object that caused the state transition.\r\n *\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onTransition = function (listener) {\n this.listeners.add(listener); // Send current state to listener\n\n if (this.status === exports.InterpreterStatus.Running) {\n listener(this.state, this.state.event);\n }\n\n return this;\n };\n\n Interpreter.prototype.subscribe = function (nextListenerOrObserver, _, // TODO: error listener\n completeListener) {\n var _this = this;\n\n if (!nextListenerOrObserver) {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n }\n\n var listener;\n var resolvedCompleteListener = completeListener;\n\n if (typeof nextListenerOrObserver === 'function') {\n listener = nextListenerOrObserver;\n } else {\n listener = nextListenerOrObserver.next.bind(nextListenerOrObserver);\n resolvedCompleteListener = nextListenerOrObserver.complete.bind(nextListenerOrObserver);\n }\n\n this.listeners.add(listener); // Send current state to listener\n\n if (this.status === exports.InterpreterStatus.Running) {\n listener(this.state);\n }\n\n if (resolvedCompleteListener) {\n this.onDone(resolvedCompleteListener);\n }\n\n return {\n unsubscribe: function () {\n listener && _this.listeners.delete(listener);\n resolvedCompleteListener && _this.doneListeners.delete(resolvedCompleteListener);\n }\n };\n };\n /**\r\n * Adds an event listener that is notified whenever an event is sent to the running interpreter.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onEvent = function (listener) {\n this.eventListeners.add(listener);\n return this;\n };\n /**\r\n * Adds an event listener that is notified whenever a `send` event occurs.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onSend = function (listener) {\n this.sendListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a context listener that is notified whenever the state context changes.\r\n * @param listener The context listener\r\n */\n\n\n Interpreter.prototype.onChange = function (listener) {\n this.contextListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a listener that is notified when the machine is stopped.\r\n * @param listener The listener\r\n */\n\n\n Interpreter.prototype.onStop = function (listener) {\n this.stopListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a state listener that is notified when the statechart has reached its final state.\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onDone = function (listener) {\n this.doneListeners.add(listener);\n return this;\n };\n /**\r\n * Removes a listener.\r\n * @param listener The listener to remove\r\n */\n\n\n Interpreter.prototype.off = function (listener) {\n this.listeners.delete(listener);\n this.eventListeners.delete(listener);\n this.sendListeners.delete(listener);\n this.stopListeners.delete(listener);\n this.doneListeners.delete(listener);\n this.contextListeners.delete(listener);\n return this;\n };\n /**\r\n * Starts the interpreter from the given state, or the initial state.\r\n * @param initialState The state to start the statechart from\r\n */\n\n\n Interpreter.prototype.start = function (initialState) {\n var _this = this;\n\n if (this.status === exports.InterpreterStatus.Running) {\n // Do not restart the service if it is already started\n return this;\n }\n\n registry.registry.register(this.sessionId, this);\n this.initialized = true;\n this.status = exports.InterpreterStatus.Running;\n var resolvedState = initialState === undefined ? this.initialState : serviceScope.provide(this, function () {\n return State.isState(initialState) ? _this.machine.resolveState(initialState) : _this.machine.resolveState(State.State.from(initialState, _this.machine.context));\n });\n\n if (this.options.devTools) {\n this.attachDev();\n }\n\n this.scheduler.initialize(function () {\n _this.update(resolvedState, actions.initEvent);\n });\n return this;\n };\n /**\r\n * Stops the interpreter and unsubscribe all listeners.\r\n *\r\n * This will also notify the `onStop` listeners.\r\n */\n\n\n Interpreter.prototype.stop = function () {\n var e_6, _a, e_7, _b, e_8, _c, e_9, _d, e_10, _e;\n\n var _this = this;\n\n try {\n for (var _f = _tslib.__values(this.listeners), _g = _f.next(); !_g.done; _g = _f.next()) {\n var listener = _g.value;\n this.listeners.delete(listener);\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n try {\n for (var _h = _tslib.__values(this.stopListeners), _j = _h.next(); !_j.done; _j = _h.next()) {\n var listener = _j.value; // call listener, then remove\n\n listener();\n this.stopListeners.delete(listener);\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n\n try {\n for (var _k = _tslib.__values(this.contextListeners), _l = _k.next(); !_l.done; _l = _k.next()) {\n var listener = _l.value;\n this.contextListeners.delete(listener);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_l && !_l.done && (_c = _k.return)) _c.call(_k);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n\n try {\n for (var _m = _tslib.__values(this.doneListeners), _o = _m.next(); !_o.done; _o = _m.next()) {\n var listener = _o.value;\n this.doneListeners.delete(listener);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (_o && !_o.done && (_d = _m.return)) _d.call(_m);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n\n if (!this.initialized) {\n // Interpreter already stopped; do nothing\n return this;\n }\n\n this.state.configuration.forEach(function (stateNode) {\n var e_11, _a;\n\n try {\n for (var _b = _tslib.__values(stateNode.definition.exit), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n\n _this.exec(action, _this.state);\n }\n } catch (e_11_1) {\n e_11 = {\n error: e_11_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_11) throw e_11.error;\n }\n }\n }); // Stop all children\n\n this.children.forEach(function (child) {\n if (utils.isFunction(child.stop)) {\n child.stop();\n }\n });\n\n try {\n // Cancel all delayed events\n for (var _p = _tslib.__values(utils.keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var key = _q.value;\n this.clock.clearTimeout(this.delayedEventsMap[key]);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (_q && !_q.done && (_e = _p.return)) _e.call(_p);\n } finally {\n if (e_10) throw e_10.error;\n }\n }\n\n this.scheduler.clear();\n this.initialized = false;\n this.status = exports.InterpreterStatus.Stopped;\n registry.registry.free(this.sessionId);\n return this;\n };\n\n Interpreter.prototype.batch = function (events) {\n var _this = this;\n\n if (this.status === exports.InterpreterStatus.NotStarted && this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!environment.IS_PRODUCTION) {\n utils.warn(false, events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\" and are deferred. Make sure .start() is called for this service.\\nEvent: \" + JSON.stringify(event));\n }\n } else if (this.status !== exports.InterpreterStatus.Running) {\n throw new Error( // tslint:disable-next-line:max-line-length\n events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\");\n }\n\n this.scheduler.schedule(function () {\n var e_12, _a;\n\n var nextState = _this.state;\n var batchChanged = false;\n var batchedActions = [];\n\n var _loop_1 = function (event_1) {\n var _event = utils.toSCXMLEvent(event_1);\n\n _this.forward(_event);\n\n nextState = serviceScope.provide(_this, function () {\n return _this.machine.transition(nextState, _event);\n });\n batchedActions.push.apply(batchedActions, _tslib.__spreadArray([], _tslib.__read(nextState.actions.map(function (a) {\n return State.bindActionToState(a, nextState);\n }))));\n batchChanged = batchChanged || !!nextState.changed;\n };\n\n try {\n for (var events_1 = _tslib.__values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_1 = events_1_1.value;\n\n _loop_1(event_1);\n }\n } catch (e_12_1) {\n e_12 = {\n error: e_12_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);\n } finally {\n if (e_12) throw e_12.error;\n }\n }\n\n nextState.changed = batchChanged;\n nextState.actions = batchedActions;\n\n _this.update(nextState, utils.toSCXMLEvent(events[events.length - 1]));\n });\n };\n /**\r\n * Returns a send function bound to this interpreter instance.\r\n *\r\n * @param event The event to be sent by the sender.\r\n */\n\n\n Interpreter.prototype.sender = function (event) {\n return this.send.bind(this, event);\n };\n /**\r\n * Returns the next state given the interpreter's current state and the event.\r\n *\r\n * This is a pure method that does _not_ update the interpreter's state.\r\n *\r\n * @param event The event to determine the next state\r\n */\n\n\n Interpreter.prototype.nextState = function (event) {\n var _this = this;\n\n var _event = utils.toSCXMLEvent(event);\n\n if (_event.name.indexOf(actionTypes.errorPlatform) === 0 && !this.state.nextEvents.some(function (nextEvent) {\n return nextEvent.indexOf(actionTypes.errorPlatform) === 0;\n })) {\n throw _event.data.data;\n }\n\n var nextState = serviceScope.provide(this, function () {\n return _this.machine.transition(_this.state, _event);\n });\n return nextState;\n };\n\n Interpreter.prototype.forward = function (event) {\n var e_13, _a;\n\n try {\n for (var _b = _tslib.__values(this.forwardTo), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var child = this.children.get(id);\n\n if (!child) {\n throw new Error(\"Unable to forward event '\" + event + \"' from interpreter '\" + this.id + \"' to nonexistant child '\" + id + \"'.\");\n }\n\n child.send(event);\n }\n } catch (e_13_1) {\n e_13 = {\n error: e_13_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_13) throw e_13.error;\n }\n }\n };\n\n Interpreter.prototype.defer = function (sendAction) {\n var _this = this;\n\n this.delayedEventsMap[sendAction.id] = this.clock.setTimeout(function () {\n if (sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to);\n } else {\n _this.send(sendAction._event);\n }\n }, sendAction.delay);\n };\n\n Interpreter.prototype.cancel = function (sendId) {\n this.clock.clearTimeout(this.delayedEventsMap[sendId]);\n delete this.delayedEventsMap[sendId];\n };\n\n Interpreter.prototype.exec = function (action, state, actionFunctionMap) {\n if (actionFunctionMap === void 0) {\n actionFunctionMap = this.machine.options.actions;\n }\n\n var context = state.context,\n _event = state._event;\n var actionOrExec = action.exec || actions.getActionFunction(action.type, actionFunctionMap);\n var exec = utils.isFunction(actionOrExec) ? actionOrExec : actionOrExec ? actionOrExec.exec : action.exec;\n\n if (exec) {\n try {\n return exec(context, _event.data, {\n action: action,\n state: this.state,\n _event: _event\n });\n } catch (err) {\n if (this.parent) {\n this.parent.send({\n type: 'xstate.error',\n data: err\n });\n }\n\n throw err;\n }\n }\n\n switch (action.type) {\n case actionTypes.send:\n var sendAction = action;\n\n if (typeof sendAction.delay === 'number') {\n this.defer(sendAction);\n return;\n } else {\n if (sendAction.to) {\n this.sendTo(sendAction._event, sendAction.to);\n } else {\n this.send(sendAction._event);\n }\n }\n\n break;\n\n case actionTypes.cancel:\n this.cancel(action.sendId);\n break;\n\n case actionTypes.start:\n {\n var activity = action.activity; // If the activity will be stopped right after it's started\n // (such as in transient states)\n // don't bother starting the activity.\n\n if (!this.state.activities[activity.id || activity.type]) {\n break;\n } // Invoked services\n\n\n if (activity.type === types.ActionTypes.Invoke) {\n var invokeSource = utils.toInvokeSource(activity.src);\n var serviceCreator = this.machine.options.services ? this.machine.options.services[invokeSource.type] : undefined;\n var id = activity.id,\n data = activity.data;\n\n if (!environment.IS_PRODUCTION) {\n utils.warn(!('forward' in activity), // tslint:disable-next-line:max-line-length\n \"`forward` property is deprecated (found in invocation of '\" + activity.src + \"' in in machine '\" + this.machine.id + \"'). \" + \"Please use `autoForward` instead.\");\n }\n\n var autoForward = 'autoForward' in activity ? activity.autoForward : !!activity.forward;\n\n if (!serviceCreator) {\n // tslint:disable-next-line:no-console\n if (!environment.IS_PRODUCTION) {\n utils.warn(false, \"No service found for invocation '\" + activity.src + \"' in machine '\" + this.machine.id + \"'.\");\n }\n\n return;\n }\n\n var resolvedData = data ? utils.mapContext(data, context, _event) : undefined;\n\n if (typeof serviceCreator === 'string') {\n // TODO: warn\n return;\n }\n\n var source = utils.isFunction(serviceCreator) ? serviceCreator(context, _event.data, {\n data: resolvedData,\n src: invokeSource\n }) : serviceCreator;\n\n if (!source) {\n // TODO: warn?\n return;\n }\n\n var options = void 0;\n\n if (utils.isMachine(source)) {\n source = resolvedData ? source.withContext(resolvedData) : source;\n options = {\n autoForward: autoForward\n };\n }\n\n this.spawn(source, id, options);\n } else {\n this.spawnActivity(activity);\n }\n\n break;\n }\n\n case actionTypes.stop:\n {\n this.stopChild(action.activity.id);\n break;\n }\n\n case actionTypes.log:\n var label = action.label,\n value = action.value;\n\n if (label) {\n this.logger(label, value);\n } else {\n this.logger(value);\n }\n\n break;\n\n default:\n if (!environment.IS_PRODUCTION) {\n utils.warn(false, \"No implementation found for action type '\" + action.type + \"'\");\n }\n\n break;\n }\n\n return undefined;\n };\n\n Interpreter.prototype.removeChild = function (childId) {\n this.children.delete(childId);\n this.forwardTo.delete(childId);\n delete this.state.children[childId];\n };\n\n Interpreter.prototype.stopChild = function (childId) {\n var child = this.children.get(childId);\n\n if (!child) {\n return;\n }\n\n this.removeChild(childId);\n\n if (utils.isFunction(child.stop)) {\n child.stop();\n }\n };\n\n Interpreter.prototype.spawn = function (entity, name, options) {\n if (utils.isPromiseLike(entity)) {\n return this.spawnPromise(Promise.resolve(entity), name);\n } else if (utils.isFunction(entity)) {\n return this.spawnCallback(entity, name);\n } else if (Actor.isSpawnedActor(entity)) {\n return this.spawnActor(entity, name);\n } else if (utils.isObservable(entity)) {\n return this.spawnObservable(entity, name);\n } else if (utils.isMachine(entity)) {\n return this.spawnMachine(entity, _tslib.__assign(_tslib.__assign({}, options), {\n id: name\n }));\n } else if (utils.isBehavior(entity)) {\n return this.spawnBehavior(entity, name);\n } else {\n throw new Error(\"Unable to spawn entity \\\"\" + name + \"\\\" of type \\\"\" + typeof entity + \"\\\".\");\n }\n };\n\n Interpreter.prototype.spawnMachine = function (machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var childService = new Interpreter(machine, _tslib.__assign(_tslib.__assign({}, this.options), {\n parent: this,\n id: options.id || machine.id\n }));\n\n var resolvedOptions = _tslib.__assign(_tslib.__assign({}, DEFAULT_SPAWN_OPTIONS), options);\n\n if (resolvedOptions.sync) {\n childService.onTransition(function (state) {\n _this.send(actionTypes.update, {\n state: state,\n id: childService.id\n });\n });\n }\n\n var actor = childService;\n this.children.set(childService.id, actor);\n\n if (resolvedOptions.autoForward) {\n this.forwardTo.add(childService.id);\n }\n\n childService.onDone(function (doneEvent) {\n _this.removeChild(childService.id);\n\n _this.send(utils.toSCXMLEvent(doneEvent, {\n origin: childService.id\n }));\n }).start();\n return actor;\n };\n\n Interpreter.prototype.spawnBehavior = function (behavior, id) {\n var actorRef = behaviors.spawnBehavior(behavior, {\n id: id,\n parent: this\n });\n this.children.set(id, actorRef);\n return actorRef;\n };\n\n Interpreter.prototype.spawnPromise = function (promise, id) {\n var _this = this;\n\n var canceled = false;\n var resolvedData;\n promise.then(function (response) {\n if (!canceled) {\n resolvedData = response;\n\n _this.removeChild(id);\n\n _this.send(utils.toSCXMLEvent(actions.doneInvoke(id, response), {\n origin: id\n }));\n }\n }, function (errorData) {\n if (!canceled) {\n _this.removeChild(id);\n\n var errorEvent = actions.error(id, errorData);\n\n try {\n // Send \"error.platform.id\" to this (parent).\n _this.send(utils.toSCXMLEvent(errorEvent, {\n origin: id\n }));\n } catch (error) {\n utils.reportUnhandledExceptionOnInvocation(errorData, error, id);\n\n if (_this.devTools) {\n _this.devTools.send(errorEvent, _this.state);\n }\n\n if (_this.machine.strict) {\n // it would be better to always stop the state machine if unhandled\n // exception/promise rejection happens but because we don't want to\n // break existing code so enforce it on strict mode only especially so\n // because documentation says that onError is optional\n _this.stop();\n }\n }\n }\n });\n var actor = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n var observer = utils.toObserver(next, handleError, complete);\n var unsubscribed = false;\n promise.then(function (response) {\n if (unsubscribed) {\n return;\n }\n\n observer.next(response);\n\n if (unsubscribed) {\n return;\n }\n\n observer.complete();\n }, function (err) {\n if (unsubscribed) {\n return;\n }\n\n observer.error(err);\n });\n return {\n unsubscribe: function () {\n return unsubscribed = true;\n }\n };\n },\n stop: function () {\n canceled = true;\n },\n toJSON: function () {\n return {\n id: id\n };\n },\n getSnapshot: function () {\n return resolvedData;\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnCallback = function (callback, id) {\n var _this = this;\n\n var canceled = false;\n var receivers = new Set();\n var listeners = new Set();\n var emitted;\n\n var receive = function (e) {\n emitted = e;\n listeners.forEach(function (listener) {\n return listener(e);\n });\n\n if (canceled) {\n return;\n }\n\n _this.send(utils.toSCXMLEvent(e, {\n origin: id\n }));\n };\n\n var callbackStop;\n\n try {\n callbackStop = callback(receive, function (newListener) {\n receivers.add(newListener);\n });\n } catch (err) {\n this.send(actions.error(id, err));\n }\n\n if (utils.isPromiseLike(callbackStop)) {\n // it turned out to be an async function, can't reliably check this before calling `callback`\n // because transpiled async functions are not recognizable\n return this.spawnPromise(callbackStop, id);\n }\n\n var actor = {\n id: id,\n send: function (event) {\n return receivers.forEach(function (receiver) {\n return receiver(event);\n });\n },\n subscribe: function (next) {\n listeners.add(next);\n return {\n unsubscribe: function () {\n listeners.delete(next);\n }\n };\n },\n stop: function () {\n canceled = true;\n\n if (utils.isFunction(callbackStop)) {\n callbackStop();\n }\n },\n toJSON: function () {\n return {\n id: id\n };\n },\n getSnapshot: function () {\n return emitted;\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnObservable = function (source, id) {\n var _this = this;\n\n var emitted;\n var subscription = source.subscribe(function (value) {\n emitted = value;\n\n _this.send(utils.toSCXMLEvent(value, {\n origin: id\n }));\n }, function (err) {\n _this.removeChild(id);\n\n _this.send(utils.toSCXMLEvent(actions.error(id, err), {\n origin: id\n }));\n }, function () {\n _this.removeChild(id);\n\n _this.send(utils.toSCXMLEvent(actions.doneInvoke(id), {\n origin: id\n }));\n });\n var actor = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n return source.subscribe(next, handleError, complete);\n },\n stop: function () {\n return subscription.unsubscribe();\n },\n getSnapshot: function () {\n return emitted;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActor = function (actor, name) {\n this.children.set(name, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActivity = function (activity) {\n var implementation = this.machine.options && this.machine.options.activities ? this.machine.options.activities[activity.type] : undefined;\n\n if (!implementation) {\n if (!environment.IS_PRODUCTION) {\n utils.warn(false, \"No implementation found for activity '\" + activity.type + \"'\");\n } // tslint:disable-next-line:no-console\n\n\n return;\n } // Start implementation\n\n\n var dispose = implementation(this.state.context, activity);\n this.spawnEffect(activity.id, dispose);\n };\n\n Interpreter.prototype.spawnEffect = function (id, dispose) {\n this.children.set(id, {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n stop: dispose || undefined,\n getSnapshot: function () {\n return undefined;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n });\n };\n\n Interpreter.prototype.attachDev = function () {\n var global = devTools.getGlobal();\n\n if (this.options.devTools && global) {\n if (global.__REDUX_DEVTOOLS_EXTENSION__) {\n var devToolsOptions = typeof this.options.devTools === 'object' ? this.options.devTools : undefined;\n this.devTools = global.__REDUX_DEVTOOLS_EXTENSION__.connect(_tslib.__assign(_tslib.__assign({\n name: this.id,\n autoPause: true,\n stateSanitizer: function (state) {\n return {\n value: state.value,\n context: state.context,\n actions: state.actions\n };\n }\n }, devToolsOptions), {\n features: _tslib.__assign({\n jump: false,\n skip: false\n }, devToolsOptions ? devToolsOptions.features : undefined)\n }), this.machine);\n this.devTools.init(this.state);\n } // add XState-specific dev tooling hook\n\n\n devTools.registerService(this);\n }\n };\n\n Interpreter.prototype.toJSON = function () {\n return {\n id: this.id\n };\n };\n\n Interpreter.prototype[utils.symbolObservable] = function () {\n return this;\n }; // this gets stripped by Babel to avoid having \"undefined\" property in environments without this non-standard Symbol\n // it has to be here to be included in the generated .d.ts\n\n\n Interpreter.prototype.getSnapshot = function () {\n if (this.status === exports.InterpreterStatus.NotStarted) {\n return this.initialState;\n }\n\n return this._state;\n };\n /**\r\n * The default interpreter options:\r\n *\r\n * - `clock` uses the global `setTimeout` and `clearTimeout` functions\r\n * - `logger` uses the global `console.log()` method\r\n */\n\n\n Interpreter.defaultOptions = /*#__PURE__*/function (global) {\n return {\n execute: true,\n deferEvents: true,\n clock: {\n setTimeout: function (fn, ms) {\n return setTimeout(fn, ms);\n },\n clearTimeout: function (id) {\n return clearTimeout(id);\n }\n },\n logger: global.console.log.bind(console),\n devTools: false\n };\n }(typeof self !== 'undefined' ? self : global);\n\n Interpreter.interpret = interpret;\n return Interpreter;\n}();\n\nvar resolveSpawnOptions = function (nameOrOptions) {\n if (utils.isString(nameOrOptions)) {\n return _tslib.__assign(_tslib.__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: nameOrOptions\n });\n }\n\n return _tslib.__assign(_tslib.__assign(_tslib.__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: utils.uniqueId()\n }), nameOrOptions);\n};\n\nfunction spawn(entity, nameOrOptions) {\n var resolvedOptions = resolveSpawnOptions(nameOrOptions);\n return serviceScope.consume(function (service) {\n if (!environment.IS_PRODUCTION) {\n var isLazyEntity = utils.isMachine(entity) || utils.isFunction(entity);\n utils.warn(!!service || isLazyEntity, \"Attempted to spawn an Actor (ID: \\\"\" + (utils.isMachine(entity) ? entity.id : 'undefined') + \"\\\") outside of a service. This will have no effect.\");\n }\n\n if (service) {\n return service.spawn(entity, resolvedOptions.name, resolvedOptions);\n } else {\n return Actor.createDeferredActor(entity, resolvedOptions.name);\n }\n });\n}\n/**\r\n * Creates a new Interpreter instance for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to interpret\r\n * @param options Interpreter options\r\n */\n\nfunction interpret(machine, options) {\n var interpreter = new Interpreter(machine, options);\n return interpreter;\n}\n\nexports.Interpreter = Interpreter;\nexports.interpret = interpret;\nexports.spawn = spawn;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar STATE_DELIMITER = '.';\nvar EMPTY_ACTIVITY_MAP = {};\nvar DEFAULT_GUARD_TYPE = 'xstate.guard';\nvar TARGETLESS_KEY = '';\n\nexports.DEFAULT_GUARD_TYPE = DEFAULT_GUARD_TYPE;\nexports.EMPTY_ACTIVITY_MAP = EMPTY_ACTIVITY_MAP;\nexports.STATE_DELIMITER = STATE_DELIMITER;\nexports.TARGETLESS_KEY = TARGETLESS_KEY;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n(function (ActionTypes) {\n ActionTypes[\"Start\"] = \"xstate.start\";\n ActionTypes[\"Stop\"] = \"xstate.stop\";\n ActionTypes[\"Raise\"] = \"xstate.raise\";\n ActionTypes[\"Send\"] = \"xstate.send\";\n ActionTypes[\"Cancel\"] = \"xstate.cancel\";\n ActionTypes[\"NullEvent\"] = \"\";\n ActionTypes[\"Assign\"] = \"xstate.assign\";\n ActionTypes[\"After\"] = \"xstate.after\";\n ActionTypes[\"DoneState\"] = \"done.state\";\n ActionTypes[\"DoneInvoke\"] = \"done.invoke\";\n ActionTypes[\"Log\"] = \"xstate.log\";\n ActionTypes[\"Init\"] = \"xstate.init\";\n ActionTypes[\"Invoke\"] = \"xstate.invoke\";\n ActionTypes[\"ErrorExecution\"] = \"error.execution\";\n ActionTypes[\"ErrorCommunication\"] = \"error.communication\";\n ActionTypes[\"ErrorPlatform\"] = \"error.platform\";\n ActionTypes[\"ErrorCustom\"] = \"xstate.error\";\n ActionTypes[\"Update\"] = \"xstate.update\";\n ActionTypes[\"Pure\"] = \"xstate.pure\";\n ActionTypes[\"Choose\"] = \"xstate.choose\";\n})(exports.ActionTypes || (exports.ActionTypes = {}));\n\n(function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n})(exports.SpecialTargets || (exports.SpecialTargets = {}));\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _tslib = require('./_virtual/_tslib.js');\nvar utils = require('./utils.js');\nvar serviceScope = require('./serviceScope.js');\n\nfunction createNullActor(id) {\n return {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n getSnapshot: function () {\n return undefined;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n };\n}\n/**\r\n * Creates a deferred actor that is able to be invoked given the provided\r\n * invocation information in its `.meta` value.\r\n *\r\n * @param invokeDefinition The meta information needed to invoke the actor.\r\n */\n\nfunction createInvocableActor(invokeDefinition, machine, context, _event) {\n var _a;\n\n var invokeSrc = utils.toInvokeSource(invokeDefinition.src);\n var serviceCreator = (_a = machine === null || machine === void 0 ? void 0 : machine.options.services) === null || _a === void 0 ? void 0 : _a[invokeSrc.type];\n var resolvedData = invokeDefinition.data ? utils.mapContext(invokeDefinition.data, context, _event) : undefined;\n var tempActor = serviceCreator ? createDeferredActor(serviceCreator, invokeDefinition.id, resolvedData) : createNullActor(invokeDefinition.id); // @ts-ignore\n\n tempActor.meta = invokeDefinition;\n return tempActor;\n}\nfunction createDeferredActor(entity, id, data) {\n var tempActor = createNullActor(id); // @ts-ignore\n\n tempActor.deferred = true;\n\n if (utils.isMachine(entity)) {\n // \"mute\" the existing service scope so potential spawned actors within the `.initialState` stay deferred here\n var initialState_1 = tempActor.state = serviceScope.provide(undefined, function () {\n return (data ? entity.withContext(data) : entity).initialState;\n });\n\n tempActor.getSnapshot = function () {\n return initialState_1;\n };\n }\n\n return tempActor;\n}\nfunction isActor(item) {\n try {\n return typeof item.send === 'function';\n } catch (e) {\n return false;\n }\n}\nfunction isSpawnedActor(item) {\n return isActor(item) && 'id' in item;\n}\nfunction toActorRef(actorRefLike) {\n return _tslib.__assign({\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n id: 'anonymous',\n getSnapshot: function () {\n return undefined;\n }\n }, actorRefLike);\n}\n\nexports.createDeferredActor = createDeferredActor;\nexports.createInvocableActor = createInvocableActor;\nexports.createNullActor = createNullActor;\nexports.isActor = isActor;\nexports.isSpawnedActor = isSpawnedActor;\nexports.toActorRef = toActorRef;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _tslib = require('./_virtual/_tslib.js');\nvar utils = require('./utils.js');\n\nvar isLeafNode = function (stateNode) {\n return stateNode.type === 'atomic' || stateNode.type === 'final';\n};\nfunction getChildren(stateNode) {\n return utils.keys(stateNode.states).map(function (key) {\n return stateNode.states[key];\n });\n}\nfunction getAllStateNodes(stateNode) {\n var stateNodes = [stateNode];\n\n if (isLeafNode(stateNode)) {\n return stateNodes;\n }\n\n return stateNodes.concat(utils.flatten(getChildren(stateNode).map(getAllStateNodes)));\n}\nfunction getConfiguration(prevStateNodes, stateNodes) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n\n var prevConfiguration = new Set(prevStateNodes);\n var prevAdjList = getAdjList(prevConfiguration);\n var configuration = new Set(stateNodes);\n\n try {\n // add all ancestors\n for (var configuration_1 = _tslib.__values(configuration), configuration_1_1 = configuration_1.next(); !configuration_1_1.done; configuration_1_1 = configuration_1.next()) {\n var s = configuration_1_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configuration_1_1 && !configuration_1_1.done && (_a = configuration_1.return)) _a.call(configuration_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var adjList = getAdjList(configuration);\n\n try {\n // add descendants\n for (var configuration_2 = _tslib.__values(configuration), configuration_2_1 = configuration_2.next(); !configuration_2_1.done; configuration_2_1 = configuration_2.next()) {\n var s = configuration_2_1.value; // if previously active, add existing child nodes\n\n if (s.type === 'compound' && (!adjList.get(s) || !adjList.get(s).length)) {\n if (prevAdjList.get(s)) {\n prevAdjList.get(s).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n s.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n } else {\n if (s.type === 'parallel') {\n try {\n for (var _e = (e_3 = void 0, _tslib.__values(getChildren(s))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n\n if (child.type === 'history') {\n continue;\n }\n\n if (!configuration.has(child)) {\n configuration.add(child);\n\n if (prevAdjList.get(child)) {\n prevAdjList.get(child).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n child.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_c = _e.return)) _c.call(_e);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (configuration_2_1 && !configuration_2_1.done && (_b = configuration_2.return)) _b.call(configuration_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n try {\n // add all ancestors\n for (var configuration_3 = _tslib.__values(configuration), configuration_3_1 = configuration_3.next(); !configuration_3_1.done; configuration_3_1 = configuration_3.next()) {\n var s = configuration_3_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (configuration_3_1 && !configuration_3_1.done && (_d = configuration_3.return)) _d.call(configuration_3);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return configuration;\n}\n\nfunction getValueFromAdj(baseNode, adjList) {\n var childStateNodes = adjList.get(baseNode);\n\n if (!childStateNodes) {\n return {}; // todo: fix?\n }\n\n if (baseNode.type === 'compound') {\n var childStateNode = childStateNodes[0];\n\n if (childStateNode) {\n if (isLeafNode(childStateNode)) {\n return childStateNode.key;\n }\n } else {\n return {};\n }\n }\n\n var stateValue = {};\n childStateNodes.forEach(function (csn) {\n stateValue[csn.key] = getValueFromAdj(csn, adjList);\n });\n return stateValue;\n}\n\nfunction getAdjList(configuration) {\n var e_5, _a;\n\n var adjList = new Map();\n\n try {\n for (var configuration_4 = _tslib.__values(configuration), configuration_4_1 = configuration_4.next(); !configuration_4_1.done; configuration_4_1 = configuration_4.next()) {\n var s = configuration_4_1.value;\n\n if (!adjList.has(s)) {\n adjList.set(s, []);\n }\n\n if (s.parent) {\n if (!adjList.has(s.parent)) {\n adjList.set(s.parent, []);\n }\n\n adjList.get(s.parent).push(s);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (configuration_4_1 && !configuration_4_1.done && (_a = configuration_4.return)) _a.call(configuration_4);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return adjList;\n}\nfunction getValue(rootNode, configuration) {\n var config = getConfiguration([rootNode], configuration);\n return getValueFromAdj(rootNode, getAdjList(config));\n}\nfunction has(iterable, item) {\n if (Array.isArray(iterable)) {\n return iterable.some(function (member) {\n return member === item;\n });\n }\n\n if (iterable instanceof Set) {\n return iterable.has(item);\n }\n\n return false; // TODO: fix\n}\nfunction nextEvents(configuration) {\n return _tslib.__spreadArray([], _tslib.__read(new Set(utils.flatten(_tslib.__spreadArray([], _tslib.__read(configuration.map(function (sn) {\n return sn.ownEvents;\n })))))));\n}\nfunction isInFinalState(configuration, stateNode) {\n if (stateNode.type === 'compound') {\n return getChildren(stateNode).some(function (s) {\n return s.type === 'final' && has(configuration, s);\n });\n }\n\n if (stateNode.type === 'parallel') {\n return getChildren(stateNode).every(function (sn) {\n return isInFinalState(configuration, sn);\n });\n }\n\n return false;\n}\nfunction getMeta(configuration) {\n if (configuration === void 0) {\n configuration = [];\n }\n\n return configuration.reduce(function (acc, stateNode) {\n if (stateNode.meta !== undefined) {\n acc[stateNode.id] = stateNode.meta;\n }\n\n return acc;\n }, {});\n}\n\nexports.getAdjList = getAdjList;\nexports.getAllStateNodes = getAllStateNodes;\nexports.getChildren = getChildren;\nexports.getConfiguration = getConfiguration;\nexports.getMeta = getMeta;\nexports.getValue = getValue;\nexports.has = has;\nexports.isInFinalState = isInFinalState;\nexports.isLeafNode = isLeafNode;\nexports.nextEvents = nextEvents;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar children = /*#__PURE__*/new Map();\nvar sessionIdIndex = 0;\nvar registry = {\n bookId: function () {\n return \"x:\" + sessionIdIndex++;\n },\n register: function (id, actor) {\n children.set(id, actor);\n return id;\n },\n get: function (id) {\n return children.get(id);\n },\n free: function (id) {\n children.delete(id);\n }\n};\n\nexports.registry = registry;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _tslib = require('./_virtual/_tslib.js');\nvar constants = require('./constants.js');\nvar utils = require('./utils.js');\nvar stateUtils = require('./stateUtils.js');\nvar actions = require('./actions.js');\n\nfunction stateValuesEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n if (utils.isString(a) || utils.isString(b)) {\n return a === b;\n }\n\n var aKeys = utils.keys(a);\n var bKeys = utils.keys(b);\n return aKeys.length === bKeys.length && aKeys.every(function (key) {\n return stateValuesEqual(a[key], b[key]);\n });\n}\nfunction isState(state) {\n if (utils.isString(state)) {\n return false;\n }\n\n return 'value' in state && 'history' in state;\n}\nfunction bindActionToState(action, state) {\n var exec = action.exec;\n\n var boundAction = _tslib.__assign(_tslib.__assign({}, action), {\n exec: exec !== undefined ? function () {\n return exec(state.context, state.event, {\n action: action,\n state: state,\n _event: state._event\n });\n } : undefined\n });\n\n return boundAction;\n}\n\nvar State =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new State instance.\r\n * @param value The state value\r\n * @param context The extended state\r\n * @param historyValue The tree representing historical values of the state nodes\r\n * @param history The previous state\r\n * @param actions An array of action objects to execute as side-effects\r\n * @param activities A mapping of activities and whether they are started (`true`) or stopped (`false`).\r\n * @param meta\r\n * @param events Internal event queue. Should be empty with run-to-completion semantics.\r\n * @param configuration\r\n */\n function State(config) {\n var _this = this;\n\n var _a;\n\n this.actions = [];\n this.activities = constants.EMPTY_ACTIVITY_MAP;\n this.meta = {};\n this.events = [];\n this.value = config.value;\n this.context = config.context;\n this._event = config._event;\n this._sessionid = config._sessionid;\n this.event = this._event.data;\n this.historyValue = config.historyValue;\n this.history = config.history;\n this.actions = config.actions || [];\n this.activities = config.activities || constants.EMPTY_ACTIVITY_MAP;\n this.meta = stateUtils.getMeta(config.configuration);\n this.events = config.events || [];\n this.matches = this.matches.bind(this);\n this.toStrings = this.toStrings.bind(this);\n this.configuration = config.configuration;\n this.transitions = config.transitions;\n this.children = config.children;\n this.done = !!config.done;\n this.tags = (_a = config.tags) !== null && _a !== void 0 ? _a : new Set();\n Object.defineProperty(this, 'nextEvents', {\n get: function () {\n return stateUtils.nextEvents(_this.configuration);\n }\n });\n }\n /**\r\n * Creates a new State instance for the given `stateValue` and `context`.\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.from = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (stateValue.context !== context) {\n return new State({\n value: stateValue.value,\n context: context,\n _event: stateValue._event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n actions: [],\n activities: stateValue.activities,\n meta: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n }\n\n return stateValue;\n }\n\n var _event = actions.initEvent;\n return new State({\n value: stateValue,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: undefined,\n history: undefined,\n actions: [],\n activities: undefined,\n meta: undefined,\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n };\n /**\r\n * Creates a new State instance for the given `config`.\r\n * @param config The state config\r\n */\n\n\n State.create = function (config) {\n return new State(config);\n };\n /**\r\n * Creates a new `State` instance for the given `stateValue` and `context` with no actions (side-effects).\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.inert = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (!stateValue.actions.length) {\n return stateValue;\n }\n\n var _event = actions.initEvent;\n return new State({\n value: stateValue.value,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n activities: stateValue.activities,\n configuration: stateValue.configuration,\n transitions: [],\n children: {}\n });\n }\n\n return State.from(stateValue, context);\n };\n /**\r\n * Returns an array of all the string leaf state node paths.\r\n * @param stateValue\r\n * @param delimiter The character(s) that separate each subpath in the string state node path.\r\n */\n\n\n State.prototype.toStrings = function (stateValue, delimiter) {\n var _this = this;\n\n if (stateValue === void 0) {\n stateValue = this.value;\n }\n\n if (delimiter === void 0) {\n delimiter = '.';\n }\n\n if (utils.isString(stateValue)) {\n return [stateValue];\n }\n\n var valueKeys = utils.keys(stateValue);\n return valueKeys.concat.apply(valueKeys, _tslib.__spreadArray([], _tslib.__read(valueKeys.map(function (key) {\n return _this.toStrings(stateValue[key], delimiter).map(function (s) {\n return key + delimiter + s;\n });\n }))));\n };\n\n State.prototype.toJSON = function () {\n var _a = this,\n configuration = _a.configuration,\n transitions = _a.transitions,\n tags = _a.tags,\n jsonValues = _tslib.__rest(_a, [\"configuration\", \"transitions\", \"tags\"]);\n\n return _tslib.__assign(_tslib.__assign({}, jsonValues), {\n tags: Array.from(tags)\n });\n };\n /**\r\n * Whether the current state value is a subset of the given parent state value.\r\n * @param parentStateValue\r\n */\n\n\n State.prototype.matches = function (parentStateValue) {\n return utils.matchesState(parentStateValue, this.value);\n };\n /**\r\n * Whether the current state configuration has a state node with the specified `tag`.\r\n * @param tag\r\n */\n\n\n State.prototype.hasTag = function (tag) {\n return this.tags.has(tag);\n };\n\n return State;\n}();\n\nexports.State = State;\nexports.bindActionToState = bindActionToState;\nexports.isState = isState;\nexports.stateValuesEqual = stateValuesEqual;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar types = require('./types.js');\n\nvar start = types.ActionTypes.Start;\nvar stop = types.ActionTypes.Stop;\nvar raise = types.ActionTypes.Raise;\nvar send = types.ActionTypes.Send;\nvar cancel = types.ActionTypes.Cancel;\nvar nullEvent = types.ActionTypes.NullEvent;\nvar assign = types.ActionTypes.Assign;\nvar after = types.ActionTypes.After;\nvar doneState = types.ActionTypes.DoneState;\nvar log = types.ActionTypes.Log;\nvar init = types.ActionTypes.Init;\nvar invoke = types.ActionTypes.Invoke;\nvar errorExecution = types.ActionTypes.ErrorExecution;\nvar errorPlatform = types.ActionTypes.ErrorPlatform;\nvar error = types.ActionTypes.ErrorCustom;\nvar update = types.ActionTypes.Update;\nvar choose = types.ActionTypes.Choose;\nvar pure = types.ActionTypes.Pure;\n\nexports.after = after;\nexports.assign = assign;\nexports.cancel = cancel;\nexports.choose = choose;\nexports.doneState = doneState;\nexports.error = error;\nexports.errorExecution = errorExecution;\nexports.errorPlatform = errorPlatform;\nexports.init = init;\nexports.invoke = invoke;\nexports.log = log;\nexports.nullEvent = nullEvent;\nexports.pure = pure;\nexports.raise = raise;\nexports.send = send;\nexports.start = start;\nexports.stop = stop;\nexports.update = update;\n"],"sourceRoot":""}