mobx-keystone
Advanced tools
Comparing version 0.14.1 to 0.15.0
@@ -7,3 +7,3 @@ export { ActionCall, applyAction } from "./applyAction"; | ||
export { isModelAction, modelAction } from "./modelAction"; | ||
export { FlowRet, isModelFlow, modelFlow } from "./modelFlow"; | ||
export { castModelFlow, castYield, FlowFunction, FlowFunctionAsPromiseFunction, isModelFlow, modelFlow, PromiseFunction, } from "./modelFlow"; | ||
export { runUnprotected } from "./protection"; |
@@ -27,13 +27,43 @@ /** | ||
/** | ||
* Type that gets the right return type of a flow. | ||
* A flow function, this is, a function that returns a generator (a generator function). | ||
*/ | ||
export declare type FlowFunction<A extends any[], R> = (...args: A) => Generator<any, R, any>; | ||
/** | ||
* A function that returns a promise. | ||
*/ | ||
export declare type PromiseFunction<A extends any[], R> = (...args: A) => Promise<R>; | ||
/** | ||
* Transforms a flow function into a promise function. | ||
*/ | ||
export declare type FlowFunctionAsPromiseFunction<FN extends FlowFunction<any[], any>> = FN extends FlowFunction<infer A, infer R> ? (...args: A) => Promise<R> : never; | ||
/** | ||
* Tricks the TS compiler into thinking a model flow generator function is a function that | ||
* returns a promise. | ||
* | ||
* ``` | ||
* // outside flows | ||
* const ret: FlowRet<typeof model.someFlow> = await model.someFlow() as any | ||
* @modelFlow | ||
* myFlow = castModelFlow(function*(this: MyModel, _args_) { | ||
* ... | ||
* }) | ||
* ``` | ||
* | ||
* // inside flows | ||
* const ret: FlowRet<typeof model.someFlow> = yield model.someFlow() | ||
* const ret: FlowRet<typeof someAsyncFunc> = yield someAsyncFunc() | ||
* @typeparam FN Generator function. | ||
* @param fn Generator function. | ||
* @returns | ||
*/ | ||
export declare function castModelFlow<FN extends FlowFunction<any[], any>>(fn: FN): FlowFunctionAsPromiseFunction<FN>; | ||
/** | ||
* Tricks the TS compiler into thinking a yield inside a model flow returns a proper type. | ||
* Only needed if you actually care about the return value of the promise. | ||
* | ||
* ``` | ||
* const myRetValue = castYield(someAsyncFunction, yield someAsyncFunction(args)) | ||
* const myRetValue = castYield(someModel.someFlow, yield someModel.someFlow(args)) | ||
* ``` | ||
* | ||
* @typeparam FN Promise function. | ||
* @param _fn Function that returns a promise. | ||
* @param value Yielded promise. | ||
* @returns | ||
*/ | ||
export declare type FlowRet<FN extends (...args: any[]) => IterableIterator<any> | Promise<any>> = FN extends (...args: any[]) => IterableIterator<infer R> ? Exclude<R, Promise<any> | IterableIterator<any>> : FN extends (...args: any[]) => Promise<infer R> ? R : never; | ||
export declare function castYield<FN extends PromiseFunction<any[], any>>(_fn: FN, value: any): FN extends PromiseFunction<any, infer R> ? R : never; |
@@ -1,2 +0,2 @@ | ||
"use strict";var e=require("mobx"),t=require("tslib");function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}function o(e,t){for(var n in t)(a=t[n]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,n,a);if(Object.getOwnPropertySymbols)for(var r=Object.getOwnPropertySymbols(t),o=0;o<r.length;o++){var a,i=r[o];(a=t[i]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,i,a)}return e}function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e,t,n){return(s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&c(o,n.prototype),o}).apply(null,arguments)}function p(e){var t="function"==typeof Map?new Map:void 0;return(p=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return s(e,arguments,u(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,e)})(e)}var f=function(e){function t(n){var r;return r=e.call(this,n)||this,Object.setPrototypeOf(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r),t.prototype),r}return i(t,e),t}(p(Error));function l(e){return new f(e)}var d={enumerable:!1,writable:!0,configurable:!1,value:void 0};function h(e,t,n,r){void 0===r&&(r=!0),r?(Object.defineProperty(e,t,d),e[t]=n):Object.defineProperty(e,t,{enumerable:!1,writable:r,configurable:!0,value:n})}function v(e){if(!y(e))return!1;var t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}function y(e){return null!==e&&"object"==typeof e}function m(e){switch(typeof e){case"number":case"string":case"boolean":case"undefined":case"bigint":return!0}return null===e}function g(e,t){var n=e.indexOf(t);return n>=0&&(e.splice(n,1),!0)}function b(t){return t instanceof Map||e.isObservableMap(t)}function x(t){return t instanceof Set||e.isObservableSet(t)}function w(t){return Array.isArray(t)||e.isObservableArray(t)}function A(e,t){if(!y(e))throw l(t+" must be an object")}function S(e,t){if("function"!=typeof e)throw l(t+" must be a function")}function k(e,t){var n=e.target,r=e.propertyKey,o=e.baseDescriptor;if(o)return{enumerable:!1,writable:!0,configurable:!0,value:t(e,o.value)};Object.defineProperty(n,r,{configurable:!0,enumerable:!1,get:function(){},set:function(n){h(this,r,t(a({},e,{target:this}),n))}})}var C=Symbol("modelProperties"),T=Symbol("modelDataTypeChecker"),O=Symbol("modelInitializers");function j(e){if(Rt(e))return e.constructor[T];if(_t(e))return e[T];throw l("modelClassOrInstance must be a model class or instance")}var R="$modelType";function M(e){return e===R}var _,P,N,I={},$=new Map;function F(e){return I[e]}function E(){return N}function z(e){N=e}(_=exports.ActionContextActionType||(exports.ActionContextActionType={})).Sync="sync",_.Async="async",(P=exports.ActionContextAsyncStepType||(exports.ActionContextAsyncStepType={})).Spawn="spawn",P.Return="return",P.Resume="resume",P.ResumeError="resumeError",P.Throw="throw";var D=!0,U=new WeakSet;function W(e){return U.has(e)}function V(e){return!m(e)&&W(e)}function B(e,t){if(!V(e))throw l(t+" must be a tree node (usually a model or a shallow / deep child part of a model 'data' object)");return!0}function L(){if(D&&!E())throw l("data changes must be performed inside model actions")}var K=!1,Q=new WeakMap,H=new WeakMap,J=new WeakMap;function G(t){var n=H.get(t);return n||(n=e.createAtom("parentAtom"),H.set(t,n)),n}function q(e){G(e).reportChanged()}function X(e){return G(e).reportObserved(),Q.get(e)}function Y(e,t){void 0===t&&(t=!1);var n=X(e);return n&&t&&Z(n.parent)?Y(n.parent,!1):n?n.parent:void 0}function Z(e){if(B(e,"value"),!y(e))return!1;var t=X(e);return!!t&&"$"===t.path&&t.parent instanceof Ot}function ee(e){return B(e,"value"),te(e)}function te(e){for(var t,n={root:e,path:[]};t=X(n.root);)n.root=t.parent,n.path.unshift(t.path);return n}function ne(e){return te(e).root}function re(e){return B(e,"value"),!Y(e)}function oe(e,t){B(e,"child"),B(t,"parent");for(var n,r=e;n=X(r);)if((r=n.parent)===t)return!0;return!1}function ae(e,t){for(var n=e,r=t.length,o=0;o<r;o++){if(!y(n))return{resolved:!1};n=n[t[o]]}return{resolved:!0,value:n}}var ie=function(){function e(e,t,n){this.path=e,this.expectedTypeName=t,this.actualValue=n}return e.prototype.throw=function(e){var t="TypeCheckError: ",n=[];throw V(e)&&(n=ee(e).path),t+="["+[].concat(n,this.path).join("/")+"] ",l(t+="Expected: "+this.expectedTypeName)},e}(),ue=[],ce=new WeakMap,se=function(){function e(e,t){this._check=e,this.getTypeName=t,this.unchecked=!e}var t=e.prototype;return t.createCacheIfNeeded=function(){return this.checkResultCache||(this.checkResultCache=new WeakMap),this.checkResultCache},t.setCachedResult=function(e,t){this.createCacheIfNeeded().set(e,t);var n=ce.get(e);n||(n=new Set,ce.set(e,n)),n.add(this)},t.invalidateCachedResult=function(e){this.checkResultCache&&this.checkResultCache.delete(e)},t.getCachedResult=function(e){return this.checkResultCache?this.checkResultCache.get(e):void 0},t.check=function(e,t){if(this.unchecked)return null;if(!V(e))return this._check(e,t);var n=this.getCachedResult(e);return void 0===n&&(n=this._check(e,ue),this.setCachedResult(e,n)),n?new ie([].concat(t,n.path),n.expectedTypeName,n.actualValue):null},e}();function pe(e){for(var t,n=e;;){if(n instanceof se)return n;if("function"!=typeof(t=n)||!t[fe])throw l("type checker could not be resolved");n=n()}}var fe=Symbol("lateTypeCheker");function le(e){var t,n=function(){return t||(t=e())};return n[fe]=!0,n}var de,he=new WeakMap;function ve(e){if(!_t(e)&&"function"==typeof e)return le(function(){return ve(e())});var t=e;Pt(t,"modelClass");var n=he.get(t);if(n)return n;var r=le(function(){var e=$.get(t),n="Model("+e.name+")";return new se(function(r,o){if(!(r instanceof t))return new ie(o,n,r);var a=j(r);if(!a)throw l("type checking cannot be performed over model of type '"+e.name+"' at path "+o.join("/")+" since that model type has no data type declared, consider adding a data type or using types.unchecked() instead");var i=pe(a);return i.unchecked?null:i.check(r.$,[].concat(o,["$"]))},function(){return n})});return he.set(t,r),r}function ye(e,t){if(!e)throw l("a type must be passed");var n=pe(e);return n.unchecked?null:n.check(t,[])}(de=exports.ModelAutoTypeCheckingMode||(exports.ModelAutoTypeCheckingMode={})).DevModeOnly="devModeOnly",de.AlwaysOn="alwaysOn",de.AlwaysOff="alwaysOff";var me={modelAutoTypeChecking:exports.ModelAutoTypeCheckingMode.DevModeOnly};function ge(){return me}function be(){switch(ge().modelAutoTypeChecking){case exports.ModelAutoTypeCheckingMode.DevModeOnly:case exports.ModelAutoTypeCheckingMode.AlwaysOff:return!1;case exports.ModelAutoTypeCheckingMode.AlwaysOn:return!0;default:throw l("invalid 'modelAutoTypeChecking' config value - "+me.modelAutoTypeChecking)}}var xe=new WeakMap;function we(e){return xe.get(e)}var Ae,Se=e.action("setInternalSnapshot",function(t,n){var r=we(t);if(!r||r.standard!==n){var o;r?(o=r).standard=n:(o={standard:n,atom:e.createAtom("snapshot")},xe.set(t,o)),o.atom.reportChanged();var a=function t(n,r){return e.untracked(function(){if(r){var e=we(r.parent);if(e)return n===e?t(e,X(r.parent)):n?{parentSnapshot:e,parentPath:r}:void 0}})}(r,X(t));if(a){var i=a.parentSnapshot,u=a.parentPath;if(i){var c=u.path,s=i.standard;s[c]!==o.standard&&((s=Array.isArray(s)?s.slice():Object.assign({},s))[c]=o.standard,Se(u.parent,s))}}}});(Ae=exports.HookAction||(exports.HookAction={})).OnInit="$$onInit",Ae.OnAttachedToRootStore="$$onAttachedToRootStore",Ae.OnAttachedToRootStoreDisposer="$$onAttachedToRootStoreDisposer";var ke=new Set(Object.values(exports.HookAction));function Ce(e){return ke.has(e)}var Te=new WeakMap,Oe=new WeakMap;function je(t){A(t,"middleware");var n=t.middleware,r=t.filter,o=t.subtreeRoot;if(B(o,"middleware.subtreeRoot"),S(n,"middleware.middleware"),r&&"function"!=typeof r)throw l("middleware.filter must be a function or undefined");if(e.isAction(n)||(n=e.action(n.name||"actionMiddleware",n)),o){var a=function(e){return e.target===o||oe(e.target,o)};if(r){var i=r;r=function(e){return a(e)&&i(e)}}else r=a}var u={middleware:n,filter:r},c=Te.get(o);return c?c.push(u):Te.set(o,c=[u]),function(){g(c,u)}}function Re(e){return"function"==typeof e&&e[Pe]}function Me(e,t,n){return k({target:e,propertyKey:t,baseDescriptor:n},function(e,t){return Re(t)?t:(function(e,n,r){if("function"!=typeof t)throw l("modelAction has to be used over functions");It("modelAction",e,n)}(e.target,e.propertyKey),Ne(e.propertyKey,t,exports.ActionContextActionType.Sync))})}var _e,Pe=Symbol("modelAction");function Ne(t,n,r,o,a){function i(){var e,i=E(),u={actionName:t,type:r,target:this,args:Array.from(arguments),parentContext:i,data:{},rootContext:void 0};o&&o(u),u.rootContext||(u.rootContext=u.previousAsyncStepContext?u.previousAsyncStepContext.rootContext:u.parentContext?u.parentContext.rootContext:u),z(u);var c,s,p,f=(e=n).bind.apply(e,[this].concat(Array.prototype.slice.call(arguments))),l=((p=Oe.get(c=this))||((s={})[Symbol.iterator]=function(){var e=c;function t(){var t=e?Te.get(e):void 0;if(t&&!(t.length<=0))return t[Symbol.iterator]()}function n(){for(var n;e&&!n;)e=Y(e),n=t();return n}var r=t();return r||(r=n()),{next:function(){if(!r)return{value:void 0,done:!0};var e=r.next();return e.done?(r=n(),this.next()):e}}},Oe.set(c,p=s)),p),d=Array.isArray(l),h=0;for(l=d?l:l[Symbol.iterator]();;){var v;if(d){if(h>=l.length)break;v=l[h++]}else{if((h=l.next()).done)break;v=h.value}var y=v;(!y.filter||y.filter(u))&&(f=y.middleware.bind(void 0,u,f))}try{var m=f();if(a){var g=m,b=g.value;return"accept"===g.resolution?g.accepter(b):g.rejecter(b),b}return m}finally{z(u.parentContext)}}return void 0===a&&(a=!1),e.isAction(n)||(n=e.action(t,n)),i[Pe]=!0,i}function Ie(e,t,n){var r=e[t];if(!Re(r)){var o=Ne(n,r,exports.ActionContextActionType.Sync),a=Object.getPrototypeOf(e);a[t]===r?a[t]=o:e[t]=o}}function $e(e,t,n){return B(e,"target"),n===exports.WalkTreeMode.ParentFirst?function e(t,n){var r=n(t);if(void 0!==r)return r;for(var o=J.get(t).values(),a=o.next();!a.done;){var i=e(a.value,n);if(void 0!==i)return i;a=o.next()}}(e,t):function e(t,n){for(var r=J.get(t).values(),o=r.next();!o.done;){var a=e(o.value,n);if(void 0!==a)return a;o=r.next()}var i=n(t);if(void 0!==i)return i}(e,t)}(_e=exports.WalkTreeMode||(exports.WalkTreeMode={})).ParentFirst="parentFirst",_e.ChildrenFirst="childrenFirst";var Fe=new WeakMap;function Ee(e,t){$e(t,function(t){if(t instanceof Ot&&t.onAttachedToRootStore){Ie(t,"onAttachedToRootStore",exports.HookAction.OnAttachedToRootStore);var n=t.onAttachedToRootStore(e);if(n){var r=Ne(exports.HookAction.OnAttachedToRootStoreDisposer,n,exports.ActionContextActionType.Sync);Fe.set(t,r)}}},exports.WalkTreeMode.ParentFirst)}function ze(e){$e(e,function(e){var t=Fe.get(e);t&&(Fe.delete(e),t.call(e))},exports.WalkTreeMode.ChildrenFirst)}var De=new WeakSet,Ue=e.action("registerRootStore",function(e){if(B(e,"node"),De.has(e))throw l("object already marked as root store");if(!re(e))throw l("a root store must not have a parent");return De.add(e),Ee(e,e),e}),We=e.action("unregisterRootStore",function(e){if(!Ve(e))throw l("not a root store");De.delete(e),ze(e)});function Ve(e){return De.has(e)}var Be={deep:!1},Le=e.action("setParent",function(t,n,r){if(void 0===r&&(r=!1),!m(t)){J.has(t)||J.set(t,e.observable.set([],Be));var o=X(t);if(i=n,void 0===u&&(u=!0),((a=o)||i)&&(!a||!i||a.parent!==i.parent||u&&a.path!==i.path)){var a,i,u;if(Ve(t))throw l("root stores cannot be attached to any parents");if(o&&n){if(o.parent===n.parent&&r)return Q.set(t,n),void q(t);throw l("an object cannot be assigned a new parent when it already has one")}var c=function(){o&&o.parent&&J.get(o.parent).delete(t)},s=function(){n&&n.parent&&J.get(n.parent).add(t),Q.set(t,n),q(t)};if(t instanceof Ot){var p=ne(t),f=Ve(p)?p:void 0;c(),s();var d=ne(t),h=Ve(d)?d:void 0;f!==h&&(f&&ze(t),h&&Ee(h,t))}else c(),s()}}});function Ke(e,t){return U.add(e),Le(e,t),e}var Qe,He=function(){function e(){}var t=e.prototype;return t.record=function(e,t){this.patches=e,this.invPatches=t},t.emit=function(e){!function e(t,n,r,o){if(!(n.length<=0&&r.length<=0)){if(o)for(var a=0;a<Ge.length;a++)(0,Ge[a])(t,n,r);var i=Je.get(t);if(i)for(var u=0;u<i.length;u++)(0,i[u])(n,r);var c=X(t);if(c){var s=c.path,p=c.parent instanceof Ot,f=p?n:n.map(function(e){return Ye(e,s)}),l=p?r:r.map(function(e){return Ye(e,s)});e(c.parent,f,l,!1)}}}(e,this.patches,this.invPatches,!0)},e}(),Je=new WeakMap,Ge=[];function qe(t,n){B(t,"subtreeRoot"),S(n,"listener"),e.isAction(n)||(n=e.action(n.name||"onPatchesListener",n));var r=Je.get(t);return r||Je.set(t,r=[]),r.push(n),function(){g(r,n)}}function Xe(t){return S(t,"listener"),e.isAction(t)||(t=e.action(t.name||"onGlobalPatchesListener",t)),Ge.push(t),function(){g(Ge,t)}}function Ye(e,t){return a({},e,{path:[t].concat(e.path)})}(Qe=exports.FrozenCheckMode||(exports.FrozenCheckMode={})).DevModeOnly="devModeOnly",Qe.On="on",Qe.Off="off";var Ze,et="$frozen",tt=function(e,t){void 0===t&&(t=exports.FrozenCheckMode.DevModeOnly);var n=t===exports.FrozenCheckMode.On||t===exports.FrozenCheckMode.DevModeOnly&&!1;n&&function e(t){if(!m(t))if(Array.isArray(t)){for(var n=t.length,r=0;r<n;r++){var o=t[r];if(void 0===o)throw l("undefined is not supported inside arrays since it is not serializable in JSON, consider using null instead");e(o)}Object.freeze(t)}else{if(!v(t))throw l("frozen data must be plainly serializable to JSON, but "+t+" is not");for(var a=Object.keys(t),i=a.length,u=0;u<i;u++){var c=a[u],s=t[c];e(c),e(s)}Object.freeze(t)}}(e),this.data=e,n&&Object.freeze(this.data),xt(this,void 0)};function nt(e,t){return void 0===t&&(t=exports.FrozenCheckMode.DevModeOnly),new tt(e,t)}function rt(e){return v(e)&&!!e[et]}function ot(e,t,n){void 0===n&&(n=0),B(e,"child");for(var r,o=e,a=0;r=X(o);){if(a++,t(o=r.parent))return o;if(n>0&&a===n)break}}(Ze=exports.BuiltInAction||(exports.BuiltInAction={})).ApplyPatches="$$applyPatches",Ze.ApplySnapshot="$$applySnapshot",Ze.Detach="$$detach";var at=new Set(Object.values(exports.BuiltInAction));function it(e){return at.has(e)}function ut(t){if(m(t))return t;if(b(t))throw l("a snapshot might not contain maps");if(x(t))throw l("a snapshot might not contain sets");if(w(t))return function(t){for(var n=e.observable.array([],st),r=t.length,o=0;o<r;o++)n.push(ut(t[o]));return yt(n,void 0,!0)}(t);if(rt(t))return nt(t.data);if(Nt(t))return function(e){var t=e[R];if(!t)throw l("a model a snapshot must contain a type key ("+R+"), but none was found");var n=F(t);if(!n)throw l('model with name "'+t+'" not found in the registry');return new n.class(void 0,{unprocessedSnapshot:e,snapshotToInitialData:ct})}(t);if(v(t))return function(t){for(var n=e.observable.object({},void 0,st),r=Object.keys(t),o=r.length,a=0;a<o;a++){var i=r[a];e.set(n,i,ut(t[i]))}return wt(n,void 0,void 0,!0)}(t);throw l("unsupported snapshot - "+t)}function ct(t){for(var n=e.observable.object({},void 0,st),r=Object.keys(t),o=r.length,a=0;a<o;a++){var i=r[a];M(i)||e.set(n,i,ut(t[i]))}return n}exports.fromSnapshot=function(e){return ut(e)},exports.fromSnapshot=e.action("fromSnapshot",exports.fromSnapshot);var st={deep:!1};function pt(t,n){if(m(n))return n;if(w(n))return function(t,n){if(!w(t))return exports.fromSnapshot(n);t.length>n.length&&t.splice(n.length,t.length-n.length);for(var r=0;r<t.length;r++)e.set(t,r,pt(t[r],n[r]));for(var o=t.length;o<n.length;o++)t.push(exports.fromSnapshot(n[o]));return t}(t,n);if(rt(n))return function(e,t){return e instanceof tt&&e.data===t.data?e:nt(t.data)}(t,n);if(Nt(n))return function(t,n){var r=n[R],o=F(r);if(!o)throw l('model with name "'+r+'" not found in the registry');if(!(t instanceof o.class)||t.$modelType!==r)return exports.fromSnapshot(n);var a=t,i=n;a.fromSnapshot&&(i=a.fromSnapshot(n));for(var u=a.$,c=Object.keys(u),s=c.length,p=0;p<s;p++){var f=c[p];f in i||e.remove(u,f)}for(var d=Object.keys(i),h=d.length,v=0;v<h;v++){var y=d[v];M(y)||e.set(u,y,pt(u[y],i[y]))}return a}(t,n);if(v(n))return function(t,n){if(!v(t)&&!e.isObservableObject(t))return exports.fromSnapshot(n);for(var r=t,o=Object.keys(r),a=o.length,i=0;i<a;i++){var u=o[i];u in n||e.remove(r,u)}for(var c=Object.keys(n),s=c.length,p=0;p<s;p++){var f=c[p];e.set(r,f,pt(r[f],n[f]))}return r}(t,n);if(b(n))throw l("a snapshot might not contain maps");if(x(n))throw l("a snapshot might not contain sets");throw l("unsupported snapshot - "+n)}function ft(e,t){B(e,"node"),dt.call(e,t)}function lt(e){for(var t=e.length,n=0;n<t;n++)ht(this,e[n])}var dt=Ne(exports.BuiltInAction.ApplyPatches,lt,exports.ActionContextActionType.Sync);function ht(t,n){var r=function(e,t){if(0===t.length)return{target:e};var n=e;n instanceof Ot&&(n=n.$);for(var r=0;r<=t.length-2;r++)(n=n[t[r]])instanceof Ot&&(n=n.$);return{target:n,prop:t[t.length-1]}}(t,n.path),o=r.target,a=r.prop;if(w(o))switch(n.op){case"add":o.splice(+a,0,exports.fromSnapshot(n.value));break;case"remove":o.splice(+a,1);break;case"replace":if("length"===a)o.length=n.value;else{var i=+a;e.set(o,i,pt(o[i],n.value))}break;default:throw l("unsupported patch operation: "+n.op)}else switch(n.op){case"add":e.set(o,a,exports.fromSnapshot(n.value));break;case"remove":e.remove(o,a);break;case"replace":e.set(o,a,pt(o[a],n.value));break;default:throw l("unsupported patch operation: "+n.op)}}function vt(t,n){if(function(e){for(var t=e;t;){var n=ce.get(t);if(n){var r=n,o=Array.isArray(r),a=0;for(r=o?r:r[Symbol.iterator]();;){var i;if(o){if(a>=r.length)break;i=r[a++]}else{if((a=r.next()).done)break;i=a.value}i.invalidateCachedResult(t)}ce.delete(t)}t=Y(t)}}(t),be()){var r=ot(t,function(e){return Rt(e)&&!!j(e)});if(r){var o=r.typeCheck();o&&(function(r){var o=K;K=!0;try{e.runInAction(function(){lt.call(t,n.invPatches)})}finally{K=o}}(),o.throw(r))}}}function yt(t,n,r){var o=t,a=o.length,i=e.isObservableArray(o)?o:e.observable.array([],gt);i!==o&&(i.length=o.length),U.add(i),Le(i,n);var u=[];u.length=a;for(var c=0;c<a;c++){var s=o[c];if(m(s))r||e.set(i,c,s),u[c]=s;else{var p={parent:i,path:c},f=void 0;r?Le(f=s,p):(f=xt(s,p),e.set(i,c,f));var l=we(f);u[c]=l.standard}}return Se(i,u),e.intercept(i,function(e,t){switch(L(),t.type){case"splice":for(var n=0;n<t.removedCount;n++)xt(t.object[t.index+n],void 0);for(var r=0;r<t.added.length;r++)t.added[r]=xt(t.added[r],{parent:t.object,path:t.index+r});var o=t.index+t.removedCount,a=t.index+t.added.length;if(o!==a)for(var i=o,u=a;i<t.object.length;i++,u++)Le(t.object[i],{parent:t.object,path:u},!0);break;case"update":xt(e[t.index],void 0),t.newValue=xt(t.newValue,{parent:e,path:t.index})}return t}.bind(void 0,i)),e.observe(i,mt),i}function mt(e){var t=e.object,n=we(t).standard,r=new He;switch(n=n.slice(),e.type){case"splice":var o,a=[],i=e.addedCount;a.length=i;for(var u=0;u<i;u++){var c=e.added[u];a[u]=m(c)?c:we(c).standard}for(var s=n.length,p=e.removedCount,f=(o=n).splice.apply(o,[e.index,p].concat(a)),l=[],d=[],h=Math.min(p,i),v=0;v<h;v++){var y=f[v],g=a[v];if(y!==g){var b=[e.index+v];l.push({op:"replace",path:b,value:g}),d.push({op:"replace",path:b,value:y})}}if(p>i){l.push({op:"replace",path:["length"],value:n.length});for(var x=h;x<p;x++)d.push({op:"add",path:[e.index+x],value:f[x]})}else if(i>p){for(var w=h;w<i;w++)l.push({op:"add",path:[e.index+w],value:a[w]});d.push({op:"replace",path:["length"],value:s})}r.record(l,d);break;case"update":var A=e.index,S=e.newValue,k=n[A];if(m(S))n[A]=S;else{var C=we(S);n[A]=C.standard}var T=[A];r.record([{op:"replace",path:T,value:n[A]}],[{op:"replace",path:T,value:k}])}vt(t,r),K||(Se(t,n),r.emit(t))}var gt={deep:!1};function bt(t,n){if(m(t))return t;if(W(t))return Le(t,n),t;if(Rt(t))return Ke(t,n);if(w(t))return yt(t,n,!1);if(e.isObservableObject(t)||v(t))return wt(t,n,void 0,!1);if(t instanceof tt)return function(e,t){var n;return U.add(e),Le(e,t),Se(e,((n={})[et]=!0,n.data=e.data,n)),e}(t,n);if(b(t))throw l("maps are not supported");if(x(t))throw l("sets are not supported");throw l("tweak can only work over models, observable objects/arrays, or primitives, but got "+t+" instead")}var xt=e.action("tweak",bt);function wt(t,n,r,o){var a=t,i=e.isObservableObject(a)?a:e.observable.object({},void 0,At);U.add(i),Le(i,n);for(var u={},c=Object.keys(a),s=c.length,p=0;p<s;p++){var f=c[p],l=a[f];if(m(l))o||e.set(i,f,l),u[f]=l;else{var d={parent:i,path:f},h=void 0;o?Le(h=l,d):(h=xt(l,d),e.set(i,f,h));var v=we(h);u[f]=v.standard}}return r&&(u[R]=r),Se(i,u),e.intercept(i,kt),e.observe(i,St),i}var At={deep:!1};function St(e){var t=e.object,n=we(t).standard,r=new He;switch(n=Object.assign({},n),e.type){case"add":case"update":var o=e.name,a=e.newValue,i=n[o];if(m(a))n[o]=a;else{var u=we(a);n[o]=u.standard}var c=[o];"add"===e.type?r.record([{op:"add",path:c,value:n[o]}],[{op:"remove",path:c}]):r.record([{op:"replace",path:c,value:n[o]}],[{op:"replace",path:c,value:i}]);break;case"remove":var s=e.name,p=n[s];delete n[s];var f=[s];r.record([{op:"remove",path:f}],[{op:"add",path:f,value:p}])}vt(t,r),K||(Se(t,n),r.emit(t))}function kt(e){if(L(),"symbol"==typeof e.name)throw l("symbol properties are not supported.");switch(e.type){case"add":e.newValue=xt(e.newValue,{parent:e.object,path:""+e.name});break;case"remove":xt(e.object[e.name],void 0);break;case"update":xt(e.object[e.name],void 0),e.newValue=xt(e.newValue,{parent:e.object,path:""+e.name})}return e}var Ct=e.action("newModel",function(t,n,r,o){var a=t,i=$.get(n);if(!i)throw l("no model info for class "+n.name+" could be found - did you forget to add the @model decorator?");if(o){var u=o.unprocessedSnapshot;a.fromSnapshot&&(u=a.fromSnapshot(u)),r=o.snapshotToInitialData(u)}a[R]=i.name;for(var c=n[C],s=Object.keys(c),p=0;p<s.length;p++){var f=s[p];if(void 0===r[f]){var d=void 0,h=c[f];void 0!==h.defaultFn?d=h.defaultFn():void 0!==h.defaultValue&&(d=h.defaultValue),e.set(r,f,d)}}Ke(a,void 0);var v=wt(r,{parent:a,path:"$"},a[R],!1),y=we(v);if(xe.set(a,y),a.$=v,be()&&j(n)){var m=a.typeCheck();m&&m.throw(a)}var g=function(e){return e[O]}(n);if(g)for(var b=g.length,x=0;x<b;x++)(0,g[x])(a);return a}),Tt=Symbol("modelInitialized"),Ot=function(){function t(t){var n=t,r=arguments[1],o=arguments[2];Object.setPrototypeOf(this,o.prototype),r?Ct(this,o,void 0,r):(A(n,"initialData"),Ct(this,o,e.observable.object(n,void 0,{deep:!1}),void 0))}return t.prototype.typeCheck=function(){return ye(ve(this.constructor),this)},t}(),jt=new Set([R,"onInit","$","onAttachedToRootStore","fromSnapshot","typeCheck"]);function Rt(e){return e instanceof Ot}function Mt(e,t,n){if(void 0===n&&(n="must be a model instance"),!Rt(e))throw l(t+" "+n)}function _t(e){return"function"==typeof e&&(e===Ot||e.prototype instanceof Ot)}function Pt(e,t){if("function"!=typeof e)throw l(t+" must be a class");if(e!==Ot&&!(e.prototype instanceof Ot))throw l(t+" must extend Model")}function Nt(e){return v(e)&&!!e[R]}function It(e,t,n){if("string"!=typeof n)throw l(e+" cannot be used over symbol properties");var r=e+" must be used over model classes or instances";if(!t)throw l(r);if(!(t instanceof Ot||t===Ot||t.prototype instanceof Ot))throw l(r)}function $t(e){B(e,"node"),Ft.call(e)}var Ft=Ne(exports.BuiltInAction.Detach,Et,exports.ActionContextActionType.Sync);function Et(){var t=X(this);if(t){var n=t.parent,r=t.path;if(e.isObservableArray(n))n.splice(+r,1);else{if(!e.isObservableObject(n))throw l("parent must be an observable object or an observable array");e.remove(n,""+r)}}}function zt(e,t){B(e,"node"),A(t,"snapshot"),Ut.call(e,t)}function Dt(t){var n=this,r=function(){pt(n,t)};if(w(t)){if(!w(n))throw l("if the snapshot is an array the target must be an array too");return r()}if(rt(t))throw l("applySnapshot can not be used over frozen objects");if(Nt(t)){var o=t[R],a=F(o);if(!a)throw l('model with name "'+o+'" not found in the registry');if(!(n instanceof a.class)||n.$modelType!==o)throw l("snapshot model type does not match target model type");return r()}if(v(t)){if(!v(n)&&!e.isObservableObject(n))throw l("if the snapshot is an object the target must be an object too");return r()}throw l("unsupported snapshot - "+t)}var Ut=Ne(exports.BuiltInAction.ApplySnapshot,Dt,exports.ActionContextActionType.Sync);function Wt(e,t){B(e,"subtreeRoot");var n=ae(e,t.targetPath),r=n.value;if(!n.resolved)throw l("object at path "+t.targetPath+" could not be resolved");if(Mt(r,"resolved "+t.targetPath),!it(t.actionName)){if(Ce(t.actionName))throw l("calls to hooks ("+t.actionName+") cannot be applied");return r[t.actionName].apply(r,t.args)}switch(t.actionName){case exports.BuiltInAction.ApplySnapshot:return zt.apply(r,[r].concat(t.args));case exports.BuiltInAction.ApplyPatches:return ft.apply(r,[r].concat(t.args));case exports.BuiltInAction.Detach:return $t.apply(r,[r].concat(t.args));default:throw l("assertion error: unknown built-in action - "+t.actionName)}}var Vt,Bt=Symbol("modelFlow");function Lt(e){return"function"==typeof e&&e[Bt]}function Kt(e,t){B(e,"subtreeRoot");var n=Symbol("actionTrackingMiddlewareData");function r(e){return e.data[n]}function o(e,t){var r=e.data[n];r?Object.assign(r,t):e.data[n]=t}var a=function(e){return!t.filter||t.filter(Jt(e))},i=!!t.onResume||!!t.onSuspend,u=function(e){if(o(e,{state:"started"}),t.onStart)return t.onStart(e)||void 0},c=function(e,n){var a=e.parentContext,i=!1;if(a){var u=r(a);u&&u.startAccepted&&"suspended"===u.state&&(i=!0,s(a,!1))}return o(e,{state:"finished"}),t.onFinish&&(n=t.onFinish(e,n)||n),i&&p(a),n},s=function e(n,a){var i=n.parentContext;if(i){var u=r(i);u&&u.startAccepted&&"suspended"===u.state&&e(i,!1)}o(n,{state:a?"realResumed":"fakeResumed"}),t.onResume&&t.onResume(n)},p=function e(n){o(n,{state:"suspended"}),t.onSuspend&&t.onSuspend(n);var a=n.parentContext;if(a){var i=r(a);i&&i.startAccepted&&"fakeResumed"===i.state&&e(a)}};return je({middleware:function(e,t){var n=Jt(e),r=t;if(t=function(){s(n,!0);try{return r()}finally{p(n)}},e.type===exports.ActionContextActionType.Sync){var o=u(n);if(o)s(n,!0),p(n),o=c(n,o);else try{o=c(n,{result:exports.ActionTrackingResult.Return,value:t()})}catch(e){o=c(n,{result:exports.ActionTrackingResult.Throw,value:e})}return Qt(o)}switch(e.asyncStepType){case exports.ActionContextAsyncStepType.Spawn:var a=u(n);return a?(s(n,!0),p(n),Qt(a=c(n,a))):t();case exports.ActionContextAsyncStepType.Return:var f=t(),d=c(n,{result:exports.ActionTrackingResult.Return,value:f.value});return f.resolution=d.result===exports.ActionTrackingResult.Return?"accept":"reject",f.value=d.value,f;case exports.ActionContextAsyncStepType.Throw:var h=t(),v=c(n,{result:exports.ActionTrackingResult.Throw,value:h.value});return h.resolution=v.result===exports.ActionTrackingResult.Return?"accept":"reject",h.value=v.value,h;case exports.ActionContextAsyncStepType.Resume:case exports.ActionContextAsyncStepType.ResumeError:if(i)return t();throw l("asssertion error: async step should have been filtered out - "+e.asyncStepType);default:throw l("asssertion error: async step should have been filtered out - "+e.asyncStepType)}},filter:function(e){if(e.type===exports.ActionContextActionType.Sync){var t=a(e);return t&&o(e,{startAccepted:!0,state:"idle"}),t}switch(e.asyncStepType){case exports.ActionContextAsyncStepType.Spawn:var n=a(e);return n&&o(e,{startAccepted:!0,state:"idle"}),n;case exports.ActionContextAsyncStepType.Return:case exports.ActionContextAsyncStepType.Throw:var u=r(e.spawnAsyncStepContext);return!!u&&u.startAccepted;case exports.ActionContextAsyncStepType.Resume:case exports.ActionContextAsyncStepType.ResumeError:if(i){var c=r(e.spawnAsyncStepContext);return!!c&&c.startAccepted}return!1;default:return!1}},subtreeRoot:e})}function Qt(e){if(e.result===exports.ActionTrackingResult.Return)return e.value;throw e.value}(Vt=exports.ActionTrackingResult||(exports.ActionTrackingResult={})).Return="return",Vt.Throw="throw";var Ht=Symbol("simpleDataContext");function Jt(e){for(;e.previousAsyncStepContext;)e=e.previousAsyncStepContext;var t=e.data[Ht];if(!t){var n=e.parentContext?Jt(e.parentContext):void 0;(t={actionName:e.actionName,type:e.type,target:e.target,args:e.args,data:e.data,parentContext:n}).rootContext=n?n.rootContext:t,e.data[Ht]=t}return t}function Gt(e){if(m(e))return e;B(e,"nodeOrPrimitive");var t=we(e);if(!t)throw l("getSnapshot is not supported for this kind of object");return t.atom.reportObserved(),t.standard}function qt(e){var t=ee(e.target);return{actionName:e.actionName,args:e.args,targetPath:t.path}}function Xt(t){if(m(t))return t;if(W(t))return Gt(t);var n=t;if(e.isObservable(t)&&(t=e.toJS(t,{exportMapsAsObjects:!1,detectCycles:!1})),v(t)||Array.isArray(t))return t;throw l("serializeActionCallArgument could not serialize the given value: "+n)}function Yt(e){return Nt(e)?exports.fromSnapshot(e):e}function Zt(e,t){return en(e,t)}function en(e,t){var n,r=a({recording:!0,filter:tn},t),o=r.recording,i=r.filter,u=[];return n=e?qe(e,function(t,n){o&&i(t,n)&&u.push({target:e,patches:t,inversePatches:n})}):Xe(function(e,t,n){o&&i(t,n)&&u.push({target:e,patches:t,inversePatches:n})}),{get recording(){return o},set recording(e){o=e},get events(){return u},dispose:function(){n()}}}var tn=function(){return!0};function nn(e){A(e,"target");var t=e.model,n=e.actionName;if(Mt(t,"target.model"),"string"!=typeof n)throw l("target.actionName must be a string");var r=Symbol("patchRecorder");function o(e){return e.rootContext.data[r]}return Kt(t,{filter:function(e){var r=e.rootContext;return r.target===t&&r.actionName===n},onStart:function(e){e===e.rootContext&&function(e){e.rootContext.data[r]=en(void 0,{recording:!1})}(e)},onResume:function(e){o(e).recording=!0},onSuspend:function(e){o(e).recording=!1},onFinish:function(e,t){if(e===e.rootContext){var n=o(e);try{if(t.result===exports.ActionTrackingResult.Throw)for(var r=n.events,a=r.length-1;a>=0;a--){var i=r[a];ft(i.target,i.inversePatches)}}finally{n.dispose()}}}})}function rn(e,t){return S(e,"objFn"),le(function(){var n=e();A(n,"objectSchema");var r=Object.entries(n),o=function(){for(var e=[],t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];for(var a=0,i=r;a<i.length;a++){var u=i[a],c=u[0],s=pe(u[1]),p="...";n.includes(s)||(p=s.getTypeName.apply(s,n.concat([s]))),e.push(c+": "+p+";")}return"{ "+e.join(" ")+" }"},a=new se(function(e,n){if(!y(e)||t&&!(e instanceof tt))return new ie(n,o(a),e);for(var i=new Set(Object.keys(e)),u=0,c=r;u<c.length;u++){var s=c[u],p=s[0],f=pe(s[1]),l=f.unchecked?null:f.check(e[p],[].concat(n,[p]));if(l)return l;i.delete(p)}return i.size>0?new ie(n,o(a),e):null},o);return a})}function on(e){return rn(e,!1)}var an=new se(null,function(){return"any"});function un(){return an}function cn(e){return sn(e)}function sn(e,t){A(e,"modelProps"),t&&Pt(t,"baseModel");var n,r=e;if(t)for(var o=t[C],a=0,i=Object.keys(o);a<i.length;a++){var u=i[a];if(e[u])throw l("extended model cannot redeclare base model property named '"+u+"'");r[u]=o[u]}if(Object.values(r).some(function(e){return e.typeChecker})){for(var c={},s=0,p=Object.entries(r);s<p.length;s++){var f=p[s];c[f[0]]=f[1].typeChecker||un()}n=on(function(){return c})}var d={},h=function(){if(y){if(m>=v.length)return"break";g=v[m++]}else{if((m=v.next()).done)return"break";g=m.value}var e=g;d[e]={enumerable:!1,configurable:!0,get:function(){return this.$[e]},set:function(t){this[Tt]&&(this.$[e]=t)}}},v=Object.keys(e).filter(function(e){return!jt.has(e)}),y=Array.isArray(v),m=0;for(v=y?v:v[Symbol.iterator]();;){var g;if("break"===h())break}var b=t||Ot,x=function(e){var t,n;function r(e,t,n){return new b(e,t,n||this.constructor)}return n=b,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,r}(),w=b[O];return w&&(x[O]=w.slice()),x[C]=r,x[T]=n,Object.defineProperties(x.prototype,d),x}var pn=function(e){return function(t){var n,r;Pt(t,"a model class"),I[e]&&(r="[mobx-keystone] "+(r='a model with name "'+e+'" already exists (if you are using hot-reloading this might be the cause)'),console.error(r));var o=((n={})[t.name]=function(e,n){var r=new t(e,n,this.constructor);return h(r,Tt,!0,!1),r.onInit&&(Ie(r,"onInit",exports.HookAction.OnInit),r.onInit()),r},n)[t.name];o.prototype=t.prototype,o[O]=t[O];var a={name:e,class:o};return I[e]=a,$.set(o,a),$.set(t,a),o}};function fn(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"Array<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){if(!w(e))return new ie(o,n(r),e);if(!t.unchecked)for(var a=0;a<e.length;a++){var i=t.check(e[a],[].concat(o,[a]));if(i)return i}return null},n);return r})}function ln(e,t){var n="function"==typeof t;return{$valueType:null,$hasDefault:null,defaultFn:n?t:void 0,defaultValue:n?void 0:t,typeChecker:e}}exports.UndoStore=function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var n=t.prototype;return n._clearUndo=function(){var e=this;yn(function(){e.undoEvents.length=0})},n._clearRedo=function(){var e=this;yn(function(){e.redoEvents.length=0})},n._undo=function(){var e=this;yn(function(){var t=e.undoEvents.pop();e.redoEvents.push(t)})},n._redo=function(){var e=this;yn(function(){var t=e.redoEvents.pop();e.undoEvents.push(t)})},n._addUndo=function(e){var t=this;yn(function(){t.undoEvents.push(e),t.redoEvents.length=0})},t}(cn({undoEvents:ln(fn(un()),function(){return[]}),redoEvents:ln(fn(un()),function(){return[]})})),t.__decorate([Me],exports.UndoStore.prototype,"_clearUndo",null),t.__decorate([Me],exports.UndoStore.prototype,"_clearRedo",null),t.__decorate([Me],exports.UndoStore.prototype,"_undo",null),t.__decorate([Me],exports.UndoStore.prototype,"_redo",null),t.__decorate([Me],exports.UndoStore.prototype,"_addUndo",null),exports.UndoStore=t.__decorate([pn("mobx-keystone/UndoStore")],exports.UndoStore);var dn=function(){function e(e,t,n){this.disposer=e,this.subtreeRoot=t,this.store=n||new exports.UndoStore({})}var t=e.prototype;return t.clearUndo=function(){this.store._clearUndo()},t.clearRedo=function(){this.store._clearRedo()},t.undo=function(){var e=this;if(!this.canUndo)throw l("nothing to undo");var t=this.undoQueue[this.undoQueue.length-1];yn(function(){ft(e.subtreeRoot,t.inversePatches)}),this.store._undo()},t.redo=function(){var e=this;if(!this.canRedo)throw l("nothing to redo");var t=this.redoQueue[this.redoQueue.length-1];yn(function(){ft(e.subtreeRoot,t.patches)}),this.store._redo()},t.dispose=function(){this.disposer()},r(e,[{key:"undoQueue",get:function(){return this.store.undoEvents}},{key:"redoQueue",get:function(){return this.store.redoEvents}},{key:"undoLevels",get:function(){return this.undoQueue.length}},{key:"canUndo",get:function(){return this.undoLevels>0}},{key:"redoLevels",get:function(){return this.redoQueue.length}},{key:"canRedo",get:function(){return this.redoLevels>0}}]),e}();t.__decorate([e.computed],dn.prototype,"undoQueue",null),t.__decorate([e.computed],dn.prototype,"redoQueue",null),t.__decorate([e.computed],dn.prototype,"undoLevels",null),t.__decorate([e.computed],dn.prototype,"canUndo",null),t.__decorate([e.action],dn.prototype,"clearUndo",null),t.__decorate([e.computed],dn.prototype,"redoLevels",null),t.__decorate([e.computed],dn.prototype,"canRedo",null),t.__decorate([e.action],dn.prototype,"clearRedo",null),t.__decorate([e.action],dn.prototype,"undo",null),t.__decorate([e.action],dn.prototype,"redo",null);var hn=!1,vn=function(){return!hn};function yn(e){var t=hn;hn=!0;try{return e()}finally{hn=t}}function mn(e,t){if(B(e,"node"),t&&t.deep){var n=new Set;return $e(e,function(e){n.add(e)},exports.WalkTreeMode.ParentFirst),n.delete(e),n}return new Set(J.get(e))}function gn(t,n){B(t,"node");var r=Gt(t);return e.reaction(function(){return Gt(t)},function(e){var t=r;r=e,n(e,t)})}function bn(e,t,n){return le(function(){var r=pe(e),o=function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];var a=r.getTypeName.apply(r,t.concat([r]));return(n||"refinementOf")+"<"+a+">"},a=new se(function(e,n){var i=r.check(e,n);if(i)return i;var u=t(e);return!0===u?null:!1===u?new ie([],o(a),e):u||null},o);return a})}function xn(e){var t;switch(function(t,n){if(!m(e))throw l("literal must be a primitive")}(),e){case void 0:t="undefined";break;case null:t="null";break;default:t=JSON.stringify(e)}return new se(function(n,r){return n===e?null:new ie(r,t,n)},function(){return t})}var wn=xn(void 0),An=xn(null),Sn=new se(function(e,t){return"boolean"==typeof e?null:new ie(t,"boolean",e)},function(){return"boolean"}),kn=new se(function(e,t){return"number"==typeof e?null:new ie(t,"number",e)},function(){return"number"}),Cn=new se(function(e,t){return"string"==typeof e?null:new ie(t,"string",e)},function(){return"string"}),Tn=bn(kn,function(e){return Number.isInteger(e)},"integer"),On=bn(Cn,function(e){return""!==e},"nonEmpty"),jn=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),r(t,[{key:"maybeCurrent",get:function(){return this.resolve()}},{key:"isValid",get:function(){return!!this.maybeCurrent}},{key:"current",get:function(){var e=this.maybeCurrent;if(!e)throw l("a reference of type '"+this.$modelType+"' could not resolve an object with id '"+this.id+"'");return e}}]),t}(cn({id:ln(Cn)}));function Rn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return le(function(){var e=t.map(pe);if(e.some(function(e){return e.unchecked}))return un();var n=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.map(function(e){return n.includes(e)?"...":e.getTypeName.apply(e,n.concat([e]))}).join(" | ")},r=new se(function(t,o){return e.every(function(e){return!!e.check(t,o)})?new ie(o,n(r),t):null},n);return r})}function Mn(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"Record<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){if(!y(e))return new ie(o,n(r),e);if(!t.unchecked)for(var a=Object.keys(e),i=0;i<a.length;i++){var u=a[i],c=t.check(e[u],[].concat(o,[u]));if(c)return c}return null},n);return r})}t.__decorate([e.computed],jn.prototype,"maybeCurrent",null),t.__decorate([e.computed],jn.prototype,"isValid",null),t.__decorate([e.computed],jn.prototype,"current",null),exports.ArraySet=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.add=function(e){var t=this.items;return t.includes(e)||t.push(e),this},o.clear=function(){this.items.length=0},o.delete=function(e){var t=this.items,n=t.findIndex(function(t){return t===e});return n>=0&&(t.splice(n,1),!0)},o.forEach=function(e,t){for(var n=this.items,r=n.length,o=0;o<r;o++){var a=n[o];e.call(t,a,a,this)}},o.has=function(e){return this.items.includes(e)},o.keys=function(){return this.values()},o.values=function(){return e.values(this.items)[Symbol.iterator]()},o.entries=function(){return this.items.map(function(e){return[e,e]}).values()},o[Symbol.iterator]=function(){return this.values()},r(n,[{key:"size",get:function(){return this.items.length}},{key:Symbol.toStringTag,get:function(){return"ArraySet"}}]),n}(cn({items:ln(fn(un()),function(){return[]})})),t.__decorate([Me],exports.ArraySet.prototype,"add",null),t.__decorate([Me],exports.ArraySet.prototype,"clear",null),t.__decorate([Me],exports.ArraySet.prototype,"delete",null),exports.ArraySet=t.__decorate([pn("mobx-keystone/ArraySet")],exports.ArraySet),exports.ObjectMap=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.clear=function(){for(var t=this.items,n=Object.keys(t),r=n.length,o=0;o<r;o++)e.remove(t,n[o])},o.delete=function(t){return!!this.has(t)&&(e.remove(this.items,t),!0)},o.forEach=function(e,t){for(var n=this.items,r=Object.keys(n),o=r.length,a=0;a<o;a++){var i=r[a];e.call(t,n[i],i,this)}},o.get=function(t){return e.get(this.items,t)},o.has=function(t){return e.has(this.items,t)},o.set=function(t,n){return e.set(this.items,t,n),this},o.keys=function(){return e.keys(this.items)[Symbol.iterator]()},o.values=function(){return e.values(this.items)[Symbol.iterator]()},o.entries=function(){return e.entries(this.items)[Symbol.iterator]()},o[Symbol.iterator]=function(){return this.entries()},r(n,[{key:"size",get:function(){return e.keys(this.items).length}},{key:Symbol.toStringTag,get:function(){return"ObjectMap"}}]),n}(cn({items:ln(Mn(un()),function(){return{}})})),t.__decorate([Me],exports.ObjectMap.prototype,"clear",null),t.__decorate([Me],exports.ObjectMap.prototype,"delete",null),t.__decorate([Me],exports.ObjectMap.prototype,"set",null),exports.ObjectMap=t.__decorate([pn("mobx-keystone/ObjectMap")],exports.ObjectMap);var _n=on(function(){return{id:Cn}}),Pn=new se(function(e,t){return e instanceof jn?pe(_n).check(e.$,[].concat(t,["$"])):new ie(t,"Ref",e)},function(){return"Ref"}),Nn={literal:xn,undefined:wn,null:An,boolean:Sn,number:kn,string:Cn,or:Rn,maybe:function(e){return Rn(e,wn)},maybeNull:function(e){return Rn(e,An)},array:fn,record:Mn,unchecked:un,model:ve,object:on,ref:function(){return Pn},frozen:function(e){return rn(function(){return{data:e}},!0)},enum:function(e){A(e,"enumObject");var t=function(e){for(var t=[],n=0,r=Object.keys(e);n<r.length;n++){var o=r[n],a=e[o];"string"==typeof a&&e[a]===+o||t.push(a)}return t}(e).map(function(e){return xn(e)});return Rn.apply(void 0,t)},refinement:bn,integer:Tn,nonEmptyString:On,objectMap:function(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"ObjectMap<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){return e instanceof exports.ObjectMap?pe(on(function(){return{items:Mn(t)}})).check(e.$,[].concat(o,["$"])):new ie(o,n(r),e)},n);return r})},arraySet:function(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"ArraySet<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){return e instanceof exports.ArraySet?pe(on(function(){return{items:fn(t)}})).check(e.$,[].concat(o,["$"])):new ie(o,n(r),e)},n);return r})}};exports.BaseModel=Ot,exports.ExtendedModel=function(e,t){return sn(t,e)},exports.Frozen=tt,exports.MobxKeystoneError=f,exports.Model=cn,exports.Ref=jn,exports.TypeCheckError=ie,exports.UndoManager=dn,exports.actionCallToReduxAction=function(e){return{type:"applyAction",payload:e}},exports.actionTrackingMiddleware=Kt,exports.addActionMiddleware=je,exports.applyAction=Wt,exports.applyPatches=ft,exports.applySnapshot=zt,exports.arrayAsMap=function(e){var t,n,r,a=((n={clear:function(){e().length=0},delete:function(t){var n=e(),r=n.findIndex(function(e){return e[0]===t});return r>=0&&(n.splice(r,1),!0)},forEach:function(t,n){for(var r=e(),o=r.length,i=0;i<o;i++){var u=r[i];t.call(n,u[1],u[0],a)}},get:function(t){var n=e().find(function(e){return e[0]===t});return n?n[1]:void 0},has:function(t){return e().some(function(e){return e[0]===t})},set:function(t,n){var r=e(),o=r.find(function(e){return e[0]===t});return o?o[1]=n:r.push([t,n]),a},get size(){return e().length},keys:function(){return e().map(function(e){return e[0]})[Symbol.iterator]()},values:function(){return e().map(function(e){return e[1]})[Symbol.iterator]()},entries:function(){return e().map(function(e){return[e[0],e[1]]})[Symbol.iterator]()}})[Symbol.iterator]=function(){return a.entries()},(r={})[t=Symbol.toStringTag]=r[t]||{},r[t].get=function(){return"Map"},o(n,r),n);return a},exports.arrayAsSet=function(t){var n,r,a,i=((r={add:function(e){var n=t();return n.includes(e)||n.push(e),i},clear:function(){t().length=0},delete:function(e){var n=t(),r=n.findIndex(function(t){return t===e});return r>=0&&(n.splice(r,1),!0)},forEach:function(e,n){for(var r=t(),o=r.length,a=0;a<o;a++){var u=r[a];e.call(n,u,u,i)}},has:function(e){return t().includes(e)},get size(){return t().length},keys:function(){return i.values()},values:function(){var n=t();return e.values(n)[Symbol.iterator]()},entries:function(){return t().map(function(e){return[e,e]}).values()}})[Symbol.iterator]=function(){return i.values()},(a={})[n=Symbol.toStringTag]=a[n]||{},a[n].get=function(){return"Set"},o(r,a),r);return i},exports.arraySet=function(e){var t=e?e.slice():[];return new exports.ArraySet({items:t})},exports.asReduxStore=function(e){B(e,"target");for(var t=function(t){if("applyAction"!==t.type)throw l("action type was expected to be 'applyAction', but it was '"+t.type+"'");return Wt(e,t.payload),t},n={getState:function(){return Gt(e)},dispatch:function(e){return function(t,n,r){var o=0;return function e(t){var a=n[o];return o++,a?a(e)(t):r(t)}(e)}(0,i,t)},subscribe:function(t){return gn(e,t)}},r=arguments.length,o=new Array(r>1?r-1:0),a=1;a<r;a++)o[a-1]=arguments[a];var i=o.map(function(e){return e(n)});return n},exports.clone=function(e){B(e,"node");var t=Gt(e);return exports.fromSnapshot(t)},exports.connectReduxDevTools=function(e,t,n,r){var o=a({logArgsNearName:!0},r),i=0;t.subscribe(function(r){"DISPATCH"===r.type&&function(t,n,r){try{switch(i++,r.payload.type){case"RESET":return zt(n,u),t.init(u);case"COMMIT":return t.init(Gt(n));case"ROLLBACK":return t.init(e.extractState(r));case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return void zt(n,e.extractState(r));case"IMPORT_STATE":var o=r.payload.nextLiftedState,a=o.computedStates;zt(n,a[a.length-1].state),t.send(null,o)}}finally{i--}}(t,n,r)});var u=Gt(n);t.init(u);var c=0,s=Symbol("actionId");Kt(n,{onStart:function(e){e.data[s]=c++},onResume:function(e){e.parentContext&&f(e.parentContext,void 0),f(e,void 0)},onSuspend:function(e){f(e,void 0)},onFinish:function(e,t){f(e,t.result)}});var p=u;function f(e,r){if(!i){var a=Gt(n);if(a!==p||r===exports.ActionTrackingResult.Throw){p=a;var u=te(e.target),c=function e(t,n,r){var a="[/"+n.path.join("/")+"] "+t.actionName;if(o.logArgsNearName){var i=t.args.map(function(e){try{return JSON.stringify(e)}catch(e){return"**unserializable**"}}).join(", ");i.length>64&&(i=i.slice(0,64)+"..."),a+="("+i+")"}var u=t.data[s];if(a+=" (id "+(void 0!==u?u:"?"),t.type===exports.ActionContextActionType.Async&&(a+=", async"),a+=")",r===exports.ActionTrackingResult.Throw&&(a+=" -error thrown-"),t.parentContext){var c=e(t.parentContext,te(t.parentContext.target),void 0);c&&(a=c+" >>> "+a)}return a}(e,u,r);t.send({type:c,path:u.path,args:e.args},a)}}}},exports.customRef=function(n,r){var o=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t.prototype.resolve=function(){return r.resolve(this)},t}(jn);o=t.__decorate([pn(n)],o);var a=function(t){var n;"string"==typeof t?n=t:(A(t,"target"),n=r.getId(t));var a=new o({id:n});if(r.onResolvedValueChange){var i=a.maybeCurrent;e.reaction(function(){return a.maybeCurrent},function(e){if(e!==i){var t=i;i=e,r.onResolvedValueChange(a,e,t)}},{fireImmediately:!0})}return a};return a.refClass=o,a},exports.deserializeActionCall=function(e){return a({},e,{args:e.args.map(Yt)})},exports.deserializeActionCallArgument=Yt,exports.detach=$t,exports.findParent=ot,exports.frozen=nt,exports.getChildrenObjects=mn,exports.getCurrentActionContext=E,exports.getGlobalConfig=ge,exports.getModelDataType=j,exports.getParent=function(e,t){return void 0===t&&(t=!1),B(e,"value"),Y(e,t)},exports.getParentPath=function(e){return B(e,"value"),X(e)},exports.getParentToChildPath=function(e,t){if(B(e,"fromParent"),B(t,"toChild"),e===t)return[];for(var n,r=[],o=t;n=X(o);)if(r.unshift(n.path),(o=n.parent)===e)return r},exports.getRoot=function(e){return B(e,"value"),ne(e)},exports.getRootPath=ee,exports.getRootStore=function(e){B(e,"node");var t=ne(e);return Ve(t)?t:void 0},exports.getSnapshot=Gt,exports.isBuiltInAction=it,exports.isChildOfParent=oe,exports.isHookAction=Ce,exports.isModel=Rt,exports.isModelAction=Re,exports.isModelDataObject=Z,exports.isModelFlow=Lt,exports.isParentOfChild=function(e,t){return B(e,"parent"),B(t,"child"),oe(t,e)},exports.isRoot=re,exports.isRootStore=Ve,exports.isTreeNode=V,exports.model=pn,exports.modelAction=Me,exports.modelFlow=function(e,t,n){return k({target:e,propertyKey:t,baseDescriptor:n},function(e,t){return Lt(t)?t:(function(e,n,r){if("function"!=typeof t)throw l("modelFlow has to be used over functions");It("modelFlow",e,n)}(e.target,e.propertyKey),n=e.propertyKey,r=t,(o=function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];var a,i=this,u=function(e){return function(n){n.previousAsyncStepContext=a,n.spawnAsyncStepContext=a?a.spawnAsyncStepContext:n,n.asyncStepType=e,n.args=t,a=n}},c=!1,s=Ne(n,function(){return c=!0,r.apply(i,t)},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Spawn)).apply(i);if(!c)return s instanceof Promise?s:Promise.resolve(s);var p=s.next.bind(s),f=s.throw.bind(s);return new Promise(function(e,t){function r(r){var o;try{o=Ne(n,p,exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Resume)).call(i,r)}catch(r){return void Ne(n,function(n){return{value:n,resolution:"reject",accepter:e,rejecter:t}},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Throw),!0).call(i,r)}a(o)}function o(r){var o;try{o=Ne(n,f,exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.ResumeError)).call(i,r)}catch(r){return void Ne(n,function(n){return{value:n,resolution:"reject",accepter:e,rejecter:t}},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Throw),!0).call(i,r)}a(o)}function a(c){c&&"function"==typeof c.then?c.then(a,t):c.done?Ne(n,function(n){return{value:n,resolution:"accept",accepter:e,rejecter:t}},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Return),!0).call(i,c.value):Promise.resolve(c.value).then(r,o)}r(void 0)})})[Bt]=!0,o);var n,r,o})},exports.modelSnapshotInWithMetadata=function(e,t){var n;Pt(e,"modelClass"),A(t,"initialData");var r=$.get(e);return a({},t,((n={})[R]=r.name,n))},exports.modelSnapshotOutWithMetadata=function(e,t){var n;Pt(e,"modelClass"),A(t,"initialData");var r=$.get(e);return a({},t,((n={})[R]=r.name,n))},exports.modelTypeKey=R,exports.objectAsMap=function(t){var n,r,a,i=((r={clear:function(){for(var n=t(),r=Object.keys(n),o=r.length,a=0;a<o;a++)e.remove(n,r[a])},delete:function(n){var r=t();return!!i.has(n)&&(e.remove(r,n),!0)},forEach:function(e,n){for(var r=t(),o=Object.keys(r),a=o.length,u=0;u<a;u++){var c=o[u];e.call(n,r[c],c,i)}},get:function(n){var r=t();return e.get(r,n)},has:function(n){var r=t();return e.has(r,n)},set:function(n,r){var o=t();return e.set(o,n,r),i},get size(){var n=t();return e.keys(n).length},keys:function(){var n=t();return e.keys(n)[Symbol.iterator]()},values:function(){var n=t();return e.values(n)[Symbol.iterator]()},entries:function(){var n=t();return e.entries(n)[Symbol.iterator]()}})[Symbol.iterator]=function(){return i.entries()},(a={})[n=Symbol.toStringTag]=a[n]||{},a[n].get=function(){return"Map"},o(r,a),r);return i},exports.objectMap=function(e){var t={};if(e)for(var n=e.length,r=0;r<n;r++){var o=e[r];t[o[0]]=o[1]}return new exports.ObjectMap({items:t})},exports.onActionMiddleware=function(e,t){return B(e,"subtreeRoot"),A(t,"listeners"),Kt(e,{filter:function(e){return!e.parentContext&&!Ce(e.actionName)},onStart:function(e){if(t.onStart){var n=qt(e);return t.onStart(n,e)}},onFinish:function(e,n){if(t.onFinish){var r=qt(e);return t.onFinish(r,e,n)}}})},exports.onChildAttachedTo=function(t,n,r){S(t,"target"),S(n,"fn");var o=a({deep:!1,runForCurrentChildren:!0},r),i=new WeakMap,u=function(e){var t=i.get(e);t&&(i.delete(e),t())},c=function(e,t){t&&i.set(e,t)},s={deep:o.deep},p=function(){var e=t();return e instanceof Ot&&(e=e.$),mn(e,s)},f=o.runForCurrentChildren?new Set:p(),l=e.reaction(function(){return p()},function(e){for(var t=[],r=f.values(),o=r.next();!o.done;){var a=o.value;e.has(a)||(f.delete(a),t.push(a)),o=r.next()}if(t.length>0)for(var i=t.length-1;i>=0;i--)u(t[i]);for(var s=e.values(),p=s.next();!p.done;){var l=p.value;f.has(l)||(f.add(l),c(l,n(l))),p=s.next()}},{fireImmediately:!0});return function(e){if(l(),e)for(var t=f.values(),n=t.next();!n.done;)u(n.value),n=t.next();f.clear()}},exports.onGlobalPatches=Xe,exports.onPatches=qe,exports.onSnapshot=gn,exports.patchRecorder=Zt,exports.prop=function(e){var t="function"==typeof e;return{$valueType:null,$hasDefault:null,defaultFn:t?e:void 0,defaultValue:t?void 0:e,typeChecker:null}},exports.readonlyMiddleware=function(e){B(e,"subtreeRoot");var t=!1;return{dispose:Kt(e,{filter:function(e){return!e.parentContext&&!Ce(e.actionName)},onStart:function(e){return t?void 0:{result:exports.ActionTrackingResult.Throw,value:l("tried to invoke action '"+e.actionName+"' over a readonly node")}}}),allowWrite:function(e){var n=t;t=!0;try{return e()}finally{t=n}}}},exports.reduxActionType="applyAction",exports.registerRootStore=Ue,exports.resolvePath=ae,exports.runUnprotected=function(t,n){var r="string"==typeof t?t:void 0,o="string"==typeof t?n:t,a=D;D=!1;try{return r?e.runInAction(r,o):e.runInAction(o)}finally{D=a}},exports.serializeActionCall=function(e){return a({},e,{args:e.args.map(Xt)})},exports.serializeActionCallArgument=Xt,exports.setGlobalConfig=function(e){me=Object.freeze(a({},me,{},e))},exports.simplifyActionContext=Jt,exports.tProp=ln,exports.toTreeNode=function(e){if(!y(e))throw l("only objects can be turned into tree nodes");return V(e)?e:xt(e,void 0)},exports.transaction=function(e,t){var n,r,o;It("transaction",e,t),r=function(e){nn({model:e,actionName:t})},(o=(n=e.constructor)[O])||(n[O]=o=[]),o.push(r)},exports.transactionMiddleware=nn,exports.typeCheck=ye,exports.types=Nn,exports.undoMiddleware=function(e,t){B(e,"subtreeRoot");var n,r=Symbol("patchRecorder");function o(e){return e.rootContext.data[r]}var a=Kt(e,{onStart:function(t){t===t.rootContext&&function(t){t.rootContext.data[r]=Zt(e,{recording:!1,filter:vn})}(t)},onResume:function(e){o(e).recording=!0},onSuspend:function(e){o(e).recording=!1},onFinish:function(e){if(e===e.rootContext){var t=o(e);if(t.events.length>0){var r=[],a=[],i=t.events,u=Array.isArray(i),c=0;for(i=u?i:i[Symbol.iterator]();;){var s;if(u){if(c>=i.length)break;s=i[c++]}else{if((c=i.next()).done)break;s=c.value}var p=s;r.push.apply(r,p.patches),a.unshift.apply(a,p.inversePatches)}n.store._addUndo({targetPath:te(e.target).path,actionName:e.actionName,patches:r,inversePatches:a})}t.dispose()}}});return n=new dn(a,e,t)},exports.unregisterRootStore=We,exports.walkTree=$e,exports.withoutUndo=yn; | ||
"use strict";var e=require("mobx"),t=require("tslib");function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}function o(e,t){for(var n in t)(a=t[n]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,n,a);if(Object.getOwnPropertySymbols)for(var r=Object.getOwnPropertySymbols(t),o=0;o<r.length;o++){var a,i=r[o];(a=t[i]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,i,a)}return e}function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e,t,n){return(s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&c(o,n.prototype),o}).apply(null,arguments)}function p(e){var t="function"==typeof Map?new Map:void 0;return(p=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return s(e,arguments,u(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,e)})(e)}var f=function(e){function t(n){var r;return r=e.call(this,n)||this,Object.setPrototypeOf(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r),t.prototype),r}return i(t,e),t}(p(Error));function l(e){return new f(e)}var d={enumerable:!1,writable:!0,configurable:!1,value:void 0};function h(e,t,n,r){void 0===r&&(r=!0),r?(Object.defineProperty(e,t,d),e[t]=n):Object.defineProperty(e,t,{enumerable:!1,writable:r,configurable:!0,value:n})}function v(e){if(!y(e))return!1;var t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}function y(e){return null!==e&&"object"==typeof e}function m(e){switch(typeof e){case"number":case"string":case"boolean":case"undefined":case"bigint":return!0}return null===e}function g(e,t){var n=e.indexOf(t);return n>=0&&(e.splice(n,1),!0)}function b(t){return t instanceof Map||e.isObservableMap(t)}function x(t){return t instanceof Set||e.isObservableSet(t)}function w(t){return Array.isArray(t)||e.isObservableArray(t)}function A(e,t){if(!y(e))throw l(t+" must be an object")}function S(e,t){if("function"!=typeof e)throw l(t+" must be a function")}function k(e,t){var n=e.target,r=e.propertyKey,o=e.baseDescriptor;if(o)return{enumerable:!1,writable:!0,configurable:!0,value:t(e,o.value)};Object.defineProperty(n,r,{configurable:!0,enumerable:!1,get:function(){},set:function(n){h(this,r,t(a({},e,{target:this}),n))}})}var C=Symbol("modelProperties"),T=Symbol("modelDataTypeChecker"),O=Symbol("modelInitializers");function j(e){if(Rt(e))return e.constructor[T];if(_t(e))return e[T];throw l("modelClassOrInstance must be a model class or instance")}var R="$modelType";function M(e){return e===R}var _,P,N,I={},$=new Map;function F(e){return I[e]}function E(){return N}function z(e){N=e}(_=exports.ActionContextActionType||(exports.ActionContextActionType={})).Sync="sync",_.Async="async",(P=exports.ActionContextAsyncStepType||(exports.ActionContextAsyncStepType={})).Spawn="spawn",P.Return="return",P.Resume="resume",P.ResumeError="resumeError",P.Throw="throw";var D=!0,U=new WeakSet;function W(e){return U.has(e)}function V(e){return!m(e)&&W(e)}function B(e,t){if(!V(e))throw l(t+" must be a tree node (usually a model or a shallow / deep child part of a model 'data' object)");return!0}function L(){if(D&&!E())throw l("data changes must be performed inside model actions")}var K=!1,Q=new WeakMap,H=new WeakMap,J=new WeakMap;function G(t){var n=H.get(t);return n||(n=e.createAtom("parentAtom"),H.set(t,n)),n}function q(e){G(e).reportChanged()}function Y(e){return G(e).reportObserved(),Q.get(e)}function X(e,t){void 0===t&&(t=!1);var n=Y(e);return n&&t&&Z(n.parent)?X(n.parent,!1):n?n.parent:void 0}function Z(e){if(!y(e))return!1;var t=Y(e);return!!t&&"$"===t.path&&t.parent instanceof Ot}function ee(e){return B(e,"value"),te(e)}function te(e){for(var t,n={root:e,path:[]};t=Y(n.root);)n.root=t.parent,n.path.unshift(t.path);return n}function ne(e){return te(e).root}function re(e){return B(e,"value"),!X(e)}function oe(e,t){B(e,"child"),B(t,"parent");for(var n,r=e;n=Y(r);)if((r=n.parent)===t)return!0;return!1}function ae(e,t){for(var n=e,r=t.length,o=0;o<r;o++){if(!y(n))return{resolved:!1};n=n[t[o]]}return{resolved:!0,value:n}}var ie=function(){function e(e,t,n){this.path=e,this.expectedTypeName=t,this.actualValue=n}return e.prototype.throw=function(e){var t="TypeCheckError: ",n=[];throw V(e)&&(n=ee(e).path),t+="["+[].concat(n,this.path).join("/")+"] ",l(t+="Expected: "+this.expectedTypeName)},e}(),ue=[],ce=new WeakMap,se=function(){function e(e,t){this._check=e,this.getTypeName=t,this.unchecked=!e}var t=e.prototype;return t.createCacheIfNeeded=function(){return this.checkResultCache||(this.checkResultCache=new WeakMap),this.checkResultCache},t.setCachedResult=function(e,t){this.createCacheIfNeeded().set(e,t);var n=ce.get(e);n||(n=new Set,ce.set(e,n)),n.add(this)},t.invalidateCachedResult=function(e){this.checkResultCache&&this.checkResultCache.delete(e)},t.getCachedResult=function(e){return this.checkResultCache?this.checkResultCache.get(e):void 0},t.check=function(e,t){if(this.unchecked)return null;if(!V(e))return this._check(e,t);var n=this.getCachedResult(e);return void 0===n&&(n=this._check(e,ue),this.setCachedResult(e,n)),n?new ie([].concat(t,n.path),n.expectedTypeName,n.actualValue):null},e}();function pe(e){for(var t,n=e;;){if(n instanceof se)return n;if("function"!=typeof(t=n)||!t[fe])throw l("type checker could not be resolved");n=n()}}var fe=Symbol("lateTypeCheker");function le(e){var t,n=function(){return t||(t=e())};return n[fe]=!0,n}var de,he=new WeakMap;function ve(e){if(!_t(e)&&"function"==typeof e)return le(function(){return ve(e())});var t=e;Pt(t,"modelClass");var n=he.get(t);if(n)return n;var r=le(function(){var e=$.get(t),n="Model("+e.name+")";return new se(function(r,o){if(!(r instanceof t))return new ie(o,n,r);var a=j(r);if(!a)throw l("type checking cannot be performed over model of type '"+e.name+"' at path "+o.join("/")+" since that model type has no data type declared, consider adding a data type or using types.unchecked() instead");var i=pe(a);return i.unchecked?null:i.check(r.$,[].concat(o,["$"]))},function(){return n})});return he.set(t,r),r}function ye(e,t){if(!e)throw l("a type must be passed");var n=pe(e);return n.unchecked?null:n.check(t,[])}(de=exports.ModelAutoTypeCheckingMode||(exports.ModelAutoTypeCheckingMode={})).DevModeOnly="devModeOnly",de.AlwaysOn="alwaysOn",de.AlwaysOff="alwaysOff";var me={modelAutoTypeChecking:exports.ModelAutoTypeCheckingMode.DevModeOnly};function ge(){return me}function be(){switch(ge().modelAutoTypeChecking){case exports.ModelAutoTypeCheckingMode.DevModeOnly:case exports.ModelAutoTypeCheckingMode.AlwaysOff:return!1;case exports.ModelAutoTypeCheckingMode.AlwaysOn:return!0;default:throw l("invalid 'modelAutoTypeChecking' config value - "+me.modelAutoTypeChecking)}}var xe=new WeakMap;function we(e){return xe.get(e)}var Ae,Se=e.action("setInternalSnapshot",function(t,n){var r=we(t);if(!r||r.standard!==n){var o;r?(o=r).standard=n:(o={standard:n,atom:e.createAtom("snapshot")},xe.set(t,o)),o.atom.reportChanged();var a=function t(n,r){return e.untracked(function(){if(r){var e=we(r.parent);if(e)return n===e?t(e,Y(r.parent)):n?{parentSnapshot:e,parentPath:r}:void 0}})}(r,Y(t));if(a){var i=a.parentSnapshot,u=a.parentPath;if(i){var c=u.path,s=i.standard;s[c]!==o.standard&&((s=Array.isArray(s)?s.slice():Object.assign({},s))[c]=o.standard,Se(u.parent,s))}}}});(Ae=exports.HookAction||(exports.HookAction={})).OnInit="$$onInit",Ae.OnAttachedToRootStore="$$onAttachedToRootStore",Ae.OnAttachedToRootStoreDisposer="$$onAttachedToRootStoreDisposer";var ke=new Set(Object.values(exports.HookAction));function Ce(e){return ke.has(e)}var Te=new WeakMap,Oe=new WeakMap;function je(t){A(t,"middleware");var n=t.middleware,r=t.filter,o=t.subtreeRoot;if(B(o,"middleware.subtreeRoot"),S(n,"middleware.middleware"),r&&"function"!=typeof r)throw l("middleware.filter must be a function or undefined");if(e.isAction(n)||(n=e.action(n.name||"actionMiddleware",n)),o){var a=function(e){return e.target===o||oe(e.target,o)};if(r){var i=r;r=function(e){return a(e)&&i(e)}}else r=a}var u={middleware:n,filter:r},c=Te.get(o);return c?c.push(u):Te.set(o,c=[u]),function(){g(c,u)}}function Re(e){return"function"==typeof e&&e[Pe]}function Me(e,t,n){return k({target:e,propertyKey:t,baseDescriptor:n},function(e,t){return Re(t)?t:(function(e,n,r){if("function"!=typeof t)throw l("modelAction has to be used over functions");It("modelAction",e,n)}(e.target,e.propertyKey),Ne(e.propertyKey,t,exports.ActionContextActionType.Sync))})}var _e,Pe=Symbol("modelAction");function Ne(t,n,r,o,a){function i(){var e,i=E(),u={actionName:t,type:r,target:this,args:Array.from(arguments),parentContext:i,data:{},rootContext:void 0};o&&o(u),u.rootContext||(u.rootContext=u.previousAsyncStepContext?u.previousAsyncStepContext.rootContext:u.parentContext?u.parentContext.rootContext:u),z(u);var c,s,p,f=(e=n).bind.apply(e,[this].concat(Array.prototype.slice.call(arguments))),l=((p=Oe.get(c=this))||((s={})[Symbol.iterator]=function(){var e=c;function t(){var t=e?Te.get(e):void 0;if(t&&!(t.length<=0))return t[Symbol.iterator]()}function n(){for(var n;e&&!n;)e=X(e),n=t();return n}var r=t();return r||(r=n()),{next:function(){if(!r)return{value:void 0,done:!0};var e=r.next();return e.done?(r=n(),this.next()):e}}},Oe.set(c,p=s)),p),d=Array.isArray(l),h=0;for(l=d?l:l[Symbol.iterator]();;){var v;if(d){if(h>=l.length)break;v=l[h++]}else{if((h=l.next()).done)break;v=h.value}var y=v;(!y.filter||y.filter(u))&&(f=y.middleware.bind(void 0,u,f))}try{var m=f();if(a){var g=m,b=g.value;return"accept"===g.resolution?g.accepter(b):g.rejecter(b),b}return m}finally{z(u.parentContext)}}return void 0===a&&(a=!1),e.isAction(n)||(n=e.action(t,n)),i[Pe]=!0,i}function Ie(e,t,n){var r=e[t];if(!Re(r)){var o=Ne(n,r,exports.ActionContextActionType.Sync),a=Object.getPrototypeOf(e);a[t]===r?a[t]=o:e[t]=o}}function $e(e,t,n){return B(e,"target"),n===exports.WalkTreeMode.ParentFirst?function e(t,n){var r=n(t);if(void 0!==r)return r;for(var o=J.get(t).values(),a=o.next();!a.done;){var i=e(a.value,n);if(void 0!==i)return i;a=o.next()}}(e,t):function e(t,n){for(var r=J.get(t).values(),o=r.next();!o.done;){var a=e(o.value,n);if(void 0!==a)return a;o=r.next()}var i=n(t);if(void 0!==i)return i}(e,t)}(_e=exports.WalkTreeMode||(exports.WalkTreeMode={})).ParentFirst="parentFirst",_e.ChildrenFirst="childrenFirst";var Fe=new WeakMap;function Ee(e,t){$e(t,function(t){if(t instanceof Ot&&t.onAttachedToRootStore){Ie(t,"onAttachedToRootStore",exports.HookAction.OnAttachedToRootStore);var n=t.onAttachedToRootStore(e);if(n){var r=Ne(exports.HookAction.OnAttachedToRootStoreDisposer,n,exports.ActionContextActionType.Sync);Fe.set(t,r)}}},exports.WalkTreeMode.ParentFirst)}function ze(e){$e(e,function(e){var t=Fe.get(e);t&&(Fe.delete(e),t.call(e))},exports.WalkTreeMode.ChildrenFirst)}var De=new WeakSet,Ue=e.action("registerRootStore",function(e){if(B(e,"node"),De.has(e))throw l("object already marked as root store");if(!re(e))throw l("a root store must not have a parent");return De.add(e),Ee(e,e),e}),We=e.action("unregisterRootStore",function(e){if(!Ve(e))throw l("not a root store");De.delete(e),ze(e)});function Ve(e){return De.has(e)}var Be={deep:!1},Le=e.action("setParent",function(t,n,r){if(void 0===r&&(r=!1),!m(t)){J.has(t)||J.set(t,e.observable.set([],Be));var o=Y(t);if(i=n,void 0===u&&(u=!0),((a=o)||i)&&(!a||!i||a.parent!==i.parent||u&&a.path!==i.path)){var a,i,u;if(Ve(t))throw l("root stores cannot be attached to any parents");if(o&&n){if(o.parent===n.parent&&r)return Q.set(t,n),void q(t);throw l("an object cannot be assigned a new parent when it already has one")}var c=function(){o&&o.parent&&J.get(o.parent).delete(t)},s=function(){n&&n.parent&&J.get(n.parent).add(t),Q.set(t,n),q(t)};if(t instanceof Ot){var p=ne(t),f=Ve(p)?p:void 0;c(),s();var d=ne(t),h=Ve(d)?d:void 0;f!==h&&(f&&ze(t),h&&Ee(h,t))}else c(),s()}}});function Ke(e,t){return U.add(e),Le(e,t),e}var Qe,He=function(){function e(){}var t=e.prototype;return t.record=function(e,t){this.patches=e,this.invPatches=t},t.emit=function(e){!function e(t,n,r,o){if(!(n.length<=0&&r.length<=0)){if(o)for(var a=0;a<Ge.length;a++)(0,Ge[a])(t,n,r);var i=Je.get(t);if(i)for(var u=0;u<i.length;u++)(0,i[u])(n,r);var c=Y(t);if(c){var s=c.path,p=c.parent instanceof Ot,f=p?n:n.map(function(e){return Xe(e,s)}),l=p?r:r.map(function(e){return Xe(e,s)});e(c.parent,f,l,!1)}}}(e,this.patches,this.invPatches,!0)},e}(),Je=new WeakMap,Ge=[];function qe(t,n){B(t,"subtreeRoot"),S(n,"listener"),e.isAction(n)||(n=e.action(n.name||"onPatchesListener",n));var r=Je.get(t);return r||Je.set(t,r=[]),r.push(n),function(){g(r,n)}}function Ye(t){return S(t,"listener"),e.isAction(t)||(t=e.action(t.name||"onGlobalPatchesListener",t)),Ge.push(t),function(){g(Ge,t)}}function Xe(e,t){return a({},e,{path:[t].concat(e.path)})}(Qe=exports.FrozenCheckMode||(exports.FrozenCheckMode={})).DevModeOnly="devModeOnly",Qe.On="on",Qe.Off="off";var Ze,et="$frozen",tt=function(e,t){void 0===t&&(t=exports.FrozenCheckMode.DevModeOnly);var n=t===exports.FrozenCheckMode.On||t===exports.FrozenCheckMode.DevModeOnly&&!1;n&&function e(t){if(!m(t))if(Array.isArray(t)){for(var n=t.length,r=0;r<n;r++){var o=t[r];if(void 0===o)throw l("undefined is not supported inside arrays since it is not serializable in JSON, consider using null instead");e(o)}Object.freeze(t)}else{if(!v(t))throw l("frozen data must be plainly serializable to JSON, but "+t+" is not");for(var a=Object.keys(t),i=a.length,u=0;u<i;u++){var c=a[u],s=t[c];e(c),e(s)}Object.freeze(t)}}(e),this.data=e,n&&Object.freeze(this.data),xt(this,void 0)};function nt(e,t){return void 0===t&&(t=exports.FrozenCheckMode.DevModeOnly),new tt(e,t)}function rt(e){return v(e)&&!!e[et]}function ot(e,t,n){void 0===n&&(n=0),B(e,"child");for(var r,o=e,a=0;r=Y(o);){if(a++,t(o=r.parent))return o;if(n>0&&a===n)break}}(Ze=exports.BuiltInAction||(exports.BuiltInAction={})).ApplyPatches="$$applyPatches",Ze.ApplySnapshot="$$applySnapshot",Ze.Detach="$$detach";var at=new Set(Object.values(exports.BuiltInAction));function it(e){return at.has(e)}function ut(t){if(m(t))return t;if(b(t))throw l("a snapshot might not contain maps");if(x(t))throw l("a snapshot might not contain sets");if(w(t))return function(t){for(var n=e.observable.array([],st),r=t.length,o=0;o<r;o++)n.push(ut(t[o]));return yt(n,void 0,!0)}(t);if(rt(t))return nt(t.data);if(Nt(t))return function(e){var t=e[R];if(!t)throw l("a model a snapshot must contain a type key ("+R+"), but none was found");var n=F(t);if(!n)throw l('model with name "'+t+'" not found in the registry');return new n.class(void 0,{unprocessedSnapshot:e,snapshotToInitialData:ct})}(t);if(v(t))return function(t){for(var n=e.observable.object({},void 0,st),r=Object.keys(t),o=r.length,a=0;a<o;a++){var i=r[a];e.set(n,i,ut(t[i]))}return wt(n,void 0,void 0,!0)}(t);throw l("unsupported snapshot - "+t)}function ct(t){for(var n=e.observable.object({},void 0,st),r=Object.keys(t),o=r.length,a=0;a<o;a++){var i=r[a];M(i)||e.set(n,i,ut(t[i]))}return n}exports.fromSnapshot=function(e){return ut(e)},exports.fromSnapshot=e.action("fromSnapshot",exports.fromSnapshot);var st={deep:!1};function pt(t,n){if(m(n))return n;if(w(n))return function(t,n){if(!w(t))return exports.fromSnapshot(n);t.length>n.length&&t.splice(n.length,t.length-n.length);for(var r=0;r<t.length;r++)e.set(t,r,pt(t[r],n[r]));for(var o=t.length;o<n.length;o++)t.push(exports.fromSnapshot(n[o]));return t}(t,n);if(rt(n))return function(e,t){return e instanceof tt&&e.data===t.data?e:nt(t.data)}(t,n);if(Nt(n))return function(t,n){var r=n[R],o=F(r);if(!o)throw l('model with name "'+r+'" not found in the registry');if(!(t instanceof o.class)||t.$modelType!==r)return exports.fromSnapshot(n);var a=t,i=n;a.fromSnapshot&&(i=a.fromSnapshot(n));for(var u=a.$,c=Object.keys(u),s=c.length,p=0;p<s;p++){var f=c[p];f in i||e.remove(u,f)}for(var d=Object.keys(i),h=d.length,v=0;v<h;v++){var y=d[v];M(y)||e.set(u,y,pt(u[y],i[y]))}return a}(t,n);if(v(n))return function(t,n){if(!v(t)&&!e.isObservableObject(t))return exports.fromSnapshot(n);for(var r=t,o=Object.keys(r),a=o.length,i=0;i<a;i++){var u=o[i];u in n||e.remove(r,u)}for(var c=Object.keys(n),s=c.length,p=0;p<s;p++){var f=c[p];e.set(r,f,pt(r[f],n[f]))}return r}(t,n);if(b(n))throw l("a snapshot might not contain maps");if(x(n))throw l("a snapshot might not contain sets");throw l("unsupported snapshot - "+n)}function ft(e,t){B(e,"node"),dt.call(e,t)}function lt(e){for(var t=e.length,n=0;n<t;n++)ht(this,e[n])}var dt=Ne(exports.BuiltInAction.ApplyPatches,lt,exports.ActionContextActionType.Sync);function ht(t,n){var r=function(e,t){if(0===t.length)return{target:e};var n=e;n instanceof Ot&&(n=n.$);for(var r=0;r<=t.length-2;r++)(n=n[t[r]])instanceof Ot&&(n=n.$);return{target:n,prop:t[t.length-1]}}(t,n.path),o=r.target,a=r.prop;if(w(o))switch(n.op){case"add":o.splice(+a,0,exports.fromSnapshot(n.value));break;case"remove":o.splice(+a,1);break;case"replace":if("length"===a)o.length=n.value;else{var i=+a;e.set(o,i,pt(o[i],n.value))}break;default:throw l("unsupported patch operation: "+n.op)}else switch(n.op){case"add":e.set(o,a,exports.fromSnapshot(n.value));break;case"remove":e.remove(o,a);break;case"replace":e.set(o,a,pt(o[a],n.value));break;default:throw l("unsupported patch operation: "+n.op)}}function vt(t,n){if(function(e){for(var t=e;t;){var n=ce.get(t);if(n){var r=n,o=Array.isArray(r),a=0;for(r=o?r:r[Symbol.iterator]();;){var i;if(o){if(a>=r.length)break;i=r[a++]}else{if((a=r.next()).done)break;i=a.value}i.invalidateCachedResult(t)}ce.delete(t)}t=X(t)}}(t),be()){var r=ot(t,function(e){return Rt(e)&&!!j(e)});if(r){var o=r.typeCheck();o&&(function(r){var o=K;K=!0;try{e.runInAction(function(){lt.call(t,n.invPatches)})}finally{K=o}}(),o.throw(r))}}}function yt(t,n,r){var o=t,a=o.length,i=e.isObservableArray(o)?o:e.observable.array([],gt);i!==o&&(i.length=o.length),U.add(i),Le(i,n);var u=[];u.length=a;for(var c=0;c<a;c++){var s=o[c];if(m(s))r||e.set(i,c,s),u[c]=s;else{var p={parent:i,path:c},f=void 0;r?Le(f=s,p):(f=xt(s,p),e.set(i,c,f));var l=we(f);u[c]=l.standard}}return Se(i,u),e.intercept(i,function(e,t){switch(L(),t.type){case"splice":for(var n=0;n<t.removedCount;n++)xt(t.object[t.index+n],void 0);for(var r=0;r<t.added.length;r++)t.added[r]=xt(t.added[r],{parent:t.object,path:t.index+r});var o=t.index+t.removedCount,a=t.index+t.added.length;if(o!==a)for(var i=o,u=a;i<t.object.length;i++,u++)Le(t.object[i],{parent:t.object,path:u},!0);break;case"update":xt(e[t.index],void 0),t.newValue=xt(t.newValue,{parent:e,path:t.index})}return t}.bind(void 0,i)),e.observe(i,mt),i}function mt(e){var t=e.object,n=we(t).standard,r=new He;switch(n=n.slice(),e.type){case"splice":var o,a=[],i=e.addedCount;a.length=i;for(var u=0;u<i;u++){var c=e.added[u];a[u]=m(c)?c:we(c).standard}for(var s=n.length,p=e.removedCount,f=(o=n).splice.apply(o,[e.index,p].concat(a)),l=[],d=[],h=Math.min(p,i),v=0;v<h;v++){var y=f[v],g=a[v];if(y!==g){var b=[e.index+v];l.push({op:"replace",path:b,value:g}),d.push({op:"replace",path:b,value:y})}}if(p>i){l.push({op:"replace",path:["length"],value:n.length});for(var x=h;x<p;x++)d.push({op:"add",path:[e.index+x],value:f[x]})}else if(i>p){for(var w=h;w<i;w++)l.push({op:"add",path:[e.index+w],value:a[w]});d.push({op:"replace",path:["length"],value:s})}r.record(l,d);break;case"update":var A=e.index,S=e.newValue,k=n[A];if(m(S))n[A]=S;else{var C=we(S);n[A]=C.standard}var T=[A];r.record([{op:"replace",path:T,value:n[A]}],[{op:"replace",path:T,value:k}])}vt(t,r),K||(Se(t,n),r.emit(t))}var gt={deep:!1};function bt(t,n){if(m(t))return t;if(W(t))return Le(t,n),t;if(Rt(t))return Ke(t,n);if(w(t))return yt(t,n,!1);if(e.isObservableObject(t)||v(t))return wt(t,n,void 0,!1);if(t instanceof tt)return function(e,t){var n;return U.add(e),Le(e,t),Se(e,((n={})[et]=!0,n.data=e.data,n)),e}(t,n);if(b(t))throw l("maps are not supported");if(x(t))throw l("sets are not supported");throw l("tweak can only work over models, observable objects/arrays, or primitives, but got "+t+" instead")}var xt=e.action("tweak",bt);function wt(t,n,r,o){var a=t,i=e.isObservableObject(a)?a:e.observable.object({},void 0,At);U.add(i),Le(i,n);for(var u={},c=Object.keys(a),s=c.length,p=0;p<s;p++){var f=c[p],l=a[f];if(m(l))o||e.set(i,f,l),u[f]=l;else{var d={parent:i,path:f},h=void 0;o?Le(h=l,d):(h=xt(l,d),e.set(i,f,h));var v=we(h);u[f]=v.standard}}return r&&(u[R]=r),Se(i,u),e.intercept(i,kt),e.observe(i,St),i}var At={deep:!1};function St(e){var t=e.object,n=we(t).standard,r=new He;switch(n=Object.assign({},n),e.type){case"add":case"update":var o=e.name,a=e.newValue,i=n[o];if(m(a))n[o]=a;else{var u=we(a);n[o]=u.standard}var c=[o];"add"===e.type?r.record([{op:"add",path:c,value:n[o]}],[{op:"remove",path:c}]):r.record([{op:"replace",path:c,value:n[o]}],[{op:"replace",path:c,value:i}]);break;case"remove":var s=e.name,p=n[s];delete n[s];var f=[s];r.record([{op:"remove",path:f}],[{op:"add",path:f,value:p}])}vt(t,r),K||(Se(t,n),r.emit(t))}function kt(e){if(L(),"symbol"==typeof e.name)throw l("symbol properties are not supported.");switch(e.type){case"add":e.newValue=xt(e.newValue,{parent:e.object,path:""+e.name});break;case"remove":xt(e.object[e.name],void 0);break;case"update":xt(e.object[e.name],void 0),e.newValue=xt(e.newValue,{parent:e.object,path:""+e.name})}return e}var Ct=e.action("newModel",function(t,n,r,o){var a=t,i=$.get(n);if(!i)throw l("no model info for class "+n.name+" could be found - did you forget to add the @model decorator?");if(o){var u=o.unprocessedSnapshot;a.fromSnapshot&&(u=a.fromSnapshot(u)),r=o.snapshotToInitialData(u)}a[R]=i.name;for(var c=n[C],s=Object.keys(c),p=0;p<s.length;p++){var f=s[p];if(void 0===r[f]){var d=void 0,h=c[f];void 0!==h.defaultFn?d=h.defaultFn():void 0!==h.defaultValue&&(d=h.defaultValue),e.set(r,f,d)}}Ke(a,void 0);var v=wt(r,{parent:a,path:"$"},a[R],!1),y=we(v);if(xe.set(a,y),a.$=v,be()&&j(n)){var m=a.typeCheck();m&&m.throw(a)}var g=function(e){return e[O]}(n);if(g)for(var b=g.length,x=0;x<b;x++)(0,g[x])(a);return a}),Tt=Symbol("modelInitialized"),Ot=function(){function t(t){var n=t,r=arguments[1],o=arguments[2];Object.setPrototypeOf(this,o.prototype),r?Ct(this,o,void 0,r):(A(n,"initialData"),Ct(this,o,e.observable.object(n,void 0,{deep:!1}),void 0))}return t.prototype.typeCheck=function(){return ye(ve(this.constructor),this)},t}(),jt=new Set([R,"onInit","$","onAttachedToRootStore","fromSnapshot","typeCheck"]);function Rt(e){return e instanceof Ot}function Mt(e,t,n){if(void 0===n&&(n="must be a model instance"),!Rt(e))throw l(t+" "+n)}function _t(e){return"function"==typeof e&&(e===Ot||e.prototype instanceof Ot)}function Pt(e,t){if("function"!=typeof e)throw l(t+" must be a class");if(e!==Ot&&!(e.prototype instanceof Ot))throw l(t+" must extend Model")}function Nt(e){return v(e)&&!!e[R]}function It(e,t,n){if("string"!=typeof n)throw l(e+" cannot be used over symbol properties");var r=e+" must be used over model classes or instances";if(!t)throw l(r);if(!(t instanceof Ot||t===Ot||t.prototype instanceof Ot))throw l(r)}function $t(e){B(e,"node"),Ft.call(e)}var Ft=Ne(exports.BuiltInAction.Detach,Et,exports.ActionContextActionType.Sync);function Et(){var t=Y(this);if(t){var n=t.parent,r=t.path;if(e.isObservableArray(n))n.splice(+r,1);else{if(!e.isObservableObject(n))throw l("parent must be an observable object or an observable array");e.remove(n,""+r)}}}function zt(e,t){B(e,"node"),A(t,"snapshot"),Ut.call(e,t)}function Dt(t){var n=this,r=function(){pt(n,t)};if(w(t)){if(!w(n))throw l("if the snapshot is an array the target must be an array too");return r()}if(rt(t))throw l("applySnapshot can not be used over frozen objects");if(Nt(t)){var o=t[R],a=F(o);if(!a)throw l('model with name "'+o+'" not found in the registry');if(!(n instanceof a.class)||n.$modelType!==o)throw l("snapshot model type does not match target model type");return r()}if(v(t)){if(!v(n)&&!e.isObservableObject(n))throw l("if the snapshot is an object the target must be an object too");return r()}throw l("unsupported snapshot - "+t)}var Ut=Ne(exports.BuiltInAction.ApplySnapshot,Dt,exports.ActionContextActionType.Sync);function Wt(e,t){B(e,"subtreeRoot");var n=ae(e,t.targetPath),r=n.value;if(!n.resolved)throw l("object at path "+t.targetPath+" could not be resolved");if(Mt(r,"resolved "+t.targetPath),!it(t.actionName)){if(Ce(t.actionName))throw l("calls to hooks ("+t.actionName+") cannot be applied");return r[t.actionName].apply(r,t.args)}switch(t.actionName){case exports.BuiltInAction.ApplySnapshot:return zt.apply(r,[r].concat(t.args));case exports.BuiltInAction.ApplyPatches:return ft.apply(r,[r].concat(t.args));case exports.BuiltInAction.Detach:return $t.apply(r,[r].concat(t.args));default:throw l("assertion error: unknown built-in action - "+t.actionName)}}var Vt,Bt=Symbol("modelFlow");function Lt(e){return"function"==typeof e&&e[Bt]}function Kt(e,t){B(e,"subtreeRoot");var n=Symbol("actionTrackingMiddlewareData");function r(e){return e.data[n]}function o(e,t){var r=e.data[n];r?Object.assign(r,t):e.data[n]=t}var a=function(e){return!t.filter||t.filter(Jt(e))},i=!!t.onResume||!!t.onSuspend,u=function(e){if(o(e,{state:"started"}),t.onStart)return t.onStart(e)||void 0},c=function(e,n){var a=e.parentContext,i=!1;if(a){var u=r(a);u&&u.startAccepted&&"suspended"===u.state&&(i=!0,s(a,!1))}return o(e,{state:"finished"}),t.onFinish&&(n=t.onFinish(e,n)||n),i&&p(a),n},s=function e(n,a){var i=n.parentContext;if(i){var u=r(i);u&&u.startAccepted&&"suspended"===u.state&&e(i,!1)}o(n,{state:a?"realResumed":"fakeResumed"}),t.onResume&&t.onResume(n)},p=function e(n){o(n,{state:"suspended"}),t.onSuspend&&t.onSuspend(n);var a=n.parentContext;if(a){var i=r(a);i&&i.startAccepted&&"fakeResumed"===i.state&&e(a)}};return je({middleware:function(e,t){var n=Jt(e),r=t;if(t=function(){s(n,!0);try{return r()}finally{p(n)}},e.type===exports.ActionContextActionType.Sync){var o=u(n);if(o)s(n,!0),p(n),o=c(n,o);else try{o=c(n,{result:exports.ActionTrackingResult.Return,value:t()})}catch(e){o=c(n,{result:exports.ActionTrackingResult.Throw,value:e})}return Qt(o)}switch(e.asyncStepType){case exports.ActionContextAsyncStepType.Spawn:var a=u(n);return a?(s(n,!0),p(n),Qt(a=c(n,a))):t();case exports.ActionContextAsyncStepType.Return:var f=t(),d=c(n,{result:exports.ActionTrackingResult.Return,value:f.value});return f.resolution=d.result===exports.ActionTrackingResult.Return?"accept":"reject",f.value=d.value,f;case exports.ActionContextAsyncStepType.Throw:var h=t(),v=c(n,{result:exports.ActionTrackingResult.Throw,value:h.value});return h.resolution=v.result===exports.ActionTrackingResult.Return?"accept":"reject",h.value=v.value,h;case exports.ActionContextAsyncStepType.Resume:case exports.ActionContextAsyncStepType.ResumeError:if(i)return t();throw l("asssertion error: async step should have been filtered out - "+e.asyncStepType);default:throw l("asssertion error: async step should have been filtered out - "+e.asyncStepType)}},filter:function(e){if(e.type===exports.ActionContextActionType.Sync){var t=a(e);return t&&o(e,{startAccepted:!0,state:"idle"}),t}switch(e.asyncStepType){case exports.ActionContextAsyncStepType.Spawn:var n=a(e);return n&&o(e,{startAccepted:!0,state:"idle"}),n;case exports.ActionContextAsyncStepType.Return:case exports.ActionContextAsyncStepType.Throw:var u=r(e.spawnAsyncStepContext);return!!u&&u.startAccepted;case exports.ActionContextAsyncStepType.Resume:case exports.ActionContextAsyncStepType.ResumeError:if(i){var c=r(e.spawnAsyncStepContext);return!!c&&c.startAccepted}return!1;default:return!1}},subtreeRoot:e})}function Qt(e){if(e.result===exports.ActionTrackingResult.Return)return e.value;throw e.value}(Vt=exports.ActionTrackingResult||(exports.ActionTrackingResult={})).Return="return",Vt.Throw="throw";var Ht=Symbol("simpleDataContext");function Jt(e){for(;e.previousAsyncStepContext;)e=e.previousAsyncStepContext;var t=e.data[Ht];if(!t){var n=e.parentContext?Jt(e.parentContext):void 0;(t={actionName:e.actionName,type:e.type,target:e.target,args:e.args,data:e.data,parentContext:n}).rootContext=n?n.rootContext:t,e.data[Ht]=t}return t}function Gt(e){if(m(e))return e;B(e,"nodeOrPrimitive");var t=we(e);if(!t)throw l("getSnapshot is not supported for this kind of object");return t.atom.reportObserved(),t.standard}function qt(e){var t=ee(e.target);return{actionName:e.actionName,args:e.args,targetPath:t.path}}function Yt(t){if(m(t))return t;if(W(t))return Gt(t);var n=t;if(e.isObservable(t)&&(t=e.toJS(t,{exportMapsAsObjects:!1,detectCycles:!1})),v(t)||Array.isArray(t))return t;throw l("serializeActionCallArgument could not serialize the given value: "+n)}function Xt(e){return Nt(e)?exports.fromSnapshot(e):e}function Zt(e,t){return en(e,t)}function en(e,t){var n,r=a({recording:!0,filter:tn},t),o=r.recording,i=r.filter,u=[];return n=e?qe(e,function(t,n){o&&i(t,n)&&u.push({target:e,patches:t,inversePatches:n})}):Ye(function(e,t,n){o&&i(t,n)&&u.push({target:e,patches:t,inversePatches:n})}),{get recording(){return o},set recording(e){o=e},get events(){return u},dispose:function(){n()}}}var tn=function(){return!0};function nn(e){A(e,"target");var t=e.model,n=e.actionName;if(Mt(t,"target.model"),"string"!=typeof n)throw l("target.actionName must be a string");var r=Symbol("patchRecorder");function o(e){return e.rootContext.data[r]}return Kt(t,{filter:function(e){var r=e.rootContext;return r.target===t&&r.actionName===n},onStart:function(e){e===e.rootContext&&function(e){e.rootContext.data[r]=en(void 0,{recording:!1})}(e)},onResume:function(e){o(e).recording=!0},onSuspend:function(e){o(e).recording=!1},onFinish:function(e,t){if(e===e.rootContext){var n=o(e);try{if(t.result===exports.ActionTrackingResult.Throw)for(var r=n.events,a=r.length-1;a>=0;a--){var i=r[a];ft(i.target,i.inversePatches)}}finally{n.dispose()}}}})}function rn(e,t){return S(e,"objFn"),le(function(){var n=e();A(n,"objectSchema");var r=Object.entries(n),o=function(){for(var e=[],t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];for(var a=0,i=r;a<i.length;a++){var u=i[a],c=u[0],s=pe(u[1]),p="...";n.includes(s)||(p=s.getTypeName.apply(s,n.concat([s]))),e.push(c+": "+p+";")}return"{ "+e.join(" ")+" }"},a=new se(function(e,n){if(!y(e)||t&&!(e instanceof tt))return new ie(n,o(a),e);for(var i=new Set(Object.keys(e)),u=0,c=r;u<c.length;u++){var s=c[u],p=s[0],f=pe(s[1]),l=f.unchecked?null:f.check(e[p],[].concat(n,[p]));if(l)return l;i.delete(p)}return i.size>0?new ie(n,o(a),e):null},o);return a})}function on(e){return rn(e,!1)}var an=new se(null,function(){return"any"});function un(){return an}function cn(e){return sn(e)}function sn(e,t){A(e,"modelProps"),t&&Pt(t,"baseModel");var n,r=e;if(t)for(var o=t[C],a=0,i=Object.keys(o);a<i.length;a++){var u=i[a];if(e[u])throw l("extended model cannot redeclare base model property named '"+u+"'");r[u]=o[u]}if(Object.values(r).some(function(e){return e.typeChecker})){for(var c={},s=0,p=Object.entries(r);s<p.length;s++){var f=p[s];c[f[0]]=f[1].typeChecker||un()}n=on(function(){return c})}var d={},h=function(){if(y){if(m>=v.length)return"break";g=v[m++]}else{if((m=v.next()).done)return"break";g=m.value}var e=g;d[e]={enumerable:!1,configurable:!0,get:function(){return this.$[e]},set:function(t){this[Tt]&&(this.$[e]=t)}}},v=Object.keys(e).filter(function(e){return!jt.has(e)}),y=Array.isArray(v),m=0;for(v=y?v:v[Symbol.iterator]();;){var g;if("break"===h())break}var b=t||Ot,x=function(e){var t,n;function r(e,t,n){return new b(e,t,n||this.constructor)}return n=b,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,r}(),w=b[O];return w&&(x[O]=w.slice()),x[C]=r,x[T]=n,Object.defineProperties(x.prototype,d),x}var pn=function(e){return function(t){var n,r;Pt(t,"a model class"),I[e]&&(r="[mobx-keystone] "+(r='a model with name "'+e+'" already exists (if you are using hot-reloading this might be the cause)'),console.error(r));var o=((n={})[t.name]=function(e,n){var r=new t(e,n,this.constructor);return h(r,Tt,!0,!1),r.onInit&&(Ie(r,"onInit",exports.HookAction.OnInit),r.onInit()),r},n)[t.name];o.prototype=t.prototype,o[O]=t[O];var a={name:e,class:o};return I[e]=a,$.set(o,a),$.set(t,a),o}};function fn(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"Array<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){if(!w(e))return new ie(o,n(r),e);if(!t.unchecked)for(var a=0;a<e.length;a++){var i=t.check(e[a],[].concat(o,[a]));if(i)return i}return null},n);return r})}function ln(e,t){var n="function"==typeof t;return{$valueType:null,$hasDefault:null,defaultFn:n?t:void 0,defaultValue:n?void 0:t,typeChecker:e}}exports.UndoStore=function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var n=t.prototype;return n._clearUndo=function(){var e=this;yn(function(){e.undoEvents.length=0})},n._clearRedo=function(){var e=this;yn(function(){e.redoEvents.length=0})},n._undo=function(){var e=this;yn(function(){var t=e.undoEvents.pop();e.redoEvents.push(t)})},n._redo=function(){var e=this;yn(function(){var t=e.redoEvents.pop();e.undoEvents.push(t)})},n._addUndo=function(e){var t=this;yn(function(){t.undoEvents.push(e),t.redoEvents.length=0})},t}(cn({undoEvents:ln(fn(un()),function(){return[]}),redoEvents:ln(fn(un()),function(){return[]})})),t.__decorate([Me],exports.UndoStore.prototype,"_clearUndo",null),t.__decorate([Me],exports.UndoStore.prototype,"_clearRedo",null),t.__decorate([Me],exports.UndoStore.prototype,"_undo",null),t.__decorate([Me],exports.UndoStore.prototype,"_redo",null),t.__decorate([Me],exports.UndoStore.prototype,"_addUndo",null),exports.UndoStore=t.__decorate([pn("mobx-keystone/UndoStore")],exports.UndoStore);var dn=function(){function e(e,t,n){this.disposer=e,this.subtreeRoot=t,this.store=n||new exports.UndoStore({})}var t=e.prototype;return t.clearUndo=function(){this.store._clearUndo()},t.clearRedo=function(){this.store._clearRedo()},t.undo=function(){var e=this;if(!this.canUndo)throw l("nothing to undo");var t=this.undoQueue[this.undoQueue.length-1];yn(function(){ft(e.subtreeRoot,t.inversePatches)}),this.store._undo()},t.redo=function(){var e=this;if(!this.canRedo)throw l("nothing to redo");var t=this.redoQueue[this.redoQueue.length-1];yn(function(){ft(e.subtreeRoot,t.patches)}),this.store._redo()},t.dispose=function(){this.disposer()},r(e,[{key:"undoQueue",get:function(){return this.store.undoEvents}},{key:"redoQueue",get:function(){return this.store.redoEvents}},{key:"undoLevels",get:function(){return this.undoQueue.length}},{key:"canUndo",get:function(){return this.undoLevels>0}},{key:"redoLevels",get:function(){return this.redoQueue.length}},{key:"canRedo",get:function(){return this.redoLevels>0}}]),e}();t.__decorate([e.computed],dn.prototype,"undoQueue",null),t.__decorate([e.computed],dn.prototype,"redoQueue",null),t.__decorate([e.computed],dn.prototype,"undoLevels",null),t.__decorate([e.computed],dn.prototype,"canUndo",null),t.__decorate([e.action],dn.prototype,"clearUndo",null),t.__decorate([e.computed],dn.prototype,"redoLevels",null),t.__decorate([e.computed],dn.prototype,"canRedo",null),t.__decorate([e.action],dn.prototype,"clearRedo",null),t.__decorate([e.action],dn.prototype,"undo",null),t.__decorate([e.action],dn.prototype,"redo",null);var hn=!1,vn=function(){return!hn};function yn(e){var t=hn;hn=!0;try{return e()}finally{hn=t}}function mn(e,t){B(e,"node");var n=!!t&&!!t.includeModelDataObjects;if(t&&t.deep){var r=new Set;return $e(e,function(e){!n&&Z(e)||r.add(e)},exports.WalkTreeMode.ParentFirst),r.delete(e),r}for(var o=new Set,a=J.get(e).values(),i=a.next();!i.done;)!n&&Z(i.value)||o.add(i.value),i=a.next();return o}function gn(t,n){B(t,"node");var r=Gt(t);return e.reaction(function(){return Gt(t)},function(e){var t=r;r=e,n(e,t)})}function bn(e,t,n){return le(function(){var r=pe(e),o=function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];var a=r.getTypeName.apply(r,t.concat([r]));return(n||"refinementOf")+"<"+a+">"},a=new se(function(e,n){var i=r.check(e,n);if(i)return i;var u=t(e);return!0===u?null:!1===u?new ie([],o(a),e):u||null},o);return a})}function xn(e){var t;switch(function(t,n){if(!m(e))throw l("literal must be a primitive")}(),e){case void 0:t="undefined";break;case null:t="null";break;default:t=JSON.stringify(e)}return new se(function(n,r){return n===e?null:new ie(r,t,n)},function(){return t})}var wn=xn(void 0),An=xn(null),Sn=new se(function(e,t){return"boolean"==typeof e?null:new ie(t,"boolean",e)},function(){return"boolean"}),kn=new se(function(e,t){return"number"==typeof e?null:new ie(t,"number",e)},function(){return"number"}),Cn=new se(function(e,t){return"string"==typeof e?null:new ie(t,"string",e)},function(){return"string"}),Tn=bn(kn,function(e){return Number.isInteger(e)},"integer"),On=bn(Cn,function(e){return""!==e},"nonEmpty"),jn=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),r(t,[{key:"maybeCurrent",get:function(){return this.resolve()}},{key:"isValid",get:function(){return!!this.maybeCurrent}},{key:"current",get:function(){var e=this.maybeCurrent;if(!e)throw l("a reference of type '"+this.$modelType+"' could not resolve an object with id '"+this.id+"'");return e}}]),t}(cn({id:ln(Cn)}));function Rn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return le(function(){var e=t.map(pe);if(e.some(function(e){return e.unchecked}))return un();var n=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.map(function(e){return n.includes(e)?"...":e.getTypeName.apply(e,n.concat([e]))}).join(" | ")},r=new se(function(t,o){return e.every(function(e){return!!e.check(t,o)})?new ie(o,n(r),t):null},n);return r})}function Mn(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"Record<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){if(!y(e))return new ie(o,n(r),e);if(!t.unchecked)for(var a=Object.keys(e),i=0;i<a.length;i++){var u=a[i],c=t.check(e[u],[].concat(o,[u]));if(c)return c}return null},n);return r})}t.__decorate([e.computed],jn.prototype,"maybeCurrent",null),t.__decorate([e.computed],jn.prototype,"isValid",null),t.__decorate([e.computed],jn.prototype,"current",null),exports.ArraySet=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.add=function(e){var t=this.items;return t.includes(e)||t.push(e),this},o.clear=function(){this.items.length=0},o.delete=function(e){var t=this.items,n=t.findIndex(function(t){return t===e});return n>=0&&(t.splice(n,1),!0)},o.forEach=function(e,t){for(var n=this.items,r=n.length,o=0;o<r;o++){var a=n[o];e.call(t,a,a,this)}},o.has=function(e){return this.items.includes(e)},o.keys=function(){return this.values()},o.values=function(){return e.values(this.items)[Symbol.iterator]()},o.entries=function(){return this.items.map(function(e){return[e,e]}).values()},o[Symbol.iterator]=function(){return this.values()},r(n,[{key:"size",get:function(){return this.items.length}},{key:Symbol.toStringTag,get:function(){return"ArraySet"}}]),n}(cn({items:ln(fn(un()),function(){return[]})})),t.__decorate([Me],exports.ArraySet.prototype,"add",null),t.__decorate([Me],exports.ArraySet.prototype,"clear",null),t.__decorate([Me],exports.ArraySet.prototype,"delete",null),exports.ArraySet=t.__decorate([pn("mobx-keystone/ArraySet")],exports.ArraySet),exports.ObjectMap=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.clear=function(){for(var t=this.items,n=Object.keys(t),r=n.length,o=0;o<r;o++)e.remove(t,n[o])},o.delete=function(t){return!!this.has(t)&&(e.remove(this.items,t),!0)},o.forEach=function(e,t){for(var n=this.items,r=Object.keys(n),o=r.length,a=0;a<o;a++){var i=r[a];e.call(t,n[i],i,this)}},o.get=function(t){return e.get(this.items,t)},o.has=function(t){return e.has(this.items,t)},o.set=function(t,n){return e.set(this.items,t,n),this},o.keys=function(){return e.keys(this.items)[Symbol.iterator]()},o.values=function(){return e.values(this.items)[Symbol.iterator]()},o.entries=function(){return e.entries(this.items)[Symbol.iterator]()},o[Symbol.iterator]=function(){return this.entries()},r(n,[{key:"size",get:function(){return e.keys(this.items).length}},{key:Symbol.toStringTag,get:function(){return"ObjectMap"}}]),n}(cn({items:ln(Mn(un()),function(){return{}})})),t.__decorate([Me],exports.ObjectMap.prototype,"clear",null),t.__decorate([Me],exports.ObjectMap.prototype,"delete",null),t.__decorate([Me],exports.ObjectMap.prototype,"set",null),exports.ObjectMap=t.__decorate([pn("mobx-keystone/ObjectMap")],exports.ObjectMap);var _n=on(function(){return{id:Cn}}),Pn=new se(function(e,t){return e instanceof jn?pe(_n).check(e.$,[].concat(t,["$"])):new ie(t,"Ref",e)},function(){return"Ref"}),Nn={literal:xn,undefined:wn,null:An,boolean:Sn,number:kn,string:Cn,or:Rn,maybe:function(e){return Rn(e,wn)},maybeNull:function(e){return Rn(e,An)},array:fn,record:Mn,unchecked:un,model:ve,object:on,ref:function(){return Pn},frozen:function(e){return rn(function(){return{data:e}},!0)},enum:function(e){A(e,"enumObject");var t=function(e){for(var t=[],n=0,r=Object.keys(e);n<r.length;n++){var o=r[n],a=e[o];"string"==typeof a&&e[a]===+o||t.push(a)}return t}(e).map(function(e){return xn(e)});return Rn.apply(void 0,t)},refinement:bn,integer:Tn,nonEmptyString:On,objectMap:function(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"ObjectMap<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){return e instanceof exports.ObjectMap?pe(on(function(){return{items:Mn(t)}})).check(e.$,[].concat(o,["$"])):new ie(o,n(r),e)},n);return r})},arraySet:function(e){return le(function(){var t=pe(e),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return"ArraySet<"+t.getTypeName.apply(t,n.concat([t]))+">"},r=new se(function(e,o){return e instanceof exports.ArraySet?pe(on(function(){return{items:fn(t)}})).check(e.$,[].concat(o,["$"])):new ie(o,n(r),e)},n);return r})}};exports.BaseModel=Ot,exports.ExtendedModel=function(e,t){return sn(t,e)},exports.Frozen=tt,exports.MobxKeystoneError=f,exports.Model=cn,exports.Ref=jn,exports.TypeCheckError=ie,exports.UndoManager=dn,exports.actionCallToReduxAction=function(e){return{type:"applyAction",payload:e}},exports.actionTrackingMiddleware=Kt,exports.addActionMiddleware=je,exports.applyAction=Wt,exports.applyPatches=ft,exports.applySnapshot=zt,exports.arrayAsMap=function(e){var t,n,r,a=((n={clear:function(){e().length=0},delete:function(t){var n=e(),r=n.findIndex(function(e){return e[0]===t});return r>=0&&(n.splice(r,1),!0)},forEach:function(t,n){for(var r=e(),o=r.length,i=0;i<o;i++){var u=r[i];t.call(n,u[1],u[0],a)}},get:function(t){var n=e().find(function(e){return e[0]===t});return n?n[1]:void 0},has:function(t){return e().some(function(e){return e[0]===t})},set:function(t,n){var r=e(),o=r.find(function(e){return e[0]===t});return o?o[1]=n:r.push([t,n]),a},get size(){return e().length},keys:function(){return e().map(function(e){return e[0]})[Symbol.iterator]()},values:function(){return e().map(function(e){return e[1]})[Symbol.iterator]()},entries:function(){return e().map(function(e){return[e[0],e[1]]})[Symbol.iterator]()}})[Symbol.iterator]=function(){return a.entries()},(r={})[t=Symbol.toStringTag]=r[t]||{},r[t].get=function(){return"Map"},o(n,r),n);return a},exports.arrayAsSet=function(t){var n,r,a,i=((r={add:function(e){var n=t();return n.includes(e)||n.push(e),i},clear:function(){t().length=0},delete:function(e){var n=t(),r=n.findIndex(function(t){return t===e});return r>=0&&(n.splice(r,1),!0)},forEach:function(e,n){for(var r=t(),o=r.length,a=0;a<o;a++){var u=r[a];e.call(n,u,u,i)}},has:function(e){return t().includes(e)},get size(){return t().length},keys:function(){return i.values()},values:function(){var n=t();return e.values(n)[Symbol.iterator]()},entries:function(){return t().map(function(e){return[e,e]}).values()}})[Symbol.iterator]=function(){return i.values()},(a={})[n=Symbol.toStringTag]=a[n]||{},a[n].get=function(){return"Set"},o(r,a),r);return i},exports.arraySet=function(e){var t=e?e.slice():[];return new exports.ArraySet({items:t})},exports.asReduxStore=function(e){B(e,"target");for(var t=function(t){if("applyAction"!==t.type)throw l("action type was expected to be 'applyAction', but it was '"+t.type+"'");return Wt(e,t.payload),t},n={getState:function(){return Gt(e)},dispatch:function(e){return function(t,n,r){var o=0;return function e(t){var a=n[o];return o++,a?a(e)(t):r(t)}(e)}(0,i,t)},subscribe:function(t){return gn(e,t)}},r=arguments.length,o=new Array(r>1?r-1:0),a=1;a<r;a++)o[a-1]=arguments[a];var i=o.map(function(e){return e(n)});return n},exports.castModelFlow=function(e){return e},exports.castYield=function(e,t){return t},exports.clone=function(e){B(e,"node");var t=Gt(e);return exports.fromSnapshot(t)},exports.connectReduxDevTools=function(e,t,n,r){var o=a({logArgsNearName:!0},r),i=0;t.subscribe(function(r){"DISPATCH"===r.type&&function(t,n,r){try{switch(i++,r.payload.type){case"RESET":return zt(n,u),t.init(u);case"COMMIT":return t.init(Gt(n));case"ROLLBACK":return t.init(e.extractState(r));case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return void zt(n,e.extractState(r));case"IMPORT_STATE":var o=r.payload.nextLiftedState,a=o.computedStates;zt(n,a[a.length-1].state),t.send(null,o)}}finally{i--}}(t,n,r)});var u=Gt(n);t.init(u);var c=0,s=Symbol("actionId");Kt(n,{onStart:function(e){e.data[s]=c++},onResume:function(e){e.parentContext&&f(e.parentContext,void 0),f(e,void 0)},onSuspend:function(e){f(e,void 0)},onFinish:function(e,t){f(e,t.result)}});var p=u;function f(e,r){if(!i){var a=Gt(n);if(a!==p||r===exports.ActionTrackingResult.Throw){p=a;var u=te(e.target),c=function e(t,n,r){var a="[/"+n.path.join("/")+"] "+t.actionName;if(o.logArgsNearName){var i=t.args.map(function(e){try{return JSON.stringify(e)}catch(e){return"**unserializable**"}}).join(", ");i.length>64&&(i=i.slice(0,64)+"..."),a+="("+i+")"}var u=t.data[s];if(a+=" (id "+(void 0!==u?u:"?"),t.type===exports.ActionContextActionType.Async&&(a+=", async"),a+=")",r===exports.ActionTrackingResult.Throw&&(a+=" -error thrown-"),t.parentContext){var c=e(t.parentContext,te(t.parentContext.target),void 0);c&&(a=c+" >>> "+a)}return a}(e,u,r);t.send({type:c,path:u.path,args:e.args},a)}}}},exports.customRef=function(n,r){var o=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t.prototype.resolve=function(){return r.resolve(this)},t}(jn);o=t.__decorate([pn(n)],o);var a=function(t){var n;"string"==typeof t?n=t:(A(t,"target"),n=r.getId(t));var a=new o({id:n});if(r.onResolvedValueChange){var i=a.maybeCurrent;e.reaction(function(){return a.maybeCurrent},function(e){if(e!==i){var t=i;i=e,r.onResolvedValueChange(a,e,t)}},{fireImmediately:!0})}return a};return a.refClass=o,a},exports.deserializeActionCall=function(e){return a({},e,{args:e.args.map(Xt)})},exports.deserializeActionCallArgument=Xt,exports.detach=$t,exports.findParent=ot,exports.frozen=nt,exports.getChildrenObjects=mn,exports.getCurrentActionContext=E,exports.getGlobalConfig=ge,exports.getModelDataType=j,exports.getParent=function(e,t){return void 0===t&&(t=!1),B(e,"value"),X(e,t)},exports.getParentPath=function(e){return B(e,"value"),Y(e)},exports.getParentToChildPath=function(e,t){if(B(e,"fromParent"),B(t,"toChild"),e===t)return[];for(var n,r=[],o=t;n=Y(o);)if(r.unshift(n.path),(o=n.parent)===e)return r},exports.getRoot=function(e){return B(e,"value"),ne(e)},exports.getRootPath=ee,exports.getRootStore=function(e){B(e,"node");var t=ne(e);return Ve(t)?t:void 0},exports.getSnapshot=Gt,exports.isBuiltInAction=it,exports.isChildOfParent=oe,exports.isHookAction=Ce,exports.isModel=Rt,exports.isModelAction=Re,exports.isModelDataObject=function(e){return B(e,"value"),Z(e)},exports.isModelFlow=Lt,exports.isParentOfChild=function(e,t){return B(e,"parent"),B(t,"child"),oe(t,e)},exports.isRoot=re,exports.isRootStore=Ve,exports.isTreeNode=V,exports.model=pn,exports.modelAction=Me,exports.modelFlow=function(e,t,n){return k({target:e,propertyKey:t,baseDescriptor:n},function(e,t){return Lt(t)?t:(function(e,n,r){if("function"!=typeof t)throw l("modelFlow has to be used over functions");It("modelFlow",e,n)}(e.target,e.propertyKey),n=e.propertyKey,r=t,(o=function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];var a,i=this,u=function(e){return function(n){n.previousAsyncStepContext=a,n.spawnAsyncStepContext=a?a.spawnAsyncStepContext:n,n.asyncStepType=e,n.args=t,a=n}},c=!1,s=Ne(n,function(){return c=!0,r.apply(i,t)},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Spawn)).apply(i);if(!c)return s instanceof Promise?s:Promise.resolve(s);var p=s.next.bind(s),f=s.throw.bind(s);return new Promise(function(e,t){function r(r){var o;try{o=Ne(n,p,exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Resume)).call(i,r)}catch(r){return void Ne(n,function(n){return{value:n,resolution:"reject",accepter:e,rejecter:t}},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Throw),!0).call(i,r)}a(o)}function o(r){var o;try{o=Ne(n,f,exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.ResumeError)).call(i,r)}catch(r){return void Ne(n,function(n){return{value:n,resolution:"reject",accepter:e,rejecter:t}},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Throw),!0).call(i,r)}a(o)}function a(c){c&&"function"==typeof c.then?c.then(a,t):c.done?Ne(n,function(n){return{value:n,resolution:"accept",accepter:e,rejecter:t}},exports.ActionContextActionType.Async,u(exports.ActionContextAsyncStepType.Return),!0).call(i,c.value):Promise.resolve(c.value).then(r,o)}r(void 0)})})[Bt]=!0,o);var n,r,o})},exports.modelSnapshotInWithMetadata=function(e,t){var n;Pt(e,"modelClass"),A(t,"initialData");var r=$.get(e);return a({},t,((n={})[R]=r.name,n))},exports.modelSnapshotOutWithMetadata=function(e,t){var n;Pt(e,"modelClass"),A(t,"initialData");var r=$.get(e);return a({},t,((n={})[R]=r.name,n))},exports.modelTypeKey=R,exports.objectAsMap=function(t){var n,r,a,i=((r={clear:function(){for(var n=t(),r=Object.keys(n),o=r.length,a=0;a<o;a++)e.remove(n,r[a])},delete:function(n){var r=t();return!!i.has(n)&&(e.remove(r,n),!0)},forEach:function(e,n){for(var r=t(),o=Object.keys(r),a=o.length,u=0;u<a;u++){var c=o[u];e.call(n,r[c],c,i)}},get:function(n){var r=t();return e.get(r,n)},has:function(n){var r=t();return e.has(r,n)},set:function(n,r){var o=t();return e.set(o,n,r),i},get size(){var n=t();return e.keys(n).length},keys:function(){var n=t();return e.keys(n)[Symbol.iterator]()},values:function(){var n=t();return e.values(n)[Symbol.iterator]()},entries:function(){var n=t();return e.entries(n)[Symbol.iterator]()}})[Symbol.iterator]=function(){return i.entries()},(a={})[n=Symbol.toStringTag]=a[n]||{},a[n].get=function(){return"Map"},o(r,a),r);return i},exports.objectMap=function(e){var t={};if(e)for(var n=e.length,r=0;r<n;r++){var o=e[r];t[o[0]]=o[1]}return new exports.ObjectMap({items:t})},exports.onActionMiddleware=function(e,t){return B(e,"subtreeRoot"),A(t,"listeners"),Kt(e,{filter:function(e){return!e.parentContext&&!Ce(e.actionName)},onStart:function(e){if(t.onStart){var n=qt(e);return t.onStart(n,e)}},onFinish:function(e,n){if(t.onFinish){var r=qt(e);return t.onFinish(r,e,n)}}})},exports.onChildAttachedTo=function(t,n,r){S(t,"target"),S(n,"fn");var o=a({deep:!1,runForCurrentChildren:!0},r),i=new WeakMap,u=function(e){var t=i.get(e);t&&(i.delete(e),t())},c=function(e,t){t&&i.set(e,t)},s={deep:o.deep},p=function(){var e=t();return e instanceof Ot&&(e=e.$),mn(e,s)},f=o.runForCurrentChildren?new Set:p(),l=e.reaction(function(){return p()},function(e){for(var t=[],r=f.values(),o=r.next();!o.done;){var a=o.value;e.has(a)||(f.delete(a),t.push(a)),o=r.next()}if(t.length>0)for(var i=t.length-1;i>=0;i--)u(t[i]);for(var s=e.values(),p=s.next();!p.done;){var l=p.value;f.has(l)||(f.add(l),c(l,n(l))),p=s.next()}},{fireImmediately:!0});return function(e){if(l(),e)for(var t=f.values(),n=t.next();!n.done;)u(n.value),n=t.next();f.clear()}},exports.onGlobalPatches=Ye,exports.onPatches=qe,exports.onSnapshot=gn,exports.patchRecorder=Zt,exports.prop=function(e){var t="function"==typeof e;return{$valueType:null,$hasDefault:null,defaultFn:t?e:void 0,defaultValue:t?void 0:e,typeChecker:null}},exports.readonlyMiddleware=function(e){B(e,"subtreeRoot");var t=!1;return{dispose:Kt(e,{filter:function(e){return!e.parentContext&&!Ce(e.actionName)},onStart:function(e){return t?void 0:{result:exports.ActionTrackingResult.Throw,value:l("tried to invoke action '"+e.actionName+"' over a readonly node")}}}),allowWrite:function(e){var n=t;t=!0;try{return e()}finally{t=n}}}},exports.reduxActionType="applyAction",exports.registerRootStore=Ue,exports.resolvePath=ae,exports.runUnprotected=function(t,n){var r="string"==typeof t?t:void 0,o="string"==typeof t?n:t,a=D;D=!1;try{return r?e.runInAction(r,o):e.runInAction(o)}finally{D=a}},exports.serializeActionCall=function(e){return a({},e,{args:e.args.map(Yt)})},exports.serializeActionCallArgument=Yt,exports.setGlobalConfig=function(e){me=Object.freeze(a({},me,{},e))},exports.simplifyActionContext=Jt,exports.tProp=ln,exports.toTreeNode=function(e){if(!y(e))throw l("only objects can be turned into tree nodes");return V(e)?e:xt(e,void 0)},exports.transaction=function(e,t){var n,r,o;It("transaction",e,t),r=function(e){nn({model:e,actionName:t})},(o=(n=e.constructor)[O])||(n[O]=o=[]),o.push(r)},exports.transactionMiddleware=nn,exports.typeCheck=ye,exports.types=Nn,exports.undoMiddleware=function(e,t){B(e,"subtreeRoot");var n,r=Symbol("patchRecorder");function o(e){return e.rootContext.data[r]}var a=Kt(e,{onStart:function(t){t===t.rootContext&&function(t){t.rootContext.data[r]=Zt(e,{recording:!1,filter:vn})}(t)},onResume:function(e){o(e).recording=!0},onSuspend:function(e){o(e).recording=!1},onFinish:function(e){if(e===e.rootContext){var t=o(e);if(t.events.length>0){var r=[],a=[],i=t.events,u=Array.isArray(i),c=0;for(i=u?i:i[Symbol.iterator]();;){var s;if(u){if(c>=i.length)break;s=i[c++]}else{if((c=i.next()).done)break;s=c.value}var p=s;r.push.apply(r,p.patches),a.unshift.apply(a,p.inversePatches)}n.store._addUndo({targetPath:te(e.target).path,actionName:e.actionName,patches:r,inversePatches:a})}t.dispose()}}});return n=new dn(a,e,t)},exports.unregisterRootStore=We,exports.walkTree=$e,exports.withoutUndo=yn; | ||
//# sourceMappingURL=mobx-keystone.cjs.production.min.js.map |
/** | ||
* Returns all the children objects (this is, excluding primitives) of an object. | ||
* Excludes model interim data objects (`$`). | ||
* | ||
* @param node Object to get the list of children from. | ||
* @param [options] An optional object with the `deep` option (defaults to false) to true to get | ||
* the children deeply or false to get them shallowly. | ||
* the children deeply or false to get them shallowly, and `includeModelDataObjects` (defaults to false) | ||
* to get the model interim data objects (`$`) or false not to. | ||
* @returns | ||
@@ -11,2 +13,3 @@ */ | ||
deep?: boolean; | ||
includeModelDataObjects?: boolean; | ||
}): Set<object>; |
@@ -66,2 +66,6 @@ /** | ||
/** | ||
* @ignore | ||
*/ | ||
export declare function fastIsModelDataObject(value: object): boolean; | ||
/** | ||
* Returns the root of the target plus the path from the root to get to the target. | ||
@@ -68,0 +72,0 @@ * |
{ | ||
"name": "mobx-keystone", | ||
"version": "0.14.1", | ||
"version": "0.15.0", | ||
"description": "A MobX powered state management solution based on data trees with first class support for Typescript, snapshots, patches and much more", | ||
@@ -36,3 +36,4 @@ "keywords": [ | ||
"test:perf:run": "cd perf_bench && export NODE_ENV=production && /usr/bin/time node --expose-gc --require ts-node/register ./report.ts", | ||
"build-docs": "shx rm -rf ../site/src/public/api && typedoc --options ./typedocconfig.js", | ||
"fix-tsdocs": "shx rm -rf ../../node_modules/typedoc/node_modules/typescript", | ||
"build-docs": "shx rm -rf ../site/src/public/api && yarn fix-tsdocs && typedoc --options ./typedocconfig.js", | ||
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"" | ||
@@ -51,3 +52,3 @@ }, | ||
"typedoc": "^0.15.0", | ||
"typescript": "^3.5.1" | ||
"typescript": "^3.6.2" | ||
}, | ||
@@ -54,0 +55,0 @@ "dependencies": { |
@@ -58,3 +58,3 @@ # mobx-keystone | ||
If you are using Typescript, then version >= 3.5.3 is recommended, though it _might_ work with older versions. | ||
If you are using Typescript, then version >= 3.6.2 is recommended, though it _might_ work with older versions. | ||
@@ -61,0 +61,0 @@ ## Installation |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
1530838
14694