hunk.code_window: 	state.tags = m.observable(m.asStructure([]));
   	// custom transform
   	TreeNode.prototype.transform = function(iter, memo) {
   		memo = memo || [];
   		if (!state.tags.length || intersection(state.tags, this.tags).length) memo.push(iter(this));
   		this.children.forEach(function(child) { child.transform(iter, memo); });
   		return memo;
   	}
   	// setup
   	var node = new TreeNode('root', {tags: [1]});
   	node.addChild(new TreeNode('root-child-1', {tags: [2]}));
  
hunk.labels: keep keep keep replace replace replace replace replace keep keep keep keep keep
hunk.after_edit: 	TreeNode.prototype.transform = function(iteratee, results) {
   		results = results || [];
   		if (!state.tags.length || intersection(state.tags, this.tags).length) results.push(iteratee(this));
   		this.children.forEach(function(child) { child.transform(iteratee, results); });
   		return results;
  
hunk.file_path: test/transform.js
hunk.type: replace
file: {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:/webpack/bootstrap b74ea18391e4eb354c71","webpack:///lib/index.js","webpack:///lib/core.js","webpack:///lib/dnode.js","webpack:///lib/extras.js","webpack:///lib/observableobject.js","webpack:///lib/observableview.js","webpack:///lib/simpleeventemitter.js","webpack:///lib/utils.js","webpack:///lib/observablearray.js","webpack:///lib/observablevalue.js","webpack:///lib/observablemap.js","webpack:///lib/interfaces.js","webpack:///lib/transform.js"],"names":["webpackUniversalModuleDefinition","root","factory","exports","module","define","amd","this","installedModules","__webpack_require__","moduleId","id","loaded","modules","call","m","c","p","__export","hasOwnProperty","core","dnode_1","utils_1","extras_1","simpleeventemitter_1","core_1","isObservable","isObservableObject","isObservableArray","isObservableMap","observable","extendObservable","asReference","asFlat","asStructure","observe","autorun","autorunUntil","autorunAsync","expr","toJSON","isReactive","map","makeReactive","extendReactive","observeUntil","observeAsync","transform_1","transform","dnode_2","untracked","transaction","observablemap_1","ObservableMap","_","isComputingView","quickDiff","extras","getDNode","getDependencyTree","getObserverTree","trackTransitions","SimpleEventEmitter","default","withStrict","observablevalue_1","observableview_1","observablearray_1","observableobject_1","v","keyOrScope","arguments","observableDecorator","apply","length","Error","_a","getValueModeFromValue","ValueMode","Recursive","mode","value","sourceType","Reference","ValueType","getTypeOfValue","ComplexObject","toGetterSetterFunction","ObservableValue","ComplexFunction","ViewFunction","context","name","object","ObservableView","Structure","Array","PlainObject","makeChildObservable","initialValues","valueModifier","AsReference","AsStructure","AsFlat","undefined","$mobservable","DataNode","view","scope","unwrappedView","disposedPrematurely","started","runAfterTransaction","setRefCount","disposer","once","predicate","effect","disposeImmediately","autorunAsyncDeprecated","delay","latestValue","timeoutHandle","setTimeout","clearTimeout","func","console","warn","shouldRun","tickScheduled","tick","observedValues","isDisposed","schedule","f","doTick","observing","forEach","o","notifyObserved","target","properties","_i","propSet","extendObservableHelper","key","baseDescriptor","isDecoratingGetter","descriptor","baseValue","get","initializer","set","configurable","enumerable","_this","ObservableObject","asReactive","throwingViewSetter","Object","defineProperty","source","detectCycles","__alreadySeen","cache","push","i","l","isArray","ObservableArray","res","isPlainObject","strict","getStrict","newStrict","baseStrict","meta","listener","fire","toString","assertUnwrapped","defaultMode","Flat","getValueModeFromModifierFunc","parentMode","childMode","createObservableArray","slice","message","thing","error","global","__extends","d","b","__","constructor","prototype","create","__mobservableTrackingStack","__mobservableViewStack","inTransaction","changedValues","afterTransactionItems","mobservableId","checkIfStateIsBeingModifiedDuringView","ts","action","length_1","markReady","splice","actions","dnode","ViewNode","pop","NodeState","state","READY","observers","externalRefenceCount","delta","addObserver","node","removeObserver","obs","idx","indexOf","markStale","STALE","transitionTracker","reportTransition","notifyObservers","stateDidActuallyChange","os","notifyStateChange","deps","depslength","dispose","_super","isSleeping","hasCycle","prevObserving","dependencyChangeCount","dependencyStaleCount","rc","tryToSleep","wakeUp","PENDING","computeNextState","trackDependencies","hasError","stateDidChange","compute","isComputing","bindDependencies","added","removed","dependency","findCycle","stackDepth","property","_data","values","changed","newValue","emit","nodeToDependencyTree","result","dependencies","unique","nodeToObserverTree","listeners","createConsoleReporter","extensive","lines","scheduled","line","onReport","reporter","on","_events","propName","defineReactiveProperty","oldValue","type","callback","compareStructural","changeEvent","_value","x","deepEquals","fireImmediately","data","subscription","invoked","list","item","getPrototypeOf","makeNonEnumerable","props","writable","a","aIsArray","keys","prop","current","base","currentIndex","currentSearch","currentLength","currentExhausted","baseIndex","baseSearch","baseLength","isSearching","baseExhausted","StubArray","ObservableArrayAdministration","array","getLength","setLength","newLength","spliceWithArray","updateLength","oldLength","OBSERVABLE_ARRAY_BUFFER_SIZE","reserveArrayBuffer","end","ENUMERABLE_PROPS","index","deleteCount","newItems","Math","max","min","makeReactiveArrayItem","lengthDelta","concat","notifySplice","notifyChildUpdate","notifyChanged","deleted","addedCount","replace","clear","find","thisArg","fromIndex","items","shift","unshift","reverse","sort","compareFn","remove","toLocaleString","funcName","baseFunc","createArrayBufferItem","impl","childmode","unwrappedValue","makeReferenceValueReactive","initialData","valueModeFunc","_hasMap","_keys","_valueMode","merge","_has","has","assertValidKey","_updateHasMapEntry","delete","entry","entries","other","toJs","join","transformer","objectCache","transformStack","TransformationNode","uses","_refCount","_disposed","recurseTransform","used","refCount","identifier","getId","n_1","n","transformId","tid"],"mappings":"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AvT,MAAAqE,MAEA,MAAA,IAAAwO,oBAAAQ,MAAAzS,QAAAA,QAEA1F,QAAA6C,UAAAA,SACA,IAAAyV,aAAA,CACA,SAAAH,OAAAzS,QACA,IAAApE,OAAAC,aAAAmE,QACA,KAAA,IAAAlB,OAAA,iEAAAkB,OACA,IAAA6S,KAAA7S,OAAAY,aAAAgS,WACA,IAAAC,MAAAlS,UACA,MAAAX,QAAAY,aAAAgS,cAAAA,WACA,OAAAC;AdjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kC;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,4BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,2BAA2B,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,qBAAqB;AACvD,oCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAAyD,mDAAmD,EAAE;AAC9G;AACA;AACA;AACA,2BAA0B;AAC1B,+CAA8C,8DAA8D,EAAE;AAC9G;AACA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;AChdA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA,gDAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,kCAAkC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAgD,gCAAgC;AAChF;AACA,uCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,uDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kC;;;;;;;ACxQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B,iBAAiB;AAC9C,+BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,gCAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,mC;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,6C;;;;;;ACjFA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,2C;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA,gCAA+B,OAAO;AACtC;AACA;AACA;AACA,gCAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,EAAC;AACD,+CAA8C,cAAc;AAC5D;AACA,+C;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kC;;;;;;ACjHA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,gDAA+C,qCAAqC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAsD,2CAA2C,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,gCAA+B,uEAAuE;AACtG;AACA;AACA;AACA;AACA;AACA,gCAA+B,+FAA+F;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,0CAAyC,yBAAyB;AAClE;AACA,uBAAsB,mGAAmG;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC,eAAe;AAClD;AACA;AACA,gCAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,mDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA,4C;;;;;;ACrTA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,4C;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C,8BAA8B,EAAE;AAC/E;AACA;AACA;AACA,6CAA4C,oDAAoD,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA,sDAAqD,uCAAuC,EAAE;AAC9F;AACA,4DAA2D,mCAAmC,EAAE;AAChG,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,6CAA4C,kCAAkC,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,qCAAqC,6CAA6C,EAAE,kBAAkB;AACxI;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA,0C;;;;;;ACrKA,uC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,OAAO;AAC3D;AACA,wDAAuD,QAAQ;AAC/D;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sC","file":"dist/mobservable.js","sourceRoot":"","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mobservable\"] = factory();\n\telse\n\t\troot[\"mobservable\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap b74ea18391e4eb354c71\n **/","function __export(m) {\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nvar core = require('./core');\nvar dnode_1 = require('./dnode');\nvar utils_1 = require('./utils');\nvar extras_1 = require('./extras');\nvar simpleeventemitter_1 = require('./simpleeventemitter');\n__export(require('./interfaces'));\nvar core_1 = require('./core');\nexports.isObservable = core_1.isObservable;\nexports.isObservableObject = core_1.isObservableObject;\nexports.isObservableArray = core_1.isObservableArray;\nexports.isObservableMap = core_1.isObservableMap;\nexports.observable = core_1.observable;\nexports.extendObservable = core_1.extendObservable;\nexports.asReference = core_1.asReference;\nexports.asFlat = core_1.asFlat;\nexports.asStructure = core_1.asStructure;\nexports.observe = core_1.observe;\nexports.autorun = core_1.autorun;\nexports.autorunUntil = core_1.autorunUntil;\nexports.autorunAsync = core_1.autorunAsync;\nexports.expr = core_1.expr;\nexports.toJSON = core_1.toJSON;\nexports.isReactive = core_1.isObservable;\nexports.map = core_1.map;\nexports.makeReactive = core_1.observable;\nexports.extendReactive = core_1.extendObservable;\nexports.observeUntil = core_1.autorunUntil;\nexports.observeAsync = core_1.autorunAsync;\nvar transform_1 = require('./transform');\nexports.transform = transform_1.transform;\nvar dnode_2 = require('./dnode');\nexports.untracked = dnode_2.untracked;\nexports.transaction = dnode_2.transaction;\nvar observablemap_1 = require('./observablemap');\nexports.ObservableMap = observablemap_1.ObservableMap;\nexports._ = {\n    isComputingView: dnode_1.isComputingView,\n    quickDiff: utils_1.quickDiff\n};\nexports.extras = {\n    getDNode: extras_1.getDNode,\n    getDependencyTree: extras_1.getDependencyTree,\n    getObserverTree: extras_1.getObserverTree,\n    trackTransitions: extras_1.trackTransitions,\n    SimpleEventEmitter: simpleeventemitter_1.default,\n    withStrict: core.withStrict\n};\n//# sourceMappingURL=index.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/index.js\n ** module id = 0\n ** module chunks = 0\n **/","var dnode_1 = require('./dnode');\nvar utils_1 = require('./utils');\nvar observablevalue_1 = require('./observablevalue');\nvar observableview_1 = require('./observableview');\nvar observablearray_1 = require('./observablearray');\nvar observableobject_1 = require('./observableobject');\nvar observablemap_1 = require('./observablemap');\nvar dnode_2 = require('./dnode');\nfunction observable(v, keyOrScope) {\n    if (typeof arguments[1] === \"string\")\n        return observableDecorator.apply(null, arguments);\n    switch (arguments.length) {\n        case 0:\n            throw new Error(\"[mobservable.observable] Please provide at least one argument.\");\n        case 1:\n            break;\n        case 2:\n            if (typeof v === \"function\")\n                break;\n            throw new Error(\"[mobservable.observable] Only one argument expected.\");\n        default:\n            throw new Error(\"[mobservable.observable] Too many arguments. Please provide exactly one argument, or a function and a scope.\");\n    }\n    if (isObservable(v))\n        return v;\n    var _a = getValueModeFromValue(v, ValueMode.Recursive), mode = _a[0], value = _a[1];\n    var sourceType = mode === ValueMode.Reference ? ValueType.Reference : getTypeOfValue(value);\n    switch (sourceType) {\n        case ValueType.Reference:\n        case ValueType.ComplexObject:\n            return toGetterSetterFunction(new observablevalue_1.ObservableValue(value, mode, null));\n        case ValueType.ComplexFunction:\n            throw new Error(\"[mobservable.observable] To be able to make a function reactive it should not have arguments. If you need an observable reference to a function, use `observable(asReference(f))`\");\n        case ValueType.ViewFunction: {\n            var context = {\n                name: value.name,\n                object: value\n            };\n            return toGetterSetterFunction(new observableview_1.ObservableView(value, keyOrScope, context, mode === ValueMode.Structure));\n        }\n        case ValueType.Array:\n        case ValueType.PlainObject:\n            return makeChildObservable(value, mode, null);\n    }\n    throw \"Illegal State\";\n}\nexports.observable = observable;\nfunction map(initialValues, valueModifier) {\n    return new observablemap_1.ObservableMap(initialValues, valueModifier);\n}\nexports.map = map;\nfunction asReference(value) {\n    return new AsReference(value);\n}\nexports.asReference = asReference;\nfunction asStructure(value) {\n    return new AsStructure(value);\n}\nexports.asStructure = asStructure;\nfunction asFlat(value) {\n    return new AsFlat(value);\n}\nexports.asFlat = asFlat;\nfunction isObservable(value) {\n    if (value === null || value === undefined)\n        return false;\n    return !!value.$mobservable || value instanceof dnode_2.DataNode;\n}\nexports.isObservable = isObservable;\nfunction autorun(view, scope) {\n    var _a = getValueModeFromValue(view, ValueMode.Recursive), mode = _a[0], unwrappedView = _a[1];\n    if (typeof unwrappedView !== \"function\")\n        throw new Error(\"[mobservable.autorun] expects a function\");\n    if (unwrappedView.length !== 0)\n        throw new Error(\"[mobservable.autorun] expects a function without arguments\");\n    var observable = new observableview_1.ObservableView(unwrappedView, scope, {\n        object: scope || view,\n        name: view.name\n    }, mode === ValueMode.Structure);\n    var disposedPrematurely = false;\n    var started = false;\n    dnode_2.runAfterTransaction(function () {\n        if (!disposedPrematurely) {\n            observable.setRefCount(+1);\n            started = true;\n        }\n    });\n    var disposer = utils_1.once(function () {\n        if (started)\n            observable.setRefCount(-1);\n        else\n            disposedPrematurely = true;\n    });\n    disposer.$mobservable = observable;\n    return disposer;\n}\nexports.autorun = autorun;\nfunction autorunUntil(predicate, effect, scope) {\n    var disposeImmediately = false;\n    var disposer = autorun(function () {\n        if (predicate.call(scope)) {\n            if (disposer)\n                disposer();\n            else\n                disposeImmediately = true;\n            effect.call(scope);\n        }\n    });\n    if (disposeImmediately)\n        disposer();\n    return disposer;\n}\nexports.autorunUntil = autorunUntil;\nfunction autorunAsyncDeprecated(view, effect, delay, scope) {\n    if (delay === void 0) { delay = 1; }\n    var latestValue = undefined;\n    var timeoutHandle;\n    var disposer = autorun(function () {\n        latestValue = view.call(scope);\n        if (!timeoutHandle) {\n            timeoutHandle = setTimeout(function () {\n                effect.call(scope, latestValue);\n                timeoutHandle = null;\n            }, delay);\n        }\n    });\n    return utils_1.once(function () {\n        disposer();\n        if (timeoutHandle)\n            clearTimeout(timeoutHandle);\n    });\n}\nfunction autorunAsync(func, delay, scope) {\n    if (delay === void 0) { delay = 1; }\n    if (typeof delay === \"function\") {\n        console.warn(\"[mobservable] autorun(func, func) is deprecated and will removed in 2.0\");\n        return autorunAsyncDeprecated.apply(null, arguments);\n    }\n    var shouldRun = false;\n    var tickScheduled = false;\n    var tick = observable(0);\n    var observedValues = [];\n    var disposer;\n    var isDisposed = false;\n    function schedule(f) {\n        setTimeout(f, delay);\n    }\n    function doTick() {\n        tickScheduled = false;\n        shouldRun = true;\n        tick(tick() + 1);\n    }\n    disposer = autorun(function () {\n        if (isDisposed)\n            return;\n        tick();\n        if (shouldRun) {\n            func.call(scope);\n            observedValues = disposer.$mobservable.observing;\n            shouldRun = false;\n        }\n        else {\n            observedValues.forEach(function (o) { return o.notifyObserved(); });\n            if (!tickScheduled) {\n                tickScheduled = true;\n                schedule(doTick);\n            }\n        }\n    });\n    return utils_1.once(function () {\n        isDisposed = true;\n        if (disposer)\n            disposer();\n    });\n}\nexports.autorunAsync = autorunAsync;\nfunction expr(expr, scope) {\n    if (!dnode_1.isComputingView())\n        console.warn(\"[mobservable.expr] 'expr' should only be used inside other reactive functions.\");\n    return observable(expr, scope)();\n}\nexports.expr = expr;\nfunction extendObservable(target) {\n    var properties = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        properties[_i - 1] = arguments[_i];\n    }\n    if (arguments.length < 2)\n        throw new Error(\"[mobservable.extendObservable] expected 2 or more arguments\");\n    if (target instanceof observablemap_1.ObservableMap || properties instanceof observablemap_1.ObservableMap)\n        throw new Error(\"[mobservable.extendObservable] 'extendObservable' should not be used on maps, use map.merge instead\");\n    properties.forEach(function (propSet) {\n        if (!propSet || typeof target !== \"object\")\n            throw new Error(\"[mobservable.extendObservable] 'extendObservable' expects one or more objects with properties to define\");\n        extendObservableHelper(target, propSet, ValueMode.Recursive, null);\n    });\n    return target;\n}\nexports.extendObservable = extendObservable;\nfunction observableDecorator(target, key, baseDescriptor) {\n    if (arguments.length < 2 || arguments.length > 3)\n        throw new Error(\"[mobservable.@observable] A decorator expects 2 or 3 arguments, got: \" + arguments.length);\n    var isDecoratingGetter = baseDescriptor && baseDescriptor.hasOwnProperty(\"get\");\n    var descriptor = {};\n    var baseValue = undefined;\n    if (baseDescriptor) {\n        if (baseDescriptor.hasOwnProperty('get'))\n            baseValue = baseDescriptor.get;\n        else if (baseDescriptor.hasOwnProperty('value'))\n            baseValue = baseDescriptor.value;\n        else if (baseDescriptor.initializer) {\n            baseValue = baseDescriptor.initializer();\n            if (typeof baseValue === \"function\")\n                baseValue = asReference(baseValue);\n        }\n    }\n    if (!target || typeof target !== \"object\")\n        throw new Error(\"The @observable decorator can only be used on objects\");\n    if (isDecoratingGetter) {\n        if (typeof baseValue !== \"function\")\n            throw new Error(\"@observable expects a getter function if used on a property (in member: '\" + key + \"').\");\n        if (descriptor.set)\n            throw new Error(\"@observable properties cannot have a setter (in member: '\" + key + \"').\");\n        if (baseValue.length !== 0)\n            throw new Error(\"@observable getter functions should not take arguments (in member: '\" + key + \"').\");\n    }\n    descriptor.configurable = true;\n    descriptor.enumerable = true;\n    descriptor.get = function () {\n        var _this = this;\n        withStrict(false, function () {\n            observableobject_1.ObservableObject.asReactive(_this, null, ValueMode.Recursive).set(key, baseValue);\n        });\n        return this[key];\n    };\n    descriptor.set = isDecoratingGetter\n        ? observableview_1.throwingViewSetter(key)\n        : function (value) {\n            observableobject_1.ObservableObject.asReactive(this, null, ValueMode.Recursive).set(key, typeof value === \"function\" ? asReference(value) : value);\n        };\n    if (!baseDescriptor) {\n        Object.defineProperty(target, key, descriptor);\n    }\n    else {\n        return descriptor;\n    }\n}\nfunction toJSON(source, detectCycles, __alreadySeen) {\n    if (detectCycles === void 0) { detectCycles = true; }\n    if (__alreadySeen === void 0) { __alreadySeen = null; }\n    function cache(value) {\n        if (detectCycles)\n            __alreadySeen.push([source, value]);\n        return value;\n    }\n    if (detectCycles && __alreadySeen === null)\n        __alreadySeen = [];\n    if (detectCycles && source !== null && typeof source === \"object\") {\n        for (var i = 0, l = __alreadySeen.length; i < l; i++)\n            if (__alreadySeen[i][0] === source)\n                return __alreadySeen[i][1];\n    }\n    if (!source)\n        return source;\n    if (Array.isArray(source) || source instanceof observablearray_1.ObservableArray) {\n        var res = cache([]);\n        res.push.apply(res, source.map(function (value) { return toJSON(value, detectCycles, __alreadySeen); }));\n        return res;\n    }\n    if (source instanceof observablemap_1.ObservableMap) {\n        var res = cache({});\n        source.forEach(function (value, key) { return res[key] = toJSON(value, detectCycles, __alreadySeen); });\n        return res;\n    }\n    if (typeof source === \"object\" && utils_1.isPlainObject(source)) {\n        var res = cache({});\n        for (var key in source)\n            if (source.hasOwnProperty(key))\n                res[key] = toJSON(source[key], detectCycles, __alreadySeen);\n        return res;\n    }\n    if (isObservable(source) && source.$mobservable instanceof observablevalue_1.ObservableValue)\n        return toJSON(source(), detectCycles, __alreadySeen);\n    return source;\n}\nexports.toJSON = toJSON;\nvar strict = false;\nfunction getStrict() {\n    return strict;\n}\nexports.getStrict = getStrict;\nfunction withStrict(newStrict, func) {\n    var baseStrict = strict;\n    strict = newStrict;\n    try {\n        func();\n    }\n    finally {\n        strict = baseStrict;\n    }\n}\nexports.withStrict = withStrict;\n(function (ValueType) {\n    ValueType[ValueType[\"Reference\"] = 0] = \"Reference\";\n    ValueType[ValueType[\"PlainObject\"] = 1] = \"PlainObject\";\n    ValueType[ValueType[\"ComplexObject\"] = 2] = \"ComplexObject\";\n    ValueType[ValueType[\"Array\"] = 3] = \"Array\";\n    ValueType[ValueType[\"ViewFunction\"] = 4] = \"ViewFunction\";\n    ValueType[ValueType[\"ComplexFunction\"] = 5] = \"ComplexFunction\";\n})(exports.ValueType || (exports.ValueType = {}));\nvar ValueType = exports.ValueType;\n(function (ValueMode) {\n    ValueMode[ValueMode[\"Recursive\"] = 0] = \"Recursive\";\n    ValueMode[ValueMode[\"Reference\"] = 1] = \"Reference\";\n    ValueMode[ValueMode[\"Structure\"] = 2] = \"Structure\";\n    ValueMode[ValueMode[\"Flat\"] = 3] = \"Flat\";\n})(exports.ValueMode || (exports.ValueMode = {}));\nvar ValueMode = exports.ValueMode;\nfunction getTypeOfValue(value) {\n    if (value === null || value === undefined)\n        return ValueType.Reference;\n    if (typeof value === \"function\")\n        return value.length ? ValueType.ComplexFunction : ValueType.ViewFunction;\n    if (Array.isArray(value) || value instanceof observablearray_1.ObservableArray)\n        return ValueType.Array;\n    if (typeof value == 'object')\n        return utils_1.isPlainObject(value) ? ValueType.PlainObject : ValueType.ComplexObject;\n    return ValueType.Reference;\n}\nexports.getTypeOfValue = getTypeOfValue;\nfunction extendObservableHelper(target, properties, mode, context) {\n    var meta = observableobject_1.ObservableObject.asReactive(target, context, mode);\n    for (var key in properties)\n        if (properties.hasOwnProperty(key)) {\n            meta.set(key, properties[key]);\n        }\n    return target;\n}\nexports.extendObservableHelper = extendObservableHelper;\nfunction toGetterSetterFunction(observable) {\n    var f = function (value) {\n        if (arguments.length > 0)\n            observable.set(value);\n        else\n            return observable.get();\n    };\n    f.$mobservable = observable;\n    f.observe = function (listener, fire) {\n        return observable.observe(listener, fire);\n    };\n    f.toString = function () {\n        return observable.toString();\n    };\n    return f;\n}\nexports.toGetterSetterFunction = toGetterSetterFunction;\nvar AsReference = (function () {\n    function AsReference(value) {\n        this.value = value;\n        assertUnwrapped(value, \"Modifiers are not allowed to be nested\");\n    }\n    return AsReference;\n})();\nexports.AsReference = AsReference;\nvar AsStructure = (function () {\n    function AsStructure(value) {\n        this.value = value;\n        assertUnwrapped(value, \"Modifiers are not allowed to be nested\");\n    }\n    return AsStructure;\n})();\nexports.AsStructure = AsStructure;\nvar AsFlat = (function () {\n    function AsFlat(value) {\n        this.value = value;\n        assertUnwrapped(value, \"Modifiers are not allowed to be nested\");\n    }\n    return AsFlat;\n})();\nexports.AsFlat = AsFlat;\nfunction getValueModeFromValue(value, defaultMode) {\n    if (value instanceof AsReference)\n        return [ValueMode.Reference, value.value];\n    if (value instanceof AsStructure)\n        return [ValueMode.Structure, value.value];\n    if (value instanceof AsFlat)\n        return [ValueMode.Flat, value.value];\n    return [defaultMode, value];\n}\nexports.getValueModeFromValue = getValueModeFromValue;\nfunction getValueModeFromModifierFunc(func) {\n    if (func === asReference)\n        return ValueMode.Reference;\n    else if (func === asStructure)\n        return ValueMode.Structure;\n    else if (func === asFlat)\n        return ValueMode.Flat;\n    else if (func !== undefined)\n        throw new Error(\"[mobservable] Cannot determine value mode from function. Please pass in one of these: mobservable.asReference, mobservable.asStructure or mobservable.asFlat, got: \" + func);\n    return ValueMode.Recursive;\n}\nexports.getValueModeFromModifierFunc = getValueModeFromModifierFunc;\nfunction makeChildObservable(value, parentMode, context) {\n    var childMode;\n    if (isObservable(value))\n        return value;\n    switch (parentMode) {\n        case ValueMode.Reference:\n            return value;\n        case ValueMode.Flat:\n            assertUnwrapped(value, \"Items inside 'asFlat' canont have modifiers\");\n            childMode = ValueMode.Reference;\n            break;\n        case ValueMode.Structure:\n            assertUnwrapped(value, \"Items inside 'asStructure' canont have modifiers\");\n            childMode = ValueMode.Structure;\n            break;\n        case ValueMode.Recursive:\n            _a = getValueModeFromValue(value, ValueMode.Recursive), childMode = _a[0], value = _a[1];\n            break;\n        default:\n            throw \"Illegal State\";\n    }\n    if (Array.isArray(value))\n        return observablearray_1.createObservableArray(value.slice(), childMode, context);\n    if (utils_1.isPlainObject(value))\n        return extendObservableHelper(value, value, childMode, context);\n    return value;\n    var _a;\n}\nexports.makeChildObservable = makeChildObservable;\nfunction assertUnwrapped(value, message) {\n    if (value instanceof AsReference || value instanceof AsStructure || value instanceof AsFlat)\n        throw new Error(\"[mobservable] asStructure / asReference / asFlat cannot be used here. \" + message);\n}\nexports.assertUnwrapped = assertUnwrapped;\nfunction isObservableObject(thing) {\n    return thing && typeof thing === \"object\" && thing.$mobservable instanceof observableobject_1.ObservableObject;\n}\nexports.isObservableObject = isObservableObject;\nfunction isObservableArray(thing) {\n    return thing instanceof observablearray_1.ObservableArray;\n}\nexports.isObservableArray = isObservableArray;\nfunction isObservableMap(thing) {\n    return thing instanceof observablemap_1.ObservableMap;\n}\nexports.isObservableMap = isObservableMap;\nfunction observe(thing, listener) {\n    if (typeof thing === \"function\") {\n        console.error(\"[mobservable.observe] is deprecated in combination with a function, use 'mobservable.autorun' instead\");\n        return autorun(thing);\n    }\n    if (typeof listener !== \"function\")\n        throw new Error(\"[mobservable.observe] expected second argument to be a function\");\n    if (isObservableArray(thing) || isObservableMap(thing))\n        return thing.observe(listener);\n    if (isObservableObject(thing))\n        return thing.$mobservable.observe(listener);\n    if (utils_1.isPlainObject(thing))\n        return observable(thing).$mobservable.observe(listener);\n    throw new Error(\"[mobservable.observe] first argument should be an observable array, observable map, observable object or plain object.\");\n}\nexports.observe = observe;\n//# sourceMappingURL=core.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/core.js\n ** module id = 1\n ** module chunks = 0\n **/","var __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nif (global.__mobservableTrackingStack)\n    throw new Error(\"[mobservable] An incompatible version of mobservable is already loaded.\");\nglobal.__mobservableViewStack = [];\nvar inTransaction = 0;\nvar changedValues = [];\nvar afterTransactionItems = [];\nvar mobservableId = 0;\nfunction checkIfStateIsBeingModifiedDuringView(context) {\n    if (core_1.getStrict() === true && isComputingView()) {\n        var ts = global.__mobservableViewStack;\n        throw new Error(\"[mobservable] It is not allowed to change the state during the computation of a reactive view. Should the data you are trying to modify actually be a view? \\nUse 'mobservable.extras.withStrict(false, block)' to allow changes to be made inside views (unrecommended).\\nView name: \" + context.name + \".\\nCurrent stack size is \" + ts.length + \", active view: \\\"\" + ts[ts.length - 1].toString() + \"\\\".\");\n    }\n}\nexports.checkIfStateIsBeingModifiedDuringView = checkIfStateIsBeingModifiedDuringView;\nfunction transaction(action) {\n    inTransaction += 1;\n    try {\n        return action();\n    }\n    finally {\n        if (--inTransaction === 0) {\n            var length_1 = changedValues.length;\n            for (var i = 0; i < length_1; i++)\n                changedValues[i].markReady(true);\n            changedValues.splice(0, length_1);\n            if (changedValues.length)\n                throw new Error(\"[mobservable] Illegal State, please file a bug report\");\n            var actions = afterTransactionItems.splice(0, afterTransactionItems.length);\n            for (var i = 0, l = actions.length; i < l; i++)\n                actions[i]();\n        }\n    }\n}\nexports.transaction = transaction;\nfunction runAfterTransaction(action) {\n    if (inTransaction === 0)\n        action();\n    else\n        afterTransactionItems.push(action);\n}\nexports.runAfterTransaction = runAfterTransaction;\nfunction untracked(action) {\n    try {\n        var dnode = new ViewNode({ object: null, name: \"untracked\" });\n        global.__mobservableViewStack.push(dnode);\n        return action();\n    }\n    finally {\n        global.__mobservableViewStack.pop();\n    }\n}\nexports.untracked = untracked;\n(function (NodeState) {\n    NodeState[NodeState[\"STALE\"] = 0] = \"STALE\";\n    NodeState[NodeState[\"PENDING\"] = 1] = \"PENDING\";\n    NodeState[NodeState[\"READY\"] = 2] = \"READY\";\n})(exports.NodeState || (exports.NodeState = {}));\nvar NodeState = exports.NodeState;\n;\nvar DataNode = (function () {\n    function DataNode(context) {\n        this.id = ++mobservableId;\n        this.state = NodeState.READY;\n        this.observers = [];\n        this.isDisposed = false;\n        this.externalRefenceCount = 0;\n        if (!context)\n            context = { name: undefined, object: undefined };\n        if (!context.name)\n            context.name = \"[m#\" + this.id + \"]\";\n        this.context = context;\n    }\n    DataNode.prototype.setRefCount = function (delta) {\n        this.externalRefenceCount += delta;\n    };\n    DataNode.prototype.addObserver = function (node) {\n        this.observers[this.observers.length] = node;\n    };\n    DataNode.prototype.removeObserver = function (node) {\n        var obs = this.observers, idx = obs.indexOf(node);\n        if (idx !== -1)\n            obs.splice(idx, 1);\n    };\n    DataNode.prototype.markStale = function () {\n        this.state = NodeState.STALE;\n        if (extras_1.transitionTracker)\n            extras_1.reportTransition(this, \"STALE\");\n        this.notifyObservers();\n    };\n    DataNode.prototype.markReady = function (stateDidActuallyChange) {\n        if (inTransaction > 0) {\n            changedValues.push(this);\n            if (!stateDidActuallyChange)\n                throw new Error(\"[mobservable] Illegal state; only data values can be readied while in transaction. Please file a bug with stacktrace.\");\n            return;\n        }\n        this.state = NodeState.READY;\n        if (extras_1.transitionTracker)\n            extras_1.reportTransition(this, \"READY\", true, this[\"_value\"]);\n        this.notifyObservers(stateDidActuallyChange);\n    };\n    DataNode.prototype.notifyObservers = function (stateDidActuallyChange) {\n        if (stateDidActuallyChange === void 0) { stateDidActuallyChange = false; }\n        var os = this.observers.slice();\n        for (var l = os.length, i = 0; i < l; i++)\n            os[i].notifyStateChange(this, stateDidActuallyChange);\n    };\n    DataNode.prototype.notifyObserved = function () {\n        var ts = global.__mobservableViewStack, l = ts.length;\n        if (l > 0) {\n            var deps = ts[l - 1].observing, depslength = deps.length;\n            if (deps[depslength - 1] !== this && deps[depslength - 2] !== this)\n                deps[depslength] = this;\n        }\n    };\n    DataNode.prototype.dispose = function () {\n        if (this.observers.length)\n            throw new Error(\"[mobservable] Cannot dispose DNode; it is still being observed\");\n        this.isDisposed = true;\n    };\n    DataNode.prototype.toString = function () {\n        return \"DNode[\" + this.context.name + \", state: \" + this.state + \", observers: \" + this.observers.length + \"]\";\n    };\n    return DataNode;\n})();\nexports.DataNode = DataNode;\nvar ViewNode = (function (_super) {\n    __extends(ViewNode, _super);\n    function ViewNode() {\n        _super.apply(this, arguments);\n        this.isSleeping = true;\n        this.hasCycle = false;\n        this.observing = [];\n        this.prevObserving = null;\n        this.dependencyChangeCount = 0;\n        this.dependencyStaleCount = 0;\n    }\n    ViewNode.prototype.setRefCount = function (delta) {\n        var rc = this.externalRefenceCount += delta;\n        if (rc === 0)\n            this.tryToSleep();\n        else if (rc === delta)\n            this.wakeUp();\n    };\n    ViewNode.prototype.removeObserver = function (node) {\n        _super.prototype.removeObserver.call(this, node);\n        this.tryToSleep();\n    };\n    ViewNode.prototype.tryToSleep = function () {\n        if (!this.isSleeping && this.observers.length === 0 && this.externalRefenceCount === 0) {\n            for (var i = 0, l = this.observing.length; i < l; i++)\n                this.observing[i].removeObserver(this);\n            this.observing = [];\n            this.isSleeping = true;\n        }\n    };\n    ViewNode.prototype.wakeUp = function () {\n        if (this.isSleeping) {\n            this.isSleeping = false;\n            this.state = NodeState.PENDING;\n            this.computeNextState();\n        }\n    };\n    ViewNode.prototype.notifyStateChange = function (observable, stateDidActuallyChange) {\n        if (observable.state === NodeState.STALE) {\n            if (++this.dependencyStaleCount === 1)\n                this.markStale();\n        }\n        else {\n            if (stateDidActuallyChange)\n                this.dependencyChangeCount += 1;\n            if (--this.dependencyStaleCount === 0) {\n                this.state = NodeState.PENDING;\n                if (this.dependencyChangeCount > 0)\n                    this.computeNextState();\n                else\n                    this.markReady(false);\n                this.dependencyChangeCount = 0;\n            }\n        }\n    };\n    ViewNode.prototype.computeNextState = function () {\n        var _this = this;\n        this.trackDependencies();\n        if (extras_1.transitionTracker)\n            extras_1.reportTransition(this, \"PENDING\");\n        var hasError = true;\n        try {\n            var stateDidChange;\n            core_1.withStrict(this.externalRefenceCount === 0, function () {\n                stateDidChange = _this.compute();\n            });\n            hasError = false;\n        }\n        finally {\n            if (hasError)\n                console.error(\"[mobservable.view '\" + this.context.name + \"'] There was an uncaught error during the computation of \" + this.toString());\n            this.isComputing = false;\n            this.bindDependencies();\n            this.markReady(stateDidChange);\n        }\n    };\n    ViewNode.prototype.compute = function () {\n        throw \"Abstract!\";\n    };\n    ViewNode.prototype.trackDependencies = function () {\n        this.prevObserving = this.observing;\n        this.observing = [];\n        global.__mobservableViewStack[global.__mobservableViewStack.length] = this;\n    };\n    ViewNode.prototype.bindDependencies = function () {\n        global.__mobservableViewStack.length -= 1;\n        var _a = utils_1.quickDiff(this.observing, this.prevObserving), added = _a[0], removed = _a[1];\n        this.prevObserving = null;\n        this.hasCycle = false;\n        for (var i = 0, l = added.length; i < l; i++) {\n            var dependency = added[i];\n            if (dependency instanceof ViewNode && dependency.findCycle(this)) {\n                this.hasCycle = true;\n                this.observing.splice(this.observing.indexOf(added[i]), 1);\n                dependency.hasCycle = true;\n            }\n            else {\n                added[i].addObserver(this);\n            }\n        }\n        for (var i = 0, l = removed.length; i < l; i++)\n            removed[i].removeObserver(this);\n    };\n    ViewNode.prototype.findCycle = function (node) {\n        var obs = this.observing;\n        if (obs.indexOf(node) !== -1)\n            return true;\n        for (var l = obs.length, i = 0; i < l; i++)\n            if (obs[i] instanceof ViewNode && obs[i].findCycle(node))\n                return true;\n        return false;\n    };\n    ViewNode.prototype.dispose = function () {\n        if (this.observing)\n            for (var l = this.observing.length, i = 0; i < l; i++)\n                this.observing[i].removeObserver(this);\n        this.observing = null;\n        _super.prototype.dispose.call(this);\n    };\n    return ViewNode;\n})(DataNode);\nexports.ViewNode = ViewNode;\nfunction stackDepth() {\n    return global.__mobservableViewStack.length;\n}\nexports.stackDepth = stackDepth;\nfunction isComputingView() {\n    return global.__mobservableViewStack.length > 0;\n}\nexports.isComputingView = isComputingView;\nvar core_1 = require('./core');\nvar extras_1 = require('./extras');\nvar utils_1 = require('./utils');\n//# sourceMappingURL=dnode.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/dnode.js\n ** module id = 2\n ** module chunks = 0\n **/","var dnode_1 = require('./dnode');\nvar observableobject_1 = require('./observableobject');\nvar observablemap_1 = require('./observablemap');\nvar simpleeventemitter_1 = require('./simpleeventemitter');\nvar utils_1 = require('./utils');\nvar core_1 = require('./core');\nfunction getDNode(thing, property) {\n    if (!core_1.isObservable(thing))\n        throw new Error(\"[mobservable.getDNode] \" + thing + \" doesn't seem to be reactive\");\n    if (property !== undefined) {\n        var dnode;\n        if (thing instanceof observablemap_1.ObservableMap)\n            dnode = thing._data[property];\n        else if (thing.$mobservable instanceof observableobject_1.ObservableObject) {\n            var o = thing.$mobservable;\n            dnode = o.values && o.values[property];\n        }\n        if (!dnode)\n            throw new Error(\"[mobservable.getDNode] property '\" + property + \"' of '\" + thing + \"' doesn't seem to be a reactive property\");\n        return dnode;\n    }\n    if (thing instanceof dnode_1.DataNode)\n        return thing;\n    if (thing.$mobservable) {\n        if (thing.$mobservable instanceof observableobject_1.ObservableObject || thing instanceof observablemap_1.ObservableMap)\n            throw new Error(\"[mobservable.getDNode] missing properties parameter. Please specify a property of '\" + thing + \"'.\");\n        return thing.$mobservable;\n    }\n    throw new Error(\"[mobservable.getDNode] \" + thing + \" doesn't seem to be reactive\");\n}\nexports.getDNode = getDNode;\nfunction reportTransition(node, state, changed, newValue) {\n    if (changed === void 0) { changed = false; }\n    if (newValue === void 0) { newValue = null; }\n    exports.transitionTracker.emit({\n        id: node.id,\n        name: node.context.name,\n        context: node.context.object,\n        state: state,\n        changed: changed,\n        newValue: newValue\n    });\n}\nexports.reportTransition = reportTransition;\nexports.transitionTracker = null;\nfunction getDependencyTree(thing, property) {\n    return nodeToDependencyTree(getDNode(thing, property));\n}\nexports.getDependencyTree = getDependencyTree;\nfunction nodeToDependencyTree(node) {\n    var result = {\n        id: node.id,\n        name: node.context.name,\n        context: node.context.object || null\n    };\n    if (node instanceof dnode_1.ViewNode && node.observing.length)\n        result.dependencies = utils_1.unique(node.observing).map(nodeToDependencyTree);\n    return result;\n}\nfunction getObserverTree(thing, property) {\n    return nodeToObserverTree(getDNode(thing, property));\n}\nexports.getObserverTree = getObserverTree;\nfunction nodeToObserverTree(node) {\n    var result = {\n        id: node.id,\n        name: node.context.name,\n        context: node.context.object || null\n    };\n    if (node.observers.length)\n        result.observers = utils_1.unique(node.observers).map(nodeToObserverTree);\n    if (node.externalRefenceCount > 0)\n        result.listeners = node.externalRefenceCount;\n    return result;\n}\nfunction createConsoleReporter(extensive) {\n    var lines = [];\n    var scheduled = false;\n    return function (line) {\n        if (extensive || line.changed)\n            lines.push(line);\n        if (!scheduled) {\n            scheduled = true;\n            setTimeout(function () {\n                console[console[\"table\"] ? \"table\" : \"dir\"](lines);\n                lines = [];\n                scheduled = false;\n            }, 1);\n        }\n    };\n}\nfunction trackTransitions(extensive, onReport) {\n    if (extensive === void 0) { extensive = false; }\n    if (!exports.transitionTracker)\n        exports.transitionTracker = new simpleeventemitter_1.default();\n    var reporter = onReport\n        ? function (line) {\n            if (extensive || line.changed)\n                onReport(line);\n        }\n        : createConsoleReporter(extensive);\n    var disposer = exports.transitionTracker.on(reporter);\n    return utils_1.once(function () {\n        disposer();\n        if (exports.transitionTracker.listeners.length === 0)\n            exports.transitionTracker = null;\n    });\n}\nexports.trackTransitions = trackTransitions;\n//# sourceMappingURL=extras.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/extras.js\n ** module id = 3\n ** module chunks = 0\n **/","var core_1 = require('./core');\nvar observableview_1 = require('./observableview');\nvar observablevalue_1 = require('./observablevalue');\nvar simpleeventemitter_1 = require('./simpleeventemitter');\nvar ObservableObject = (function () {\n    function ObservableObject(target, context, mode) {\n        this.target = target;\n        this.context = context;\n        this.mode = mode;\n        this.values = {};\n        this._events = new simpleeventemitter_1.default();\n        if (target.$mobservable)\n            throw new Error(\"Illegal state: already an reactive object\");\n        if (!context) {\n            this.context = {\n                object: target,\n                name: \"\"\n            };\n        }\n        else if (!context.object) {\n            context.object = target;\n        }\n        Object.defineProperty(target, \"$mobservable\", {\n            enumerable: false,\n            configurable: false,\n            value: this\n        });\n    }\n    ObservableObject.asReactive = function (target, context, mode) {\n        if (target.$mobservable)\n            return target.$mobservable;\n        return new ObservableObject(target, context, mode);\n    };\n    ObservableObject.prototype.set = function (propName, value) {\n        if (this.values[propName])\n            this.target[propName] = value;\n        else\n            this.defineReactiveProperty(propName, value);\n    };\n    ObservableObject.prototype.defineReactiveProperty = function (propName, value) {\n        var observable;\n        var context = {\n            object: this.context.object,\n            name: (this.context.name || \"\") + \".\" + propName\n        };\n        if (typeof value === \"function\" && value.length === 0)\n            observable = new observableview_1.ObservableView(value, this.target, context, false);\n        else if (value instanceof core_1.AsStructure && typeof value.value === \"function\" && value.value.length === 0)\n            observable = new observableview_1.ObservableView(value.value, this.target, context, true);\n        else\n            observable = new observablevalue_1.ObservableValue(value, this.mode, context);\n        this.values[propName] = observable;\n        Object.defineProperty(this.target, propName, {\n            configurable: true,\n            enumerable: observable instanceof observablevalue_1.ObservableValue,\n            get: function () {\n                return this.$mobservable ? this.$mobservable.values[propName].get() : undefined;\n            },\n            set: function (newValue) {\n                var oldValue = this.$mobservable.values[propName].get();\n                this.$mobservable.values[propName].set(newValue);\n                this.$mobservable._events.emit({\n                    type: \"update\",\n                    object: this,\n                    name: propName,\n                    oldValue: oldValue\n                });\n            }\n        });\n        this._events.emit({\n            type: \"add\",\n            object: this.target,\n            name: propName\n        });\n    };\n    ObservableObject.prototype.observe = function (callback) {\n        return this._events.on(callback);\n    };\n    return ObservableObject;\n})();\nexports.ObservableObject = ObservableObject;\n//# sourceMappingURL=observableobject.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/observableobject.js\n ** module id = 4\n ** module chunks = 0\n **/","var __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar dnode_1 = require('./dnode');\nvar simpleeventemitter_1 = require('./simpleeventemitter');\nvar utils_1 = require('./utils');\nfunction throwingViewSetter(name) {\n    return function () {\n        throw new Error(\"[mobservable.view '\" + name + \"'] View functions do not accept new values\");\n    };\n}\nexports.throwingViewSetter = throwingViewSetter;\nvar ObservableView = (function (_super) {\n    __extends(ObservableView, _super);\n    function ObservableView(func, scope, context, compareStructural) {\n        _super.call(this, context);\n        this.func = func;\n        this.scope = scope;\n        this.compareStructural = compareStructural;\n        this.isComputing = false;\n        this.changeEvent = new simpleeventemitter_1.default();\n    }\n    ObservableView.prototype.get = function () {\n        if (this.isComputing)\n            throw new Error(\"[mobservable.view '\" + this.context.name + \"'] Cycle detected\");\n        if (this.isSleeping) {\n            if (dnode_1.isComputingView()) {\n                this.wakeUp();\n                this.notifyObserved();\n            }\n            else {\n                this.wakeUp();\n                this.tryToSleep();\n            }\n        }\n        else {\n            this.notifyObserved();\n        }\n        if (this.hasCycle)\n            throw new Error(\"[mobservable.view '\" + this.context.name + \"'] Cycle detected\");\n        return this._value;\n    };\n    ObservableView.prototype.set = function (x) {\n        throwingViewSetter(this.context.name)();\n    };\n    ObservableView.prototype.compute = function () {\n        if (this.isComputing)\n            throw new Error(\"[mobservable.view '\" + this.context.name + \"'] Cycle detected\");\n        this.isComputing = true;\n        var newValue = this.func.call(this.scope);\n        this.isComputing = false;\n        var changed = this.compareStructural ? !utils_1.deepEquals(newValue, this._value) : newValue !== this._value;\n        if (changed) {\n            var oldValue = this._value;\n            this._value = newValue;\n            this.changeEvent.emit(newValue, oldValue);\n            return true;\n        }\n        return false;\n    };\n    ObservableView.prototype.observe = function (listener, fireImmediately) {\n        var _this = this;\n        if (fireImmediately === void 0) { fireImmediately = false; }\n        this.setRefCount(+1);\n        if (fireImmediately)\n            listener(this.get(), undefined);\n        var disposer = this.changeEvent.on(listener);\n        return utils_1.once(function () {\n            _this.setRefCount(-1);\n            disposer();\n        });\n    };\n    ObservableView.prototype.toString = function () {\n        return \"ComputedObservable[\" + this.context.name + \" (current value:'\" + this._value + \"')] \" + this.func.toString();\n    };\n    return ObservableView;\n})(dnode_1.ViewNode);\nexports.ObservableView = ObservableView;\n//# sourceMappingURL=observableview.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/observableview.js\n ** module id = 5\n ** module chunks = 0\n **/","var utils_1 = require('./utils');\nvar SimpleEventEmitter = (function () {\n    function SimpleEventEmitter() {\n        this.listeners = [];\n    }\n    SimpleEventEmitter.prototype.emit = function () {\n        var listeners = this.listeners.slice();\n        var l = listeners.length;\n        switch (arguments.length) {\n            case 0:\n                for (var i = 0; i < l; i++)\n                    listeners[i]();\n                break;\n            case 1:\n                var data = arguments[0];\n                for (var i = 0; i < l; i++)\n                    listeners[i](data);\n                break;\n            default:\n                for (var i = 0; i < l; i++)\n                    listeners[i].apply(null, arguments);\n        }\n    };\n    SimpleEventEmitter.prototype.on = function (listener) {\n        var _this = this;\n        this.listeners.push(listener);\n        return utils_1.once(function () {\n            var idx = _this.listeners.indexOf(listener);\n            if (idx !== -1)\n                _this.listeners.splice(idx, 1);\n        });\n    };\n    SimpleEventEmitter.prototype.once = function (listener) {\n        var subscription = this.on(function () {\n            subscription();\n            listener.apply(this, arguments);\n        });\n        return subscription;\n    };\n    return SimpleEventEmitter;\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = SimpleEventEmitter;\n//# sourceMappingURL=simpleeventemitter.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/simpleeventemitter.js\n ** module id = 6\n ** module chunks = 0\n **/","function once(func) {\n    var invoked = false;\n    return function () {\n        if (invoked)\n            return;\n        invoked = true;\n        return func.apply(this, arguments);\n    };\n}\nexports.once = once;\nfunction unique(list) {\n    var res = [];\n    list.forEach(function (item) {\n        if (res.indexOf(item) === -1)\n            res.push(item);\n    });\n    return res;\n}\nexports.unique = unique;\nfunction isPlainObject(value) {\n    return value !== null && typeof value == 'object' && Object.getPrototypeOf(value) === Object.prototype;\n}\nexports.isPlainObject = isPlainObject;\nfunction makeNonEnumerable(object, props) {\n    for (var i = 0; i < props.length; i++) {\n        Object.defineProperty(object, props[i], {\n            configurable: true,\n            writable: true,\n            enumerable: false,\n            value: object[props[i]]\n        });\n    }\n}\nexports.makeNonEnumerable = makeNonEnumerable;\nfunction deepEquals(a, b) {\n    if (a === null && b === null)\n        return true;\n    if (a === undefined && b === undefined)\n        return true;\n    var aIsArray = Array.isArray(a) || a instanceof observablearray_1.ObservableArray;\n    if (aIsArray !== (Array.isArray(b) || b instanceof observablearray_1.ObservableArray)) {\n        return false;\n    }\n    else if (aIsArray) {\n        if (a.length !== b.length)\n            return false;\n        for (var i = a.length; i >= 0; i--)\n            if (!deepEquals(a[i], b[i]))\n                return false;\n        return true;\n    }\n    else if (typeof a === \"object\" && typeof b === \"object\") {\n        if (a === null || b === null)\n            return false;\n        if (Object.keys(a).length !== Object.keys(b).length)\n            return false;\n        for (var prop in a) {\n            if (!b.hasOwnProperty(prop))\n                return false;\n            if (!deepEquals(a[prop], b[prop]))\n                return false;\n        }\n        return true;\n    }\n    return a === b;\n}\nexports.deepEquals = deepEquals;\nfunction quickDiff(current, base) {\n    if (!base || !base.length)\n        return [current, []];\n    if (!current || !current.length)\n        return [[], base];\n    var added = [];\n    var removed = [];\n    var currentIndex = 0, currentSearch = 0, currentLength = current.length, currentExhausted = false, baseIndex = 0, baseSearch = 0, baseLength = base.length, isSearching = false, baseExhausted = false;\n    while (!baseExhausted && !currentExhausted) {\n        if (!isSearching) {\n            if (currentIndex < currentLength && baseIndex < baseLength && current[currentIndex] === base[baseIndex]) {\n                currentIndex++;\n                baseIndex++;\n                if (currentIndex === currentLength && baseIndex === baseLength)\n                    return [added, removed];\n                continue;\n            }\n            currentSearch = currentIndex;\n            baseSearch = baseIndex;\n            isSearching = true;\n        }\n        baseSearch += 1;\n        currentSearch += 1;\n        if (baseSearch >= baseLength)\n            baseExhausted = true;\n        if (currentSearch >= currentLength)\n            currentExhausted = true;\n        if (!currentExhausted && current[currentSearch] === base[baseIndex]) {\n            added.push.apply(added, current.slice(currentIndex, currentSearch));\n            currentIndex = currentSearch + 1;\n            baseIndex++;\n            isSearching = false;\n        }\n        else if (!baseExhausted && base[baseSearch] === current[currentIndex]) {\n            removed.push.apply(removed, base.slice(baseIndex, baseSearch));\n            baseIndex = baseSearch + 1;\n            currentIndex++;\n            isSearching = false;\n        }\n    }\n    added.push.apply(added, current.slice(currentIndex));\n    removed.push.apply(removed, base.slice(baseIndex));\n    return [added, removed];\n}\nexports.quickDiff = quickDiff;\nvar observablearray_1 = require('./observablearray');\n//# sourceMappingURL=utils.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/utils.js\n ** module id = 7\n ** module chunks = 0\n **/","var __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar utils_1 = require('./utils');\nvar dnode_1 = require('./dnode');\nvar simpleeventemitter_1 = require('./simpleeventemitter');\nvar core_1 = require('./core');\nvar StubArray = (function () {\n    function StubArray() {\n    }\n    return StubArray;\n})();\nexports.StubArray = StubArray;\nStubArray.prototype = [];\nvar ObservableArrayAdministration = (function (_super) {\n    __extends(ObservableArrayAdministration, _super);\n    function ObservableArrayAdministration(array, mode, context) {\n        _super.call(this, context ? context : { name: undefined, object: undefined });\n        this.array = array;\n        this.mode = mode;\n        this.values = [];\n        this.changeEvent = new simpleeventemitter_1.default();\n        if (!this.context.object)\n            this.context.object = array;\n    }\n    ObservableArrayAdministration.prototype.getLength = function () {\n        this.notifyObserved();\n        return this.values.length;\n    };\n    ObservableArrayAdministration.prototype.setLength = function (newLength) {\n        if (typeof newLength !== \"number\" || newLength < 0)\n            throw new Error(\"[mobservable.array] Out of range: \" + newLength);\n        var currentLength = this.values.length;\n        if (newLength === currentLength)\n            return;\n        else if (newLength > currentLength)\n            this.spliceWithArray(currentLength, 0, new Array(newLength - currentLength));\n        else\n            this.spliceWithArray(newLength, currentLength - newLength);\n    };\n    ObservableArrayAdministration.prototype.updateLength = function (oldLength, delta) {\n        if (delta < 0) {\n            dnode_1.checkIfStateIsBeingModifiedDuringView(this.context);\n            for (var i = oldLength + delta; i < oldLength; i++)\n                delete this.array[i];\n        }\n        else if (delta > 0) {\n            dnode_1.checkIfStateIsBeingModifiedDuringView(this.context);\n            if (oldLength + delta > OBSERVABLE_ARRAY_BUFFER_SIZE)\n                reserveArrayBuffer(oldLength + delta);\n            for (var i = oldLength, end = oldLength + delta; i < end; i++)\n                Object.defineProperty(this.array, i, ENUMERABLE_PROPS[i]);\n        }\n    };\n    ObservableArrayAdministration.prototype.spliceWithArray = function (index, deleteCount, newItems) {\n        var _this = this;\n        var length = this.values.length;\n        if ((newItems === undefined || newItems.length === 0) && (deleteCount === 0 || length === 0))\n            return [];\n        if (index === undefined)\n            index = 0;\n        else if (index > length)\n            index = length;\n        else if (index < 0)\n            index = Math.max(0, length + index);\n        if (arguments.length === 1)\n            deleteCount = length - index;\n        else if (deleteCount === undefined || deleteCount === null)\n            deleteCount = 0;\n        else\n            deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n        if (newItems === undefined)\n            newItems = [];\n        else\n            newItems = newItems.map(function (value) { return _this.makeReactiveArrayItem(value); });\n        var lengthDelta = newItems.length - deleteCount;\n        this.updateLength(length, lengthDelta);\n        var res = (_a = this.values).splice.apply(_a, [index, deleteCount].concat(newItems));\n        this.notifySplice(index, res, newItems);\n        return res;\n        var _a;\n    };\n    ObservableArrayAdministration.prototype.makeReactiveArrayItem = function (value) {\n        core_1.assertUnwrapped(value, \"Array values cannot have modifiers\");\n        return core_1.makeChildObservable(value, this.mode, {\n            object: this.context.object,\n            name: this.context.name + \"[x]\"\n        });\n    };\n    ObservableArrayAdministration.prototype.notifyChildUpdate = function (index, oldValue) {\n        this.notifyChanged();\n        this.changeEvent.emit({ object: this.array, type: 'update', index: index, oldValue: oldValue });\n    };\n    ObservableArrayAdministration.prototype.notifySplice = function (index, deleted, added) {\n        if (deleted.length === 0 && added.length === 0)\n            return;\n        this.notifyChanged();\n        this.changeEvent.emit({ object: this.array, type: 'splice', index: index, addedCount: added.length, removed: deleted });\n    };\n    ObservableArrayAdministration.prototype.notifyChanged = function () {\n        this.markStale();\n        this.markReady(true);\n    };\n    return ObservableArrayAdministration;\n})(dnode_1.DataNode);\nexports.ObservableArrayAdministration = ObservableArrayAdministration;\nfunction createObservableArray(initialValues, mode, context) {\n    return new ObservableArray(initialValues, mode, context);\n}\nexports.createObservableArray = createObservableArray;\nvar ObservableArray = (function (_super) {\n    __extends(ObservableArray, _super);\n    function ObservableArray(initialValues, mode, context) {\n        _super.call(this);\n        Object.defineProperty(this, \"$mobservable\", {\n            enumerable: false,\n            configurable: false,\n            value: new ObservableArrayAdministration(this, mode, context)\n        });\n        if (initialValues && initialValues.length)\n            this.replace(initialValues);\n    }\n    ObservableArray.prototype.observe = function (listener, fireImmediately) {\n        if (fireImmediately === void 0) { fireImmediately = false; }\n        if (fireImmediately)\n            listener({ object: this, type: 'splice', index: 0, addedCount: this.$mobservable.values.length, removed: [] });\n        return this.$mobservable.changeEvent.on(listener);\n    };\n    ObservableArray.prototype.clear = function () {\n        return this.splice(0);\n    };\n    ObservableArray.prototype.replace = function (newItems) {\n        return this.$mobservable.spliceWithArray(0, this.$mobservable.values.length, newItems);\n    };\n    ObservableArray.prototype.toJSON = function () {\n        this.$mobservable.notifyObserved();\n        return this.$mobservable.values.slice();\n    };\n    ObservableArray.prototype.find = function (predicate, thisArg, fromIndex) {\n        if (fromIndex === void 0) { fromIndex = 0; }\n        this.$mobservable.notifyObserved();\n        var items = this.$mobservable.values, l = items.length;\n        for (var i = fromIndex; i < l; i++)\n            if (predicate.call(thisArg, items[i], i, this))\n                return items[i];\n        return null;\n    };\n    ObservableArray.prototype.splice = function (index, deleteCount) {\n        var newItems = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            newItems[_i - 2] = arguments[_i];\n        }\n        switch (arguments.length) {\n            case 0:\n                return [];\n            case 1:\n                return this.$mobservable.spliceWithArray(index);\n            case 2:\n                return this.$mobservable.spliceWithArray(index, deleteCount);\n        }\n        return this.$mobservable.spliceWithArray(index, deleteCount, newItems);\n    };\n    ObservableArray.prototype.push = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i - 0] = arguments[_i];\n        }\n        this.$mobservable.spliceWithArray(this.$mobservable.values.length, 0, items);\n        return this.$mobservable.values.length;\n    };\n    ObservableArray.prototype.pop = function () {\n        return this.splice(Math.max(this.$mobservable.values.length - 1, 0), 1)[0];\n    };\n    ObservableArray.prototype.shift = function () {\n        return this.splice(0, 1)[0];\n    };\n    ObservableArray.prototype.unshift = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i - 0] = arguments[_i];\n        }\n        this.$mobservable.spliceWithArray(0, 0, items);\n        return this.$mobservable.values.length;\n    };\n    ObservableArray.prototype.reverse = function () {\n        return this.replace(this.$mobservable.values.reverse());\n    };\n    ObservableArray.prototype.sort = function (compareFn) {\n        return this.replace(this.$mobservable.values.sort.apply(this.$mobservable.values, arguments));\n    };\n    ObservableArray.prototype.remove = function (value) {\n        var idx = this.$mobservable.values.indexOf(value);\n        if (idx > -1) {\n            this.splice(idx, 1);\n            return true;\n        }\n        return false;\n    };\n    ObservableArray.prototype.toString = function () {\n        return \"[mobservable.array] \" + Array.prototype.toString.apply(this.$mobservable.values, arguments);\n    };\n    ObservableArray.prototype.toLocaleString = function () {\n        return \"[mobservable.array] \" + Array.prototype.toLocaleString.apply(this.$mobservable.values, arguments);\n    };\n    return ObservableArray;\n})(StubArray);\nexports.ObservableArray = ObservableArray;\nutils_1.makeNonEnumerable(ObservableArray.prototype, [\n    \"constructor\",\n    \"clear\",\n    \"find\",\n    \"observe\",\n    \"pop\",\n    \"push\",\n    \"remove\",\n    \"replace\",\n    \"reverse\",\n    \"shift\",\n    \"sort\",\n    \"splice\",\n    \"split\",\n    \"toJSON\",\n    \"toLocaleString\",\n    \"toString\",\n    \"unshift\"\n]);\nObject.defineProperty(ObservableArray.prototype, \"length\", {\n    enumerable: false,\n    configurable: true,\n    get: function () {\n        return this.$mobservable.getLength();\n    },\n    set: function (newLength) {\n        this.$mobservable.setLength(newLength);\n    }\n});\n[\n    \"concat\",\n    \"every\",\n    \"filter\",\n    \"forEach\",\n    \"indexOf\",\n    \"join\",\n    \"lastIndexOf\",\n    \"map\",\n    \"reduce\",\n    \"reduceRight\",\n    \"slice\",\n    \"some\",\n].forEach(function (funcName) {\n    var baseFunc = Array.prototype[funcName];\n    Object.defineProperty(ObservableArray.prototype, funcName, {\n        configurable: false,\n        writable: true,\n        enumerable: false,\n        value: function () {\n            this.$mobservable.notifyObserved();\n            return baseFunc.apply(this.$mobservable.values, arguments);\n        }\n    });\n});\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\nvar ENUMERABLE_PROPS = [];\nfunction createArrayBufferItem(index) {\n    var prop = ENUMERABLE_PROPS[index] = {\n        enumerable: true,\n        configurable: true,\n        set: function (value) {\n            var impl = this.$mobservable;\n            var values = impl.values;\n            core_1.assertUnwrapped(value, \"Modifiers cannot be used on array values. For non-reactive array values use makeReactive(asFlat(array)).\");\n            if (index < values.length) {\n                dnode_1.checkIfStateIsBeingModifiedDuringView(impl.context);\n                var oldValue = values[index];\n                var changed = impl.mode === core_1.ValueMode.Structure ? !utils_1.deepEquals(oldValue, value) : oldValue !== value;\n                if (changed) {\n                    values[index] = impl.makeReactiveArrayItem(value);\n                    impl.notifyChildUpdate(index, oldValue);\n                }\n            }\n            else if (index === values.length)\n                this.push(impl.makeReactiveArrayItem(value));\n            else\n                throw new Error(\"[mobservable.array] Index out of bounds, \" + index + \" is larger than \" + values.length);\n        },\n        get: function () {\n            var impl = this.$mobservable;\n            if (impl && index < impl.values.length) {\n                impl.notifyObserved();\n                return impl.values[index];\n            }\n            return undefined;\n        }\n    };\n    Object.defineProperty(ObservableArray.prototype, \"\" + index, {\n        enumerable: false,\n        configurable: true,\n        get: prop.get,\n        set: prop.set\n    });\n}\nfunction reserveArrayBuffer(max) {\n    for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max; index++)\n        createArrayBufferItem(index);\n    OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n}\nreserveArrayBuffer(1000);\n//# sourceMappingURL=observablearray.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/observablearray.js\n ** module id = 8\n ** module chunks = 0\n **/","var __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar dnode_1 = require('./dnode');\nvar simpleeventemitter_1 = require('./simpleeventemitter');\nvar core_1 = require('./core');\nvar utils_1 = require('./utils');\nvar ObservableValue = (function (_super) {\n    __extends(ObservableValue, _super);\n    function ObservableValue(value, mode, context) {\n        _super.call(this, context);\n        this.value = value;\n        this.mode = mode;\n        this.changeEvent = new simpleeventemitter_1.default();\n        var _a = core_1.getValueModeFromValue(value, core_1.ValueMode.Recursive), childmode = _a[0], unwrappedValue = _a[1];\n        if (this.mode === core_1.ValueMode.Recursive)\n            this.mode = childmode;\n        this._value = this.makeReferenceValueReactive(unwrappedValue);\n    }\n    ObservableValue.prototype.makeReferenceValueReactive = function (value) {\n        return core_1.makeChildObservable(value, this.mode, this.context);\n    };\n    ObservableValue.prototype.set = function (newValue) {\n        core_1.assertUnwrapped(newValue, \"Modifiers cannot be used on non-initial values.\");\n        dnode_1.checkIfStateIsBeingModifiedDuringView(this.context);\n        var changed = this.mode === core_1.ValueMode.Structure ? !utils_1.deepEquals(newValue, this._value) : newValue !== this._value;\n        if (changed) {\n            var oldValue = this._value;\n            this.markStale();\n            this._value = this.makeReferenceValueReactive(newValue);\n            this.changeEvent.emit(this._value, oldValue);\n            this.markReady(true);\n        }\n        return changed;\n    };\n    ObservableValue.prototype.get = function () {\n        this.notifyObserved();\n        return this._value;\n    };\n    ObservableValue.prototype.observe = function (listener, fireImmediately) {\n        if (fireImmediately === void 0) { fireImmediately = false; }\n        if (fireImmediately)\n            listener(this.get(), undefined);\n        return this.changeEvent.on(listener);\n    };\n    ObservableValue.prototype.toString = function () {\n        return \"Observable[\" + this.context.name + \":\" + this._value + \"]\";\n    };\n    return ObservableValue;\n})(dnode_1.DataNode);\nexports.ObservableValue = ObservableValue;\n//# sourceMappingURL=observablevalue.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/observablevalue.js\n ** module id = 9\n ** module chunks = 0\n **/","var observablevalue_1 = require('./observablevalue');\nvar core_1 = require('./core');\nvar simpleeventemitter_1 = require('./simpleeventemitter');\nvar dnode_1 = require('./dnode');\nvar observablearray_1 = require('./observablearray');\nvar utils_1 = require('./utils');\nvar ObservableMap = (function () {\n    function ObservableMap(initialData, valueModeFunc) {\n        var _this = this;\n        this.$mobservable = true;\n        this._data = {};\n        this._hasMap = {};\n        this._keys = new observablearray_1.ObservableArray(null, core_1.ValueMode.Reference, {\n            name: \".keys()\",\n            object: this\n        });\n        this._events = new simpleeventemitter_1.default();\n        this._valueMode = core_1.getValueModeFromModifierFunc(valueModeFunc);\n        if (utils_1.isPlainObject(initialData))\n            this.merge(initialData);\n        else if (Array.isArray(initialData))\n            initialData.forEach(function (_a) {\n                var key = _a[0], value = _a[1];\n                return _this.set(key, value);\n            });\n    }\n    ObservableMap.prototype._has = function (key) {\n        return typeof this._data[key] !== 'undefined';\n    };\n    ObservableMap.prototype.has = function (key) {\n        this.assertValidKey(key);\n        if (this._hasMap[key])\n            return this._hasMap[key].get();\n        return this._updateHasMapEntry(key, false).get();\n    };\n    ObservableMap.prototype.set = function (key, value) {\n        var _this = this;\n        this.assertValidKey(key);\n        core_1.assertUnwrapped(value, \"[mobservable.map.set] Expected unwrapped value to be inserted to key '\" + key + \"'. If you need to use modifiers pass them as second argument to the constructor\");\n        if (this._has(key)) {\n            var oldValue = this._data[key]._value;\n            var changed = this._data[key].set(value);\n            if (changed) {\n                this._events.emit({\n                    type: \"update\",\n                    object: this,\n                    name: key,\n                    oldValue: oldValue\n                });\n            }\n        }\n        else {\n            dnode_1.transaction(function () {\n                _this._data[key] = new observablevalue_1.ObservableValue(value, _this._valueMode, {\n                    name: \".\" + key,\n                    object: _this\n                });\n                _this._updateHasMapEntry(key, true);\n                _this._keys.push(key);\n            });\n            this._events.emit({\n                type: \"add\",\n                object: this,\n                name: key\n            });\n        }\n    };\n    ObservableMap.prototype.delete = function (key) {\n        var _this = this;\n        this.assertValidKey(key);\n        if (this._has(key)) {\n            var oldValue = this._data[key]._value;\n            dnode_1.transaction(function () {\n                _this._keys.remove(key);\n                _this._updateHasMapEntry(key, false);\n                var observable = _this._data[key];\n                observable.set(undefined);\n                _this._data[key] = undefined;\n            });\n            this._events.emit({\n                type: \"delete\",\n                object: this,\n                name: key,\n                oldValue: oldValue\n            });\n        }\n    };\n    ObservableMap.prototype._updateHasMapEntry = function (key, value) {\n        var entry = this._hasMap[key];\n        if (entry) {\n            entry.set(value);\n        }\n        else {\n            entry = this._hasMap[key] = new observablevalue_1.ObservableValue(value, core_1.ValueMode.Reference, {\n                name: \".(has)\" + key,\n                object: this\n            });\n        }\n        return entry;\n    };\n    ObservableMap.prototype.get = function (key) {\n        this.assertValidKey(key);\n        if (this.has(key))\n            return this._data[key].get();\n        return undefined;\n    };\n    ObservableMap.prototype.keys = function () {\n        return this._keys.slice();\n    };\n    ObservableMap.prototype.values = function () {\n        return this.keys().map(this.get, this);\n    };\n    ObservableMap.prototype.entries = function () {\n        var _this = this;\n        return this.keys().map(function (key) { return [key, _this.get(key)]; });\n    };\n    ObservableMap.prototype.forEach = function (callback, thisArg) {\n        var _this = this;\n        this.keys().forEach(function (key) { return callback.call(thisArg, _this.get(key), key); });\n    };\n    ObservableMap.prototype.merge = function (other) {\n        var _this = this;\n        dnode_1.transaction(function () {\n            if (other instanceof ObservableMap)\n                other.keys().forEach(function (key) { return _this.set(key, other.get(key)); });\n            else\n                Object.keys(other).forEach(function (key) { return _this.set(key, other[key]); });\n        });\n        return this;\n    };\n    ObservableMap.prototype.clear = function () {\n        var _this = this;\n        dnode_1.transaction(function () {\n            _this.keys().forEach(_this.delete, _this);\n        });\n    };\n    Object.defineProperty(ObservableMap.prototype, \"size\", {\n        get: function () {\n            return this._keys.length;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ObservableMap.prototype.toJs = function () {\n        var _this = this;\n        var res = {};\n        this.keys().forEach(function (key) { return res[key] = _this.get(key); });\n        return res;\n    };\n    ObservableMap.prototype.assertValidKey = function (key) {\n        if (key === null || key === undefined)\n            throw new Error(\"[mobservable.map] Invalid key: '\" + key + \"'\");\n        if (typeof key !== \"string\" && typeof key !== \"number\")\n            throw new Error(\"[mobservable.map] Invalid key: '\" + key + \"'\");\n    };\n    ObservableMap.prototype.toString = function () {\n        var _this = this;\n        return \"[mobservable.map { \" + this.keys().map(function (key) { return (key + \": \" + (\"\" + _this.get(key))); }).join(\", \") + \" }]\";\n    };\n    ObservableMap.prototype.observe = function (callback) {\n        return this._events.on(callback);\n    };\n    return ObservableMap;\n})();\nexports.ObservableMap = ObservableMap;\n//# sourceMappingURL=observablemap.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/observablemap.js\n ** module id = 10\n ** module chunks = 0\n **/","//# sourceMappingURL=interfaces.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/interfaces.js\n ** module id = 11\n ** module chunks = 0\n **/","var observableview_1 = require('./observableview');\nvar core_1 = require('./core');\nfunction transform(object, transformer) {\n    var objectCache = {};\n    var transformStack = [];\n    var TransformationNode = (function () {\n        function TransformationNode(id, source) {\n            var _this = this;\n            this.id = id;\n            this.source = source;\n            this.uses = [];\n            this._refCount = 0;\n            this._disposed = false;\n            this.value = new observableview_1.ObservableView(function () {\n                try {\n                    transformStack.unshift([]);\n                    return transformer(_this.source, recurseTransform);\n                }\n                finally {\n                    var used = transformStack.shift();\n                    for (var i = 0, l = used.length; i < l; i++)\n                        used[i].refCount(+1);\n                    for (var i = _this.uses.length - 1; i >= 0; i--)\n                        _this.uses[i].refCount(-1);\n                    _this.uses = used;\n                }\n            }, this, null, false);\n        }\n        TransformationNode.prototype.refCount = function (delta) {\n            if ((this._refCount += delta) === 0) {\n                this.dispose();\n            }\n        };\n        TransformationNode.prototype.dispose = function () {\n            if (this._disposed)\n                return;\n            this._disposed = true;\n            for (var i = this.uses.length - 1; i >= 0; i--)\n                this.uses[i].refCount(-1);\n            this.uses = null;\n            delete objectCache[this.id];\n        };\n        return TransformationNode;\n    })();\n    function recurseTransform(object) {\n        if (object === null || object === undefined)\n            return object;\n        var identifier = getId(object);\n        if (objectCache[identifier]) {\n            var n_1 = objectCache[identifier];\n            transformStack[0].push(n_1);\n            return n_1.value.get();\n        }\n        var n = new TransformationNode(identifier, object);\n        objectCache[identifier] = n;\n        return n.value.get();\n    }\n    return new TransformationNode(getId(object), object);\n}\nexports.transform = transform;\nvar transformId = 0;\nfunction getId(object) {\n    if (!core_1.isObservable(object))\n        throw new Error(\"[mobservable] transform expected some observable object, got: \" + object);\n    var tid = object.$mobservable.transformId;\n    if (tid === undefined)\n        return object.$mobservable.transformId = ++transformId;\n    return tid;\n}\n//# sourceMappingURL=transform.js.map\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./lib/transform.js\n ** module id = 12\n ** module chunks = 0\n **/"]}