(()=>{var __webpack_require__={d:(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})}};__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})};var __webpack_exports__={};(()=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{runTest:()=>runTest});function die(error){ /*ThouShaltNotCache*/ for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++)args[_key-1]=arguments[_key];throw new Error("number"==typeof error?"[MobX] minified error nr: "+error+(args.length?" "+args.map(String).join(","):"")+". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts":"[MobX] "+error)}var mockGlobal={};function getGlobal(){ /*ThouShaltNotCache*/ return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==__webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:mockGlobal}var mobx_esm_assign=Object.assign,getDescriptor=Object.getOwnPropertyDescriptor,defineProperty=Object.defineProperty,objectPrototype=Object.prototype,EMPTY_ARRAY=[];Object.freeze(EMPTY_ARRAY);var EMPTY_OBJECT={};Object.freeze(EMPTY_OBJECT);var hasProxy="undefined"!=typeof Proxy,plainObjectString=Object.toString();function assertProxies(){ /*ThouShaltNotCache*/ hasProxy||die("Proxy not available")}function once(func){ /*ThouShaltNotCache*/ var invoked=!1;return function(){ /*ThouShaltNotCache*/ if(!invoked)return invoked=!0,func.apply(this,arguments)}}var noop=function(){};function isFunction(fn){ /*ThouShaltNotCache*/ return"function"==typeof fn}function isStringish(value){switch(typeof value){case"string":case"symbol":case"number":return!0}return!1}function isObject(value){ /*ThouShaltNotCache*/ return null!==value&&"object"==typeof value}function isPlainObject(value){ /*ThouShaltNotCache*/ if(!isObject(value))return!1;var proto=Object.getPrototypeOf(value);if(null==proto)return!0;var protoConstructor=Object.hasOwnProperty.call(proto,"constructor")&&proto.constructor;return"function"==typeof protoConstructor&&protoConstructor.toString()===plainObjectString}function isGenerator(obj){ /*ThouShaltNotCache*/ var constructor=null==obj?void 0:obj.constructor;return!!constructor&&("GeneratorFunction"===constructor.name||"GeneratorFunction"===constructor.displayName)}function addHiddenProp(object,propName,value){ /*ThouShaltNotCache*/ defineProperty(object,propName,{enumerable:!1,writable:!0,configurable:!0,value})}function addHiddenFinalProp(object,propName,value){ /*ThouShaltNotCache*/ defineProperty(object,propName,{enumerable:!1,writable:!1,configurable:!0,value})}function createInstanceofPredicate(name,theClass){ /*ThouShaltNotCache*/ var propName="isMobX"+name;return theClass.prototype[propName]=!0,function(x){ /*ThouShaltNotCache*/ return isObject(x)&&!0===x[propName]}}function isES6Map(thing){ /*ThouShaltNotCache*/ return null!=thing&&"[object Map]"===Object.prototype.toString.call(thing)}function isES6Set(thing){ /*ThouShaltNotCache*/ return null!=thing&&"[object Set]"===Object.prototype.toString.call(thing)}var hasGetOwnPropertySymbols=void 0!==Object.getOwnPropertySymbols;var ownKeys="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:hasGetOwnPropertySymbols?function(obj){ /*ThouShaltNotCache*/ return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj))}:Object.getOwnPropertyNames;function toPrimitive(value){ /*ThouShaltNotCache*/ return null===value?null:"object"==typeof value?""+value:value}function hasProp(target,prop){ /*ThouShaltNotCache*/ return objectPrototype.hasOwnProperty.call(target,prop)}var getOwnPropertyDescriptors=Object.getOwnPropertyDescriptors||function(target){ /*ThouShaltNotCache*/ var res={};return ownKeys(target).forEach(function(key){ /*ThouShaltNotCache*/ res[key]=getDescriptor(target,key)}),res};function getFlag(flags,mask){ /*ThouShaltNotCache*/ return!!(flags&mask)}function setFlag(flags,mask,newValue){ /*ThouShaltNotCache*/ return newValue?flags|=mask:flags&=~mask,flags}function _arrayLikeToArray(r,a){ /*ThouShaltNotCache*/ (null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _extends(){ /*ThouShaltNotCache*/ return _extends=Object.assign?Object.assign.bind():function(n){ /*ThouShaltNotCache*/ for(var e=1;elowestNewObservingDerivationState&&(lowestNewObservingDerivationState=dep.dependenciesState_)}observing.length=i0,derivation.newObserving_=null,l=prevObserving.length;for(;l--;){var _dep=prevObserving[l];0===_dep.diffValue&&removeObserver(_dep,derivation),_dep.diffValue=0}for(;i0--;){var _dep2=observing[i0];1===_dep2.diffValue&&(_dep2.diffValue=0,addObserver(_dep2,derivation))}lowestNewObservingDerivationState!==IDerivationState_.UP_TO_DATE_&&(derivation.dependenciesState_=lowestNewObservingDerivationState,derivation.onBecomeStale_())}(derivation),allowStateReadsEnd(prevAllowStateReads),result}function clearObserving(derivation){ /*ThouShaltNotCache*/ var obs=derivation.observing_;derivation.observing_=[];for(var i=obs.length;i--;)removeObserver(obs[i],derivation);derivation.dependenciesState_=IDerivationState_.NOT_TRACKING_}function untracked(action){ /*ThouShaltNotCache*/ var prev=untrackedStart();try{return action()}finally{untrackedEnd(prev)}}function untrackedStart(){ /*ThouShaltNotCache*/ var prev=globalState.trackingDerivation;return globalState.trackingDerivation=null,prev}function untrackedEnd(prev){ /*ThouShaltNotCache*/ globalState.trackingDerivation=prev}function allowStateReadsStart(allowStateReads){ /*ThouShaltNotCache*/ var prev=globalState.allowStateReads;return globalState.allowStateReads=allowStateReads,prev}function allowStateReadsEnd(prev){ /*ThouShaltNotCache*/ globalState.allowStateReads=prev}function changeDependenciesStateTo0(derivation){ /*ThouShaltNotCache*/ if(derivation.dependenciesState_!==IDerivationState_.UP_TO_DATE_){derivation.dependenciesState_=IDerivationState_.UP_TO_DATE_;for(var obs=derivation.observing_,i=obs.length;i--;)obs[i].lowestObserverState_=IDerivationState_.UP_TO_DATE_}}var MobXGlobals=function(){ /*ThouShaltNotCache*/ this.version=6,this.UNCHANGED={},this.trackingDerivation=null,this.trackingContext=null,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!1,this.allowStateReads=!0,this.enforceActions=!0,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1,this.useProxies=!0,this.verifyProxies=!1,this.safeDescriptors=!0},canMergeGlobalState=!0,isolateCalled=!1,globalState=function(){ /*ThouShaltNotCache*/ var global=getGlobal();return global.__mobxInstanceCount>0&&!global.__mobxGlobals&&(canMergeGlobalState=!1),global.__mobxGlobals&&global.__mobxGlobals.version!==(new MobXGlobals).version&&(canMergeGlobalState=!1),canMergeGlobalState?global.__mobxGlobals?(global.__mobxInstanceCount+=1,global.__mobxGlobals.UNCHANGED||(global.__mobxGlobals.UNCHANGED={}),global.__mobxGlobals):(global.__mobxInstanceCount=1,global.__mobxGlobals=new MobXGlobals):(setTimeout(function(){ /*ThouShaltNotCache*/ isolateCalled||die(35)},1),new MobXGlobals)}();function addObserver(observable,node){ /*ThouShaltNotCache*/ observable.observers_.add(node),observable.lowestObserverState_>node.dependenciesState_&&(observable.lowestObserverState_=node.dependenciesState_)}function removeObserver(observable,node){ /*ThouShaltNotCache*/ observable.observers_.delete(node),0===observable.observers_.size&&queueForUnobservation(observable)}function queueForUnobservation(observable){ /*ThouShaltNotCache*/ !1===observable.isPendingUnobservation&&(observable.isPendingUnobservation=!0,globalState.pendingUnobservations.push(observable))}function startBatch(){ /*ThouShaltNotCache*/ globalState.inBatch++}function endBatch(){ /*ThouShaltNotCache*/ if(0===--globalState.inBatch){runReactions();for(var list=globalState.pendingUnobservations,i=0;i0&&queueForUnobservation(observable),!1)}function propagateChanged(observable){ /*ThouShaltNotCache*/ observable.lowestObserverState_!==IDerivationState_.STALE_&&(observable.lowestObserverState_=IDerivationState_.STALE_,observable.observers_.forEach(function(d){ /*ThouShaltNotCache*/ d.dependenciesState_===IDerivationState_.UP_TO_DATE_&&d.onBecomeStale_(),d.dependenciesState_=IDerivationState_.STALE_}))}var Reaction=function(){ /*ThouShaltNotCache*/ function Reaction(name_,onInvalidate_,errorHandler_,requiresObservable_){ /*ThouShaltNotCache*/ void 0===name_&&(name_="Reaction"),this.name_=void 0,this.onInvalidate_=void 0,this.errorHandler_=void 0,this.requiresObservable_=void 0,this.observing_=[],this.newObserving_=[],this.dependenciesState_=IDerivationState_.NOT_TRACKING_,this.runId_=0,this.unboundDepsCount_=0,this.flags_=0,this.isTracing_=TraceMode.NONE,this.name_=name_,this.onInvalidate_=onInvalidate_,this.errorHandler_=errorHandler_,this.requiresObservable_=requiresObservable_}var _proto=Reaction.prototype;return _proto.onBecomeStale_=function(){ /*ThouShaltNotCache*/ this.schedule_()},_proto.schedule_=function(){ /*ThouShaltNotCache*/ this.isScheduled||(this.isScheduled=!0,globalState.pendingReactions.push(this),runReactions())},_proto.runReaction_=function(){ /*ThouShaltNotCache*/ if(!this.isDisposed){startBatch(),this.isScheduled=!1;var prev=globalState.trackingContext;if(globalState.trackingContext=this,shouldCompute(this)){this.isTrackPending=!0;try{this.onInvalidate_()}catch(e){this.reportExceptionInDerivation_(e)}}globalState.trackingContext=prev,endBatch()}},_proto.track=function(fn){ /*ThouShaltNotCache*/ if(!this.isDisposed){startBatch();0,this.isRunning=!0;var prevReaction=globalState.trackingContext;globalState.trackingContext=this;var result=trackDerivedFunction(this,fn,void 0);globalState.trackingContext=prevReaction,this.isRunning=!1,this.isTrackPending=!1,this.isDisposed&&clearObserving(this),isCaughtException(result)&&this.reportExceptionInDerivation_(result.cause),endBatch()}},_proto.reportExceptionInDerivation_=function(error){ /*ThouShaltNotCache*/ var _this=this;if(this.errorHandler_)this.errorHandler_(error,this);else{if(globalState.disableErrorBoundaries)throw error;var message="[mobx] uncaught error in '"+this+"'";globalState.suppressReactionErrors||console.error(message,error),globalState.globalReactionErrorHandlers.forEach(function(f){ /*ThouShaltNotCache*/ return f(error,_this)})}},_proto.dispose=function(){ /*ThouShaltNotCache*/ this.isDisposed||(this.isDisposed=!0,this.isRunning||(startBatch(),clearObserving(this),endBatch()))},_proto.getDisposer_=function(abortSignal){ /*ThouShaltNotCache*/ var _this2=this,dispose=function dispose(){ /*ThouShaltNotCache*/ _this2.dispose(),null==abortSignal||null==abortSignal.removeEventListener||abortSignal.removeEventListener("abort",dispose)};return null==abortSignal||null==abortSignal.addEventListener||abortSignal.addEventListener("abort",dispose),dispose[$mobx]=this,dispose},_proto.toString=function(){ /*ThouShaltNotCache*/ return"Reaction["+this.name_+"]"},_proto.trace=function(enterBreakPoint){ /*ThouShaltNotCache*/ void 0===enterBreakPoint&&(enterBreakPoint=!1)},_createClass(Reaction,[{key:"isDisposed",get:function(){ /*ThouShaltNotCache*/ return getFlag(this.flags_,Reaction.isDisposedMask_)},set:function(newValue){ /*ThouShaltNotCache*/ this.flags_=setFlag(this.flags_,Reaction.isDisposedMask_,newValue)}},{key:"isScheduled",get:function(){ /*ThouShaltNotCache*/ return getFlag(this.flags_,Reaction.isScheduledMask_)},set:function(newValue){ /*ThouShaltNotCache*/ this.flags_=setFlag(this.flags_,Reaction.isScheduledMask_,newValue)}},{key:"isTrackPending",get:function(){ /*ThouShaltNotCache*/ return getFlag(this.flags_,Reaction.isTrackPendingMask_)},set:function(newValue){ /*ThouShaltNotCache*/ this.flags_=setFlag(this.flags_,Reaction.isTrackPendingMask_,newValue)}},{key:"isRunning",get:function(){ /*ThouShaltNotCache*/ return getFlag(this.flags_,Reaction.isRunningMask_)},set:function(newValue){ /*ThouShaltNotCache*/ this.flags_=setFlag(this.flags_,Reaction.isRunningMask_,newValue)}},{key:"diffValue",get:function(){ /*ThouShaltNotCache*/ return getFlag(this.flags_,Reaction.diffValueMask_)?1:0},set:function(newValue){ /*ThouShaltNotCache*/ this.flags_=setFlag(this.flags_,Reaction.diffValueMask_,1===newValue)}}])}();Reaction.isDisposedMask_=1,Reaction.isScheduledMask_=2,Reaction.isTrackPendingMask_=4,Reaction.isRunningMask_=8,Reaction.diffValueMask_=16;var MAX_REACTION_ITERATIONS=100,reactionScheduler=function(f){ /*ThouShaltNotCache*/ return f()};function runReactions(){ /*ThouShaltNotCache*/ globalState.inBatch>0||globalState.isRunningReactions||reactionScheduler(runReactionsHelper)}function runReactionsHelper(){ /*ThouShaltNotCache*/ globalState.isRunningReactions=!0;for(var allReactions=globalState.pendingReactions,iterations=0;allReactions.length>0;){++iterations===MAX_REACTION_ITERATIONS&&(console.error("[mobx] cycle in reaction: "+allReactions[0]),allReactions.splice(0));for(var remainingReactions=allReactions.splice(0),i=0,l=remainingReactions.length;i",arg1,autoAction):isFunction(arg2)?createAction(arg1,arg2,autoAction):is20223Decorator(arg2)?(autoAction?autoActionAnnotation:actionAnnotation).decorate_20223_(arg1,arg2):isStringish(arg2)?storeAnnotation(arg1,arg2,autoAction?autoActionAnnotation:actionAnnotation):isStringish(arg1)?createDecoratorAnnotation(createActionAnnotation(autoAction?"autoAction":"action",{name:arg1,autoAction})):void 0}}var action=createActionFactory(!1);Object.assign(action,actionAnnotation);var autoAction=createActionFactory(!0);function isAction(thing){ /*ThouShaltNotCache*/ return isFunction(thing)&&!0===thing.isMobxAction}function autorun(view,opts){ /*ThouShaltNotCache*/ var _opts$name,_opts,_opts2,_opts3;void 0===opts&&(opts=EMPTY_OBJECT);var reaction,name=null!=(_opts$name=null==(_opts=opts)?void 0:_opts.name)?_opts$name:"Autorun";if(!opts.scheduler&&!opts.delay)reaction=new Reaction(name,function(){ /*ThouShaltNotCache*/ this.track(reactionRunner)},opts.onError,opts.requiresObservable);else{var scheduler=createSchedulerFromOptions(opts),isScheduled=!1;reaction=new Reaction(name,function(){ /*ThouShaltNotCache*/ isScheduled||(isScheduled=!0,scheduler(function(){ /*ThouShaltNotCache*/ isScheduled=!1,reaction.isDisposed||reaction.track(reactionRunner)}))},opts.onError,opts.requiresObservable)}function reactionRunner(){ /*ThouShaltNotCache*/ view(reaction)}return null!=(_opts2=opts)&&null!=(_opts2=_opts2.signal)&&_opts2.aborted||reaction.schedule_(),reaction.getDisposer_(null==(_opts3=opts)?void 0:_opts3.signal)}Object.assign(autoAction,autoActionAnnotation),action.bound=createDecoratorAnnotation(actionBoundAnnotation),autoAction.bound=createDecoratorAnnotation(autoActionBoundAnnotation);var run=function(f){ /*ThouShaltNotCache*/ return f()};function createSchedulerFromOptions(opts){ /*ThouShaltNotCache*/ return opts.scheduler?opts.scheduler:opts.delay?function(f){ /*ThouShaltNotCache*/ return setTimeout(f,opts.delay)}:run}var ON_BECOME_OBSERVED="onBO",ON_BECOME_UNOBSERVED="onBUO";function onBecomeUnobserved(thing,arg2,arg3){ /*ThouShaltNotCache*/ return interceptHook(ON_BECOME_UNOBSERVED,thing,arg2,arg3)}function interceptHook(hook,thing,arg2,arg3){ /*ThouShaltNotCache*/ var atom="function"==typeof arg3?getAtom(thing,arg2):getAtom(thing),cb=isFunction(arg3)?arg3:arg2,listenersKey=hook+"L";return atom[listenersKey]?atom[listenersKey].add(cb):atom[listenersKey]=new Set([cb]),function(){ /*ThouShaltNotCache*/ var hookListeners=atom[listenersKey];hookListeners&&(hookListeners.delete(cb),0===hookListeners.size&&delete atom[listenersKey])}}function extendObservable(target,properties,annotations,options){var descriptors=getOwnPropertyDescriptors(properties);return initObservable(function(){ /*ThouShaltNotCache*/ var adm=asObservableObject(target,options)[$mobx];ownKeys(descriptors).forEach(function(key){ /*ThouShaltNotCache*/ adm.extend_(key,descriptors[key],!annotations||(!(key in annotations)||annotations[key]))})}),target}var generatorId=0;function FlowCancellationError(){ /*ThouShaltNotCache*/ this.message="FLOW_CANCELLED"}FlowCancellationError.prototype=Object.create(Error.prototype);var flowAnnotation=createFlowAnnotation("flow"),flowBoundAnnotation=createFlowAnnotation("flow.bound",{bound:!0}),flow=Object.assign(function(arg1,arg2){ /*ThouShaltNotCache*/ if(is20223Decorator(arg2))return flowAnnotation.decorate_20223_(arg1,arg2);if(isStringish(arg2))return storeAnnotation(arg1,arg2,flowAnnotation);var generator=arg1,name=generator.name||"",res=function(){ /*ThouShaltNotCache*/ var rejector,args=arguments,runId=++generatorId,gen=action(name+" - runid: "+runId+" - init",generator).apply(this,args),pendingPromise=void 0,promise=new Promise(function(resolve,reject){ /*ThouShaltNotCache*/ var stepId=0;function onFulfilled(res){var ret; /*ThouShaltNotCache*/ pendingPromise=void 0;try{ret=action(name+" - runid: "+runId+" - yield "+stepId++,gen.next).call(gen,res)}catch(e){return reject(e)}next(ret)}function onRejected(err){var ret; /*ThouShaltNotCache*/ pendingPromise=void 0;try{ret=action(name+" - runid: "+runId+" - yield "+stepId++,gen.throw).call(gen,err)}catch(e){return reject(e)}next(ret)}function next(ret){ /*ThouShaltNotCache*/ if(!isFunction(null==ret?void 0:ret.then))return ret.done?resolve(ret.value):(pendingPromise=Promise.resolve(ret.value)).then(onFulfilled,onRejected);ret.then(next,reject)}rejector=reject,onFulfilled(void 0)});return promise.cancel=action(name+" - runid: "+runId+" - cancel",function(){ /*ThouShaltNotCache*/ try{pendingPromise&&cancelPromise(pendingPromise);var _res=gen.return(void 0),yieldedPromise=Promise.resolve(_res.value);yieldedPromise.then(noop,noop),cancelPromise(yieldedPromise),rejector(new FlowCancellationError)}catch(e){rejector(e)}}),promise};return res.isMobXFlow=!0,res},flowAnnotation);function cancelPromise(promise){ /*ThouShaltNotCache*/ isFunction(promise.cancel)&&promise.cancel()}function isFlow(fn){ /*ThouShaltNotCache*/ return!0===(null==fn?void 0:fn.isMobXFlow)}function _isObservable(value,property){ /*ThouShaltNotCache*/ return!!value&&(void 0!==property?!!isObservableObject(value)&&value[$mobx].values_.has(property):isObservableObject(value)||!!value[$mobx]||isAtom(value)||isReaction(value)||isComputedValue(value))}function isObservable(value){return _isObservable(value)}function transaction(action,thisArg){ /*ThouShaltNotCache*/ void 0===thisArg&&(thisArg=void 0),startBatch();try{return action.apply(thisArg)}finally{endBatch()}}function getAdm(target){ /*ThouShaltNotCache*/ return target[$mobx]}flow.bound=createDecoratorAnnotation(flowBoundAnnotation);var objectProxyTraps={has:function(target,name){return getAdm(target).has_(name)},get:function(target,name){ /*ThouShaltNotCache*/ return getAdm(target).get_(name)},set:function(target,name,value){ /*ThouShaltNotCache*/ var _getAdm$set_;return!!isStringish(name)&&(null==(_getAdm$set_=getAdm(target).set_(name,value,!0))||_getAdm$set_)},deleteProperty:function(target,name){ /*ThouShaltNotCache*/ var _getAdm$delete_;return!!isStringish(name)&&(null==(_getAdm$delete_=getAdm(target).delete_(name,!0))||_getAdm$delete_)},defineProperty:function(target,name,descriptor){ /*ThouShaltNotCache*/ var _getAdm$definePropert;return null==(_getAdm$definePropert=getAdm(target).defineProperty_(name,descriptor))||_getAdm$definePropert},ownKeys:function(target){return getAdm(target).ownKeys_()},preventExtensions:function(target){ /*ThouShaltNotCache*/ die(13)}};function hasInterceptors(interceptable){ /*ThouShaltNotCache*/ return void 0!==interceptable.interceptors_&&interceptable.interceptors_.length>0}function registerInterceptor(interceptable,handler){ /*ThouShaltNotCache*/ var interceptors=interceptable.interceptors_||(interceptable.interceptors_=[]);return interceptors.push(handler),once(function(){ /*ThouShaltNotCache*/ var idx=interceptors.indexOf(handler);-1!==idx&&interceptors.splice(idx,1)})}function interceptChange(interceptable,change){ /*ThouShaltNotCache*/ var prevU=untrackedStart();try{for(var interceptors=[].concat(interceptable.interceptors_||[]),i=0,l=interceptors.length;i0}function registerListener(listenable,handler){ /*ThouShaltNotCache*/ var listeners=listenable.changeListeners_||(listenable.changeListeners_=[]);return listeners.push(handler),once(function(){ /*ThouShaltNotCache*/ var idx=listeners.indexOf(handler);-1!==idx&&listeners.splice(idx,1)})}function notifyListeners(listenable,change){ /*ThouShaltNotCache*/ var prevU=untrackedStart(),listeners=listenable.changeListeners_;if(listeners){for(var i=0,l=(listeners=listeners.slice()).length;i0?values.map(this.dehancer):values},_proto.intercept_=function(handler){ /*ThouShaltNotCache*/ return registerInterceptor(this,handler)},_proto.observe_=function(listener,fireImmediately){ /*ThouShaltNotCache*/ return void 0===fireImmediately&&(fireImmediately=!1),fireImmediately&&listener({observableKind:"array",object:this.proxy_,debugObjectName:this.atom_.name_,type:"splice",index:0,added:this.values_.slice(),addedCount:this.values_.length,removed:[],removedCount:0}),registerListener(this,listener)},_proto.getArrayLength_=function(){ /*ThouShaltNotCache*/ return this.atom_.reportObserved(),this.values_.length},_proto.setArrayLength_=function(newLength){ /*ThouShaltNotCache*/ ("number"!=typeof newLength||isNaN(newLength)||newLength<0)&&die("Out of range: "+newLength);var currentLength=this.values_.length;if(newLength!==currentLength)if(newLength>currentLength){for(var newItems=new Array(newLength-currentLength),i=0;i0&&reserveArrayBuffer(oldLength+delta+1)},_proto.spliceWithArray_=function(index,deleteCount,newItems){ /*ThouShaltNotCache*/ var _this=this;this.atom_;var length=this.values_.length;if(void 0===index?index=0:index>length?index=length:index<0&&(index=Math.max(0,length+index)),deleteCount=1===arguments.length?length-index:null==deleteCount?0:Math.max(0,Math.min(deleteCount,length-index)),void 0===newItems&&(newItems=EMPTY_ARRAY),hasInterceptors(this)){var change=interceptChange(this,{object:this.proxy_,type:"splice",index,removedCount:deleteCount,added:newItems});if(!change)return EMPTY_ARRAY;deleteCount=change.removedCount,newItems=change.added}if(newItems=0===newItems.length?newItems:newItems.map(function(v){ /*ThouShaltNotCache*/ return _this.enhancer_(v,void 0)}),this.legacyMode_){var lengthDelta=newItems.length-deleteCount;this.updateArrayLength_(length,lengthDelta)}var res=this.spliceItemsIntoValues_(index,deleteCount,newItems);return 0===deleteCount&&0===newItems.length||this.notifyArraySplice_(index,newItems,res),this.dehanceValues_(res)},_proto.spliceItemsIntoValues_=function(index,deleteCount,newItems){var _this$values_; /*ThouShaltNotCache*/ if(newItems.length<1e4)return(_this$values_=this.values_).splice.apply(_this$values_,[index,deleteCount].concat(newItems));var res=this.values_.slice(index,index+deleteCount),oldItems=this.values_.slice(index+deleteCount);this.values_.length+=newItems.length-deleteCount;for(var i=0;i=this.values_.length))return this.atom_.reportObserved(),this.dehanceValue_(this.values_[index]);console.warn("[mobx] Out of bounds read: "+index)},_proto.set_=function(index,newValue){ /*ThouShaltNotCache*/ var values=this.values_;if(this.legacyMode_&&index>values.length&&die(17,index,values.length),index2?_len-2:0),_key=2;_key<_len;_key++)newItems[_key-2]=arguments[_key];var adm=this[$mobx];switch(arguments.length){case 0:return[];case 1:return adm.spliceWithArray_(index);case 2:return adm.spliceWithArray_(index,deleteCount)}return adm.spliceWithArray_(index,deleteCount,newItems)},spliceWithArray:function(index,deleteCount,newItems){ /*ThouShaltNotCache*/ return this[$mobx].spliceWithArray_(index,deleteCount,newItems)},push:function(){for( /*ThouShaltNotCache*/ var adm=this[$mobx],_len2=arguments.length,items=new Array(_len2),_key2=0;_key2<_len2;_key2++)items[_key2]=arguments[_key2];return adm.spliceWithArray_(adm.values_.length,0,items),adm.values_.length},pop:function(){ /*ThouShaltNotCache*/ return this.splice(Math.max(this[$mobx].values_.length-1,0),1)[0]},shift:function(){ /*ThouShaltNotCache*/ return this.splice(0,1)[0]},unshift:function(){for( /*ThouShaltNotCache*/ var adm=this[$mobx],_len3=arguments.length,items=new Array(_len3),_key3=0;_key3<_len3;_key3++)items[_key3]=arguments[_key3];return adm.spliceWithArray_(0,0,items),adm.values_.length},reverse:function(){ /*ThouShaltNotCache*/ return globalState.trackingDerivation&&die(37,"reverse"),this.replace(this.slice().reverse()),this},sort:function(){ /*ThouShaltNotCache*/ globalState.trackingDerivation&&die(37,"sort");var copy=this.slice();return copy.sort.apply(copy,arguments),this.replace(copy),this},remove:function(value){ /*ThouShaltNotCache*/ var adm=this[$mobx],idx=adm.dehanceValues_(adm.values_).indexOf(value);return idx>-1&&(this.splice(idx,1),!0)}};function addArrayExtension(funcName,funcFactory){ /*ThouShaltNotCache*/ "function"==typeof Array.prototype[funcName]&&(arrayExtensions[funcName]=funcFactory(funcName))}function simpleFunc(funcName){ /*ThouShaltNotCache*/ return function(){ /*ThouShaltNotCache*/ var adm=this[$mobx];adm.atom_.reportObserved();var dehancedValues=adm.dehanceValues_(adm.values_);return dehancedValues[funcName].apply(dehancedValues,arguments)}}function mapLikeFunc(funcName){ /*ThouShaltNotCache*/ return function(callback,thisArg){ /*ThouShaltNotCache*/ var _this2=this,adm=this[$mobx];return adm.atom_.reportObserved(),adm.dehanceValues_(adm.values_)[funcName](function(element,index){ /*ThouShaltNotCache*/ return callback.call(thisArg,element,index,_this2)})}}function reduceLikeFunc(funcName){ /*ThouShaltNotCache*/ return function(){ /*ThouShaltNotCache*/ var _this3=this,adm=this[$mobx];adm.atom_.reportObserved();var dehancedValues=adm.dehanceValues_(adm.values_),callback=arguments[0];return arguments[0]=function(accumulator,currentValue,index){ /*ThouShaltNotCache*/ return callback(accumulator,currentValue,index,_this3)},dehancedValues[funcName].apply(dehancedValues,arguments)}}addArrayExtension("at",simpleFunc),addArrayExtension("concat",simpleFunc),addArrayExtension("flat",simpleFunc),addArrayExtension("includes",simpleFunc),addArrayExtension("indexOf",simpleFunc),addArrayExtension("join",simpleFunc),addArrayExtension("lastIndexOf",simpleFunc),addArrayExtension("slice",simpleFunc),addArrayExtension("toString",simpleFunc),addArrayExtension("toLocaleString",simpleFunc),addArrayExtension("toSorted",simpleFunc),addArrayExtension("toSpliced",simpleFunc),addArrayExtension("with",simpleFunc),addArrayExtension("every",mapLikeFunc),addArrayExtension("filter",mapLikeFunc),addArrayExtension("find",mapLikeFunc),addArrayExtension("findIndex",mapLikeFunc),addArrayExtension("findLast",mapLikeFunc),addArrayExtension("findLastIndex",mapLikeFunc),addArrayExtension("flatMap",mapLikeFunc),addArrayExtension("forEach",mapLikeFunc),addArrayExtension("map",mapLikeFunc),addArrayExtension("some",mapLikeFunc),addArrayExtension("toReversed",mapLikeFunc),addArrayExtension("reduce",reduceLikeFunc),addArrayExtension("reduceRight",reduceLikeFunc);var isObservableArrayAdministration=createInstanceofPredicate("ObservableArrayAdministration",ObservableArrayAdministration);function isObservableArray(thing){ /*ThouShaltNotCache*/ return isObject(thing)&&isObservableArrayAdministration(thing[$mobx])}var ObservableMapMarker={},ADD="add",ObservableMap=function(){ /*ThouShaltNotCache*/ function ObservableMap(initialData,enhancer_,name_){ /*ThouShaltNotCache*/ var _this=this;void 0===enhancer_&&(enhancer_=deepEnhancer),void 0===name_&&(name_="ObservableMap"),this.enhancer_=void 0,this.name_=void 0,this[$mobx]=ObservableMapMarker,this.data_=void 0,this.hasMap_=void 0,this.keysAtom_=void 0,this.interceptors_=void 0,this.changeListeners_=void 0,this.dehancer=void 0,this.enhancer_=enhancer_,this.name_=name_,isFunction(Map)||die(18),initObservable(function(){ /*ThouShaltNotCache*/ _this.keysAtom_=createAtom("ObservableMap.keys()"),_this.data_=new Map,_this.hasMap_=new Map,initialData&&_this.merge(initialData)})}var _proto=ObservableMap.prototype;return _proto.has_=function(key){ /*ThouShaltNotCache*/ return this.data_.has(key)},_proto.has=function(key){ /*ThouShaltNotCache*/ var _this2=this;if(!globalState.trackingDerivation)return this.has_(key);var entry=this.hasMap_.get(key);if(!entry){var newEntry=entry=new ObservableValue(this.has_(key),referenceEnhancer,"ObservableMap.key?",!1);this.hasMap_.set(key,newEntry),onBecomeUnobserved(newEntry,function(){ /*ThouShaltNotCache*/ return _this2.hasMap_.delete(key)})}return entry.get()},_proto.set=function(key,value){ /*ThouShaltNotCache*/ var hasKey=this.has_(key);if(hasInterceptors(this)){var change=interceptChange(this,{type:hasKey?UPDATE:ADD,object:this,newValue:value,name:key});if(!change)return this;value=change.newValue}return hasKey?this.updateValue_(key,value):this.addValue_(key,value),this},_proto.delete=function(key){ /*ThouShaltNotCache*/ var _this3=this;if((this.keysAtom_,hasInterceptors(this))&&!interceptChange(this,{type:"delete",object:this,name:key}))return!1;if(this.has_(key)){var notify=hasListeners(this),_change=notify?{observableKind:"map",debugObjectName:this.name_,type:"delete",object:this,oldValue:this.data_.get(key).value_,name:key}:null;return transaction(function(){ /*ThouShaltNotCache*/ var _this3$hasMap_$get;_this3.keysAtom_.reportChanged(),null==(_this3$hasMap_$get=_this3.hasMap_.get(key))||_this3$hasMap_$get.setNewValue_(!1),_this3.data_.get(key).setNewValue_(void 0),_this3.data_.delete(key)}),notify&¬ifyListeners(this,_change),!0}return!1},_proto.updateValue_=function(key,newValue){ /*ThouShaltNotCache*/ var observable=this.data_.get(key);if((newValue=observable.prepareNewValue_(newValue))!==globalState.UNCHANGED){var notify=hasListeners(this),change=notify?{observableKind:"map",debugObjectName:this.name_,type:UPDATE,object:this,oldValue:observable.value_,name:key,newValue}:null;0,observable.setNewValue_(newValue),notify&¬ifyListeners(this,change)}},_proto.addValue_=function(key,newValue){ /*ThouShaltNotCache*/ var _this4=this;this.keysAtom_,transaction(function(){ /*ThouShaltNotCache*/ var _this4$hasMap_$get,observable=new ObservableValue(newValue,_this4.enhancer_,"ObservableMap.key",!1);_this4.data_.set(key,observable),newValue=observable.value_,null==(_this4$hasMap_$get=_this4.hasMap_.get(key))||_this4$hasMap_$get.setNewValue_(!0),_this4.keysAtom_.reportChanged()});var notify=hasListeners(this),change=notify?{observableKind:"map",debugObjectName:this.name_,type:ADD,object:this,name:key,newValue}:null;notify&¬ifyListeners(this,change)},_proto.get=function(key){ /*ThouShaltNotCache*/ return this.has(key)?this.dehanceValue_(this.data_.get(key).get()):this.dehanceValue_(void 0)},_proto.dehanceValue_=function(value){ /*ThouShaltNotCache*/ return void 0!==this.dehancer?this.dehancer(value):value},_proto.keys=function(){ /*ThouShaltNotCache*/ return this.keysAtom_.reportObserved(),this.data_.keys()},_proto.values=function(){ /*ThouShaltNotCache*/ var self=this,keys=this.keys();return makeIterableForMap({next:function(){ /*ThouShaltNotCache*/ var _keys$next=keys.next(),done=_keys$next.done,value=_keys$next.value;return{done,value:done?void 0:self.get(value)}}})},_proto.entries=function(){ /*ThouShaltNotCache*/ var self=this,keys=this.keys();return makeIterableForMap({next:function(){ /*ThouShaltNotCache*/ var _keys$next2=keys.next(),done=_keys$next2.done,value=_keys$next2.value;return{done,value:done?void 0:[value,self.get(value)]}}})},_proto[Symbol.iterator]=function(){ /*ThouShaltNotCache*/ return this.entries()},_proto.forEach=function(callback,thisArg){ /*ThouShaltNotCache*/ for(var _step,_iterator=_createForOfIteratorHelperLoose(this);!(_step=_iterator()).done;){var _step$value=_step.value,key=_step$value[0],value=_step$value[1];callback.call(thisArg,value,key,this)}},_proto.merge=function(other){ /*ThouShaltNotCache*/ var _this5=this;return isObservableMap(other)&&(other=new Map(other)),transaction(function(){var thing,mapProto,objectProto; /*ThouShaltNotCache*/ isPlainObject(other)?function(object){ /*ThouShaltNotCache*/ var keys=Object.keys(object);if(!hasGetOwnPropertySymbols)return keys;var symbols=Object.getOwnPropertySymbols(object);return symbols.length?[].concat(keys,symbols.filter(function(s){ /*ThouShaltNotCache*/ return objectPrototype.propertyIsEnumerable.call(object,s)})):keys}(other).forEach(function(key){ /*ThouShaltNotCache*/ return _this5.set(key,other[key])}):Array.isArray(other)?other.forEach(function(_ref){ /*ThouShaltNotCache*/ var key=_ref[0],value=_ref[1];return _this5.set(key,value)}):isES6Map(other)?(thing=other,mapProto=Object.getPrototypeOf(thing),objectProto=Object.getPrototypeOf(mapProto),null!==Object.getPrototypeOf(objectProto)&&die(19,other),other.forEach(function(value,key){ /*ThouShaltNotCache*/ return _this5.set(key,value)})):null!=other&&die(20,other)}),this},_proto.clear=function(){ /*ThouShaltNotCache*/ var _this6=this;transaction(function(){ /*ThouShaltNotCache*/ untracked(function(){ /*ThouShaltNotCache*/ for(var _step2,_iterator2=_createForOfIteratorHelperLoose(_this6.keys());!(_step2=_iterator2()).done;){var key=_step2.value;_this6.delete(key)}})})},_proto.replace=function(values){ /*ThouShaltNotCache*/ var _this7=this;return transaction(function(){for( /*ThouShaltNotCache*/ var _step3,replacementMap=function(dataStructure){ /*ThouShaltNotCache*/ if(isES6Map(dataStructure)||isObservableMap(dataStructure))return dataStructure;if(Array.isArray(dataStructure))return new Map(dataStructure);if(isPlainObject(dataStructure)){var map=new Map;for(var key in dataStructure)map.set(key,dataStructure[key]);return map}return die(21,dataStructure)}(values),orderedData=new Map,keysReportChangedCalled=!1,_iterator3=_createForOfIteratorHelperLoose(_this7.data_.keys());!(_step3=_iterator3()).done;){var key=_step3.value;if(!replacementMap.has(key))if(_this7.delete(key))keysReportChangedCalled=!0;else{var value=_this7.data_.get(key);orderedData.set(key,value)}}for(var _step4,_iterator4=_createForOfIteratorHelperLoose(replacementMap.entries());!(_step4=_iterator4()).done;){var _step4$value=_step4.value,_key=_step4$value[0],_value=_step4$value[1],keyExisted=_this7.data_.has(_key);if(_this7.set(_key,_value),_this7.data_.has(_key)){var _value2=_this7.data_.get(_key);orderedData.set(_key,_value2),keyExisted||(keysReportChangedCalled=!0)}}if(!keysReportChangedCalled)if(_this7.data_.size!==orderedData.size)_this7.keysAtom_.reportChanged();else for(var iter1=_this7.data_.keys(),iter2=orderedData.keys(),next1=iter1.next(),next2=iter2.next();!next1.done;){if(next1.value!==next2.value){_this7.keysAtom_.reportChanged();break}next1=iter1.next(),next2=iter2.next()}_this7.data_=orderedData}),this},_proto.toString=function(){ /*ThouShaltNotCache*/ return"[object ObservableMap]"},_proto.toJSON=function(){ /*ThouShaltNotCache*/ return Array.from(this)},_proto.observe_=function(listener,fireImmediately){return registerListener(this,listener)},_proto.intercept_=function(handler){ /*ThouShaltNotCache*/ return registerInterceptor(this,handler)},_createClass(ObservableMap,[{key:"size",get:function(){ /*ThouShaltNotCache*/ return this.keysAtom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){ /*ThouShaltNotCache*/ return"Map"}}])}(),isObservableMap=createInstanceofPredicate("ObservableMap",ObservableMap);function makeIterableForMap(iterator){ /*ThouShaltNotCache*/ return iterator[Symbol.toStringTag]="MapIterator",makeIterable(iterator)}var ObservableSetMarker={},ObservableSet=function(){ /*ThouShaltNotCache*/ function ObservableSet(initialData,enhancer,name_){ /*ThouShaltNotCache*/ var _this=this;void 0===enhancer&&(enhancer=deepEnhancer),void 0===name_&&(name_="ObservableSet"),this.name_=void 0,this[$mobx]=ObservableSetMarker,this.data_=new Set,this.atom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.dehancer=void 0,this.enhancer_=void 0,this.name_=name_,isFunction(Set)||die(22),this.enhancer_=function(newV,oldV){ /*ThouShaltNotCache*/ return enhancer(newV,oldV,name_)},initObservable(function(){ /*ThouShaltNotCache*/ _this.atom_=createAtom(_this.name_),initialData&&_this.replace(initialData)})}var _proto=ObservableSet.prototype;return _proto.dehanceValue_=function(value){ /*ThouShaltNotCache*/ return void 0!==this.dehancer?this.dehancer(value):value},_proto.clear=function(){ /*ThouShaltNotCache*/ var _this2=this;transaction(function(){ /*ThouShaltNotCache*/ untracked(function(){ /*ThouShaltNotCache*/ for(var _step,_iterator=_createForOfIteratorHelperLoose(_this2.data_.values());!(_step=_iterator()).done;){var value=_step.value;_this2.delete(value)}})})},_proto.forEach=function(callbackFn,thisArg){ /*ThouShaltNotCache*/ for(var _step2,_iterator2=_createForOfIteratorHelperLoose(this);!(_step2=_iterator2()).done;){var value=_step2.value;callbackFn.call(thisArg,value,value,this)}},_proto.add=function(value){ /*ThouShaltNotCache*/ var _this3=this;if(this.atom_,hasInterceptors(this)){var change=interceptChange(this,{type:ADD,object:this,newValue:value});if(!change)return this;value=change.newValue}if(!this.has(value)){transaction(function(){ /*ThouShaltNotCache*/ _this3.data_.add(_this3.enhancer_(value,void 0)),_this3.atom_.reportChanged()});var notify=hasListeners(this),_change=notify?{observableKind:"set",debugObjectName:this.name_,type:ADD,object:this,newValue:value}:null;false,notify&¬ifyListeners(this,_change)}return this},_proto.delete=function(value){ /*ThouShaltNotCache*/ var _this4=this;if(hasInterceptors(this)&&!interceptChange(this,{type:"delete",object:this,oldValue:value}))return!1;if(this.has(value)){var notify=hasListeners(this),_change2=notify?{observableKind:"set",debugObjectName:this.name_,type:"delete",object:this,oldValue:value}:null;return transaction(function(){ /*ThouShaltNotCache*/ _this4.atom_.reportChanged(),_this4.data_.delete(value)}),notify&¬ifyListeners(this,_change2),!0}return!1},_proto.has=function(value){ /*ThouShaltNotCache*/ return this.atom_.reportObserved(),this.data_.has(this.dehanceValue_(value))},_proto.entries=function(){ /*ThouShaltNotCache*/ var values=this.values();return makeIterableForSet({next:function(){ /*ThouShaltNotCache*/ var _values$next=values.next(),value=_values$next.value,done=_values$next.done;return done?{value:void 0,done}:{value:[value,value],done}}})},_proto.keys=function(){ /*ThouShaltNotCache*/ return this.values()},_proto.values=function(){ /*ThouShaltNotCache*/ this.atom_.reportObserved();var self=this,values=this.data_.values();return makeIterableForSet({next:function(){ /*ThouShaltNotCache*/ var _values$next2=values.next(),value=_values$next2.value,done=_values$next2.done;return done?{value:void 0,done}:{value:self.dehanceValue_(value),done}}})},_proto.intersection=function(otherSet){ /*ThouShaltNotCache*/ return isES6Set(otherSet)&&!isObservableSet(otherSet)?otherSet.intersection(this):new Set(this).intersection(otherSet)},_proto.union=function(otherSet){ /*ThouShaltNotCache*/ return isES6Set(otherSet)&&!isObservableSet(otherSet)?otherSet.union(this):new Set(this).union(otherSet)},_proto.difference=function(otherSet){ /*ThouShaltNotCache*/ return new Set(this).difference(otherSet)},_proto.symmetricDifference=function(otherSet){ /*ThouShaltNotCache*/ return isES6Set(otherSet)&&!isObservableSet(otherSet)?otherSet.symmetricDifference(this):new Set(this).symmetricDifference(otherSet)},_proto.isSubsetOf=function(otherSet){ /*ThouShaltNotCache*/ return new Set(this).isSubsetOf(otherSet)},_proto.isSupersetOf=function(otherSet){ /*ThouShaltNotCache*/ return new Set(this).isSupersetOf(otherSet)},_proto.isDisjointFrom=function(otherSet){ /*ThouShaltNotCache*/ return isES6Set(otherSet)&&!isObservableSet(otherSet)?otherSet.isDisjointFrom(this):new Set(this).isDisjointFrom(otherSet)},_proto.replace=function(other){ /*ThouShaltNotCache*/ var _this5=this;return isObservableSet(other)&&(other=new Set(other)),transaction(function(){ /*ThouShaltNotCache*/ Array.isArray(other)||isES6Set(other)?(_this5.clear(),other.forEach(function(value){ /*ThouShaltNotCache*/ return _this5.add(value)})):null!=other&&die("Cannot initialize set from "+other)}),this},_proto.observe_=function(listener,fireImmediately){return registerListener(this,listener)},_proto.intercept_=function(handler){ /*ThouShaltNotCache*/ return registerInterceptor(this,handler)},_proto.toJSON=function(){ /*ThouShaltNotCache*/ return Array.from(this)},_proto.toString=function(){ /*ThouShaltNotCache*/ return"[object ObservableSet]"},_proto[Symbol.iterator]=function(){ /*ThouShaltNotCache*/ return this.values()},_createClass(ObservableSet,[{key:"size",get:function(){ /*ThouShaltNotCache*/ return this.atom_.reportObserved(),this.data_.size}},{key:Symbol.toStringTag,get:function(){ /*ThouShaltNotCache*/ return"Set"}}])}(),isObservableSet=createInstanceofPredicate("ObservableSet",ObservableSet);function makeIterableForSet(iterator){ /*ThouShaltNotCache*/ return iterator[Symbol.toStringTag]="SetIterator",makeIterable(iterator)}var descriptorCache=Object.create(null),ObservableObjectAdministration=function(){ /*ThouShaltNotCache*/ function ObservableObjectAdministration(target_,values_,name_,defaultAnnotation_){ /*ThouShaltNotCache*/ void 0===values_&&(values_=new Map),void 0===defaultAnnotation_&&(defaultAnnotation_=autoAnnotation),this.target_=void 0,this.values_=void 0,this.name_=void 0,this.defaultAnnotation_=void 0,this.keysAtom_=void 0,this.changeListeners_=void 0,this.interceptors_=void 0,this.proxy_=void 0,this.isPlainObject_=void 0,this.appliedAnnotations_=void 0,this.pendingKeys_=void 0,this.target_=target_,this.values_=values_,this.name_=name_,this.defaultAnnotation_=defaultAnnotation_,this.keysAtom_=new Atom("ObservableObject.keys"),this.isPlainObject_=isPlainObject(this.target_)}var _proto=ObservableObjectAdministration.prototype;return _proto.getObservablePropValue_=function(key){ /*ThouShaltNotCache*/ return this.values_.get(key).get()},_proto.setObservablePropValue_=function(key,newValue){ /*ThouShaltNotCache*/ var observable=this.values_.get(key);if(observable instanceof ComputedValue)return observable.set(newValue),!0;if(hasInterceptors(this)){var change=interceptChange(this,{type:UPDATE,object:this.proxy_||this.target_,name:key,newValue});if(!change)return null;newValue=change.newValue}if((newValue=observable.prepareNewValue_(newValue))!==globalState.UNCHANGED){var notify=hasListeners(this),_change=notify?{type:UPDATE,observableKind:"object",debugObjectName:this.name_,object:this.proxy_||this.target_,oldValue:observable.value_,name:key,newValue}:null;0,observable.setNewValue_(newValue),notify&¬ifyListeners(this,_change)}return!0},_proto.get_=function(key){ /*ThouShaltNotCache*/ return globalState.trackingDerivation&&!hasProp(this.target_,key)&&this.has_(key),this.target_[key]},_proto.set_=function(key,value,proxyTrap){ /*ThouShaltNotCache*/ return void 0===proxyTrap&&(proxyTrap=!1),hasProp(this.target_,key)?this.values_.has(key)?this.setObservablePropValue_(key,value):proxyTrap?Reflect.set(this.target_,key,value):(this.target_[key]=value,!0):this.extend_(key,{value,enumerable:!0,writable:!0,configurable:!0},this.defaultAnnotation_,proxyTrap)},_proto.has_=function(key){ /*ThouShaltNotCache*/ if(!globalState.trackingDerivation)return key in this.target_;this.pendingKeys_||(this.pendingKeys_=new Map);var entry=this.pendingKeys_.get(key);return entry||(entry=new ObservableValue(key in this.target_,referenceEnhancer,"ObservableObject.key?",!1),this.pendingKeys_.set(key,entry)),entry.get()},_proto.make_=function(key,annotation){if( /*ThouShaltNotCache*/ !0===annotation&&(annotation=this.defaultAnnotation_),!1!==annotation){if(assertAnnotable(this,annotation,key),!(key in this.target_)){var _this$target_$storedA;if(null!=(_this$target_$storedA=this.target_[storedAnnotationsSymbol])&&_this$target_$storedA[key])return;die(1,annotation.annotationType_,this.name_+"."+key.toString())}for(var source=this.target_;source&&source!==objectPrototype;){var descriptor=getDescriptor(source,key);if(descriptor){var outcome=annotation.make_(this,key,descriptor,source);if(0===outcome)return;if(1===outcome)break}source=Object.getPrototypeOf(source)}recordAnnotationApplied(this,annotation,key)}},_proto.extend_=function(key,descriptor,annotation,proxyTrap){if( /*ThouShaltNotCache*/ void 0===proxyTrap&&(proxyTrap=!1),!0===annotation&&(annotation=this.defaultAnnotation_),!1===annotation)return this.defineProperty_(key,descriptor,proxyTrap);assertAnnotable(this,annotation,key);var outcome=annotation.extend_(this,key,descriptor,proxyTrap);return outcome&&recordAnnotationApplied(this,annotation,key),outcome},_proto.defineProperty_=function(key,descriptor,proxyTrap){ /*ThouShaltNotCache*/ void 0===proxyTrap&&(proxyTrap=!1),this.keysAtom_;try{startBatch();var deleteOutcome=this.delete_(key);if(!deleteOutcome)return deleteOutcome;if(hasInterceptors(this)){var change=interceptChange(this,{object:this.proxy_||this.target_,name:key,type:ADD,newValue:descriptor.value});if(!change)return null;var newValue=change.newValue;descriptor.value!==newValue&&(descriptor=_extends({},descriptor,{value:newValue}))}if(proxyTrap){if(!Reflect.defineProperty(this.target_,key,descriptor))return!1}else defineProperty(this.target_,key,descriptor);this.notifyPropertyAddition_(key,descriptor.value)}finally{endBatch()}return!0},_proto.defineObservableProperty_=function(key,value,enhancer,proxyTrap){ /*ThouShaltNotCache*/ void 0===proxyTrap&&(proxyTrap=!1),this.keysAtom_;try{startBatch();var deleteOutcome=this.delete_(key);if(!deleteOutcome)return deleteOutcome;if(hasInterceptors(this)){var change=interceptChange(this,{object:this.proxy_||this.target_,name:key,type:ADD,newValue:value});if(!change)return null;value=change.newValue}var cachedDescriptor=getCachedObservablePropDescriptor(key),descriptor={configurable:!globalState.safeDescriptors||this.isPlainObject_,enumerable:!0,get:cachedDescriptor.get,set:cachedDescriptor.set};if(proxyTrap){if(!Reflect.defineProperty(this.target_,key,descriptor))return!1}else defineProperty(this.target_,key,descriptor);var observable=new ObservableValue(value,enhancer,"ObservableObject.key",!1);this.values_.set(key,observable),this.notifyPropertyAddition_(key,observable.value_)}finally{endBatch()}return!0},_proto.defineComputedProperty_=function(key,options,proxyTrap){ /*ThouShaltNotCache*/ void 0===proxyTrap&&(proxyTrap=!1),this.keysAtom_;try{startBatch();var deleteOutcome=this.delete_(key);if(!deleteOutcome)return deleteOutcome;if(hasInterceptors(this))if(!interceptChange(this,{object:this.proxy_||this.target_,name:key,type:ADD,newValue:void 0}))return null;options.name||(options.name="ObservableObject.key"),options.context=this.proxy_||this.target_;var cachedDescriptor=getCachedObservablePropDescriptor(key),descriptor={configurable:!globalState.safeDescriptors||this.isPlainObject_,enumerable:!1,get:cachedDescriptor.get,set:cachedDescriptor.set};if(proxyTrap){if(!Reflect.defineProperty(this.target_,key,descriptor))return!1}else defineProperty(this.target_,key,descriptor);this.values_.set(key,new ComputedValue(options)),this.notifyPropertyAddition_(key,void 0)}finally{endBatch()}return!0},_proto.delete_=function(key,proxyTrap){if( /*ThouShaltNotCache*/ void 0===proxyTrap&&(proxyTrap=!1),this.keysAtom_,!hasProp(this.target_,key))return!0;if(hasInterceptors(this)&&!interceptChange(this,{object:this.proxy_||this.target_,name:key,type:"remove"}))return null;try{var _this$pendingKeys_;startBatch();var _getDescriptor,notify=hasListeners(this),observable=this.values_.get(key),value=void 0;if(!observable&¬ify)value=null==(_getDescriptor=getDescriptor(this.target_,key))?void 0:_getDescriptor.value;if(proxyTrap){if(!Reflect.deleteProperty(this.target_,key))return!1}else delete this.target_[key];if(observable&&(this.values_.delete(key),observable instanceof ObservableValue&&(value=observable.value_),propagateChanged(observable)),this.keysAtom_.reportChanged(),null==(_this$pendingKeys_=this.pendingKeys_)||null==(_this$pendingKeys_=_this$pendingKeys_.get(key))||_this$pendingKeys_.set(key in this.target_),notify){var _change2={type:"remove",observableKind:"object",object:this.proxy_||this.target_,debugObjectName:this.name_,oldValue:value,name:key};0,notify&¬ifyListeners(this,_change2)}}finally{endBatch()}return!0},_proto.observe_=function(callback,fireImmediately){return registerListener(this,callback)},_proto.intercept_=function(handler){ /*ThouShaltNotCache*/ return registerInterceptor(this,handler)},_proto.notifyPropertyAddition_=function(key,value){ /*ThouShaltNotCache*/ var _this$pendingKeys_2,notify=hasListeners(this);if(notify){var change=notify?{type:ADD,observableKind:"object",debugObjectName:this.name_,object:this.proxy_||this.target_,name:key,newValue:value}:null;0,notify&¬ifyListeners(this,change)}null==(_this$pendingKeys_2=this.pendingKeys_)||null==(_this$pendingKeys_2=_this$pendingKeys_2.get(key))||_this$pendingKeys_2.set(!0),this.keysAtom_.reportChanged()},_proto.ownKeys_=function(){ /*ThouShaltNotCache*/ return this.keysAtom_.reportObserved(),ownKeys(this.target_)},_proto.keys_=function(){ /*ThouShaltNotCache*/ return this.keysAtom_.reportObserved(),Object.keys(this.target_)},ObservableObjectAdministration}();function asObservableObject(target,options){ /*ThouShaltNotCache*/ var _options$name;if(hasProp(target,$mobx))return target;var name=null!=(_options$name=null==options?void 0:options.name)?_options$name:"ObservableObject",adm=new ObservableObjectAdministration(target,new Map,String(name),function(options){ /*ThouShaltNotCache*/ var _options$defaultDecor;return options?null!=(_options$defaultDecor=options.defaultDecorator)?_options$defaultDecor:createAutoAnnotation(options):void 0}(options));return addHiddenProp(target,$mobx,adm),target}var isObservableObjectAdministration=createInstanceofPredicate("ObservableObjectAdministration",ObservableObjectAdministration);function getCachedObservablePropDescriptor(key){ /*ThouShaltNotCache*/ return descriptorCache[key]||(descriptorCache[key]={get:function(){ /*ThouShaltNotCache*/ return this[$mobx].getObservablePropValue_(key)},set:function(value){ /*ThouShaltNotCache*/ return this[$mobx].setObservablePropValue_(key,value)}})}function isObservableObject(thing){ /*ThouShaltNotCache*/ return!!isObject(thing)&&isObservableObjectAdministration(thing[$mobx])}function recordAnnotationApplied(adm,annotation,key){ /*ThouShaltNotCache*/ var _adm$target_$storedAn;null==(_adm$target_$storedAn=adm.target_[storedAnnotationsSymbol])||delete _adm$target_$storedAn[key]}function assertAnnotable(adm,annotation,key){}var ctor,proto,ENTRY_0=createArrayEntryDescriptor(0),safariPrototypeSetterInheritanceBug=function(){ /*ThouShaltNotCache*/ var v=!1,p={};return Object.defineProperty(p,"0",{set:function(){ /*ThouShaltNotCache*/ v=!0}}),Object.create(p)[0]=1,!1===v}(),OBSERVABLE_ARRAY_BUFFER_SIZE=0,StubArray=function(){};ctor=StubArray,proto=Array.prototype, /*ThouShaltNotCache*/ Object.setPrototypeOf?Object.setPrototypeOf(ctor.prototype,proto):void 0!==ctor.prototype.__proto__?ctor.prototype.__proto__=proto:ctor.prototype=proto;var LegacyObservableArray=function(_StubArray){ /*ThouShaltNotCache*/ function LegacyObservableArray(initialValues,enhancer,name,owned){ /*ThouShaltNotCache*/ var _this;return void 0===name&&(name="ObservableArray"),void 0===owned&&(owned=!1),_this=_StubArray.call(this)||this,initObservable(function(){ /*ThouShaltNotCache*/ var adm=new ObservableArrayAdministration(name,enhancer,owned,!0);adm.proxy_=_this,addHiddenFinalProp(_this,$mobx,adm),initialValues&&initialValues.length&&_this.spliceWithArray(0,0,initialValues),safariPrototypeSetterInheritanceBug&&Object.defineProperty(_this,"0",ENTRY_0)}),_this}_inheritsLoose(LegacyObservableArray,_StubArray);var _proto=LegacyObservableArray.prototype;return _proto.concat=function(){ /*ThouShaltNotCache*/ this[$mobx].atom_.reportObserved();for(var _len=arguments.length,arrays=new Array(_len),_key=0;_key<_len;_key++)arrays[_key]=arguments[_key];return Array.prototype.concat.apply(this.slice(),arrays.map(function(a){ /*ThouShaltNotCache*/ return isObservableArray(a)?a.slice():a}))},_proto[Symbol.iterator]=function(){ /*ThouShaltNotCache*/ var self=this,nextIndex=0;return makeIterable({next:function(){ /*ThouShaltNotCache*/ return nextIndexOBSERVABLE_ARRAY_BUFFER_SIZE){for(var index=OBSERVABLE_ARRAY_BUFFER_SIZE;index=0&&depth++}a=unwrap(a),b=unwrap(b);var areArrays="[object Array]"===className;if(!areArrays){if("object"!=typeof a||"object"!=typeof b)return!1;var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(isFunction(aCtor)&&aCtor instanceof aCtor&&isFunction(bCtor)&&bCtor instanceof bCtor)&&"constructor"in a&&"constructor"in b)return!1}if(0===depth)return!1;depth<0&&(depth=-1),bStack=bStack||[];for(var length=(aStack=aStack||[]).length;length--;)if(aStack[length]===a)return bStack[length]===b;if(aStack.push(a),bStack.push(b),areArrays){if((length=a.length)!==b.length)return!1;for(;length--;)if(!eq(a[length],b[length],depth-1,aStack,bStack))return!1}else{var keys=Object.keys(a),_length=keys.length;if(Object.keys(b).length!==_length)return!1;for(var i=0;i<_length;i++){var key=keys[i];if(!hasProp(b,key)||!eq(a[key],b[key],depth-1,aStack,bStack))return!1}}return aStack.pop(),bStack.pop(),!0}function unwrap(a){ /*ThouShaltNotCache*/ return isObservableArray(a)?a.slice():isES6Map(a)||isObservableMap(a)||isES6Set(a)||isObservableSet(a)?Array.from(a.entries()):a}var maybeIteratorPrototype=(null==(_getGlobal$Iterator=getGlobal().Iterator)?void 0:_getGlobal$Iterator.prototype)||{};function makeIterable(iterator){ /*ThouShaltNotCache*/ return iterator[Symbol.iterator]=getSelf,Object.assign(Object.create(maybeIteratorPrototype),iterator)}function getSelf(){ /*ThouShaltNotCache*/ return this}["Symbol","Map","Set"].forEach(function(m){void 0===getGlobal()[m]&&die("MobX requires global '"+m+"' to be available or polyfilled")}),"object"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:function(listener){return console.warn("[mobx.spy] Is a no-op in production builds"),function(){}},extras:{getDebugName},$mobx});class Person{id;name;lastMessage=null;rooms=new Set;status="Online";constructor(id,name){ /*ThouShaltNotCache*/ makeObservable(this,{name:observable,lastMessage:observable,rooms:observable,status:observable,setName:action,setLastMessage:action,addRoom:action,removeRoom:action,setStatus:action}),this.id=id,this.name=name}setName(name){ /*ThouShaltNotCache*/ this.name=name}setLastMessage(message){ /*ThouShaltNotCache*/ this.lastMessage=message}addRoom(room){ /*ThouShaltNotCache*/ this.rooms.add(room)}removeRoom(room){ /*ThouShaltNotCache*/ this.rooms.delete(room)}setStatus(status){ /*ThouShaltNotCache*/ this.status=status,this.rooms.forEach(room=>{ /*ThouShaltNotCache*/ room.addStatusUpdate(this,status)})}}class Room{name;people=new Map;messages=[];roomUpdates=[];constructor(name){ /*ThouShaltNotCache*/ makeObservable(this,{name:observable,people:observable,messages:observable,roomUpdates:observable,messageCount:computed,peopleCount:computed,lastMessage:computed,members:computed,addPerson:action,removePerson:action,addMessage:action,addStatusUpdate:action,dispose:action}),this.name=name}get messageCount(){ /*ThouShaltNotCache*/ return this.messages.length}get peopleCount(){ /*ThouShaltNotCache*/ return this.people.size}get lastMessage(){ /*ThouShaltNotCache*/ return 0===this.messages.length?null:this.messages[this.messages.length-1]}get members(){ /*ThouShaltNotCache*/ return Array.from(this.people.values())}addPerson(person){ /*ThouShaltNotCache*/ this.people.has(person.id)||(this.people.set(person.id,person),person.addRoom(this))}removePerson(personId){ /*ThouShaltNotCache*/ const person=this.people.get(personId);person&&(person.removeRoom(this),this.people.delete(personId))}addMessage(message){ /*ThouShaltNotCache*/ this.messages.push(message),message.author.setLastMessage(message)}addStatusUpdate(person,status){ /*ThouShaltNotCache*/ this.roomUpdates.push(`${person.name} is now ${status}`),this.roomUpdates.length>20&&(this.roomUpdates=this.roomUpdates.slice(10))}dispose(notifications){ /*ThouShaltNotCache*/ this.people.forEach(person=>person.removeRoom(this)),notifications&¬ifications.removeRoom(this.name)}}class Message{static _nextId=0;id;text;author;timestamp;static nextId(){ /*ThouShaltNotCache*/ return Message._nextId++}constructor(text,author){ /*ThouShaltNotCache*/ makeObservable(this,{text:observable,updateText:action}),this.id=Message.nextId(),this.text=text,this.author=author,this.timestamp=new Date}updateText(text){ /*ThouShaltNotCache*/ this.text=text}}class Notifications{lastMessages=new Map;lastMessage;roomDisposers=new Map;constructor(rooms){ /*ThouShaltNotCache*/ makeObservable(this,{lastMessages:observable,updateLastMessage:action,addRoom:action,removeRoom:action}),rooms.forEach(room=>this.addRoom(room))}addRoom(room){ /*ThouShaltNotCache*/ const disposer=function(expression,effect,opts){ /*ThouShaltNotCache*/ var _opts$name2,_opts4,_opts5;void 0===opts&&(opts=EMPTY_OBJECT);var errorHandler,baseFn,value,name=null!=(_opts$name2=opts.name)?_opts$name2:"Reaction",effectAction=action(name,opts.onError?(errorHandler=opts.onError,baseFn=effect,function(){ /*ThouShaltNotCache*/ try{return baseFn.apply(this,arguments)}catch(e){errorHandler.call(this,e)}}):effect),runSync=!opts.scheduler&&!opts.delay,scheduler=createSchedulerFromOptions(opts),firstTime=!0,isScheduled=!1,equals=opts.compareStructural?comparer.structural:opts.equals||comparer.default,r=new Reaction(name,function(){ /*ThouShaltNotCache*/ firstTime||runSync?reactionRunner():isScheduled||(isScheduled=!0,scheduler(reactionRunner))},opts.onError,opts.requiresObservable);function reactionRunner(){if( /*ThouShaltNotCache*/ isScheduled=!1,!r.isDisposed){var changed=!1,oldValue=value;r.track(function(){ /*ThouShaltNotCache*/ var nextValue=allowStateChanges(!1,function(){ /*ThouShaltNotCache*/ return expression(r)});changed=firstTime||!equals(value,nextValue),value=nextValue}),(firstTime&&opts.fireImmediately||!firstTime&&changed)&&effectAction(value,oldValue,r),firstTime=!1}}return null!=(_opts4=opts)&&null!=(_opts4=_opts4.signal)&&_opts4.aborted||r.schedule_(),r.getDisposer_(null==(_opts5=opts)?void 0:_opts5.signal)}(()=>room.lastMessage,message=>{ /*ThouShaltNotCache*/ message&&this.updateLastMessage(room.name,message)});this.roomDisposers.set(room.name,disposer)}removeRoom(roomName){ /*ThouShaltNotCache*/ this.roomDisposers.has(roomName)&&(this.roomDisposers.get(roomName)(),this.roomDisposers.delete(roomName),this.lastMessages.delete(roomName))}updateLastMessage(roomName,message){ /*ThouShaltNotCache*/ this.lastMessages.set(roomName,message)}}function assert(condition){ /*ThouShaltNotCache*/ if(!condition)throw new Error("Assertion failure")}function runTest(){ /*ThouShaltNotCache*/ const logs=[],customLog=(...args)=>logs.push(args.join(" ")),techRoom=new Room("Tech Talk"),generalRoom=new Room("General Chat"),largeRoom=new Room("Large Meeting Room"),alice=new Person(1,"Alice"),bob=new Person(2,"Bob");techRoom.addPerson(alice),techRoom.addPerson(bob),generalRoom.addPerson(alice);const rooms=[techRoom,generalRoom,largeRoom],notifications=new Notifications(rooms);customLog("\n--- Setting up Large Meeting Room ---");const largeRoomMembers=[];for(let i=3;i<203;i++){const person=new Person(i,`Person ${i}`);largeRoomMembers.push(person),largeRoom.addPerson(person)}customLog(`[INFO] Added ${largeRoom.peopleCount} members to the large room.`),largeRoom.addPerson(alice),largeRoom.addPerson(bob),customLog("[INFO] Added Alice and Bob to the Large Meeting Room."),assert(3===alice.rooms.size),assert(alice.rooms.has(techRoom)&&alice.rooms.has(generalRoom)&&alice.rooms.has(largeRoom)),assert(2===bob.rooms.size&&bob.rooms.has(techRoom)&&bob.rooms.has(largeRoom)),customLog("[PASS] Verified Person.rooms associations with Set.");const notificationsDisposer=autorun(()=>{ /*ThouShaltNotCache*/ customLog("\n--- Global Notifications (Last Messages) ---"),0===notifications.lastMessages.size?customLog("No messages yet."):notifications.lastMessages.forEach((message,roomName)=>{ /*ThouShaltNotCache*/ customLog(`[${roomName}] "${message.text}" - ${message.author.name}`)}),customLog("------------------------------------------")}),roomUpdatesDisposer=autorun(()=>{ /*ThouShaltNotCache*/ rooms.forEach(room=>{ /*ThouShaltNotCache*/ room.roomUpdates.length>0&&customLog(`[${room.name} Update] ${room.roomUpdates[room.roomUpdates.length-1]}`)})});customLog("\n--- Status Update Scenario ---"),alice.setStatus("Away"),assert(techRoom.roomUpdates.includes("Alice is now Away")),assert(generalRoom.roomUpdates.includes("Alice is now Away")),assert(largeRoom.roomUpdates.includes("Alice is now Away")),customLog("[PASS] Verified that status updates are sent to all of Alice's rooms."),bob.setStatus("Busy"),assert(techRoom.roomUpdates.includes("Bob is now Busy")),assert(!generalRoom.roomUpdates.includes("Bob is now Busy")),assert(largeRoom.roomUpdates.includes("Bob is now Busy")),customLog("[PASS] Verified that status updates are only sent to Bob's rooms."),customLog("\n--- Sending Messages & Verifying Notifications ---");const msg1=new Message("First message to Tech Talk!",alice);techRoom.addMessage(msg1),assert(notifications.lastMessages.get("Tech Talk")===msg1),customLog("[PASS] Verified Tech Talk notification.");for(let i=0;i<20;i++){const msg2=new Message(`ping ${i}`,alice);generalRoom.addMessage(msg2),assert(notifications.lastMessages.get("General Chat")===msg2)}customLog("[PASS] Verified General Chat notification.");for(let i=0;i<=5;i++)for(const member of largeRoomMembers){const msg=new Message(`Hi, I am ${member.name}`,member);largeRoom.addMessage(msg),assert(largeRoom.lastMessage==msg),assert(notifications.lastMessages.get("Large Meeting Room")===msg)}customLog("[PASS] Verified Large Meeting Room notification.");for(let i=0;i<20;i++){const msg4=new Message(`ping ${i}`,bob);techRoom.addMessage(msg4),assert(notifications.lastMessages.get("Tech Talk")===msg4)}customLog("[PASS] Verified Tech Talk notification update.");const tempRooms=[];for(let i=0;i<10;i++){const roomId=`General Chat ${i}`,tempRoom=new Room(roomId);tempRooms.push(tempRoom),notifications.addRoom(tempRoom);for(const person of largeRoomMembers.slice(0,10))tempRoom.addPerson(person);for(const person of tempRoom.members.slice(0,5)){const msg=new Message(`ping ${i}`,person);tempRoom.addMessage(msg),assert(notifications.lastMessages.get(roomId)===msg)}}return tempRooms.forEach(room=>room.dispose(notifications)),notificationsDisposer(),roomUpdatesDisposer(),techRoom.dispose(notifications),generalRoom.dispose(notifications),largeRoom.dispose(notifications),logs}})(),MobXBenchmark=__webpack_exports__})(); //# sourceMappingURL=bundle.es6.js.map