You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1 lines
1.2 MiB

{"version":3,"sources":["webpack:///index.min.js","webpack:///webpack/bootstrap e10c8ac77355846295d0","webpack:///./node_modules/rxjs/operators/withLatestFrom.js","webpack:///./node_modules/rxjs/Observable.js","webpack:///./node_modules/rxjs/operators/map.js","webpack:///./node_modules/rxjs/Subscriber.js","webpack:///./node_modules/rxjs/operators/filter.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/rxjs/operators/tap.js","webpack:///./node_modules/rxjs/operators/pluck.js","webpack:///./node_modules/rxjs/util/root.js","webpack:///./lib/effects.ts","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/rxjs/observable/of.js","webpack:///./lib/socket-messages.ts","webpack:///./node_modules/rxjs/operators/ignoreElements.js","webpack:///./node_modules/rxjs/Subscription.js","webpack:///./node_modules/rxjs/BehaviorSubject.js","webpack:///./lib/log.ts","webpack:///./node_modules/rxjs/operators/mergeMap.js","webpack:///./node_modules/rxjs/observable/empty.js","webpack:///./node_modules/component-emitter/index.js","webpack:///./node_modules/engine.io-parser/lib/browser.js","webpack:///./lib/dom-effects.ts","webpack:///./node_modules/rxjs/operators/switchMap.js","webpack:///./lib/utils.ts","webpack:///./lib/browser.utils.ts","webpack:///./node_modules/rxjs/observable/ArrayObservable.js","webpack:///./node_modules/rxjs/observable/EmptyObservable.js","webpack:///./node_modules/rxjs/util/isScheduler.js","webpack:///./node_modules/rxjs/util/isArray.js","webpack:///./node_modules/rxjs/util/errorObject.js","webpack:///./node_modules/rxjs/OuterSubscriber.js","webpack:///./node_modules/rxjs/util/subscribeToResult.js","webpack:///./node_modules/rxjs/symbol/iterator.js","webpack:///./node_modules/parseqs/index.js","webpack:///./node_modules/component-inherit/index.js","webpack:///./node_modules/rxjs/Subject.js","webpack:///./node_modules/rxjs/observable/merge.js","webpack:///./node_modules/rxjs/operators/skip.js","webpack:///./node_modules/rxjs/operators/distinctUntilChanged.js","webpack:///./node_modules/rxjs/observable/fromEvent.js","webpack:///./node_modules/rxjs/util/isFunction.js","webpack:///./node_modules/rxjs/util/tryCatch.js","webpack:///./node_modules/rxjs/symbol/rxSubscriber.js","webpack:///./node_modules/rxjs/symbol/observable.js","webpack:///./node_modules/rxjs/observable/ScalarObservable.js","webpack:///./node_modules/socket.io-parser/index.js","webpack:///./node_modules/engine.io-client/lib/xmlhttprequest.js","webpack:///./node_modules/engine.io-client/lib/transport.js","webpack:///./node_modules/rxjs/observable/timer.js","webpack:///./lib/effects/set-options.effect.ts","webpack:///./node_modules/rxjs/observable/concat.js","webpack:///./lib/messages/BrowserReload.ts","webpack:///./node_modules/rxjs/util/isObject.js","webpack:///./node_modules/rxjs/Observer.js","webpack:///./node_modules/rxjs/util/noop.js","webpack:///./node_modules/rxjs/util/isArrayLike.js","webpack:///./node_modules/rxjs/util/isPromise.js","webpack:///./node_modules/parseuri/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/has-binary2/index.js","webpack:///./node_modules/socket.io-parser/is-buffer.js","webpack:///./node_modules/socket.io-client/lib/manager.js","webpack:///./node_modules/engine.io-client/lib/transports/index.js","webpack:///./node_modules/engine.io-client/lib/transports/polling.js","webpack:///./node_modules/yeast/index.js","webpack:///./node_modules/indexof/index.js","webpack:///./node_modules/socket.io-client/lib/socket.js","webpack:///./node_modules/socket.io-client/lib/on.js","webpack:///./node_modules/component-bind/index.js","webpack:///./node_modules/rxjs/util/ObjectUnsubscribedError.js","webpack:///./node_modules/rxjs/operators/share.js","webpack:///./node_modules/rxjs/operators/refCount.js","webpack:///./lib/dom-effects/prop-set.dom-effect.ts","webpack:///./node_modules/rxjs/util/isNumeric.js","webpack:///./node_modules/rxjs/scheduler/async.js","webpack:///./node_modules/rxjs/scheduler/AsyncAction.js","webpack:///./node_modules/rxjs/scheduler/AsyncScheduler.js","webpack:///./lib/dom-effects/style-set.dom-effect.ts","webpack:///./lib/dom-effects/link-replace.dom-effect.ts","webpack:///./lib/dom-effects/set-scroll.dom-effect.ts","webpack:///./lib/dom-effects/set-window-name.dom-effect.ts","webpack:///./lib/messages/ScrollEvent.ts","webpack:///./lib/effects/file-reload.effect.ts","webpack:///./node_modules/rxjs/observable/from.js","webpack:///./node_modules/rxjs/operators/mergeAll.js","webpack:///./node_modules/rxjs/operators/mapTo.js","webpack:///./lib/effects/browser-set-location.effect.ts","webpack:///./lib/effects/simulate-click.effect.ts","webpack:///./lib/effects/set-element-value.effect.ts","webpack:///./lib/effects/set-element-toggle-value.effect.ts","webpack:///./lib/effects/browser-reload.effect.ts","webpack:///./lib/messages/ClickEvent.ts","webpack:///./lib/messages/KeyupEvent.ts","webpack:///./node_modules/timers-browserify/main.js","webpack:///./lib/messages/FormToggleEvent.ts","webpack:///./lib/index.ts","webpack:///./node_modules/rxjs/observable/zip.js","webpack:///./node_modules/rxjs/operators/zip.js","webpack:///./node_modules/rxjs/util/toSubscriber.js","webpack:///./node_modules/rxjs/util/UnsubscriptionError.js","webpack:///./node_modules/rxjs/util/pipe.js","webpack:///./node_modules/rxjs/InnerSubscriber.js","webpack:///./lib/socket.ts","webpack:///./node_modules/socket.io-client/lib/index.js","webpack:///./node_modules/socket.io-client/lib/url.js","webpack:///./node_modules/debug/src/debug.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/has-binary2/node_modules/isarray/index.js","webpack:///./node_modules/socket.io-parser/binary.js","webpack:///./node_modules/socket.io-parser/node_modules/isarray/index.js","webpack:///./node_modules/engine.io-client/lib/index.js","webpack:///./node_modules/engine.io-client/lib/socket.js","webpack:///./node_modules/has-cors/index.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-xhr.js","webpack:///./node_modules/engine.io-parser/lib/keys.js","webpack:///./node_modules/arraybuffer.slice/index.js","webpack:///./node_modules/after/index.js","webpack:///./node_modules/engine.io-parser/lib/utf8.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./node_modules/blob/index.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./node_modules/engine.io-client/lib/transports/websocket.js","webpack:///./node_modules/to-array/index.js","webpack:///./node_modules/backo2/index.js","webpack:///./node_modules/rxjs/SubjectSubscription.js","webpack:///./node_modules/rxjs/operators/multicast.js","webpack:///./node_modules/rxjs/observable/ConnectableObservable.js","webpack:///./lib/notify.ts","webpack:///./node_modules/rxjs/observable/TimerObservable.js","webpack:///./node_modules/rxjs/scheduler/Action.js","webpack:///./node_modules/rxjs/Scheduler.js","webpack:///./node_modules/rxjs/util/isDate.js","webpack:///./vendor/logger.ts","webpack:///./vendor/Reloader.ts","webpack:///./node_modules/rxjs/observable/FromObservable.js","webpack:///./node_modules/rxjs/observable/PromiseObservable.js","webpack:///./node_modules/rxjs/observable/IteratorObservable.js","webpack:///./node_modules/rxjs/observable/ArrayLikeObservable.js","webpack:///./node_modules/rxjs/operators/observeOn.js","webpack:///./node_modules/rxjs/Notification.js","webpack:///./node_modules/rxjs/operators/concatAll.js","webpack:///./node_modules/rxjs/util/identity.js","webpack:///./node_modules/rxjs/operators/startWith.js","webpack:///./node_modules/rxjs/operators/take.js","webpack:///./node_modules/rxjs/util/ArgumentOutOfRangeError.js","webpack:///./lib/effects/set-scroll.ts","webpack:///./node_modules/rxjs/operators/partition.js","webpack:///./node_modules/rxjs/util/not.js","webpack:///./lib/messages/BrowserNotify.ts","webpack:///./lib/messages/BrowserLocation.ts","webpack:///./node_modules/rxjs/operators/subscribeOn.js","webpack:///./node_modules/rxjs/observable/SubscribeOnObservable.js","webpack:///./node_modules/rxjs/scheduler/asap.js","webpack:///./node_modules/rxjs/scheduler/AsapAction.js","webpack:///./node_modules/rxjs/util/Immediate.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/rxjs/scheduler/AsapScheduler.js","webpack:///./lib/messages/FileReload.ts","webpack:///./lib/messages/Connection.ts","webpack:///./lib/messages/Disconnect.ts","webpack:///./lib/messages/OptionsSet.ts","webpack:///./lib/scroll-restore.ts","webpack:///./lib/listeners.ts","webpack:///./lib/listeners/form-inputs.listener.ts","webpack:///./node_modules/rxjs/observable/FromEventObservable.js","webpack:///./lib/listeners/clicks.listener.ts","webpack:///./lib/listeners/scroll.listener.ts","webpack:///./lib/listeners/form-toggles.listener.ts","webpack:///./node_modules/rxjs/operators/groupBy.js","webpack:///./node_modules/rxjs/util/Map.js","webpack:///./node_modules/rxjs/util/MapPolyfill.js","webpack:///./node_modules/rxjs/util/FastMap.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","withLatestFrom","args","_i","arguments","length","source","project","pop","observables","lift","WithLatestFromOperator","__extends","this","b","__","constructor","create","OuterSubscriber_1","subscribeToResult_1","subscriber","subscribe","WithLatestFromSubscriber","_super","destination","toRespond","len","values","Array","push","observable","add","subscribeToResult","notifyNext","outerValue","innerValue","outerIndex","innerIndex","innerSub","found","indexOf","splice","notifyComplete","_next","value","concat","_tryProject","next","result","apply","err","error","OuterSubscriber","root_1","toSubscriber_1","observable_1","pipe_1","Observable","_isScalar","_subscribe","operator","observerOrNext","complete","sink","toSubscriber","syncErrorThrowable","_trySubscribe","syncErrorThrown","syncErrorValue","forEach","PromiseCtor","_this","root","Rx","config","Promise","Error","resolve","reject","subscription","unsubscribe","pipe","operations","pipeFromArray","toPromise","x","map","thisArg","TypeError","MapOperator","Subscriber_1","MapSubscriber","count","Subscriber","isFunction_1","Subscription_1","Observer_1","rxSubscriber_1","destinationOrNext","isStopped","empty","SafeSubscriber","rxSubscriber","_error","_complete","closed","_unsubscribeAndRecycle","_a","_parent","_parents","Subscription","_parentSubscriber","context","isFunction","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","fn","parent","_unsubscribe","filter","predicate","FilterOperator","FilterSubscriber","g","Function","eval","e","window","tap","nextOrObserver","DoOperator","DoSubscriber","safeSubscriber","pluck","properties","map_1","plucker","props","currentProp","global","__window","__self","self","WorkerGlobalScope","__global","_root","EffectNames","BehaviorSubject_1","set_options_effect_1","file_reload_effect_1","browser_set_location_effect_1","simulate_click_effect_1","set_element_value_effect_1","set_element_toggle_value_effect_1","set_scroll_1","browser_reload_effect_1","effectOutputHandlers$","BehaviorSubject","SetOptions","setOptionsEffect","FileReload","fileReloadEffect","BrowserReload","browserReloadEffect","BrowserSetLocation","browserSetLocationEffect","SimulateClick","simulateClickEffect","SetElementValue","setElementValueEffect","SetElementToggleValue","setElementToggleValueEffect","BrowserSetScroll","setScrollEffect","process","useColors","type","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","navigator","userAgent","toLowerCase","match","parseInt","RegExp","$1","formatArgs","namespace","humanize","diff","color","index","lastC","replace","log","save","namespaces","storage","removeItem","debug","load","r","env","DEBUG","chrome","local","localStorage","colors","formatters","j","v","JSON","stringify","message","enable","ArrayObservable_1","of","ArrayObservable","emitWithPathname","xs","inputs","withLatestFrom_1","io$","window$","pluck_1","tap_1","event","io","pathname","emit","__assign","ignoreElements_1","ignoreElements","assign","t","IncomingSocketNames","ScrollEvent_1","ClickEvent_1","KeyupEvent_1","BrowserNotify_1","BrowserLocation_1","BrowserReload_1","FileReload_1","Connection_1","Disconnect_1","FormToggleEvent_1","OptionsSet_1","OutgoingSocketEvents","socketHandlers$","Connection","incomingConnection","Disconnect","incomingDisconnect","incomingFileReload","incomingBrowserReload","BrowserLocation","incomingBrowserLocation","BrowserNotify","incomingBrowserNotify","Scroll","incomingScrollHandler","Click","incomingHandler$","Keyup","incomingKeyupHandler","InputToggle","incomingInputsToggles","OptionsSet","incomingOptionsSet","IgnoreElementsOperator","noop_1","IgnoreElementsSubscriber","unused","noop","flattenUnsubscriptionErrors","errors","reduce","errs","UnsubscriptionError_1","UnsubscriptionError","isArray_1","isObject_1","tryCatch_1","errorObject_1","_subscriptions","hasErrors","remove","trial","tryCatch","errorObject","isArray","sub","isObject","teardown","EMPTY","_addParent","tmp","subscriptions","subscriptionIndex","Subject_1","ObjectUnsubscribedError_1","_value","getValue","hasError","thrownError","ObjectUnsubscribedError","Subject","initLogger","options","logger_1","Nanologger","logPrefix","magenta","of_1","consoleInfo","LogNames","Log","Info","consoleDebug","Debug","overlayInfo","timeout","Overlay","timer_1","filter_1","switchMap_1","logHandler$","logInstance$","option$","info","notifyElement$","document$","Boolean","notify","element","innerHTML","display","body","appendChild","switchMap","timer","parentNode","removeChild","mergeMap","resultSelector","concurrent","Number","POSITIVE_INFINITY","MergeMapOperator","observer","MergeMapSubscriber","hasCompleted","buffer","active","_tryNext","_innerSub","ish","_notifyResultSelector","shift","EmptyObservable_1","EmptyObservable","Emitter","obj","mixin","key","on","addEventListener","_callbacks","once","off","removeListener","removeAllListeners","removeEventListener","callbacks","cb","slice","listeners","hasListeners","encodeBase64Object","packet","callback","packets","data","encodeArrayBuffer","supportsBinary","encodeBase64Packet","contentArray","Uint8Array","resultBuffer","byteLength","encodeBlobAsArrayBuffer","fr","FileReader","onload","encodePacket","readAsArrayBuffer","encodeBlob","dontSendBlobs","Blob","tryDecode","utf8","decode","strict","ary","each","done","after","el","msg","base64encoder","keys","hasBinary","sliceBuffer","ArrayBuffer","isAndroid","test","isPhantomJS","protocol","open","close","ping","pong","upgrade","packetslist","utf8encode","undefined","base64","encoded","encode","String","b64","split","readAsDataURL","b64data","fromCharCode","typed","basic","btoa","decodePacket","binaryType","utf8decode","charAt","decodeBase64Packet","substr","substring","asArray","rest","encodePayload","setLengthHeader","encodeOne","doneCallback","isBinary","encodePayloadAsBlob","encodePayloadAsArrayBuffer","results","join","decodePayload","decodePayloadAsBinary","chr","encodedPackets","totalLength","acc","toString","resultArray","bufferIndex","isString","ab","view","charCodeAt","lenStr","binaryIdentifier","size","lengthAry","blob","bufferTail","buffers","tailArray","msgLength","total","Events","prop_set_dom_effect_1","style_set_dom_effect_1","link_replace_dom_effect_1","set_scroll_dom_effect_1","set_window_name_dom_effect_1","domHandlers$","PropSet","propSetDomEffect","StyleSet","styleSetDomEffect","LinkReplace","linkReplaceDomEffect","SetScroll","setScrollDomEffect","SetWindowName","setWindowNameDomEffect","SwitchMapOperator","SwitchMapSubscriber","innerSubscription","_tryNotifyNext","incoming","getLocation","url","location","createElement","href","host","updateSearch","search","suffix","item","tuple","isBlacklisted","blacklist","some","createTimedBooleanSwitch","source$","concat_1","mapTo_1","mapTo","startWith_1","startWith","array","splitUrl","hash","params","pathFromUrl","path","decodeURIComponent","pickBestMatch","objects","pathFunc","score","bestMatch","numberOfMatchingSegments","path1","path2","comps1","reverse","comps2","Math","min","eqCount","pathsMatch","ext","getWindow","getDocument","getBrowserScrollPosition","scrollX","scrollY","dElement","dBody","pageYOffset","pageXOffset","scrollLeft","scrollTop","y","getDocumentScrollSpace","scrollHeight","clientWidth","clientHeight","saveScrollPosition","pos","cookie","restoreScrollPosition","scrollTo","getElementIndex","tagName","elem","allElems","getElementsByTagName","forceChange","blur","focus","getElementData","getSingleElement","getBody","setScroll","reloadBrowser","reload","coll","isOldIe","attachEvent","isUndefined","val","getByPath","tempPath","getScrollPosition","raw","proportional","getScrollTopPercentage","getScrollPositionForElement","getScrollPercentage","scrollWidth","scrollSpace","scrollPosition","Observable_1","ScalarObservable_1","isScheduler_1","scheduler","isScheduler","ScalarObservable","dispatch","state","schedule","arg","notifyError","outerSubscriber","InnerSubscriber_1","InnerSubscriber","isArrayLike_1","isArrayLike","isPromise_1","isPromise","then","setTimeout","iterator_1","iterator","obs","symbolIteratorPonyfill","Symbol","Set_1","Set","Map_1","Map","getOwnPropertyNames","$$iterator","str","encodeURIComponent","qs","qry","pairs","pair","a","SubjectSubscription_1","SubjectSubscriber","observers","subject","AnonymousSubject","copy","SubjectSubscription","asObservable","merge","last","mergeAll_1","mergeAll","skip","SkipOperator","SkipSubscriber","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","FromEventObservable_1","fromEvent","FromEventObservable","tryCatcher","tryCatchTarget","for","$$rxSubscriber","getSymbolObservable","$$observable","Encoder","encodeAsString","BINARY_EVENT","BINARY_ACK","attachments","nsp","id","encodeAsBinary","writeEncoding","bloblessData","deconstruction","binary","deconstructPacket","pack","unshift","removeBlobs","Decoder","reconstructor","decodeString","types","buf","tryParse","parse","BinaryReconstructor","reconPack","ERROR","hasBin","isBuf","CONNECT","DISCONNECT","EVENT","ACK","takeBinaryData","destroy","finishedReconstruction","binData","reconstructPacket","hasCORS","opts","xdomain","xscheme","enablesXDR","XMLHttpRequest","XDomainRequest","Transport","hostname","port","secure","query","timestampParam","timestampRequests","readyState","agent","socket","pfx","passphrase","cert","ca","ciphers","rejectUnauthorized","forceNode","extraHeaders","localAddress","parser","onError","desc","description","doOpen","doClose","onClose","send","write","onOpen","writable","onData","onPacket","TimerObservable_1","TimerObservable","setOptions","effects_1","from_1","from","concatAll_1","concatAll","codeSync","mergeMap_1","reloadBrowserSafe","preBrowserReload","browserReload","subscribeOn_1","subscribeOn","async_1","async","re","parts","src","exec","uri","authority","ipv6uri","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","Item","nextTick","title","browser","argv","version","versions","addListener","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","Buffer","isBuffer","withNativeBlob","withNativeFile","File","toJSON","Manager","nsps","subs","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","Backoff","max","jitter","connecting","lastPing","encoding","packetBuffer","_parser","encoder","decoder","autoConnect","eio","Socket","has","emitAll","updateSocketIds","generateId","engine","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","reconnecting","attempts","reconnect","connect","skipReconnect","openSub","onopen","errorSub","cleanup","onping","Date","onpong","ondata","ondecoded","onerror","onConnecting","processPacketQueue","subsLength","disconnect","reset","onclose","reason","delay","duration","onreconnect","attempt","polling","xd","jsonp","isSSL","forceJSONP","XHR","JSONP","websocket","Polling","forceBase64","hasXHR2","parseqs","inherit","yeast","responseType","poll","pause","onPause","doPoll","callbackfn","doWrite","schema","sid","num","alphabet","floor","decoded","now","prev","seed","arr","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","toArray","events","connect_error","connect_timeout","reconnect_attempt","reconnect_failed","reconnect_error","subEvents","ev","compress","flags","onpacket","onconnect","onevent","onack","ondisconnect","ack","sent","emitBuffered","stack","shareSubjectFactory","share","refCount_1","refCount","multicast_1","multicast","RefCountOperator","connectable","_refCount","refCounter","RefCountSubscriber","connection","sharedConnection","_connection","target","prop","propSet","dom_effects_1","isNumeric","parseFloat","AsyncAction_1","AsyncScheduler_1","AsyncScheduler","AsyncAction","Action_1","work","pending","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","execute","_execute","errored","errorValue","actions","Action","Scheduler_1","scheduled","action","Scheduler","styleName","newValue","pathName","styleSet","inject","basename","linkReplace","setWindowName","outgoing","mappingIndex","socket_messages_1","position","canScroll","fileReload","navigator$","Reloader_1","tagNames","liveCSS","liveImg","FromObservable_1","FromObservable","identity_1","identity","MapToOperator","MapToSubscriber","browserSetLocation","input","elems","createEvent","evObj","initEvent","dispatchEvent","createEventObject","cancelBubble","fireEvent","simulateClick","setElementValue","checked","setElementToggleValue","PreBrowserReload","canClick","canKeyup","Timeout","clearFn","_id","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setImmediate","clearImmediate","getStream","handlers$","inputStream$","groupBy_1","groupBy","share_1","zip_1","socket_1","notify_1","merge_1","log_1","scroll_restore_1","listeners_1","initWindow","initDocument","initSocket","socket$","initOptions","initNotify","outgoing$","initListeners","combinedEffectHandler$","zip","scrollRestoreHandlers$","output$","effect$","dom$","merged$","zipStatic","ZipOperator","ZipSubscriber","iterators","StaticArrayIterator","StaticIterator","ZipBufferIterator","stillUnsubscribed","notifyInactive","checkIterators","hasValue","shouldComplete","nextResult","isComplete","fns","initNavigator","___browserSync___","socketConfig","socketUrl","lookup","parsed","sameNamespace","cache","newConnection","forceNew","multiplex","managers","loc","parseuri","ipv6","selectColor","abs","createDebug","enabled","curr","ms","prevTime","coerce","format","formatter","init","names","skips","disable","h","fmtShort","round","fmtLong","plural","ceil","isNaN","long","_deconstructPacket","placeholder","_placeholder","newData","_reconstructPacket","packetData","_removeBlobs","curKey","containingObject","pendingBlobs","fileReader","transports","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","onlyBinaryUpgrades","perMessageDeflate","threshold","freeGlobal","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","clone","priorWebsocketSuccess","createTransport","EIO","transport","requestTimeout","protocols","setTransport","onDrain","probe","onTransportOpen","upgradeLosesBinary","failed","upgrading","freezeTransport","onTransportClose","onupgrade","to","onHandshake","setPing","code","filterUpgrades","onHeartbeat","sendPacket","cleanupAndClose","waitForUpgrade","filteredUpgrades","Request","method","unloadHandler","requests","abort","request","req","sendXhr","pollXhr","xhr","setDisableHeaderCheck","setRequestHeader","withCredentials","hasXDR","onLoad","responseText","onreadystatechange","contentType","getResponseHeader","status","requestsCount","onSuccess","fromError","response","arraybuffer","start","end","bytes","abv","ii","err_cb","proxy","bail","__WEBPACK_AMD_DEFINE_RESULT__","ucs2decode","string","extra","output","counter","ucs2encode","stringFromCharCode","checkScalarValue","codePoint","toUpperCase","createByte","encodeCodePoint","symbol","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","freeExports","webpackPolyfill","deprecate","paths","children","chars","encoded1","encoded2","encoded3","encoded4","bufferLength","mapArrayBufferViews","chunk","set","byteOffset","BlobBuilderConstructor","bb","BlobBuilder","append","getBlob","BlobConstructor","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","blobSupportsArrayBufferView","blobBuilderSupported","JSONPPolling","___eio","script","rNewline","rEscapedNewline","form","iframe","insertAt","insertBefore","head","initIframe","html","iframeId","area","className","top","left","setAttribute","submit","WS","usingBrowserWebSocket","BrowserWebSocket","WebSocket","NodeWebSocket","MozWebSocket","check","headers","ws","supports","addEventListeners","onmessage","list","factor","pow","rand","random","deviation","subscriberIndex","subjectOrSubjectFactory","selector","subjectFactory","MulticastOperator","ConnectableObservable_1","connectableObservableDescriptor","ConnectableObservable","_isComplete","getSubject","_subject","ConnectableSubscriber","connectableProto","cssStyles","styles","cssText","rule","padding","fontFamily","fontSize","zIndex","right","borderBottomLeftRadius","backgroundColor","margin","textAlign","pointerEvents","isNumeric_1","isDate_1","dueTime","period","isDate","initialDelay","SchedulerAction","emojis","trace","warn","fatal","levels","defaultColors","foreground","background","black","red","green","yellow","blue","cyan","white","brightBlack","_name","_colors","logLevel","getItem","_logLevel","_print","level","emoji","msgColor","objs","getMatches","attr","matches","urlMatcher","getElems","fileExtension","attrs","reloadImages","expando","generateUniqueString","images","img","utils_1","payload","generateCacheBustUrl","IMAGE_STYLES","styleNames","querySelectorAll","reloadStyleImages","_src","swapFile","domData","currentValue","timeStamp","getTime","anchor","reloadStylesheet","timestamps","hiddenElem","reattachStylesheetLink","link","__LiveReload_pendingRemoval","empty_1","rel","media","disabled","cloneNode","prevHref","nextHref","linkHref","lastChild","nextSibling","additionalWaitingTime","take_1","take","reattachImportedRule","parentStyleSheet","newRule","__LiveReload_newHref","tempLink","insertRule","deleteRule","cssRules","oldParams","sep","links","styleImported","sheet","collectImportedStylesheets","linksImported","allRules","styleSheet","makeRules","rules","collect","CSSRule","CHARSET_RULE","IMPORT_RULE","getAttribute","PromiseObservable_1","IteratorObservable_1","ArrayLikeObservable_1","observeOn_1","PromiseObservable","IteratorObservable","ArrayLikeObservable","ObserveOnSubscriber","dispatchNext","dispatchError","promise","getIterator","StringIterator","ArrayIterator","toLength","numberIsFinite","sign","maxSafeInteger","isFinite","valueAsNumber","return","idx","arrayLike","observeOn","ObserveOnOperator","Notification_1","notification","observe","scheduleMessage","ObserveOnMessage","Notification","createNext","createError","createComplete","kind","do","accept","toObservable","throw","undefinedValueNotification","completeNotification","TakeOperator","ArgumentOutOfRangeError_1","ArgumentOutOfRangeError","TakeSubscriber","tupleStream$","partition_1","partition","element$","_b","mapped$","nonMapped$","scrollProportionally","browser_utils_1","matchingElements","scrollElement","scrollElementMapping","querySelector","not_1","not","pred","notPred","SubscribeOnOperator","SubscribeOnObservable_1","SubscribeOnObservable","asap_1","delayTime","asap","AsapAction_1","AsapScheduler_1","AsapScheduler","AsapAction","Immediate_1","Immediate","ImmediateDefinition","nextHandle","tasksByHandle","currentlyRunningATask","canUseProcessNextTick","createProcessNextTickSetImmediate","canUsePostMessage","createPostMessageSetImmediate","canUseMessageChannel","createMessageChannelSetImmediate","canUseReadyStateChange","createReadyStateChangeSetImmediate","createSetTimeoutSetImmediate","ci","handle","instance","identify","MessageChannel","postMessage","importScripts","postMessageIsAsynchronous_1","oldOnMessage","partiallyApplied","handler","addFromSetImmediateArguments","runIfPresent","messagePrefix","onGlobalMessage","globalMessageHandler","task","channel","port1","port2","doc","registerImmediate","attachTo","getPrototypeOf","postMessageIsAsynchronous","injectChanges","initWindowName","saved","regex","bs","hardReload","scroll","PREFIX","SUFFIX","scroll_listener_1","getScrollStream","clicks_listener_1","getClickStream","form_inputs_listener_1","getFormInputStream","form_toggles_listener_1","getFormTogglesStream","canSync$","skip_1","distinctUntilChanged_1","formInputs","fromEvent_1","srcElement","eventTarget","KeyupEvent","isNodeStyleEventEmitter","sourceObj","isJQueryStyleEventEmitter","isNodeList","isHTMLCollection","isEventTarget","eventName","setupSubscription","source_1","source_2","source_3","getElementById","ClickEvent","elemMap$","selectors","canSync","elemMap","ScrollEvent","canToggle","FormToggleEvent","elementSelector","durationSelector","subjectSelector","GroupByOperator","FastMap_1","GroupBySubscriber","groups","attemptedToUnsubscribe","_group","FastMap","group","groupedObservable","GroupedObservable","GroupDurationSubscriber","clear","removeGroup","delete","groupSubject","refCountSubscription","InnerRefCountSubscription","MapPolyfill_1","MapPolyfill","_values","_keys"],"mappings":"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","file":"index.min.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 95);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 OuterSubscriber_1 = __webpack_require__(30);\nvar subscribeToResult_1 = __webpack_require__(31);\n/* tslint:enable:max-line-length */\n/**\n * Combines the source Observable with other Observables to create an Observable\n * whose values are calculated from the latest values of each, only when the\n * source emits.\n *\n * <span class=\"informal\">Whenever the source Observable emits a value, it\n * computes a formula using that value plus the latest values from other input\n * Observables, then emits the output of that formula.</span>\n *\n * <img src=\"./img/withLatestFrom.png\" width=\"100%\">\n *\n * `withLatestFrom` combines each value from the source Observable (the\n * instance) with the latest values from the other input Observables only when\n * the source emits a value, optionally using a `project` function to determine\n * the value to be emitted on the output Observable. All input Observables must\n * emit at least one value before the output Observable will emit a value.\n *\n * @example <caption>On every click event, emit an array with the latest timer event plus the click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var timer = Rx.Observable.interval(1000);\n * var result = clicks.withLatestFrom(timer);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link combineLatest}\n *\n * @param {ObservableInput} other An input Observable to combine with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {Function} [project] Projection function for combining values\n * together. Receives all values in order of the Observables passed, where the\n * first parameter is a value from the source Observable. (e.g.\n * `a.withLatestFrom(b, c, (a1, b1, c1) => a1 + b1 + c1)`). If this is not\n * passed, arrays will be emitted on the output Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @method withLatestFrom\n * @owner Observable\n */\nfunction withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nexports.withLatestFrom = withLatestFrom;\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WithLatestFromSubscriber = (function (_super) {\n __extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n _super.call(this, destination);\n this.observables = observables;\n this.project = project;\n this.toRespond = [];\n var len = observables.length;\n this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult_1.subscribeToResult(this, observable, observable, i));\n }\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n // noop\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(8);\nvar toSubscriber_1 = __webpack_require__(99);\nvar observable_1 = __webpack_require__(43);\nvar pipe_1 = __webpack_require__(101);\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nvar Observable = (function () {\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to a {@link create} static factory, but most of the time it is\n * a library implementation, which defines what and when will be emitted by an Observable. This means that calling\n * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent\n * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}.\n *\n * @example <caption>Subscribe with an Observer</caption>\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() { // We actually could just remove this method,\n * }, // since we do not really care about errors right now.\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example <caption>Subscribe with functions</caption>\n * let sum = 0;\n *\n * Rx.Observable.of(1, 2, 3)\n * .subscribe(\n * function(value) {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * function() {\n * console.log('Sum equals: ' + sum);\n * }\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example <caption>Cancel a subscription</caption>\n * const subscription = Rx.Observable.interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => console.log('completed!') // Will not be called, even\n * ); // when cancelling subscription\n *\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n *\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n sink.error(err);\n }\n };\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n Observable.prototype.forEach = function (next, PromiseCtor) {\n var _this = this;\n if (!PromiseCtor) {\n if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n PromiseCtor = root_1.root.Rx.config.Promise;\n }\n else if (root_1.root.Promise) {\n PromiseCtor = root_1.root.Promise;\n }\n }\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n return new PromiseCtor(function (resolve, reject) {\n // Must be declared in a separate statement to avoid a RefernceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n var subscription;\n subscription = _this.subscribe(function (value) {\n if (subscription) {\n // if there is a subscription, then we can surmise\n // the next handling is asynchronous. Any errors thrown\n // need to be rejected explicitly and unsubscribe must be\n // called manually\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n }\n else {\n // if there is NO subscription, then we're getting a nexted\n // value synchronously during subscription. We can just call it.\n // If it errors, Observable's `subscribe` will ensure the\n // unsubscription logic is called, then synchronously rethrow the error.\n // After that, Promise will trap the error and send it\n // down the rejection path.\n next(value);\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n return this.source.subscribe(subscriber);\n };\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n /* tslint:enable:max-line-length */\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * @example\n *\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * Rx.Observable.interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n */\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i - 0] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipe_1.pipeFromArray(operations)(this);\n };\n /* tslint:enable:max-line-length */\n Observable.prototype.toPromise = function (PromiseCtor) {\n var _this = this;\n if (!PromiseCtor) {\n if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n PromiseCtor = root_1.root.Rx.config.Promise;\n }\n else if (root_1.root.Promise) {\n PromiseCtor = root_1.root.Promise;\n }\n }\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n return new PromiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n */\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\n//# sourceMappingURL=Observable.js.map\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * <img src=\"./img/map.png\" width=\"100%\">\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * @example <caption>Map every click to the clientX position of that click</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var positions = clicks.map(ev => ev.clientX);\n * positions.subscribe(x => console.log(x));\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable<R>} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nfunction map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexports.map = map;\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexports.MapOperator = MapOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MapSubscriber = (function (_super) {\n __extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n _super.call(this, destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n // NOTE: This looks unoptimized, but it's actually purposefully NOT\n // using try/catch optimizations.\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=map.js.map\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 isFunction_1 = __webpack_require__(40);\nvar Subscription_1 = __webpack_require__(14);\nvar Observer_1 = __webpack_require__(53);\nvar rxSubscriber_1 = __webpack_require__(42);\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n function Subscriber(destinationOrNext, error, complete) {\n _super.call(this);\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n this.destination.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n */\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached {@link Error}. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n return this;\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n _super.call(this);\n this._parentSubscriber = _parentSubscriber;\n var next;\n var context = this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n if (isFunction_1.isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._error) {\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n throw err;\n }\n else {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n throw err;\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=Subscriber.js.map\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\n/* tslint:enable:max-line-length */\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * <img src=\"./img/filter.png\" width=\"100%\">\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * @example <caption>Emit only click events whose target was a DIV element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var clicksOnDivs = clicks.filter(ev => ev.target.tagName === 'DIV');\n * clicksOnDivs.subscribe(x => console.log(x));\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nfunction filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nexports.filter = filter;\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n _super.call(this, destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n // the try catch block below is left specifically for\n // optimization and perf reasons. a tryCatcher is not necessary here.\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=filter.js.map\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\n/* tslint:enable:max-line-length */\n/**\n * Perform a side effect for every emission on the source Observable, but return\n * an Observable that is identical to the source.\n *\n * <span class=\"informal\">Intercepts each emission on the source and runs a\n * function, but returns an output which is identical to the source as long as errors don't occur.</span>\n *\n * <img src=\"./img/do.png\" width=\"100%\">\n *\n * Returns a mirrored Observable of the source Observable, but modified so that\n * the provided Observer is called to perform a side effect for every value,\n * error, and completion emitted by the source. Any errors that are thrown in\n * the aforementioned Observer or handlers are safely sent down the error path\n * of the output Observable.\n *\n * This operator is useful for debugging your Observables for the correct values\n * or performing other side effects.\n *\n * Note: this is different to a `subscribe` on the Observable. If the Observable\n * returned by `do` is not subscribed, the side effects specified by the\n * Observer will never happen. `do` therefore simply spies on existing\n * execution, it does not trigger an execution to happen like `subscribe` does.\n *\n * @example <caption>Map every click to the clientX position of that click, while also logging the click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var positions = clicks\n * .do(ev => console.log(ev))\n * .map(ev => ev.clientX);\n * positions.subscribe(x => console.log(x));\n *\n * @see {@link map}\n * @see {@link subscribe}\n *\n * @param {Observer|function} [nextOrObserver] A normal Observer object or a\n * callback for `next`.\n * @param {function} [error] Callback for errors in the source.\n * @param {function} [complete] Callback for the completion of the source.\n * @return {Observable} An Observable identical to the source, but runs the\n * specified Observer or callback(s) for each item.\n * @name tap\n */\nfunction tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nexports.tap = tap;\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DoSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DoSubscriber = (function (_super) {\n __extends(DoSubscriber, _super);\n function DoSubscriber(destination, nextOrObserver, error, complete) {\n _super.call(this, destination);\n var safeSubscriber = new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n safeSubscriber.syncErrorThrowable = true;\n this.add(safeSubscriber);\n this.safeSubscriber = safeSubscriber;\n }\n DoSubscriber.prototype._next = function (value) {\n var safeSubscriber = this.safeSubscriber;\n safeSubscriber.next(value);\n if (safeSubscriber.syncErrorThrown) {\n this.destination.error(safeSubscriber.syncErrorValue);\n }\n else {\n this.destination.next(value);\n }\n };\n DoSubscriber.prototype._error = function (err) {\n var safeSubscriber = this.safeSubscriber;\n safeSubscriber.error(err);\n if (safeSubscriber.syncErrorThrown) {\n this.destination.error(safeSubscriber.syncErrorValue);\n }\n else {\n this.destination.error(err);\n }\n };\n DoSubscriber.prototype._complete = function () {\n var safeSubscriber = this.safeSubscriber;\n safeSubscriber.complete();\n if (safeSubscriber.syncErrorThrown) {\n this.destination.error(safeSubscriber.syncErrorValue);\n }\n else {\n this.destination.complete();\n }\n };\n return DoSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=tap.js.map\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar map_1 = __webpack_require__(2);\n/**\n * Maps each source value (an object) to its specified nested property.\n *\n * <span class=\"informal\">Like {@link map}, but meant only for picking one of\n * the nested properties of every emitted object.</span>\n *\n * <img src=\"./img/pluck.png\" width=\"100%\">\n *\n * Given a list of strings describing a path to an object property, retrieves\n * the value of a specified nested property from all values in the source\n * Observable. If a property can't be resolved, it will return `undefined` for\n * that value.\n *\n * @example <caption>Map every click to the tagName of the clicked target element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var tagNames = clicks.pluck('target', 'tagName');\n * tagNames.subscribe(x => console.log(x));\n *\n * @see {@link map}\n *\n * @param {...string} properties The nested properties to pluck from each source\n * value (an object).\n * @return {Observable} A new Observable of property values from the source values.\n * @method pluck\n * @owner Observable\n */\nfunction pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i - 0] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map_1.map(plucker(properties, length))(source); };\n}\nexports.pluck = pluck;\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\nexports.root = _root;\n// Workaround Closure Compiler restriction: The body of a goog.module cannot use throw.\n// This is needed when used with angular/tsickle which inserts a goog.module statement.\n// Wrap in IIFE\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\n//# sourceMappingURL=root.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BehaviorSubject_1 = __webpack_require__(15);\r\nvar set_options_effect_1 = __webpack_require__(49);\r\nvar file_reload_effect_1 = __webpack_require__(82);\r\nvar browser_set_location_effect_1 = __webpack_require__(86);\r\nvar simulate_click_effect_1 = __webpack_require__(87);\r\nvar set_element_value_effect_1 = __webpack_require__(88);\r\nvar set_element_toggle_value_effect_1 = __webpack_require__(89);\r\nvar set_scroll_1 = __webpack_require__(148);\r\nvar browser_reload_effect_1 = __webpack_require__(90);\r\nvar EffectNames;\r\n(function (EffectNames) {\r\n EffectNames[\"FileReload\"] = \"@@FileReload\";\r\n EffectNames[\"PreBrowserReload\"] = \"@@PreBrowserReload\";\r\n EffectNames[\"BrowserReload\"] = \"@@BrowserReload\";\r\n EffectNames[\"BrowserSetLocation\"] = \"@@BrowserSetLocation\";\r\n EffectNames[\"BrowserSetScroll\"] = \"@@BrowserSetScroll\";\r\n EffectNames[\"SetOptions\"] = \"@@SetOptions\";\r\n EffectNames[\"SimulateClick\"] = \"@@SimulateClick\";\r\n EffectNames[\"SetElementValue\"] = \"@@SetElementValue\";\r\n EffectNames[\"SetElementToggleValue\"] = \"@@SetElementToggleValue\";\r\n})(EffectNames = exports.EffectNames || (exports.EffectNames = {}));\r\nexports.effectOutputHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\r\n _a[EffectNames.SetOptions] = set_options_effect_1.setOptionsEffect,\r\n _a[EffectNames.FileReload] = file_reload_effect_1.fileReloadEffect,\r\n _a[EffectNames.BrowserReload] = browser_reload_effect_1.browserReloadEffect,\r\n _a[EffectNames.BrowserSetLocation] = browser_set_location_effect_1.browserSetLocationEffect,\r\n _a[EffectNames.SimulateClick] = simulate_click_effect_1.simulateClickEffect,\r\n _a[EffectNames.SetElementValue] = set_element_value_effect_1.setElementValueEffect,\r\n _a[EffectNames.SetElementToggleValue] = set_element_toggle_value_effect_1.setElementToggleValueEffect,\r\n _a[EffectNames.BrowserSetScroll] = set_scroll_1.setScrollEffect,\r\n _a));\r\nvar _a;\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = __webpack_require__(106);\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(58)))\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayObservable_1 = __webpack_require__(25);\nexports.of = ArrayObservable_1.ArrayObservable.of;\n//# sourceMappingURL=of.js.map\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BehaviorSubject_1 = __webpack_require__(15);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar tap_1 = __webpack_require__(6);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar ScrollEvent_1 = __webpack_require__(81);\r\nvar ClickEvent_1 = __webpack_require__(91);\r\nvar KeyupEvent_1 = __webpack_require__(92);\r\nvar BrowserNotify_1 = __webpack_require__(151);\r\nvar BrowserLocation_1 = __webpack_require__(152);\r\nvar BrowserReload_1 = __webpack_require__(51);\r\nvar FileReload_1 = __webpack_require__(160);\r\nvar Connection_1 = __webpack_require__(161);\r\nvar Disconnect_1 = __webpack_require__(162);\r\nvar FormToggleEvent_1 = __webpack_require__(94);\r\nvar OptionsSet_1 = __webpack_require__(163);\r\nvar IncomingSocketNames;\r\n(function (IncomingSocketNames) {\r\n IncomingSocketNames[\"Connection\"] = \"connection\";\r\n IncomingSocketNames[\"Disconnect\"] = \"disconnect\";\r\n IncomingSocketNames[\"FileReload\"] = \"file:reload\";\r\n IncomingSocketNames[\"BrowserReload\"] = \"browser:reload\";\r\n IncomingSocketNames[\"BrowserLocation\"] = \"browser:location\";\r\n IncomingSocketNames[\"BrowserNotify\"] = \"browser:notify\";\r\n IncomingSocketNames[\"Scroll\"] = \"scroll\";\r\n IncomingSocketNames[\"Click\"] = \"click\";\r\n IncomingSocketNames[\"Keyup\"] = \"input:text\";\r\n IncomingSocketNames[\"InputToggle\"] = \"input:toggles\";\r\n IncomingSocketNames[\"OptionsSet\"] = \"options:set\";\r\n})(IncomingSocketNames = exports.IncomingSocketNames || (exports.IncomingSocketNames = {}));\r\nvar OutgoingSocketEvents;\r\n(function (OutgoingSocketEvents) {\r\n OutgoingSocketEvents[\"Scroll\"] = \"@@outgoing/scroll\";\r\n OutgoingSocketEvents[\"Click\"] = \"@@outgoing/click\";\r\n OutgoingSocketEvents[\"Keyup\"] = \"@@outgoing/keyup\";\r\n OutgoingSocketEvents[\"InputToggle\"] = \"@@outgoing/Toggle\";\r\n})(OutgoingSocketEvents = exports.OutgoingSocketEvents || (exports.OutgoingSocketEvents = {}));\r\nexports.socketHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\r\n _a[IncomingSocketNames.Connection] = Connection_1.incomingConnection,\r\n _a[IncomingSocketNames.Disconnect] = Disconnect_1.incomingDisconnect,\r\n _a[IncomingSocketNames.FileReload] = FileReload_1.incomingFileReload,\r\n _a[IncomingSocketNames.BrowserReload] = BrowserReload_1.incomingBrowserReload,\r\n _a[IncomingSocketNames.BrowserLocation] = BrowserLocation_1.incomingBrowserLocation,\r\n _a[IncomingSocketNames.BrowserNotify] = BrowserNotify_1.incomingBrowserNotify,\r\n _a[IncomingSocketNames.Scroll] = ScrollEvent_1.incomingScrollHandler,\r\n _a[IncomingSocketNames.Click] = ClickEvent_1.incomingHandler$,\r\n _a[IncomingSocketNames.Keyup] = KeyupEvent_1.incomingKeyupHandler,\r\n _a[IncomingSocketNames.InputToggle] = FormToggleEvent_1.incomingInputsToggles,\r\n _a[IncomingSocketNames.OptionsSet] = OptionsSet_1.incomingOptionsSet,\r\n _a[OutgoingSocketEvents.Scroll] = emitWithPathname(IncomingSocketNames.Scroll),\r\n _a[OutgoingSocketEvents.Click] = emitWithPathname(IncomingSocketNames.Click),\r\n _a[OutgoingSocketEvents.Keyup] = emitWithPathname(IncomingSocketNames.Keyup),\r\n _a[OutgoingSocketEvents.InputToggle] = emitWithPathname(IncomingSocketNames.InputToggle),\r\n _a));\r\nfunction emitWithPathname(name) {\r\n return function (xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.io$, inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), tap_1.tap(function (_a) {\r\n var event = _a[0], io = _a[1], pathname = _a[2];\r\n return io.emit(name, __assign({}, event, { pathname: pathname }));\r\n }), ignoreElements_1.ignoreElements());\r\n };\r\n}\r\nvar _a;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\nvar noop_1 = __webpack_require__(54);\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * <img src=\"./img/ignoreElements.png\" width=\"100%\">\n *\n * @return {Observable} An empty Observable that only calls `complete`\n * or `error`, based on which one is called by the source Observable.\n * @method ignoreElements\n * @owner Observable\n */\nfunction ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nexports.ignoreElements = ignoreElements;\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar IgnoreElementsSubscriber = (function (_super) {\n __extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n _super.apply(this, arguments);\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n noop_1.noop();\n };\n return IgnoreElementsSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=ignoreElements.js.map\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isArray_1 = __webpack_require__(28);\nvar isObject_1 = __webpack_require__(52);\nvar isFunction_1 = __webpack_require__(40);\nvar tryCatch_1 = __webpack_require__(41);\nvar errorObject_1 = __webpack_require__(29);\nvar UnsubscriptionError_1 = __webpack_require__(100);\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nvar Subscription = (function () {\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n function Subscription(unsubscribe) {\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n this.closed = false;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n // if this._parent is null, then so is this._parents, and we\n // don't have to remove ourselves from any parent subscriptions.\n while (_parent) {\n _parent.remove(this);\n // if this._parents is null or index >= len,\n // then _parent is set to null, and the loop exits\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction_1.isFunction(_unsubscribe)) {\n var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || (errorObject_1.errorObject.e instanceof UnsubscriptionError_1.UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject_1.errorObject.e.errors) : [errorObject_1.errorObject.e]);\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject_1.errorObject.e;\n if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function' /* quack quack */) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n // If we don't have a parent, or the new parent is the same as the\n // current parent, then set this._parent to the new parent.\n this._parent = parent;\n }\n else if (!_parents) {\n // If there's already one parent, but not multiple, allocate an Array to\n // store the rest of the parent Subscriptions.\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n // Only add the new parent to the _parents list if it's not already there.\n _parents.push(parent);\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subject_1 = __webpack_require__(35);\nvar ObjectUnsubscribedError_1 = __webpack_require__(69);\n/**\n * @class BehaviorSubject<T>\n */\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n _super.call(this);\n this._value = _value;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject_1.Subject));\nexports.BehaviorSubject = BehaviorSubject;\n//# sourceMappingURL=BehaviorSubject.js.map\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BehaviorSubject_1 = __webpack_require__(15);\r\nvar timer_1 = __webpack_require__(48);\r\nvar of_1 = __webpack_require__(11);\r\nvar logger_1 = __webpack_require__(135);\r\nvar filter_1 = __webpack_require__(4);\r\nvar tap_1 = __webpack_require__(6);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar switchMap_1 = __webpack_require__(22);\r\nvar pluck_1 = __webpack_require__(7);\r\nfunction initLogger(options) {\r\n var log = new logger_1.Nanologger(options.logPrefix, {\r\n colors: { magenta: \"#0F2634\" }\r\n });\r\n return of_1.of(log);\r\n}\r\nexports.initLogger = initLogger;\r\nvar LogNames;\r\n(function (LogNames) {\r\n LogNames[\"Log\"] = \"@@Log\";\r\n LogNames[\"Info\"] = \"@@Log.info\";\r\n LogNames[\"Debug\"] = \"@@Log.debug\";\r\n})(LogNames = exports.LogNames || (exports.LogNames = {}));\r\nvar Overlay;\r\n(function (Overlay) {\r\n Overlay[\"Info\"] = \"@@Overlay.info\";\r\n})(Overlay = exports.Overlay || (exports.Overlay = {}));\r\nfunction consoleInfo() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return [LogNames.Log, [LogNames.Info, args]];\r\n}\r\nexports.consoleInfo = consoleInfo;\r\nfunction consoleDebug() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return [LogNames.Log, [LogNames.Debug, args]];\r\n}\r\nexports.consoleDebug = consoleDebug;\r\nfunction overlayInfo(message, timeout) {\r\n if (timeout === void 0) { timeout = 2000; }\r\n return [Overlay.Info, [message, timeout]];\r\n}\r\nexports.overlayInfo = overlayInfo;\r\nexports.logHandler$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\r\n _a[LogNames.Log] = function (xs, inputs) {\r\n return xs.pipe(\r\n /**\r\n * access injectNotification from the options stream\r\n */\r\n withLatestFrom_1.withLatestFrom(inputs.logInstance$, inputs.option$.pipe(pluck_1.pluck(\"injectNotification\"))), \r\n /**\r\n * only accept messages if injectNotification !== console\r\n */\r\n filter_1.filter(function (_a) {\r\n var injectNotification = _a[2];\r\n return injectNotification === \"console\";\r\n }), tap_1.tap(function (_a) {\r\n var event = _a[0], log = _a[1];\r\n switch (event[0]) {\r\n case LogNames.Info: {\r\n return log.info.apply(log, event[1]);\r\n }\r\n case LogNames.Debug: {\r\n return log.debug.apply(log, event[1]);\r\n }\r\n }\r\n }));\r\n },\r\n _a[Overlay.Info] = function (xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$, inputs.notifyElement$, inputs.document$), \r\n /**\r\n * Reject all notifications if notify: false\r\n */\r\n filter_1.filter(function (_a) {\r\n var options = _a[1];\r\n return Boolean(options.notify);\r\n }), \r\n /**\r\n * Set the HTML of the notify element\r\n */\r\n tap_1.tap(function (_a) {\r\n var event = _a[0], options = _a[1], element = _a[2], document = _a[3];\r\n element.innerHTML = event[0];\r\n element.style.display = \"block\";\r\n document.body.appendChild(element);\r\n }), \r\n /**\r\n * Now remove the element after the given timeout\r\n */\r\n switchMap_1.switchMap(function (_a) {\r\n var event = _a[0], options = _a[1], element = _a[2], document = _a[3];\r\n return timer_1.timer(event[1] || 2000).pipe(tap_1.tap(function () {\r\n element.style.display = \"none\";\r\n if (element.parentNode) {\r\n document.body.removeChild(element);\r\n }\r\n }));\r\n }));\r\n },\r\n _a));\r\nvar _a;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 subscribeToResult_1 = __webpack_require__(31);\nvar OuterSubscriber_1 = __webpack_require__(30);\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * <img src=\"./img/mergeMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * @example <caption>Map and flatten each letter to an Observable ticking every 1 second</caption>\n * var letters = Rx.Observable.of('a', 'b', 'c');\n * var result = letters.mergeMap(x =>\n * Rx.Observable.interval(1000).map(i => x+i)\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a,b,c with respective ascending integers\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and merging the results of the Observables obtained\n * from this transformation.\n * @method mergeMap\n * @owner Observable\n */\nfunction mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function mergeMapOperatorFunction(source) {\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n resultSelector = null;\n }\n return source.lift(new MergeMapOperator(project, resultSelector, concurrent));\n };\n}\nexports.mergeMap = mergeMap;\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.resultSelector = resultSelector;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.resultSelector, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexports.MergeMapOperator = MergeMapOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MergeMapSubscriber = (function (_super) {\n __extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n _super.call(this, destination);\n this.project = project;\n this.resultSelector = resultSelector;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n this.add(subscribeToResult_1.subscribeToResult(this, ish, value, index));\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (this.resultSelector) {\n this._notifyResultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n this.destination.next(innerValue);\n }\n };\n MergeMapSubscriber.prototype._notifyResultSelector = function (outerValue, innerValue, outerIndex, innerIndex) {\n var result;\n try {\n result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.MergeMapSubscriber = MergeMapSubscriber;\n//# sourceMappingURL=mergeMap.js.map\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar EmptyObservable_1 = __webpack_require__(26);\nexports.empty = EmptyObservable_1.EmptyObservable.create;\n//# sourceMappingURL=empty.js.map\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (true) {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module dependencies.\n */\n\nvar keys = __webpack_require__(115);\nvar hasBinary = __webpack_require__(59);\nvar sliceBuffer = __webpack_require__(116);\nvar after = __webpack_require__(117);\nvar utf8 = __webpack_require__(118);\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n base64encoder = __webpack_require__(120);\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n , close: 1 // non-ws\n , ping: 2\n , pong: 3\n , message: 4\n , upgrade: 5\n , noop: 6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = __webpack_require__(121);\n\n/**\n * Encodes a packet.\n *\n * <packet type id> [ <data> ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n\n var data = (packet.data === undefined)\n ? undefined\n : packet.data.buffer || packet.data;\n\n if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (Blob && data instanceof global.Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n }\n\n return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i+1] = contentArray[i];\n }\n\n return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var fr = new FileReader();\n fr.onload = function() {\n packet.data = fr.result;\n exports.encodePacket(packet, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (Blob && packet.data instanceof global.Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += global.btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n\n if (data.length > 1) {\n return { type: packetslist[type], data: data.substring(1) };\n } else {\n return { type: packetslist[type] };\n }\n }\n\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, { strict: false });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return { type: type, data: { base64: true, data: msg.substr(1) } };\n }\n\n var data = base64encoder.decode(msg.substr(1));\n\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n\n return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * <length>:data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n\n var isBinary = hasBinary(packets);\n\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n\n if (!packets.length) {\n return callback('0:');\n }\n\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n var length = '', n, msg;\n\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n\n if (chr !== ':') {\n length += chr;\n continue;\n }\n\n if (length === '' || (length != (n = Number(length)))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n msg = data.substr(i + 1, n);\n\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string'){\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n\n var resultArray = new Uint8Array(totalLength);\n\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n\n if (isString) { // not true binary\n resultArray[bufferIndex++] = 0;\n } else { // true binary\n resultArray[bufferIndex++] = 1;\n }\n\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n\n var len = (encoded instanceof ArrayBuffer)\n ? encoded.byteLength\n : encoded.size;\n\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var bufferTail = data;\n var buffers = [];\n\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n\n for (var i = 1; ; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n\n msgLength += tailArray[i];\n }\n\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BehaviorSubject_1 = __webpack_require__(15);\r\nvar prop_set_dom_effect_1 = __webpack_require__(72);\r\nvar style_set_dom_effect_1 = __webpack_require__(77);\r\nvar link_replace_dom_effect_1 = __webpack_require__(78);\r\nvar set_scroll_dom_effect_1 = __webpack_require__(79);\r\nvar set_window_name_dom_effect_1 = __webpack_require__(80);\r\nvar Events;\r\n(function (Events) {\r\n Events[\"PropSet\"] = \"@@BSDOM.Events.PropSet\";\r\n Events[\"StyleSet\"] = \"@@BSDOM.Events.StyleSet\";\r\n Events[\"LinkReplace\"] = \"@@BSDOM.Events.LinkReplace\";\r\n Events[\"SetScroll\"] = \"@@BSDOM.Events.SetScroll\";\r\n Events[\"SetWindowName\"] = \"@@BSDOM.Events.SetWindowName\";\r\n})(Events = exports.Events || (exports.Events = {}));\r\nexports.domHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\r\n _a[Events.PropSet] = prop_set_dom_effect_1.propSetDomEffect,\r\n _a[Events.StyleSet] = style_set_dom_effect_1.styleSetDomEffect,\r\n _a[Events.LinkReplace] = link_replace_dom_effect_1.linkReplaceDomEffect,\r\n _a[Events.SetScroll] = set_scroll_dom_effect_1.setScrollDomEffect,\r\n _a[Events.SetWindowName] = set_window_name_dom_effect_1.setWindowNameDomEffect,\r\n _a));\r\nvar _a;\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 OuterSubscriber_1 = __webpack_require__(30);\nvar subscribeToResult_1 = __webpack_require__(31);\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link switch}.</span>\n *\n * <img src=\"./img/switchMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * @example <caption>Rerun an interval Observable on every click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMap((ev) => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switch}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nfunction switchMap(project, resultSelector) {\n return function switchMapOperatorFunction(source) {\n return source.lift(new SwitchMapOperator(project, resultSelector));\n };\n}\nexports.switchMap = switchMap;\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project, resultSelector) {\n this.project = project;\n this.resultSelector = resultSelector;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project, this.resultSelector));\n };\n return SwitchMapOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapSubscriber = (function (_super) {\n __extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project, resultSelector) {\n _super.call(this, destination);\n this.project = project;\n this.resultSelector = resultSelector;\n this.index = 0;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, value, index));\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (this.resultSelector) {\n this._tryNotifyNext(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n this.destination.next(innerValue);\n }\n };\n SwitchMapSubscriber.prototype._tryNotifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n var result;\n try {\n result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar concat_1 = __webpack_require__(50);\r\nvar timer_1 = __webpack_require__(48);\r\nvar of_1 = __webpack_require__(11);\r\nvar switchMap_1 = __webpack_require__(22);\r\nvar startWith_1 = __webpack_require__(145);\r\nvar mapTo_1 = __webpack_require__(85);\r\nfunction each(incoming) {\r\n return [].slice.call(incoming || []);\r\n}\r\nexports.each = each;\r\nexports.splitUrl = function (url) {\r\n var hash, index, params;\r\n if ((index = url.indexOf(\"#\")) >= 0) {\r\n hash = url.slice(index);\r\n url = url.slice(0, index);\r\n }\r\n else {\r\n hash = \"\";\r\n }\r\n if ((index = url.indexOf(\"?\")) >= 0) {\r\n params = url.slice(index);\r\n url = url.slice(0, index);\r\n }\r\n else {\r\n params = \"\";\r\n }\r\n return { url: url, params: params, hash: hash };\r\n};\r\nexports.pathFromUrl = function (url) {\r\n var path;\r\n (url = exports.splitUrl(url).url);\r\n if (url.indexOf(\"file://\") === 0) {\r\n path = url.replace(new RegExp(\"^file://(localhost)?\"), \"\");\r\n }\r\n else {\r\n // http : // hostname :8080 /\r\n path = url.replace(new RegExp(\"^([^:]+:)?//([^:/]+)(:\\\\d*)?/\"), \"/\");\r\n }\r\n // decodeURI has special handling of stuff like semicolons, so use decodeURIComponent\r\n return decodeURIComponent(path);\r\n};\r\nexports.pickBestMatch = function (path, objects, pathFunc) {\r\n var score;\r\n var bestMatch = { score: 0, object: null };\r\n objects.forEach(function (object) {\r\n score = exports.numberOfMatchingSegments(path, pathFunc(object));\r\n if (score > bestMatch.score) {\r\n bestMatch = { object: object, score: score };\r\n }\r\n });\r\n if (bestMatch.score > 0) {\r\n return bestMatch;\r\n }\r\n else {\r\n return null;\r\n }\r\n};\r\nexports.numberOfMatchingSegments = function (path1, path2) {\r\n // get rid of leading slashes and normalize to lower case\r\n path1 = path1.replace(/^\\/+/, \"\").toLowerCase();\r\n path2 = path2.replace(/^\\/+/, \"\").toLowerCase();\r\n if (path1 === path2) {\r\n return 10000;\r\n }\r\n var comps1 = path1.split(\"/\").reverse();\r\n var comps2 = path2.split(\"/\").reverse();\r\n var len = Math.min(comps1.length, comps2.length);\r\n var eqCount = 0;\r\n while (eqCount < len && comps1[eqCount] === comps2[eqCount]) {\r\n ++eqCount;\r\n }\r\n return eqCount;\r\n};\r\nexports.pathsMatch = function (path1, path2) {\r\n return exports.numberOfMatchingSegments(path1, path2) > 0;\r\n};\r\nfunction getLocation(url) {\r\n var location = document.createElement(\"a\");\r\n location.href = url;\r\n if (location.host === \"\") {\r\n location.href = location.href;\r\n }\r\n return location;\r\n}\r\nexports.getLocation = getLocation;\r\n/**\r\n * @param {string} search\r\n * @param {string} key\r\n * @param {string} suffix\r\n */\r\nfunction updateSearch(search, key, suffix) {\r\n if (search === \"\") {\r\n return \"?\" + suffix;\r\n }\r\n return (\"?\" +\r\n search\r\n .slice(1)\r\n .split(\"&\")\r\n .map(function (item) {\r\n return item.split(\"=\");\r\n })\r\n .filter(function (tuple) {\r\n return tuple[0] !== key;\r\n })\r\n .map(function (item) {\r\n return [item[0], item[1]].join(\"=\");\r\n })\r\n .concat(suffix)\r\n .join(\"&\"));\r\n}\r\nexports.updateSearch = updateSearch;\r\nvar blacklist = [\r\n // never allow .map files through\r\n function (incoming) {\r\n return incoming.ext === \"map\";\r\n }\r\n];\r\n/**\r\n * @param incoming\r\n * @returns {boolean}\r\n */\r\nfunction isBlacklisted(incoming) {\r\n return blacklist.some(function (fn) {\r\n return fn(incoming);\r\n });\r\n}\r\nexports.isBlacklisted = isBlacklisted;\r\nfunction createTimedBooleanSwitch(source$, timeout) {\r\n if (timeout === void 0) { timeout = 1000; }\r\n return source$.pipe(switchMap_1.switchMap(function () {\r\n return concat_1.concat(of_1.of(false), timer_1.timer(timeout).pipe(mapTo_1.mapTo(true)));\r\n }), startWith_1.startWith(true));\r\n}\r\nexports.createTimedBooleanSwitch = createTimedBooleanSwitch;\r\nfunction array(incoming) {\r\n return [].slice.call(incoming);\r\n}\r\nexports.array = array;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction getWindow() {\r\n return window;\r\n}\r\nexports.getWindow = getWindow;\r\n/**\r\n * @returns {HTMLDocument}\r\n */\r\nfunction getDocument() {\r\n return document;\r\n}\r\nexports.getDocument = getDocument;\r\n/**\r\n * Get the current x/y position crossbow\r\n * @returns {{x: *, y: *}}\r\n */\r\nfunction getBrowserScrollPosition(window, document) {\r\n var scrollX;\r\n var scrollY;\r\n var dElement = document.documentElement;\r\n var dBody = document.body;\r\n if (window.pageYOffset !== undefined) {\r\n scrollX = window.pageXOffset;\r\n scrollY = window.pageYOffset;\r\n }\r\n else {\r\n scrollX = dElement.scrollLeft || dBody.scrollLeft || 0;\r\n scrollY = dElement.scrollTop || dBody.scrollTop || 0;\r\n }\r\n return {\r\n x: scrollX,\r\n y: scrollY\r\n };\r\n}\r\nexports.getBrowserScrollPosition = getBrowserScrollPosition;\r\n/**\r\n * @returns {{x: number, y: number}}\r\n */\r\nfunction getDocumentScrollSpace(document) {\r\n var dElement = document.documentElement;\r\n var dBody = document.body;\r\n return {\r\n x: dBody.scrollHeight - dElement.clientWidth,\r\n y: dBody.scrollHeight - dElement.clientHeight\r\n };\r\n}\r\nexports.getDocumentScrollSpace = getDocumentScrollSpace;\r\n/**\r\n * Saves scroll position into cookies\r\n */\r\nfunction saveScrollPosition(window, document) {\r\n var pos = getBrowserScrollPosition(window, document);\r\n document.cookie = \"bs_scroll_pos=\" + [pos.x, pos.y].join(\",\");\r\n}\r\nexports.saveScrollPosition = saveScrollPosition;\r\n/**\r\n * Restores scroll position from cookies\r\n */\r\nfunction restoreScrollPosition() {\r\n var pos = getDocument()\r\n .cookie.replace(/(?:(?:^|.*;\\s*)bs_scroll_pos\\s*\\=\\s*([^;]*).*$)|^.*$/, \"$1\")\r\n .split(\",\");\r\n getWindow().scrollTo(Number(pos[0]), Number(pos[1]));\r\n}\r\nexports.restoreScrollPosition = restoreScrollPosition;\r\n/**\r\n * @param tagName\r\n * @param elem\r\n * @returns {*|number}\r\n */\r\nfunction getElementIndex(tagName, elem) {\r\n var allElems = getDocument().getElementsByTagName(tagName);\r\n return Array.prototype.indexOf.call(allElems, elem);\r\n}\r\nexports.getElementIndex = getElementIndex;\r\n/**\r\n * Force Change event on radio & checkboxes (IE)\r\n */\r\nfunction forceChange(elem) {\r\n elem.blur();\r\n elem.focus();\r\n}\r\nexports.forceChange = forceChange;\r\n/**\r\n * @param elem\r\n * @returns {{tagName: (elem.tagName|*), index: *}}\r\n */\r\nfunction getElementData(elem) {\r\n var tagName = elem.tagName;\r\n var index = getElementIndex(tagName, elem);\r\n return {\r\n tagName: tagName,\r\n index: index\r\n };\r\n}\r\nexports.getElementData = getElementData;\r\n/**\r\n * @param {string} tagName\r\n * @param {number} index\r\n */\r\nfunction getSingleElement(tagName, index) {\r\n var elems = getDocument().getElementsByTagName(tagName);\r\n return elems[index];\r\n}\r\nexports.getSingleElement = getSingleElement;\r\n/**\r\n * Get the body element\r\n */\r\nfunction getBody() {\r\n return getDocument().getElementsByTagName(\"body\")[0];\r\n}\r\nexports.getBody = getBody;\r\n/**\r\n * @param {{x: number, y: number}} pos\r\n */\r\nfunction setScroll(pos) {\r\n getWindow().scrollTo(pos.x, pos.y);\r\n}\r\nexports.setScroll = setScroll;\r\n/**\r\n * Hard reload\r\n */\r\nfunction reloadBrowser() {\r\n getWindow().location.reload(true);\r\n}\r\nexports.reloadBrowser = reloadBrowser;\r\n/**\r\n * Foreach polyfill\r\n * @param coll\r\n * @param fn\r\n */\r\nfunction forEach(coll, fn) {\r\n for (var i = 0, n = coll.length; i < n; i += 1) {\r\n fn(coll[i], i, coll);\r\n }\r\n}\r\nexports.forEach = forEach;\r\n/**\r\n * Are we dealing with old IE?\r\n * @returns {boolean}\r\n */\r\nfunction isOldIe() {\r\n return typeof getWindow().attachEvent !== \"undefined\";\r\n}\r\nexports.isOldIe = isOldIe;\r\n/**\r\n * Split the URL information\r\n * @returns {object}\r\n */\r\nfunction getLocation(url) {\r\n var location = getDocument().createElement(\"a\");\r\n location.href = url;\r\n if (location.host === \"\") {\r\n location.href = location.href;\r\n }\r\n return location;\r\n}\r\nexports.getLocation = getLocation;\r\n/**\r\n * @param {String} val\r\n * @returns {boolean}\r\n */\r\nfunction isUndefined(val) {\r\n return \"undefined\" === typeof val;\r\n}\r\nexports.isUndefined = isUndefined;\r\n/**\r\n * @param obj\r\n * @param path\r\n */\r\nfunction getByPath(obj, path) {\r\n for (var i = 0, tempPath = path.split(\".\"), len = tempPath.length; i < len; i++) {\r\n if (!obj || typeof obj !== \"object\") {\r\n return false;\r\n }\r\n obj = obj[tempPath[i]];\r\n }\r\n if (typeof obj === \"undefined\") {\r\n return false;\r\n }\r\n return obj;\r\n}\r\nexports.getByPath = getByPath;\r\nfunction getScrollPosition(window, document) {\r\n var pos = getBrowserScrollPosition(window, document);\r\n return {\r\n raw: pos,\r\n proportional: getScrollTopPercentage(pos, document) // Get % of y axis of scroll\r\n };\r\n}\r\nexports.getScrollPosition = getScrollPosition;\r\nfunction getScrollPositionForElement(element) {\r\n var raw = {\r\n x: element.scrollLeft,\r\n y: element.scrollTop\r\n };\r\n var scrollSpace = {\r\n x: element.scrollWidth,\r\n y: element.scrollHeight\r\n };\r\n return {\r\n raw: raw,\r\n proportional: getScrollPercentage(scrollSpace, raw).y // Get % of y axis of scroll\r\n };\r\n}\r\nexports.getScrollPositionForElement = getScrollPositionForElement;\r\nfunction getScrollTopPercentage(pos, document) {\r\n var scrollSpace = getDocumentScrollSpace(document);\r\n var percentage = getScrollPercentage(scrollSpace, pos);\r\n return percentage.y;\r\n}\r\nexports.getScrollTopPercentage = getScrollTopPercentage;\r\nfunction getScrollPercentage(scrollSpace, scrollPosition) {\r\n var x = scrollPosition.x / scrollSpace.x;\r\n var y = scrollPosition.y / scrollSpace.y;\r\n return {\r\n x: x || 0,\r\n y: y\r\n };\r\n}\r\nexports.getScrollPercentage = getScrollPercentage;\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Observable_1 = __webpack_require__(1);\nvar ScalarObservable_1 = __webpack_require__(44);\nvar EmptyObservable_1 = __webpack_require__(26);\nvar isScheduler_1 = __webpack_require__(27);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ArrayObservable = (function (_super) {\n __extends(ArrayObservable, _super);\n function ArrayObservable(array, scheduler) {\n _super.call(this);\n this.array = array;\n this.scheduler = scheduler;\n if (!scheduler && array.length === 1) {\n this._isScalar = true;\n this.value = array[0];\n }\n }\n ArrayObservable.create = function (array, scheduler) {\n return new ArrayObservable(array, scheduler);\n };\n /**\n * Creates an Observable that emits some values you specify as arguments,\n * immediately one after the other, and then emits a complete notification.\n *\n * <span class=\"informal\">Emits the arguments you provide, then completes.\n * </span>\n *\n * <img src=\"./img/of.png\" width=\"100%\">\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the arguments given, and the complete notification thereafter. It can\n * be used for composing with other Observables, such as with {@link concat}.\n * By default, it uses a `null` IScheduler, which means the `next`\n * notifications are sent synchronously, although with a different IScheduler\n * it is possible to determine when those notifications will be delivered.\n *\n * @example <caption>Emit 10, 20, 30, then 'a', 'b', 'c', then start ticking every second.</caption>\n * var numbers = Rx.Observable.of(10, 20, 30);\n * var letters = Rx.Observable.of('a', 'b', 'c');\n * var interval = Rx.Observable.interval(1000);\n * var result = numbers.concat(letters).concat(interval);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link create}\n * @see {@link empty}\n * @see {@link never}\n * @see {@link throw}\n *\n * @param {...T} values Arguments that represent `next` values to be emitted.\n * @param {Scheduler} [scheduler] A {@link IScheduler} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable<T>} An Observable that emits each given input value.\n * @static true\n * @name of\n * @owner Observable\n */\n ArrayObservable.of = function () {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i - 0] = arguments[_i];\n }\n var scheduler = array[array.length - 1];\n if (isScheduler_1.isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len > 1) {\n return new ArrayObservable(array, scheduler);\n }\n else if (len === 1) {\n return new ScalarObservable_1.ScalarObservable(array[0], scheduler);\n }\n else {\n return new EmptyObservable_1.EmptyObservable(scheduler);\n }\n };\n ArrayObservable.dispatch = function (state) {\n var array = state.array, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(array[index]);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n this.schedule(state);\n };\n ArrayObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var array = this.array;\n var count = array.length;\n var scheduler = this.scheduler;\n if (scheduler) {\n return scheduler.schedule(ArrayObservable.dispatch, 0, {\n array: array, index: index, count: count, subscriber: subscriber\n });\n }\n else {\n for (var i = 0; i < count && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n }\n };\n return ArrayObservable;\n}(Observable_1.Observable));\nexports.ArrayObservable = ArrayObservable;\n//# sourceMappingURL=ArrayObservable.js.map\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Observable_1 = __webpack_require__(1);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar EmptyObservable = (function (_super) {\n __extends(EmptyObservable, _super);\n function EmptyObservable(scheduler) {\n _super.call(this);\n this.scheduler = scheduler;\n }\n /**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * <span class=\"informal\">Just emits 'complete', and nothing else.\n * </span>\n *\n * <img src=\"./img/empty.png\" width=\"100%\">\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the complete notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * @example <caption>Emit the number 7, then complete.</caption>\n * var result = Rx.Observable.empty().startWith(7);\n * result.subscribe(x => console.log(x));\n *\n * @example <caption>Map and flatten only odd numbers to the sequence 'a', 'b', 'c'</caption>\n * var interval = Rx.Observable.interval(1000);\n * var result = interval.mergeMap(x =>\n * x % 2 === 1 ? Rx.Observable.of('a', 'b', 'c') : Rx.Observable.empty()\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval eg(0,1,2,3,...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1 print abc\n * // if x % 2 is not equal to 1 nothing will be output\n *\n * @see {@link create}\n * @see {@link never}\n * @see {@link of}\n * @see {@link throw}\n *\n * @param {Scheduler} [scheduler] A {@link IScheduler} to use for scheduling\n * the emission of the complete notification.\n * @return {Observable} An \"empty\" Observable: emits only the complete\n * notification.\n * @static true\n * @name empty\n * @owner Observable\n */\n EmptyObservable.create = function (scheduler) {\n return new EmptyObservable(scheduler);\n };\n EmptyObservable.dispatch = function (arg) {\n var subscriber = arg.subscriber;\n subscriber.complete();\n };\n EmptyObservable.prototype._subscribe = function (subscriber) {\n var scheduler = this.scheduler;\n if (scheduler) {\n return scheduler.schedule(EmptyObservable.dispatch, 0, { subscriber: subscriber });\n }\n else {\n subscriber.complete();\n }\n };\n return EmptyObservable;\n}(Observable_1.Observable));\nexports.EmptyObservable = EmptyObservable;\n//# sourceMappingURL=EmptyObservable.js.map\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\nexports.isScheduler = isScheduler;\n//# sourceMappingURL=isScheduler.js.map\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// typeof any so that it we don't have to cast when comparing a result to the error object\nexports.errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar OuterSubscriber = (function (_super) {\n __extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n _super.apply(this, arguments);\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber_1.Subscriber));\nexports.OuterSubscriber = OuterSubscriber;\n//# sourceMappingURL=OuterSubscriber.js.map\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(8);\nvar isArrayLike_1 = __webpack_require__(55);\nvar isPromise_1 = __webpack_require__(56);\nvar isObject_1 = __webpack_require__(52);\nvar Observable_1 = __webpack_require__(1);\nvar iterator_1 = __webpack_require__(32);\nvar InnerSubscriber_1 = __webpack_require__(102);\nvar observable_1 = __webpack_require__(43);\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex) {\n var destination = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n if (destination.closed) {\n return null;\n }\n if (result instanceof Observable_1.Observable) {\n if (result._isScalar) {\n destination.next(result.value);\n destination.complete();\n return null;\n }\n else {\n destination.syncErrorThrowable = true;\n return result.subscribe(destination);\n }\n }\n else if (isArrayLike_1.isArrayLike(result)) {\n for (var i = 0, len = result.length; i < len && !destination.closed; i++) {\n destination.next(result[i]);\n }\n if (!destination.closed) {\n destination.complete();\n }\n }\n else if (isPromise_1.isPromise(result)) {\n result.then(function (value) {\n if (!destination.closed) {\n destination.next(value);\n destination.complete();\n }\n }, function (err) { return destination.error(err); })\n .then(null, function (err) {\n // Escaping the Promise trap: globally throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n return destination;\n }\n else if (result && typeof result[iterator_1.iterator] === 'function') {\n var iterator = result[iterator_1.iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n destination.complete();\n break;\n }\n destination.next(item.value);\n if (destination.closed) {\n break;\n }\n } while (true);\n }\n else if (result && typeof result[observable_1.observable] === 'function') {\n var obs = result[observable_1.observable]();\n if (typeof obs.subscribe !== 'function') {\n destination.error(new TypeError('Provided object does not correctly implement Symbol.observable'));\n }\n else {\n return obs.subscribe(new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex));\n }\n }\n else {\n var value = isObject_1.isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = (\"You provided \" + value + \" where a stream was expected.\")\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n destination.error(new TypeError(msg));\n }\n return null;\n}\nexports.subscribeToResult = subscribeToResult;\n//# sourceMappingURL=subscribeToResult.js.map\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(8);\nfunction symbolIteratorPonyfill(root) {\n var Symbol = root.Symbol;\n if (typeof Symbol === 'function') {\n if (!Symbol.iterator) {\n Symbol.iterator = Symbol('iterator polyfill');\n }\n return Symbol.iterator;\n }\n else {\n // [for Mozilla Gecko 27-35:](https://mzl.la/2ewE1zC)\n var Set_1 = root.Set;\n if (Set_1 && typeof new Set_1()['@@iterator'] === 'function') {\n return '@@iterator';\n }\n var Map_1 = root.Map;\n // required for compatability with es6-shim\n if (Map_1) {\n var keys = Object.getOwnPropertyNames(Map_1.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n // according to spec, Map.prototype[@@iterator] and Map.orototype.entries must be equal.\n if (key !== 'entries' && key !== 'size' && Map_1.prototype[key] === Map_1.prototype['entries']) {\n return key;\n }\n }\n }\n return '@@iterator';\n }\n}\nexports.symbolIteratorPonyfill = symbolIteratorPonyfill;\nexports.iterator = symbolIteratorPonyfill(root_1.root);\n/**\n * @deprecated use iterator instead\n */\nexports.$$iterator = exports.iterator;\n//# sourceMappingURL=iterator.js.map\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\n/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n var str = '';\r\n\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n if (str.length) str += '&';\r\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n }\r\n }\r\n\r\n return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n var qry = {};\r\n var pairs = qs.split('&');\r\n for (var i = 0, l = pairs.length; i < l; i++) {\r\n var pair = pairs[i].split('=');\r\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n }\r\n return qry;\r\n};\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\n\nmodule.exports = function(a, b){\n var fn = function(){};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Observable_1 = __webpack_require__(1);\nvar Subscriber_1 = __webpack_require__(3);\nvar Subscription_1 = __webpack_require__(14);\nvar ObjectUnsubscribedError_1 = __webpack_require__(69);\nvar SubjectSubscription_1 = __webpack_require__(127);\nvar rxSubscriber_1 = __webpack_require__(42);\n/**\n * @class SubjectSubscriber<T>\n */\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n _super.call(this, destination);\n this.destination = destination;\n }\n return SubjectSubscriber;\n}(Subscriber_1.Subscriber));\nexports.SubjectSubscriber = SubjectSubscriber;\n/**\n * @class Subject<T>\n */\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n _super.call(this);\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription_1.Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription_1.Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable_1.Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable_1.Observable));\nexports.Subject = Subject;\n/**\n * @class AnonymousSubject<T>\n */\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n _super.call(this);\n this.destination = destination;\n this.source = source;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription_1.Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexports.AnonymousSubject = AnonymousSubject;\n//# sourceMappingURL=Subject.js.map\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Observable_1 = __webpack_require__(1);\nvar ArrayObservable_1 = __webpack_require__(25);\nvar isScheduler_1 = __webpack_require__(27);\nvar mergeAll_1 = __webpack_require__(84);\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * <span class=\"informal\">Flattens multiple Observables together by blending\n * their values into one Observable.</span>\n *\n * <img src=\"./img/merge.png\" width=\"100%\">\n *\n * `merge` subscribes to each given input Observable (as arguments), and simply\n * forwards (without doing any transformation) all the values from all the input\n * Observables to the output Observable. The output Observable only completes\n * once all input Observables have completed. Any error delivered by an input\n * Observable will be immediately emitted on the output Observable.\n *\n * @example <caption>Merge together two Observables: 1s interval and clicks</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var timer = Rx.Observable.interval(1000);\n * var clicksOrTimer = Rx.Observable.merge(clicks, timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // timer will emit ascending values, one every second(1000ms) to console\n * // clicks logs MouseEvents to console everytime the \"document\" is clicked\n * // Since the two streams are merged you see these happening\n * // as they occur.\n *\n * @example <caption>Merge together 3 Observables, but only 2 run concurrently</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var concurrent = 2; // the argument\n * var merged = Rx.Observable.merge(timer1, timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - First timer1 and timer2 will run concurrently\n * // - timer1 will emit a value every 1000ms for 10 iterations\n * // - timer2 will emit a value every 2000ms for 6 iterations\n * // - after timer1 hits it's max iteration, timer2 will\n * // continue, and timer3 will start to run concurrently with timer2\n * // - when timer2 hits it's max iteration it terminates, and\n * // timer3 will continue to emit a value every 500ms until it is complete\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {...ObservableInput} observables Input Observables to merge together.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {Scheduler} [scheduler=null] The IScheduler to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @static true\n * @name merge\n * @owner Observable\n */\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler_1.isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable_1.Observable) {\n return observables[0];\n }\n return mergeAll_1.mergeAll(concurrent)(new ArrayObservable_1.ArrayObservable(observables, scheduler));\n}\nexports.merge = merge;\n//# sourceMappingURL=merge.js.map\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\n/**\n * Returns an Observable that skips the first `count` items emitted by the source Observable.\n *\n * <img src=\"./img/skip.png\" width=\"100%\">\n *\n * @param {Number} count - The number of times, items emitted by source Observable should be skipped.\n * @return {Observable} An Observable that skips values emitted by the source Observable.\n *\n * @method skip\n * @owner Observable\n */\nfunction skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nexports.skip = skip;\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SkipSubscriber = (function (_super) {\n __extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n _super.call(this, destination);\n this.total = total;\n this.count = 0;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=skip.js.map\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\nvar tryCatch_1 = __webpack_require__(41);\nvar errorObject_1 = __webpack_require__(29);\n/* tslint:enable:max-line-length */\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item.\n *\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n *\n * If a comparator function is not provided, an equality check is used by default.\n *\n * @example <caption>A simple example with numbers</caption>\n * Observable.of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4)\n * .distinctUntilChanged()\n * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4\n *\n * @example <caption>An example using a compare function</caption>\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * Observable.of<Person>(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'})\n * { age: 6, name: 'Foo'})\n * .distinctUntilChanged((p: Person, q: Person) => p.name === q.name)\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n *\n * @see {@link distinct}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinctUntilChanged\n * @owner Observable\n */\nfunction distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nexports.distinctUntilChanged = distinctUntilChanged;\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DistinctUntilChangedSubscriber = (function (_super) {\n __extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n _super.call(this, destination);\n this.keySelector = keySelector;\n this.hasKey = false;\n if (typeof compare === 'function') {\n this.compare = compare;\n }\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var keySelector = this.keySelector;\n var key = value;\n if (keySelector) {\n key = tryCatch_1.tryCatch(this.keySelector)(value);\n if (key === errorObject_1.errorObject) {\n return this.destination.error(errorObject_1.errorObject.e);\n }\n }\n var result = false;\n if (this.hasKey) {\n result = tryCatch_1.tryCatch(this.compare)(this.key, key);\n if (result === errorObject_1.errorObject) {\n return this.destination.error(errorObject_1.errorObject.e);\n }\n }\n else {\n this.hasKey = true;\n }\n if (Boolean(result) === false) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar FromEventObservable_1 = __webpack_require__(167);\nexports.fromEvent = FromEventObservable_1.FromEventObservable.create;\n//# sourceMappingURL=fromEvent.js.map\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar errorObject_1 = __webpack_require__(29);\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject_1.errorObject.e = e;\n return errorObject_1.errorObject;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\nexports.tryCatch = tryCatch;\n;\n//# sourceMappingURL=tryCatch.js.map\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(8);\nvar Symbol = root_1.root.Symbol;\nexports.rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ?\n Symbol.for('rxSubscriber') : '@@rxSubscriber';\n/**\n * @deprecated use rxSubscriber instead\n */\nexports.$$rxSubscriber = exports.rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(8);\nfunction getSymbolObservable(context) {\n var $$observable;\n var Symbol = context.Symbol;\n if (typeof Symbol === 'function') {\n if (Symbol.observable) {\n $$observable = Symbol.observable;\n }\n else {\n $$observable = Symbol('observable');\n Symbol.observable = $$observable;\n }\n }\n else {\n $$observable = '@@observable';\n }\n return $$observable;\n}\nexports.getSymbolObservable = getSymbolObservable;\nexports.observable = getSymbolObservable(root_1.root);\n/**\n * @deprecated use observable instead\n */\nexports.$$observable = exports.observable;\n//# sourceMappingURL=observable.js.map\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Observable_1 = __webpack_require__(1);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ScalarObservable = (function (_super) {\n __extends(ScalarObservable, _super);\n function ScalarObservable(value, scheduler) {\n _super.call(this);\n this.value = value;\n this.scheduler = scheduler;\n this._isScalar = true;\n if (scheduler) {\n this._isScalar = false;\n }\n }\n ScalarObservable.create = function (value, scheduler) {\n return new ScalarObservable(value, scheduler);\n };\n ScalarObservable.dispatch = function (state) {\n var done = state.done, value = state.value, subscriber = state.subscriber;\n if (done) {\n subscriber.complete();\n return;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n state.done = true;\n this.schedule(state);\n };\n ScalarObservable.prototype._subscribe = function (subscriber) {\n var value = this.value;\n var scheduler = this.scheduler;\n if (scheduler) {\n return scheduler.schedule(ScalarObservable.dispatch, 0, {\n done: false, value: value, subscriber: subscriber\n });\n }\n else {\n subscriber.next(value);\n if (!subscriber.closed) {\n subscriber.complete();\n }\n }\n };\n return ScalarObservable;\n}(Observable_1.Observable));\nexports.ScalarObservable = ScalarObservable;\n//# sourceMappingURL=ScalarObservable.js.map\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/**\n * Module dependencies.\n */\n\nvar debug = __webpack_require__(10)('socket.io-parser');\nvar Emitter = __webpack_require__(19);\nvar hasBin = __webpack_require__(59);\nvar binary = __webpack_require__(109);\nvar isBuf = __webpack_require__(60);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n 'CONNECT',\n 'DISCONNECT',\n 'EVENT',\n 'ACK',\n 'ERROR',\n 'BINARY_EVENT',\n 'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n if ((obj.type === exports.EVENT || obj.type === exports.ACK) && hasBin(obj.data)) {\n obj.type = obj.type === exports.EVENT ? exports.BINARY_EVENT : exports.BINARY_ACK;\n }\n\n debug('encoding packet %j', obj);\n\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n encodeAsBinary(obj, callback);\n }\n else {\n var encoding = encodeAsString(obj);\n callback([encoding]);\n }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n // first is type\n var str = '' + obj.type;\n\n // attachments if we have them\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n str += obj.attachments + '-';\n }\n\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && '/' !== obj.nsp) {\n str += obj.nsp + ',';\n }\n\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data);\n }\n\n debug('encoded %j as %s', obj, str);\n return str;\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n function writeEncoding(bloblessData) {\n var deconstruction = binary.deconstructPacket(bloblessData);\n var pack = encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n\n buffers.unshift(pack); // add packet info to beginning of data list\n callback(buffers); // write all the buffers\n }\n\n binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an ecoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n var packet;\n if (typeof obj === 'string') {\n packet = decodeString(obj);\n if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n\n // no attachments, labeled binary but no binary data to follow\n if (this.reconstructor.reconPack.attachments === 0) {\n this.emit('decoded', packet);\n }\n } else { // non-binary full packet\n this.emit('decoded', packet);\n }\n }\n else if (isBuf(obj) || obj.base64) { // raw binary data\n if (!this.reconstructor) {\n throw new Error('got binary data when not reconstructing a packet');\n } else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) { // received final buffer\n this.reconstructor = null;\n this.emit('decoded', packet);\n }\n }\n }\n else {\n throw new Error('Unknown type: ' + obj);\n }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n var i = 0;\n // look up type\n var p = {\n type: Number(str.charAt(0))\n };\n\n if (null == exports.types[p.type]) return error();\n\n // look up attachments if type binary\n if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n var buf = '';\n while (str.charAt(++i) !== '-') {\n buf += str.charAt(i);\n if (i == str.length) break;\n }\n if (buf != Number(buf) || str.charAt(i) !== '-') {\n throw new Error('Illegal attachments');\n }\n p.attachments = Number(buf);\n }\n\n // look up namespace (if any)\n if ('/' === str.charAt(i + 1)) {\n p.nsp = '';\n while (++i) {\n var c = str.charAt(i);\n if (',' === c) break;\n p.nsp += c;\n if (i === str.length) break;\n }\n } else {\n p.nsp = '/';\n }\n\n // look up id\n var next = str.charAt(i + 1);\n if ('' !== next && Number(next) == next) {\n p.id = '';\n while (++i) {\n var c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n p.id += str.charAt(i);\n if (i === str.length) break;\n }\n p.id = Number(p.id);\n }\n\n // look up json data\n if (str.charAt(++i)) {\n p = tryParse(p, str.substr(i));\n }\n\n debug('decoded %s as %j', str, p);\n return p;\n}\n\nfunction tryParse(p, str) {\n try {\n p.data = JSON.parse(str);\n } catch(e){\n return error();\n }\n return p; \n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n this.reconPack = packet;\n this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n this.reconPack = null;\n this.buffers = [];\n};\n\nfunction error() {\n return {\n type: exports.ERROR,\n data: 'parser error'\n };\n}\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {// browser shim for xmlhttprequest module\n\nvar hasCORS = __webpack_require__(113);\n\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) { }\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) { }\n\n if (!xdomain) {\n try {\n return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) { }\n }\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Module dependencies.\n */\n\nvar parser = __webpack_require__(20);\nvar Emitter = __webpack_require__(19);\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n this.path = opts.path;\n this.hostname = opts.hostname;\n this.port = opts.port;\n this.secure = opts.secure;\n this.query = opts.query;\n this.timestampParam = opts.timestampParam;\n this.timestampRequests = opts.timestampRequests;\n this.readyState = '';\n this.agent = opts.agent || false;\n this.socket = opts.socket;\n this.enablesXDR = opts.enablesXDR;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n this.forceNode = opts.forceNode;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n var err = new Error(msg);\n err.type = 'TransportError';\n err.description = desc;\n this.emit('error', err);\n return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n if ('closed' === this.readyState || '' === this.readyState) {\n this.readyState = 'opening';\n this.doOpen();\n }\n\n return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.doClose();\n this.onClose();\n }\n\n return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n if ('open' === this.readyState) {\n this.write(packets);\n } else {\n throw new Error('Transport not open');\n }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n this.readyState = 'open';\n this.writable = true;\n this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n var packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n this.readyState = 'closed';\n this.emit('close');\n};\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TimerObservable_1 = __webpack_require__(131);\nexports.timer = TimerObservable_1.TimerObservable.create;\n//# sourceMappingURL=timer.js.map\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar tap_1 = __webpack_require__(6);\r\nvar effects_1 = __webpack_require__(9);\r\n/**\r\n * Set the local client options\r\n * @param xs\r\n * @param inputs\r\n */\r\nfunction setOptionsEffect(xs, inputs) {\r\n return xs.pipe(tap_1.tap(function (options) { return inputs.option$.next(options); }), \r\n // map(() => consoleInfo('set options'))\r\n ignoreElements_1.ignoreElements());\r\n}\r\nexports.setOptionsEffect = setOptionsEffect;\r\nfunction setOptions(options) {\r\n return [effects_1.EffectNames.SetOptions, options];\r\n}\r\nexports.setOptions = setOptions;\r\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isScheduler_1 = __webpack_require__(27);\nvar of_1 = __webpack_require__(11);\nvar from_1 = __webpack_require__(83);\nvar concatAll_1 = __webpack_require__(143);\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from given\n * Observable and then moves on to the next.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * <img src=\"./img/concat.png\" width=\"100%\">\n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * @example <caption>Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10</caption>\n * var timer = Rx.Observable.interval(1000).take(4);\n * var sequence = Rx.Observable.range(1, 10);\n * var result = Rx.Observable.concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n *\n *\n * @example <caption>Concatenate an array of 3 Observables</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var result = Rx.Observable.concat([timer1, timer2, timer3]); // note that array is passed\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n *\n *\n * @example <caption>Concatenate the same Observable to repeat it</caption>\n * const timer = Rx.Observable.interval(1000).take(2);\n *\n * Rx.Observable.concat(timer, timer) // concating the same Observable!\n * .subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('...and it is done!')\n * );\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // \"...and it is done!\" also after 4s\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n *\n * @param {ObservableInput} input1 An input Observable to concatenate with others.\n * @param {ObservableInput} input2 An input Observable to concatenate with others.\n * More than one input Observables may be given as argument.\n * @param {Scheduler} [scheduler=null] An optional IScheduler to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @static true\n * @name concat\n * @owner Observable\n */\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n if (observables.length === 1 || (observables.length === 2 && isScheduler_1.isScheduler(observables[1]))) {\n return from_1.from(observables[0]);\n }\n return concatAll_1.concatAll()(of_1.of.apply(void 0, observables));\n}\nexports.concat = concat;\n//# sourceMappingURL=concat.js.map\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar filter_1 = __webpack_require__(4);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar mergeMap_1 = __webpack_require__(17);\r\nvar concat_1 = __webpack_require__(50);\r\nvar of_1 = __webpack_require__(11);\r\nvar browser_reload_effect_1 = __webpack_require__(90);\r\nvar subscribeOn_1 = __webpack_require__(153);\r\nvar async_1 = __webpack_require__(74);\r\nfunction incomingBrowserReload(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$), filter_1.filter(function (_a) {\r\n var event = _a[0], options = _a[1];\r\n return options.codeSync;\r\n }), mergeMap_1.mergeMap(reloadBrowserSafe));\r\n}\r\nexports.incomingBrowserReload = incomingBrowserReload;\r\nfunction reloadBrowserSafe() {\r\n return concat_1.concat(\r\n /**\r\n * Emit a warning message allowing others to do some work\r\n */\r\n of_1.of(browser_reload_effect_1.preBrowserReload()), \r\n /**\r\n * On the next tick, perform the reload\r\n */\r\n of_1.of(browser_reload_effect_1.browserReload()).pipe(subscribeOn_1.subscribeOn(async_1.async)));\r\n}\r\nexports.reloadBrowserSafe = reloadBrowserSafe;\r\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isObject(x) {\n return x != null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) { throw err; },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* tslint:disable:no-empty */\nfunction noop() { }\nexports.noop = noop;\n//# sourceMappingURL=noop.js.map\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.isArrayLike = (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArrayLike.js.map\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\nexports.isPromise = isPromise;\n//# sourceMappingURL=isPromise.js.map\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\n/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n var src = str,\r\n b = str.indexOf('['),\r\n e = str.indexOf(']');\r\n\r\n if (b != -1 && e != -1) {\r\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n }\r\n\r\n var m = re.exec(str || ''),\r\n uri = {},\r\n i = 14;\r\n\r\n while (i--) {\r\n uri[parts[i]] = m[i] || '';\r\n }\r\n\r\n if (b != -1 && e != -1) {\r\n uri.source = src;\r\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n uri.ipv6uri = true;\r\n }\r\n\r\n return uri;\r\n};\r\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = __webpack_require__(108);\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n\n if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)\n ) {\n return true;\n }\n\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {\nmodule.exports = isBuf;\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n return (global.Buffer && global.Buffer.isBuffer(obj)) ||\n (global.ArrayBuffer && obj instanceof ArrayBuffer);\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/**\n * Module dependencies.\n */\n\nvar eio = __webpack_require__(111);\nvar Socket = __webpack_require__(66);\nvar Emitter = __webpack_require__(19);\nvar parser = __webpack_require__(45);\nvar on = __webpack_require__(67);\nvar bind = __webpack_require__(68);\nvar debug = __webpack_require__(10)('socket.io-client:manager');\nvar indexOf = __webpack_require__(65);\nvar Backoff = __webpack_require__(126);\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n if (!(this instanceof Manager)) return new Manager(uri, opts);\n if (uri && ('object' === typeof uri)) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n\n opts.path = opts.path || '/socket.io';\n this.nsps = {};\n this.subs = [];\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this.readyState = 'closed';\n this.uri = uri;\n this.connecting = [];\n this.lastPing = null;\n this.encoding = false;\n this.packetBuffer = [];\n var _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this.autoConnect = opts.autoConnect !== false;\n if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n }\n }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].id = this.generateId(nsp);\n }\n }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n if (!arguments.length) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n if (!arguments.length) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n this.backoff && this.backoff.setMin(v);\n return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n if (!arguments.length) return this._randomizationFactor;\n this._randomizationFactor = v;\n this.backoff && this.backoff.setJitter(v);\n return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n if (!arguments.length) return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n this.backoff && this.backoff.setMax(v);\n return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n // Only try to reconnect if it's the first time we're connecting\n if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n debug('readyState %s', this.readyState);\n if (~this.readyState.indexOf('open')) return this;\n\n debug('opening %s', this.uri);\n this.engine = eio(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this.readyState = 'opening';\n this.skipReconnect = false;\n\n // emit `open`\n var openSub = on(socket, 'open', function () {\n self.onopen();\n fn && fn();\n });\n\n // emit `connect_error`\n var errorSub = on(socket, 'error', function (data) {\n debug('connect_error');\n self.cleanup();\n self.readyState = 'closed';\n self.emitAll('connect_error', data);\n if (fn) {\n var err = new Error('Connection error');\n err.data = data;\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n\n // emit `connect_timeout`\n if (false !== this._timeout) {\n var timeout = this._timeout;\n debug('connect attempt will timeout after %d', timeout);\n\n // set timer\n var timer = setTimeout(function () {\n debug('connect attempt timed out after %d', timeout);\n openSub.destroy();\n socket.close();\n socket.emit('error', 'timeout');\n self.emitAll('connect_timeout', timeout);\n }, timeout);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n\n this.subs.push(openSub);\n this.subs.push(errorSub);\n\n return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n debug('open');\n\n // clear old subs\n this.cleanup();\n\n // mark as open\n this.readyState = 'open';\n this.emit('open');\n\n // add new subs\n var socket = this.engine;\n this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n this.lastPing = new Date();\n this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n debug('error', err);\n this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n var socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n var self = this;\n socket.on('connecting', onConnecting);\n socket.on('connect', function () {\n socket.id = self.generateId(nsp);\n });\n\n if (this.autoConnect) {\n // manually call here since connecting event is fired before listening\n onConnecting();\n }\n }\n\n function onConnecting () {\n if (!~indexOf(self.connecting, socket)) {\n self.connecting.push(socket);\n }\n }\n\n return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n var index = indexOf(this.connecting, socket);\n if (~index) this.connecting.splice(index, 1);\n if (this.connecting.length) return;\n\n this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n debug('writing packet %j', packet);\n var self = this;\n if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n if (!self.encoding) {\n // encode, then write to engine with result\n self.encoding = true;\n this.encoder.encode(packet, function (encodedPackets) {\n for (var i = 0; i < encodedPackets.length; i++) {\n self.engine.write(encodedPackets[i], packet.options);\n }\n self.encoding = false;\n self.processPacketQueue();\n });\n } else { // add packet to the queue\n self.packetBuffer.push(packet);\n }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var pack = this.packetBuffer.shift();\n this.packet(pack);\n }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n debug('cleanup');\n\n var subsLength = this.subs.length;\n for (var i = 0; i < subsLength; i++) {\n var sub = this.subs.shift();\n sub.destroy();\n }\n\n this.packetBuffer = [];\n this.encoding = false;\n this.lastPing = null;\n\n this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n debug('disconnect');\n this.skipReconnect = true;\n this.reconnecting = false;\n if ('opening' === this.readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this.readyState = 'closed';\n if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n debug('onclose');\n\n this.cleanup();\n this.backoff.reset();\n this.readyState = 'closed';\n this.emit('close', reason);\n\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n\n var self = this;\n\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug('reconnect failed');\n this.backoff.reset();\n this.emitAll('reconnect_failed');\n this.reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n debug('will wait %dms before reconnect attempt', delay);\n\n this.reconnecting = true;\n var timer = setTimeout(function () {\n if (self.skipReconnect) return;\n\n debug('attempting reconnect');\n self.emitAll('reconnect_attempt', self.backoff.attempts);\n self.emitAll('reconnecting', self.backoff.attempts);\n\n // check again for the case socket closed in above events\n if (self.skipReconnect) return;\n\n self.open(function (err) {\n if (err) {\n debug('reconnect attempt error');\n self.reconnecting = false;\n self.reconnect();\n self.emitAll('reconnect_error', err.data);\n } else {\n debug('reconnect success');\n self.onreconnect();\n }\n });\n }, delay);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n var attempt = this.backoff.attempts;\n this.reconnecting = false;\n this.backoff.reset();\n this.updateSocketIds();\n this.emitAll('reconnect', attempt);\n};\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = __webpack_require__(46);\nvar XHR = __webpack_require__(114);\nvar JSONP = __webpack_require__(122);\nvar websocket = __webpack_require__(123);\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n var xhr;\n var xd = false;\n var xs = false;\n var jsonp = false !== opts.jsonp;\n\n if (global.location) {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n\n if ('open' in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error('JSONP disabled');\n return new JSONP(opts);\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Module dependencies.\n */\n\nvar Transport = __webpack_require__(47);\nvar parseqs = __webpack_require__(33);\nvar parser = __webpack_require__(20);\nvar inherit = __webpack_require__(34);\nvar yeast = __webpack_require__(64);\nvar debug = __webpack_require__(10)('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = __webpack_require__(46);\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState) {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n\n function close () {\n debug('writing close packet');\n self.write([{ type: 'close' }]);\n }\n\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n ('http' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n , length = 64\n , map = {}\n , seed = 0\n , i = 0\n , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n var encoded = '';\n\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n\n return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n var decoded = 0;\n\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n\n return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n var now = encode(+new Date());\n\n if (now !== prev) return seed = 0, prev = now;\n return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports) {\n\n\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/**\n * Module dependencies.\n */\n\nvar parser = __webpack_require__(45);\nvar Emitter = __webpack_require__(19);\nvar toArray = __webpack_require__(125);\nvar on = __webpack_require__(67);\nvar bind = __webpack_require__(68);\nvar debug = __webpack_require__(10)('socket.io-client:socket');\nvar parseqs = __webpack_require__(33);\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n if (this.subs) return;\n\n var io = this.io;\n this.subs = [\n on(io, 'open', bind(this, 'onopen')),\n on(io, 'packet', bind(this, 'onpacket')),\n on(io, 'close', bind(this, 'onclose'))\n ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n if (this.connected) return this;\n\n this.subEvents();\n this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n\n var args = toArray(arguments);\n var packet = { type: parser.EVENT, data: args };\n\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n\n delete this.flags;\n\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n debug('transport is open - connecting');\n\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({type: parser.CONNECT, query: query});\n } else {\n this.packet({type: parser.CONNECT});\n }\n }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n if (packet.nsp !== this.nsp) return;\n\n switch (packet.type) {\n case parser.CONNECT:\n this.onconnect();\n break;\n\n case parser.EVENT:\n this.onevent(packet);\n break;\n\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n\n case parser.ACK:\n this.onack(packet);\n break;\n\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n\n self.packet({\n type: parser.ACK,\n id: id,\n data: args\n });\n };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n this.connected = true;\n this.disconnected = false;\n this.emit('connect');\n this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n var i;\n for (i = 0; i < this.receiveBuffer.length; i++) {\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n\n for (i = 0; i < this.sendBuffer.length; i++) {\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for (var i = 0; i < this.subs.length; i++) {\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n\n this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({ type: parser.DISCONNECT });\n }\n\n // remove socket from pool\n this.destroy();\n\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n this.flags = this.flags || {};\n this.flags.compress = compress;\n return this;\n};\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports) {\n\n\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n obj.on(ev, fn);\n return {\n destroy: function () {\n obj.removeListener(ev, fn);\n }\n };\n}\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports) {\n\n/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n if ('string' == typeof fn) fn = obj[fn];\n if ('function' != typeof fn) throw new Error('bind() requires a function');\n var args = slice.call(arguments, 2);\n return function(){\n return fn.apply(obj, args.concat(slice.call(arguments)));\n }\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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};\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nvar ObjectUnsubscribedError = (function (_super) {\n __extends(ObjectUnsubscribedError, _super);\n function ObjectUnsubscribedError() {\n var err = _super.call(this, 'object unsubscribed');\n this.name = err.name = 'ObjectUnsubscribedError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return ObjectUnsubscribedError;\n}(Error));\nexports.ObjectUnsubscribedError = ObjectUnsubscribedError;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar multicast_1 = __webpack_require__(128);\nvar refCount_1 = __webpack_require__(71);\nvar Subject_1 = __webpack_require__(35);\nfunction shareSubjectFactory() {\n return new Subject_1.Subject();\n}\n/**\n * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one\n * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will\n * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.\n * This is an alias for .multicast(() => new Subject()).refCount().\n *\n * <img src=\"./img/share.png\" width=\"100%\">\n *\n * @return {Observable<T>} An Observable that upon connection causes the source Observable to emit items to its Observers.\n * @method share\n * @owner Observable\n */\nfunction share() {\n return function (source) { return refCount_1.refCount()(multicast_1.multicast(shareSubjectFactory)(source)); };\n}\nexports.share = share;\n;\n//# sourceMappingURL=share.js.map\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\nfunction refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nexports.refCount = refCount;\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n _super.call(this, destination);\n this.connectable = connectable;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // Observable.range(0, 10)\n // .publish()\n // .refCount()\n // .take(5)\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=refCount.js.map\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar map_1 = __webpack_require__(2);\r\nvar tap_1 = __webpack_require__(6);\r\nvar dom_effects_1 = __webpack_require__(21);\r\nvar Log = __webpack_require__(16);\r\nfunction propSetDomEffect(xs) {\r\n return xs.pipe(tap_1.tap(function (event) {\r\n var target = event.target, prop = event.prop, value = event.value;\r\n target[prop] = value;\r\n }), map_1.map(function (e) {\r\n return Log.consoleInfo(\"[PropSet]\", e.target, e.prop + \" = \" + e.pathname);\r\n }));\r\n}\r\nexports.propSetDomEffect = propSetDomEffect;\r\nfunction propSet(incoming) {\r\n return [dom_effects_1.Events.PropSet, incoming];\r\n}\r\nexports.propSet = propSet;\r\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar isArray_1 = __webpack_require__(28);\nfunction isNumeric(val) {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n return !isArray_1.isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\nexports.isNumeric = isNumeric;\n;\n//# sourceMappingURL=isNumeric.js.map\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar AsyncAction_1 = __webpack_require__(75);\nvar AsyncScheduler_1 = __webpack_require__(76);\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asap} scheduler.\n *\n * @example <caption>Use async scheduler to delay task</caption>\n * const task = () => console.log('it works!');\n *\n * Rx.Scheduler.async.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n *\n *\n * @example <caption>Use async scheduler to repeat task in intervals</caption>\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * Rx.Scheduler.async.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n *\n * @static true\n * @name async\n * @owner Scheduler\n */\nexports.async = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction);\n//# sourceMappingURL=async.js.map\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 root_1 = __webpack_require__(8);\nvar Action_1 = __webpack_require__(132);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n _super.call(this, scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n // Always replace the current state with the new state.\n this.state = state;\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n var id = this.id;\n var scheduler = this.scheduler;\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return root_1.root.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n return root_1.root.clearInterval(id) && undefined || undefined;\n };\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action_1.Action));\nexports.AsyncAction = AsyncAction;\n//# sourceMappingURL=AsyncAction.js.map\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Scheduler_1 = __webpack_require__(133);\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler() {\n _super.apply(this, arguments);\n this.actions = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n */\n this.active = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n */\n this.scheduled = undefined;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift()); // exhaust the scheduler queue\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler_1.Scheduler));\nexports.AsyncScheduler = AsyncScheduler;\n//# sourceMappingURL=AsyncScheduler.js.map\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar map_1 = __webpack_require__(2);\r\nvar dom_effects_1 = __webpack_require__(21);\r\nvar tap_1 = __webpack_require__(6);\r\nvar Log = __webpack_require__(16);\r\nfunction styleSetDomEffect(xs) {\r\n return xs.pipe(tap_1.tap(function (event) {\r\n var style = event.style, styleName = event.styleName, newValue = event.newValue;\r\n style[styleName] = newValue;\r\n }), map_1.map(function (e) { return Log.consoleInfo(\"[StyleSet] \" + e.styleName + \" = \" + e.pathName); }));\r\n}\r\nexports.styleSetDomEffect = styleSetDomEffect;\r\nfunction styleSet(incoming) {\r\n return [dom_effects_1.Events.StyleSet, incoming];\r\n}\r\nexports.styleSet = styleSet;\r\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar map_1 = __webpack_require__(2);\r\nvar filter_1 = __webpack_require__(4);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar Log = __webpack_require__(16);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar dom_effects_1 = __webpack_require__(21);\r\nfunction linkReplaceDomEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"injectNotification\"))), filter_1.filter(function (_a) {\r\n var inject = _a[1];\r\n return inject;\r\n }), map_1.map(function (_a) {\r\n var incoming = _a[0], inject = _a[1];\r\n var message = \"[LinkReplace] \" + incoming.basename;\r\n if (inject === \"overlay\") {\r\n return Log.overlayInfo(message);\r\n }\r\n return Log.consoleInfo(message);\r\n }));\r\n}\r\nexports.linkReplaceDomEffect = linkReplaceDomEffect;\r\nfunction linkReplace(incoming) {\r\n return [dom_effects_1.Events.LinkReplace, incoming];\r\n}\r\nexports.linkReplace = linkReplace;\r\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar tap_1 = __webpack_require__(6);\r\nvar dom_effects_1 = __webpack_require__(21);\r\nfunction setScroll(x, y) {\r\n return [dom_effects_1.Events.SetScroll, { x: x, y: y }];\r\n}\r\nexports.setScroll = setScroll;\r\nfunction setScrollDomEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\r\n var event = _a[0], window = _a[1];\r\n return window.scrollTo(event.x, event.y);\r\n }), ignoreElements_1.ignoreElements());\r\n}\r\nexports.setScrollDomEffect = setScrollDomEffect;\r\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar tap_1 = __webpack_require__(6);\r\nvar dom_effects_1 = __webpack_require__(21);\r\nfunction setWindowNameDomEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\r\n var value = _a[0], window = _a[1];\r\n return (window.name = value);\r\n }), ignoreElements_1.ignoreElements());\r\n}\r\nexports.setWindowNameDomEffect = setWindowNameDomEffect;\r\nfunction setWindowName(incoming) {\r\n return [dom_effects_1.Events.SetWindowName, incoming];\r\n}\r\nexports.setWindowName = setWindowName;\r\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar effects_1 = __webpack_require__(9);\r\nfunction outgoing(data, tagName, index, mappingIndex) {\r\n if (mappingIndex === void 0) { mappingIndex = -1; }\r\n return [\r\n socket_messages_1.OutgoingSocketEvents.Scroll,\r\n { position: data, tagName: tagName, index: index, mappingIndex: mappingIndex }\r\n ];\r\n}\r\nexports.outgoing = outgoing;\r\nfunction incomingScrollHandler(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"scroll\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\r\n var event = _a[0], canScroll = _a[1], pathname = _a[2];\r\n return canScroll && event.pathname === pathname;\r\n }), map_1.map(function (_a) {\r\n var event = _a[0];\r\n return [effects_1.EffectNames.BrowserSetScroll, event];\r\n }));\r\n}\r\nexports.incomingScrollHandler = incomingScrollHandler;\r\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar effects_1 = __webpack_require__(9);\r\nvar Reloader_1 = __webpack_require__(136);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar mergeMap_1 = __webpack_require__(17);\r\nfunction fileReload(event) {\r\n return [effects_1.EffectNames.FileReload, event];\r\n}\r\nexports.fileReload = fileReload;\r\n/**\r\n * Attempt to reload files in place\r\n * @param xs\r\n * @param inputs\r\n */\r\nfunction fileReloadEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$, inputs.document$, inputs.navigator$), mergeMap_1.mergeMap(function (_a) {\r\n var event = _a[0], options = _a[1], document = _a[2], navigator = _a[3];\r\n return Reloader_1.reload(document, navigator)(event, {\r\n tagNames: options.tagNames,\r\n liveCSS: true,\r\n liveImg: true\r\n });\r\n }));\r\n}\r\nexports.fileReloadEffect = fileReloadEffect;\r\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar FromObservable_1 = __webpack_require__(137);\nexports.from = FromObservable_1.FromObservable.create;\n//# sourceMappingURL=from.js.map\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar mergeMap_1 = __webpack_require__(17);\nvar identity_1 = __webpack_require__(144);\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * <img src=\"./img/mergeAll.png\" width=\"100%\">\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * @example <caption>Spawn a new interval Observable for each click event, and blend their outputs as one Observable</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000));\n * var firstOrder = higherOrder.mergeAll();\n * firstOrder.subscribe(x => console.log(x));\n *\n * @example <caption>Count from 0 to 9 every second for each click, but only allow 2 concurrent timers</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(10));\n * var firstOrder = higherOrder.mergeAll(2);\n * firstOrder.subscribe(x => console.log(x));\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switch}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap_1.mergeMap(identity_1.identity, null, concurrent);\n}\nexports.mergeAll = mergeAll;\n//# sourceMappingURL=mergeAll.js.map\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * <span class=\"informal\">Like {@link map}, but it maps every source value to\n * the same output value every time.</span>\n *\n * <img src=\"./img/mapTo.png\" width=\"100%\">\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * @example <caption>Map every click to the string 'Hi'</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var greetings = clicks.mapTo('Hi');\n * greetings.subscribe(x => console.log(x));\n *\n * @see {@link map}\n *\n * @param {any} value The value to map each source value to.\n * @return {Observable} An Observable that emits the given `value` every time\n * the source Observable emits something.\n * @method mapTo\n * @owner Observable\n */\nfunction mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nexports.mapTo = mapTo;\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MapToSubscriber = (function (_super) {\n __extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n _super.call(this, destination);\n this.value = value;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=mapTo.js.map\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar tap_1 = __webpack_require__(6);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar effects_1 = __webpack_require__(9);\r\nfunction browserSetLocationEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\r\n var event = _a[0], window = _a[1];\r\n if (event.path) {\r\n return (window.location =\r\n window.location.protocol +\r\n \"//\" +\r\n window.location.host +\r\n event.path);\r\n }\r\n if (event.url) {\r\n return (window.location = event.url);\r\n }\r\n }), ignoreElements_1.ignoreElements());\r\n}\r\nexports.browserSetLocationEffect = browserSetLocationEffect;\r\nfunction browserSetLocation(input) {\r\n return [effects_1.EffectNames.BrowserSetLocation, input];\r\n}\r\nexports.browserSetLocation = browserSetLocation;\r\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar tap_1 = __webpack_require__(6);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar effects_1 = __webpack_require__(9);\r\nfunction simulateClickEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$, inputs.document$), tap_1.tap(function (_a) {\r\n var event = _a[0], window = _a[1], document = _a[2];\r\n var elems = document.getElementsByTagName(event.tagName);\r\n var match = elems[event.index];\r\n if (match) {\r\n if (document.createEvent) {\r\n window.setTimeout(function () {\r\n var evObj = document.createEvent(\"MouseEvents\");\r\n evObj.initEvent(\"click\", true, true);\r\n match.dispatchEvent(evObj);\r\n }, 0);\r\n }\r\n else {\r\n window.setTimeout(function () {\r\n if (document.createEventObject) {\r\n var evObj = document.createEventObject();\r\n evObj.cancelBubble = true;\r\n match.fireEvent(\"on\" + \"click\", evObj);\r\n }\r\n }, 0);\r\n }\r\n }\r\n }), ignoreElements_1.ignoreElements());\r\n}\r\nexports.simulateClickEffect = simulateClickEffect;\r\nfunction simulateClick(event) {\r\n return [effects_1.EffectNames.SimulateClick, event];\r\n}\r\nexports.simulateClick = simulateClick;\r\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tap_1 = __webpack_require__(6);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar effects_1 = __webpack_require__(9);\r\nfunction setElementValueEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.document$), tap_1.tap(function (_a) {\r\n var event = _a[0], document = _a[1];\r\n var elems = document.getElementsByTagName(event.tagName);\r\n var match = elems[event.index];\r\n if (match) {\r\n match.value = event.value;\r\n }\r\n }));\r\n}\r\nexports.setElementValueEffect = setElementValueEffect;\r\nfunction setElementValue(event) {\r\n return [effects_1.EffectNames.SetElementValue, event];\r\n}\r\nexports.setElementValue = setElementValue;\r\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tap_1 = __webpack_require__(6);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar effects_1 = __webpack_require__(9);\r\nfunction setElementToggleValueEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.document$), tap_1.tap(function (_a) {\r\n var event = _a[0], document = _a[1];\r\n var elems = document.getElementsByTagName(event.tagName);\r\n var match = elems[event.index];\r\n if (match) {\r\n if (event.type === \"radio\") {\r\n match.checked = true;\r\n }\r\n if (event.type === \"checkbox\") {\r\n match.checked = event.checked;\r\n }\r\n if (event.tagName === \"SELECT\") {\r\n match.value = event.value;\r\n }\r\n }\r\n }));\r\n}\r\nexports.setElementToggleValueEffect = setElementToggleValueEffect;\r\nfunction setElementToggleValue(event) {\r\n return [effects_1.EffectNames.SetElementToggleValue, event];\r\n}\r\nexports.setElementToggleValue = setElementToggleValue;\r\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar effects_1 = __webpack_require__(9);\r\nvar tap_1 = __webpack_require__(6);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nfunction browserReload() {\r\n return [effects_1.EffectNames.BrowserReload];\r\n}\r\nexports.browserReload = browserReload;\r\nfunction preBrowserReload() {\r\n return [effects_1.EffectNames.PreBrowserReload];\r\n}\r\nexports.preBrowserReload = preBrowserReload;\r\nfunction browserReloadEffect(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\r\n var window = _a[1];\r\n return window.location.reload(true);\r\n }));\r\n}\r\nexports.browserReloadEffect = browserReloadEffect;\r\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar simulate_click_effect_1 = __webpack_require__(87);\r\nfunction outgoing(data) {\r\n return [socket_messages_1.OutgoingSocketEvents.Click, data];\r\n}\r\nexports.outgoing = outgoing;\r\nfunction incomingHandler$(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"clicks\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\r\n var event = _a[0], canClick = _a[1], pathname = _a[2];\r\n return canClick && event.pathname === pathname;\r\n }), map_1.map(function (_a) {\r\n var event = _a[0];\r\n return simulate_click_effect_1.simulateClick(event);\r\n }));\r\n}\r\nexports.incomingHandler$ = incomingHandler$;\r\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar set_element_value_effect_1 = __webpack_require__(88);\r\nfunction outgoing(element, value) {\r\n return [\r\n socket_messages_1.OutgoingSocketEvents.Keyup,\r\n __assign({}, element, { value: value })\r\n ];\r\n}\r\nexports.outgoing = outgoing;\r\nfunction incomingKeyupHandler(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"forms\", \"inputs\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\r\n var event = _a[0], canKeyup = _a[1], pathname = _a[2];\r\n return canKeyup && event.pathname === pathname;\r\n }), map_1.map(function (_a) {\r\n var event = _a[0];\r\n return set_element_value_effect_1.setElementValue(event);\r\n }));\r\n}\r\nexports.incomingKeyupHandler = incomingKeyupHandler;\r\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\n__webpack_require__(158);\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar set_element_toggle_value_effect_1 = __webpack_require__(89);\r\nfunction outgoing(element, props) {\r\n return [\r\n socket_messages_1.OutgoingSocketEvents.InputToggle,\r\n __assign({}, element, props)\r\n ];\r\n}\r\nexports.outgoing = outgoing;\r\nfunction incomingInputsToggles(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"forms\", \"toggles\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\r\n var toggles = _a[1];\r\n return toggles === true;\r\n }), map_1.map(function (_a) {\r\n var event = _a[0];\r\n return set_element_toggle_value_effect_1.setElementToggleValue(event);\r\n }));\r\n}\r\nexports.incomingInputsToggles = incomingInputsToggles;\r\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(96);\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar zip_1 = __webpack_require__(97);\r\nvar socket_1 = __webpack_require__(103);\r\nvar notify_1 = __webpack_require__(130);\r\nvar dom_effects_1 = __webpack_require__(21);\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar merge_1 = __webpack_require__(36);\r\nvar log_1 = __webpack_require__(16);\r\nvar effects_1 = __webpack_require__(9);\r\nvar scroll_restore_1 = __webpack_require__(164);\r\nvar listeners_1 = __webpack_require__(165);\r\nvar groupBy_1 = __webpack_require__(171);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar mergeMap_1 = __webpack_require__(17);\r\nvar share_1 = __webpack_require__(70);\r\nvar filter_1 = __webpack_require__(4);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar of_1 = __webpack_require__(11);\r\nvar window$ = socket_1.initWindow();\r\nvar document$ = socket_1.initDocument();\r\nvar _a = socket_1.initSocket(), socket$ = _a.socket$, io$ = _a.io$;\r\nvar option$ = socket_1.initOptions();\r\nvar navigator$ = of_1.of(navigator);\r\nvar notifyElement$ = notify_1.initNotify(option$.getValue());\r\nvar logInstance$ = log_1.initLogger(option$.getValue());\r\nvar outgoing$ = listeners_1.initListeners(window, document, socket$, option$);\r\nvar inputs = {\r\n window$: window$,\r\n document$: document$,\r\n socket$: socket$,\r\n option$: option$,\r\n navigator$: navigator$,\r\n notifyElement$: notifyElement$,\r\n logInstance$: logInstance$,\r\n io$: io$,\r\n outgoing$: outgoing$\r\n};\r\nfunction getStream(name, inputs) {\r\n return function (handlers$, inputStream$) {\r\n return inputStream$.pipe(groupBy_1.groupBy(function (_a) {\r\n var keyName = _a[0];\r\n return keyName;\r\n }), withLatestFrom_1.withLatestFrom(handlers$), filter_1.filter(function (_a) {\r\n var x = _a[0], handlers = _a[1];\r\n return typeof handlers[x.key] === \"function\";\r\n }), mergeMap_1.mergeMap(function (_a) {\r\n var x = _a[0], handlers = _a[1];\r\n return handlers[x.key](x.pipe(pluck_1.pluck(String(1))), inputs);\r\n }), share_1.share());\r\n };\r\n}\r\nvar combinedEffectHandler$ = zip_1.zip(effects_1.effectOutputHandlers$, scroll_restore_1.scrollRestoreHandlers$, function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return args.reduce(function (acc, item) { return (__assign({}, acc, item)); }, {});\r\n});\r\nvar output$ = getStream(\"[socket]\", inputs)(socket_messages_1.socketHandlers$, merge_1.merge(inputs.socket$, outgoing$));\r\nvar effect$ = getStream(\"[effect]\", inputs)(combinedEffectHandler$, output$);\r\nvar dom$ = getStream(\"[dom-effect]\", inputs)(dom_effects_1.domHandlers$, effect$);\r\nvar merged$ = merge_1.merge(output$, effect$, dom$);\r\nvar log$ = getStream(\"[log]\", inputs)(log_1.logHandler$, merged$);\r\nlog$.subscribe();\r\n// resume$.next(true);\r\n// var socket = require(\"./socket\");\r\n// var shims = require(\"./client-shims\");\r\n// var notify = require(\"./notify\");\r\n// // var codeSync = require(\"./code-sync\");\r\n// const { BrowserSync } = require(\"./browser-sync\");\r\n// var ghostMode = require(\"./ghostmode\");\r\n// var events = require(\"./events\");\r\n// var utils = require(\"./browser.utils\");\r\n//\r\n// const mitt = require(\"mitt\").default;\r\n//\r\n// var shouldReload = false;\r\n// var initialised = false;\r\n//\r\n// /**\r\n// * @param options\r\n// */\r\n// function init(options: bs.InitOptions) {\r\n// if (shouldReload && options.reloadOnRestart) {\r\n// utils.reloadBrowser();\r\n// }\r\n//\r\n// var BS = window.___browserSync___ || {};\r\n// var emitter = mitt();\r\n//\r\n// if (!BS.client) {\r\n// BS.client = true;\r\n//\r\n// var browserSync = new BrowserSync({ options, emitter, socket });\r\n//\r\n// // codeSync.init(browserSync);\r\n//\r\n// // // Always init on page load\r\n// // ghostMode.init(browserSync);\r\n// //\r\n// // notify.init(browserSync);\r\n// //\r\n// // if (options.notify) {\r\n// // notify.flash(\"Connected to BrowserSync\");\r\n// // }\r\n// }\r\n//\r\n// // if (!initialised) {\r\n// // socket.on(\"disconnect\", function() {\r\n// // if (options.notify) {\r\n// // notify.flash(\"Disconnected from BrowserSync\");\r\n// // }\r\n// // shouldReload = true;\r\n// // });\r\n// // initialised = true;\r\n// // }\r\n// }\r\n//\r\n// /**\r\n// * Handle individual socket connections\r\n// */\r\n// socket.on(\"connection\", init);\r\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar zip_1 = __webpack_require__(98);\nexports.zip = zip_1.zipStatic;\n//# sourceMappingURL=zip.js.map\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 ArrayObservable_1 = __webpack_require__(25);\nvar isArray_1 = __webpack_require__(28);\nvar Subscriber_1 = __webpack_require__(3);\nvar OuterSubscriber_1 = __webpack_require__(30);\nvar subscribeToResult_1 = __webpack_require__(31);\nvar iterator_1 = __webpack_require__(32);\n/* tslint:enable:max-line-length */\n/**\n * @param observables\n * @return {Observable<R>}\n * @method zip\n * @owner Observable\n */\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\nexports.zip = zip;\n/* tslint:enable:max-line-length */\n/**\n * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each\n * of its input Observables.\n *\n * If the latest parameter is a function, this function is used to compute the created value from the input values.\n * Otherwise, an array of the input values is returned.\n *\n * @example <caption>Combine age and name from different sources</caption>\n *\n * let age$ = Observable.of<number>(27, 25, 29);\n * let name$ = Observable.of<string>('Foo', 'Bar', 'Beer');\n * let isDev$ = Observable.of<boolean>(true, true, false);\n *\n * Observable\n * .zip(age$,\n * name$,\n * isDev$,\n * (age: number, name: string, isDev: boolean) => ({ age, name, isDev }))\n * .subscribe(x => console.log(x));\n *\n * // outputs\n * // { age: 27, name: 'Foo', isDev: true }\n * // { age: 25, name: 'Bar', isDev: true }\n * // { age: 29, name: 'Beer', isDev: false }\n *\n * @param observables\n * @return {Observable<R>}\n * @static true\n * @name zip\n * @owner Observable\n */\nfunction zipStatic() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n var project = observables[observables.length - 1];\n if (typeof project === 'function') {\n observables.pop();\n }\n return new ArrayObservable_1.ArrayObservable(observables).lift(new ZipOperator(project));\n}\nexports.zipStatic = zipStatic;\nvar ZipOperator = (function () {\n function ZipOperator(project) {\n this.project = project;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.project));\n };\n return ZipOperator;\n}());\nexports.ZipOperator = ZipOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ZipSubscriber = (function (_super) {\n __extends(ZipSubscriber, _super);\n function ZipSubscriber(destination, project, values) {\n if (values === void 0) { values = Object.create(null); }\n _super.call(this, destination);\n this.iterators = [];\n this.active = 0;\n this.project = (typeof project === 'function') ? project : null;\n this.values = values;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (isArray_1.isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[iterator_1.iterator] === 'function') {\n iterators.push(new StaticIterator(value[iterator_1.iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n this.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--; // not an observable\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n // abort if not all of them have values\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n // check to see if it's completed now that you've gotten\n // the next value.\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.project) {\n this._tryProject(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(Subscriber_1.Subscriber));\nexports.ZipSubscriber = ZipSubscriber;\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[iterator_1.iterator] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ZipBufferIterator = (function (_super) {\n __extends(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n _super.call(this, destination);\n this.parent = parent;\n this.observable = observable;\n this.stillUnsubscribed = true;\n this.buffer = [];\n this.isComplete = false;\n }\n ZipBufferIterator.prototype[iterator_1.iterator] = function () {\n return this;\n };\n // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next\n // this is legit because `next()` will never be called by a subscription in this case.\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return subscribeToResult_1.subscribeToResult(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=zip.js.map\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Subscriber_1 = __webpack_require__(3);\nvar rxSubscriber_1 = __webpack_require__(42);\nvar Observer_1 = __webpack_require__(53);\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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};\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nvar UnsubscriptionError = (function (_super) {\n __extends(UnsubscriptionError, _super);\n function UnsubscriptionError(errors) {\n _super.call(this);\n this.errors = errors;\n var err = Error.call(this, errors ?\n errors.length + \" errors occurred during unsubscription:\\n \" + errors.map(function (err, i) { return ((i + 1) + \") \" + err.toString()); }).join('\\n ') : '');\n this.name = err.name = 'UnsubscriptionError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return UnsubscriptionError;\n}(Error));\nexports.UnsubscriptionError = UnsubscriptionError;\n//# sourceMappingURL=UnsubscriptionError.js.map\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar noop_1 = __webpack_require__(54);\n/* tslint:enable:max-line-length */\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i - 0] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexports.pipe = pipe;\n/* @internal */\nfunction pipeFromArray(fns) {\n if (!fns) {\n return noop_1.noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\nexports.pipeFromArray = pipeFromArray;\n//# sourceMappingURL=pipe.js.map\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerSubscriber = (function (_super) {\n __extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n _super.call(this);\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber_1.Subscriber));\nexports.InnerSubscriber = InnerSubscriber;\n//# sourceMappingURL=InnerSubscriber.js.map\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar socket = __webpack_require__(104);\r\nvar Observable_1 = __webpack_require__(1);\r\nvar BehaviorSubject_1 = __webpack_require__(15);\r\nvar of_1 = __webpack_require__(11);\r\nvar share_1 = __webpack_require__(70);\r\n/**\r\n * Alias for socket.emit\r\n * @param name\r\n * @param data\r\n */\r\n// export function emit(name, data) {\r\n// if (io && io.emit) {\r\n// // send relative path of where the event is sent\r\n// data.url = window.location.pathname;\r\n// io.emit(name, data);\r\n// }\r\n// }\r\n//\r\n// /**\r\n// * Alias for socket.on\r\n// * @param name\r\n// * @param func\r\n// */\r\n// export function on(name, func) {\r\n// io.on(name, func);\r\n// }\r\nfunction initWindow() {\r\n return of_1.of(window);\r\n}\r\nexports.initWindow = initWindow;\r\nfunction initDocument() {\r\n return of_1.of(document);\r\n}\r\nexports.initDocument = initDocument;\r\nfunction initNavigator() {\r\n return of_1.of(navigator);\r\n}\r\nexports.initNavigator = initNavigator;\r\nfunction initOptions() {\r\n return new BehaviorSubject_1.BehaviorSubject(window.___browserSync___.options);\r\n}\r\nexports.initOptions = initOptions;\r\nfunction initSocket() {\r\n /**\r\n * @type {{emit: emit, on: on}}\r\n */\r\n var socketConfig = window.___browserSync___.socketConfig;\r\n var socketUrl = window.___browserSync___.socketUrl;\r\n var io = socket(socketUrl, socketConfig);\r\n var onevent = io.onevent;\r\n var socket$ = Observable_1.Observable.create(function (obs) {\r\n io.onevent = function (packet) {\r\n onevent.call(this, packet);\r\n obs.next(packet.data);\r\n };\r\n }).pipe(share_1.share());\r\n var io$ = new BehaviorSubject_1.BehaviorSubject(io);\r\n /**\r\n * *****BACK-COMPAT*******\r\n * Scripts that come after Browsersync may rely on the previous window.___browserSync___.socket\r\n */\r\n window.___browserSync___.socket = io;\r\n return { socket$: socket$, io$: io$ };\r\n}\r\nexports.initSocket = initSocket;\r\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/**\n * Module dependencies.\n */\n\nvar url = __webpack_require__(105);\nvar parser = __webpack_require__(45);\nvar Manager = __webpack_require__(61);\nvar debug = __webpack_require__(10)('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] ||\n false === opts.multiplex || sameNamespace;\n\n var io;\n\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = __webpack_require__(61);\nexports.Socket = __webpack_require__(66);\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {\n/**\n * Module dependencies.\n */\n\nvar parseuri = __webpack_require__(57);\nvar debug = __webpack_require__(10)('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n var obj = uri;\n\n // default to window.location\n loc = loc || global.location;\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n\n obj.path = obj.path || '/';\n\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n return obj;\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = __webpack_require__(107);\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\n/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = __webpack_require__(110);\nvar isBuf = __webpack_require__(60);\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (isBuf(data)) {\n var placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for (var key in data) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (data && data._placeholder) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else if (isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for (var key in data) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n\n return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n\n // convert any blob\n if ((withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)) {\n pendingBlobs++;\n\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function() { // this.result == arraybuffer\n if (containingObject) {\n containingObject[curKey] = this.result;\n }\n else {\n bloblessData = this.result;\n }\n\n // if nothing pending its callback time\n if(! --pendingBlobs) {\n callback(bloblessData);\n }\n };\n\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) { // handle array\n for (var i = 0; i < obj.length; i++) {\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n for (var key in obj) {\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\nmodule.exports = __webpack_require__(112);\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = __webpack_require__(20);\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module dependencies.\n */\n\nvar transports = __webpack_require__(62);\nvar Emitter = __webpack_require__(19);\nvar debug = __webpack_require__(10)('engine.io-client:socket');\nvar index = __webpack_require__(65);\nvar parser = __webpack_require__(20);\nvar parseuri = __webpack_require__(57);\nvar parseqs = __webpack_require__(33);\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n opts = opts || {};\n\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = null;\n }\n\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n\n this.secure = null != opts.secure ? opts.secure\n : (global.location && 'https:' === location.protocol);\n\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? '443' : '80';\n }\n\n this.agent = opts.agent || false;\n this.hostname = opts.hostname ||\n (global.location ? location.hostname : 'localhost');\n this.port = opts.port || (global.location && location.port\n ? location.port\n : (this.secure ? 443 : 80));\n this.query = opts.query || {};\n if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n this.upgrade = false !== opts.upgrade;\n this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n this.forceJSONP = !!opts.forceJSONP;\n this.jsonp = false !== opts.jsonp;\n this.forceBase64 = !!opts.forceBase64;\n this.enablesXDR = !!opts.enablesXDR;\n this.timestampParam = opts.timestampParam || 't';\n this.timestampRequests = opts.timestampRequests;\n this.transports = opts.transports || ['polling', 'websocket'];\n this.transportOptions = opts.transportOptions || {};\n this.readyState = '';\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.policyPort = opts.policyPort || 843;\n this.rememberUpgrade = opts.rememberUpgrade || false;\n this.binaryType = null;\n this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n this.perMessageDeflate.threshold = 1024;\n }\n\n // SSL options for Node.js client\n this.pfx = opts.pfx || null;\n this.key = opts.key || null;\n this.passphrase = opts.passphrase || null;\n this.cert = opts.cert || null;\n this.ca = opts.ca || null;\n this.ciphers = opts.ciphers || null;\n this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n this.forceNode = !!opts.forceNode;\n\n // other options for Node.js client\n var freeGlobal = typeof global === 'object' && global;\n if (freeGlobal.global === freeGlobal) {\n if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n this.extraHeaders = opts.extraHeaders;\n }\n\n if (opts.localAddress) {\n this.localAddress = opts.localAddress;\n }\n }\n\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n\n // set on heartbeat\n this.pingIntervalTimer = null;\n this.pingTimeoutTimer = null;\n\n this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = __webpack_require__(47);\nSocket.transports = __webpack_require__(62);\nSocket.parser = __webpack_require__(20);\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n debug('creating transport \"%s\"', name);\n var query = clone(this.query);\n\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n\n // transport name\n query.transport = name;\n\n // per-transport options\n var options = this.transportOptions[name] || {};\n\n // session id if we already have one\n if (this.id) query.sid = this.id;\n\n var transport = new transports[name]({\n query: query,\n socket: this,\n agent: options.agent || this.agent,\n hostname: options.hostname || this.hostname,\n port: options.port || this.port,\n secure: options.secure || this.secure,\n path: options.path || this.path,\n forceJSONP: options.forceJSONP || this.forceJSONP,\n jsonp: options.jsonp || this.jsonp,\n forceBase64: options.forceBase64 || this.forceBase64,\n enablesXDR: options.enablesXDR || this.enablesXDR,\n timestampRequests: options.timestampRequests || this.timestampRequests,\n timestampParam: options.timestampParam || this.timestampParam,\n policyPort: options.policyPort || this.policyPort,\n pfx: options.pfx || this.pfx,\n key: options.key || this.key,\n passphrase: options.passphrase || this.passphrase,\n cert: options.cert || this.cert,\n ca: options.ca || this.ca,\n ciphers: options.ciphers || this.ciphers,\n rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n extraHeaders: options.extraHeaders || this.extraHeaders,\n forceNode: options.forceNode || this.forceNode,\n localAddress: options.localAddress || this.localAddress,\n requestTimeout: options.requestTimeout || this.requestTimeout,\n protocols: options.protocols || void (0)\n });\n\n return transport;\n};\n\nfunction clone (obj) {\n var o = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n var transport;\n if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n transport = 'websocket';\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n var self = this;\n setTimeout(function () {\n self.emit('error', 'No transports available');\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = 'opening';\n\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n\n transport.open();\n this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n debug('setting transport %s', transport.name);\n var self = this;\n\n if (this.transport) {\n debug('clearing existing transport %s', this.transport.name);\n this.transport.removeAllListeners();\n }\n\n // set up transport\n this.transport = transport;\n\n // set up transport listeners\n transport\n .on('drain', function () {\n self.onDrain();\n })\n .on('packet', function (packet) {\n self.onPacket(packet);\n })\n .on('error', function (e) {\n self.onError(e);\n })\n .on('close', function () {\n self.onClose('transport close');\n });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n debug('probing transport \"%s\"', name);\n var transport = this.createTransport(name, { probe: 1 });\n var failed = false;\n var self = this;\n\n Socket.priorWebsocketSuccess = false;\n\n function onTransportOpen () {\n if (self.onlyBinaryUpgrades) {\n var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n\n debug('probe transport \"%s\" opened', name);\n transport.send([{ type: 'ping', data: 'probe' }]);\n transport.once('packet', function (msg) {\n if (failed) return;\n if ('pong' === msg.type && 'probe' === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit('upgrading', transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function () {\n if (failed) return;\n if ('closed' === self.readyState) return;\n debug('changing transport and sending upgrade packet');\n\n cleanup();\n\n self.setTransport(transport);\n transport.send([{ type: 'upgrade' }]);\n self.emit('upgrade', transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n var err = new Error('probe error');\n err.transport = transport.name;\n self.emit('upgradeError', err);\n }\n });\n }\n\n function freezeTransport () {\n if (failed) return;\n\n // Any callback called by transport should be ignored since now\n failed = true;\n\n cleanup();\n\n transport.close();\n transport = null;\n }\n\n // Handle any error that happens while probing\n function onerror (err) {\n var error = new Error('probe error: ' + err);\n error.transport = transport.name;\n\n freezeTransport();\n\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n self.emit('upgradeError', error);\n }\n\n function onTransportClose () {\n onerror('transport closed');\n }\n\n // When the socket is closed while we're probing\n function onclose () {\n onerror('socket closed');\n }\n\n // When the socket is upgraded while we're probing\n function onupgrade (to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n\n // Remove all listeners on the transport and on self\n function cleanup () {\n transport.removeListener('open', onTransportOpen);\n transport.removeListener('error', onerror);\n transport.removeListener('close', onTransportClose);\n self.removeListener('close', onclose);\n self.removeListener('upgrading', onupgrade);\n }\n\n transport.once('open', onTransportOpen);\n transport.once('error', onerror);\n transport.once('close', onTransportClose);\n\n this.once('close', onclose);\n this.once('upgrading', onupgrade);\n\n transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n debug('socket open');\n this.readyState = 'open';\n Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n this.emit('open');\n this.flush();\n\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n debug('starting upgrade probes');\n for (var i = 0, l = this.upgrades.length; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n if ('opening' === this.readyState || 'open' === this.readyState ||\n 'closing' === this.readyState) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n this.emit('packet', packet);\n\n // Socket is live - any packet counts\n this.emit('heartbeat');\n\n switch (packet.type) {\n case 'open':\n this.onHandshake(JSON.parse(packet.data));\n break;\n\n case 'pong':\n this.setPing();\n this.emit('pong');\n break;\n\n case 'error':\n var err = new Error('server error');\n err.code = packet.data;\n this.onError(err);\n break;\n\n case 'message':\n this.emit('data', packet.data);\n this.emit('message', packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n this.emit('handshake', data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if ('closed' === this.readyState) return;\n this.setPing();\n\n // Prolong liveness of socket on heartbeat\n this.removeListener('heartbeat', this.onHeartbeat);\n this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n clearTimeout(this.pingTimeoutTimer);\n var self = this;\n self.pingTimeoutTimer = setTimeout(function () {\n if ('closed' === self.readyState) return;\n self.onClose('ping timeout');\n }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n var self = this;\n clearTimeout(self.pingIntervalTimer);\n self.pingIntervalTimer = setTimeout(function () {\n debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n self.ping();\n self.onHeartbeat(self.pingTimeout);\n }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n var self = this;\n this.sendPacket('ping', function () {\n self.emit('ping');\n });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n this.writeBuffer.splice(0, this.prevBufferLen);\n\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n\n if (0 === this.writeBuffer.length) {\n this.emit('drain');\n } else {\n this.flush();\n }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n if ('closed' !== this.readyState && this.transport.writable &&\n !this.upgrading && this.writeBuffer.length) {\n debug('flushing %d packets in socket', this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit('flush');\n }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n this.sendPacket('message', msg, options, fn);\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n if ('function' === typeof data) {\n fn = data;\n data = undefined;\n }\n\n if ('function' === typeof options) {\n fn = options;\n options = null;\n }\n\n if ('closing' === this.readyState || 'closed' === this.readyState) {\n return;\n }\n\n options = options || {};\n options.compress = false !== options.compress;\n\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit('packetCreate', packet);\n this.writeBuffer.push(packet);\n if (fn) this.once('flush', fn);\n this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.readyState = 'closing';\n\n var self = this;\n\n if (this.writeBuffer.length) {\n this.once('drain', function () {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n\n function close () {\n self.onClose('forced close');\n debug('socket closing - telling transport to close');\n self.transport.close();\n }\n\n function cleanupAndClose () {\n self.removeListener('upgrade', cleanupAndClose);\n self.removeListener('upgradeError', cleanupAndClose);\n close();\n }\n\n function waitForUpgrade () {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once('upgrade', cleanupAndClose);\n self.once('upgradeError', cleanupAndClose);\n }\n\n return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n debug('socket error %j', err);\n Socket.priorWebsocketSuccess = false;\n this.emit('error', err);\n this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket close with reason: \"%s\"', reason);\n var self = this;\n\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n\n // stop event from firing again for transport\n this.transport.removeAllListeners('close');\n\n // ensure transport won't stay open\n this.transport.close();\n\n // ignore further transport communication\n this.transport.removeAllListeners();\n\n // set ready state\n this.readyState = 'closed';\n\n // clear session id\n this.id = null;\n\n // emit close event\n this.emit('close', reason, desc);\n\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n var filteredUpgrades = [];\n for (var i = 0, j = upgrades.length; i < j; i++) {\n if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports) {\n\n\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = __webpack_require__(46);\nvar Polling = __webpack_require__(63);\nvar Emitter = __webpack_require__(19);\nvar inherit = __webpack_require__(34);\nvar debug = __webpack_require__(10)('engine.io-client:polling-xhr');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (global.location) {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = opts.hostname !== global.location.hostname ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n var contentType;\n try {\n contentType = xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream') {\n xhr.responseType = 'arraybuffer';\n }\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(xhr.status);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (global.document) {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (global.document) {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (global.document) {\n if (global.attachEvent) {\n global.attachEvent('onunload', unloadHandler);\n } else if (global.addEventListener) {\n global.addEventListener('beforeunload', unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n\n for (var i in obj) {\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n};\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports) {\n\n/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n\n if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n if (start < 0) { start += bytes; }\n if (end < 0) { end += bytes; }\n if (end > bytes) { end = bytes; }\n\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for (var i = start, ii = 0; i < end; i++, ii++) {\n result[ii] = abv[i];\n }\n return result.buffer;\n};\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports) {\n\nmodule.exports = after\n\nfunction after(count, callback, err_cb) {\n var bail = false\n err_cb = err_cb || noop\n proxy.count = count\n\n return (count === 0) ? callback() : proxy\n\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times')\n }\n --proxy.count\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true\n callback(err)\n // future error callbacks will go to error handler\n callback = err_cb\n } else if (proxy.count === 0 && !bail) {\n callback(null, result)\n }\n }\n}\n\nfunction noop() {}\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint, strict) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tif (strict) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t' is not a scalar value'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint, strict) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t}\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol(strict) {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttrue\n\t) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n\t\t\treturn utf8;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(119)(module), __webpack_require__(5)))\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports) {\n\n/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n \"use strict\";\n\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n // Use a lookup table to find the index.\n var lookup = new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n || global.WebKitBlobBuilder\n || global.MSBlobBuilder\n || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n try {\n var a = new Blob(['hi']);\n return a.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n try {\n var b = new Blob([new Uint8Array([1,2])]);\n return b.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n && BlobBuilder.prototype.append\n && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n for (var i = 0; i < ary.length; i++) {\n var chunk = ary[i];\n if (chunk.buffer instanceof ArrayBuffer) {\n var buf = chunk.buffer;\n\n // if this is a subarray, make a copy so we only\n // include the subarray region from the underlying buffer\n if (chunk.byteLength !== buf.byteLength) {\n var copy = new Uint8Array(chunk.byteLength);\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n buf = copy.buffer;\n }\n\n ary[i] = buf;\n }\n }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n options = options || {};\n\n var bb = new BlobBuilder();\n mapArrayBufferViews(ary);\n\n for (var i = 0; i < ary.length; i++) {\n bb.append(ary[i]);\n }\n\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n mapArrayBufferViews(ary);\n return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n if (blobSupported) {\n return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n } else if (blobBuilderSupported) {\n return BlobBuilderConstructor;\n } else {\n return undefined;\n }\n})();\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {\n/**\n * Module requirements.\n */\n\nvar Polling = __webpack_require__(63);\nvar inherit = __webpack_require__(34);\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n Polling.call(this, opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n if (!global.___eio) global.___eio = [];\n callbacks = global.___eio;\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (global.document && global.addEventListener) {\n global.addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete () {\n initIframe();\n fn();\n }\n\n function initIframe () {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n iframe = document.createElement(html);\n } catch (e) {\n iframe = document.createElement('iframe');\n iframe.name = self.iframeId;\n iframe.src = 'javascript:0';\n }\n\n iframe.id = self.iframeId;\n\n self.form.appendChild(iframe);\n self.iframe = iframe;\n }\n\n initIframe();\n\n // escape \\n to prevent it from being converted into \\r\\n by some UAs\n // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n data = data.replace(rEscapedNewline, '\\\\\\n');\n this.area.value = data.replace(rNewline, '\\\\n');\n\n try {\n this.form.submit();\n } catch (e) {}\n\n if (this.iframe.attachEvent) {\n this.iframe.onreadystatechange = function () {\n if (self.iframe.readyState === 'complete') {\n complete();\n }\n };\n } else {\n this.iframe.onload = complete;\n }\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module dependencies.\n */\n\nvar Transport = __webpack_require__(47);\nvar parser = __webpack_require__(20);\nvar parseqs = __webpack_require__(33);\nvar inherit = __webpack_require__(34);\nvar yeast = __webpack_require__(64);\nvar debug = __webpack_require__(10)('engine.io-client:websocket');\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\nvar NodeWebSocket;\nif (typeof window === 'undefined') {\n try {\n NodeWebSocket = __webpack_require__(124);\n } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n WebSocket = NodeWebSocket;\n}\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (forceBase64) {\n this.supportsBinary = false;\n }\n this.perMessageDeflate = opts.perMessageDeflate;\n this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n this.protocols = opts.protocols;\n if (!this.usingBrowserWebSocket) {\n WebSocket = NodeWebSocket;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n\n var uri = this.uri();\n var protocols = this.protocols;\n var opts = {\n agent: this.agent,\n perMessageDeflate: this.perMessageDeflate\n };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n if (this.extraHeaders) {\n opts.headers = this.extraHeaders;\n }\n if (this.localAddress) {\n opts.localAddress = this.localAddress;\n }\n\n try {\n this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n } catch (err) {\n return this.emit('error', err);\n }\n\n if (this.ws.binaryType === undefined) {\n this.supportsBinary = false;\n }\n\n if (this.ws.supports && this.ws.supports.binary) {\n this.supportsBinary = true;\n this.ws.binaryType = 'nodebuffer';\n } else {\n this.ws.binaryType = 'arraybuffer';\n }\n\n this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n var self = this;\n\n this.ws.onopen = function () {\n self.onOpen();\n };\n this.ws.onclose = function () {\n self.onClose();\n };\n this.ws.onmessage = function (ev) {\n self.onData(ev.data);\n };\n this.ws.onerror = function (e) {\n self.onError('websocket error', e);\n };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n var total = packets.length;\n for (var i = 0, l = total; i < l; i++) {\n (function (packet) {\n parser.encodePacket(packet, self.supportsBinary, function (data) {\n if (!self.usingBrowserWebSocket) {\n // always create a new object (GH-437)\n var opts = {};\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n\n if (self.perMessageDeflate) {\n var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n if (len < self.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (self.usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n self.ws.send(data);\n } else {\n self.ws.send(data, opts);\n }\n } catch (e) {\n debug('websocket closed before onclose event');\n }\n\n --total || done();\n });\n })(packets[i]);\n }\n\n function done () {\n self.emit('flush');\n\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n setTimeout(function () {\n self.writable = true;\n self.emit('drain');\n }, 0);\n }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n if (typeof this.ws !== 'undefined') {\n this.ws.close();\n }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'wss' : 'ws';\n var port = '';\n\n // avoid port if default for schema\n if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n ('ws' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // append timestamp to URI\n if (this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports) {\n\nmodule.exports = toArray\n\nfunction toArray(list, index) {\n var array = []\n\n index = index || 0\n\n for (var i = index || 0; i < list.length; i++) {\n array[i - index] = list[i]\n }\n\n return array\n}\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports) {\n\n\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n this.jitter = jitter;\n};\n\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscription_1 = __webpack_require__(14);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n _super.call(this);\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription_1.Subscription));\nexports.SubjectSubscription = SubjectSubscription;\n//# sourceMappingURL=SubjectSubscription.js.map\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ConnectableObservable_1 = __webpack_require__(129);\n/* tslint:enable:max-line-length */\n/**\n * Returns an Observable that emits the results of invoking a specified selector on items\n * emitted by a ConnectableObservable that shares a single subscription to the underlying stream.\n *\n * <img src=\"./img/multicast.png\" width=\"100%\">\n *\n * @param {Function|Subject} subjectOrSubjectFactory - Factory function to create an intermediate subject through\n * which the source sequence's elements will be multicast to the selector function\n * or Subject to push source elements into.\n * @param {Function} [selector] - Optional selector function that can use the multicasted source stream\n * as many times as needed, without causing multiple subscriptions to the source stream.\n * Subscribers to the given source will receive all notifications of the source from the\n * time of the subscription forward.\n * @return {Observable} An Observable that emits the results of invoking the selector\n * on the items emitted by a `ConnectableObservable` that shares a single subscription to\n * the underlying stream.\n * @method multicast\n * @owner Observable\n */\nfunction multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, ConnectableObservable_1.connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexports.multicast = multicast;\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexports.MulticastOperator = MulticastOperator;\n//# sourceMappingURL=multicast.js.map\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subject_1 = __webpack_require__(35);\nvar Observable_1 = __webpack_require__(1);\nvar Subscriber_1 = __webpack_require__(3);\nvar Subscription_1 = __webpack_require__(14);\nvar refCount_1 = __webpack_require__(71);\n/**\n * @class ConnectableObservable<T>\n */\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n _super.call(this);\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription_1.Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription_1.Subscription.EMPTY;\n }\n else {\n this._connection = connection;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return refCount_1.refCount()(this);\n };\n return ConnectableObservable;\n}(Observable_1.Observable));\nexports.ConnectableObservable = ConnectableObservable;\nvar connectableProto = ConnectableObservable.prototype;\nexports.connectableObservableDescriptor = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\nvar ConnectableSubscriber = (function (_super) {\n __extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n _super.call(this, destination);\n this.connectable = connectable;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(Subject_1.SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n _super.call(this, destination);\n this.connectable = connectable;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // Observable.range(0, 10)\n // .publish()\n // .refCount()\n // .take(5)\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BehaviorSubject_1 = __webpack_require__(15);\r\nvar styles = {\r\n display: \"none\",\r\n padding: \"15px\",\r\n fontFamily: \"sans-serif\",\r\n position: \"fixed\",\r\n fontSize: \"0.9em\",\r\n zIndex: 9999,\r\n right: 0,\r\n top: 0,\r\n borderBottomLeftRadius: \"5px\",\r\n backgroundColor: \"#1B2032\",\r\n margin: 0,\r\n color: \"white\",\r\n textAlign: \"center\",\r\n pointerEvents: \"none\"\r\n};\r\n/**\r\n * @param {IBrowserSyncOptions} options\r\n * @returns {BehaviorSubject<any>}\r\n */\r\nfunction initNotify(options) {\r\n var cssStyles = styles;\r\n var elem;\r\n if (options.notify.styles) {\r\n if (Object.prototype.toString.call(options.notify.styles) ===\r\n \"[object Array]\") {\r\n // handle original array behavior, replace all styles with a joined copy\r\n cssStyles = options.notify.styles.join(\";\");\r\n }\r\n else {\r\n for (var key in options.notify.styles) {\r\n if (options.notify.styles.hasOwnProperty(key)) {\r\n cssStyles[key] = options.notify.styles[key];\r\n }\r\n }\r\n }\r\n }\r\n elem = document.createElement(\"DIV\");\r\n elem.id = \"__bs_notify__\";\r\n if (typeof cssStyles === \"string\") {\r\n elem.style.cssText = cssStyles;\r\n }\r\n else {\r\n for (var rule in cssStyles) {\r\n elem.style[rule] = cssStyles[rule];\r\n }\r\n }\r\n return new BehaviorSubject_1.BehaviorSubject(elem);\r\n}\r\nexports.initNotify = initNotify;\r\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 isNumeric_1 = __webpack_require__(73);\nvar Observable_1 = __webpack_require__(1);\nvar async_1 = __webpack_require__(74);\nvar isScheduler_1 = __webpack_require__(27);\nvar isDate_1 = __webpack_require__(134);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar TimerObservable = (function (_super) {\n __extends(TimerObservable, _super);\n function TimerObservable(dueTime, period, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n _super.call(this);\n this.period = -1;\n this.dueTime = 0;\n if (isNumeric_1.isNumeric(period)) {\n this.period = Number(period) < 1 && 1 || Number(period);\n }\n else if (isScheduler_1.isScheduler(period)) {\n scheduler = period;\n }\n if (!isScheduler_1.isScheduler(scheduler)) {\n scheduler = async_1.async;\n }\n this.scheduler = scheduler;\n this.dueTime = isDate_1.isDate(dueTime) ?\n (+dueTime - this.scheduler.now()) :\n dueTime;\n }\n /**\n * Creates an Observable that starts emitting after an `initialDelay` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * <span class=\"informal\">Its like {@link interval}, but you can specify when\n * should the emissions start.</span>\n *\n * <img src=\"./img/timer.png\" width=\"100%\">\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `initialDelay`. The initial delay may be a {@link Date}. By default, this\n * operator uses the `async` IScheduler to provide a notion of time, but you\n * may pass any IScheduler to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * @example <caption>Emits ascending numbers, one every second (1000ms), starting after 3 seconds</caption>\n * var numbers = Rx.Observable.timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n *\n * @example <caption>Emits one number after five seconds</caption>\n * var numbers = Rx.Observable.timer(5000);\n * numbers.subscribe(x => console.log(x));\n *\n * @see {@link interval}\n * @see {@link delay}\n *\n * @param {number|Date} initialDelay The initial delay time to wait before\n * emitting the first value of `0`.\n * @param {number} [period] The period of time between emissions of the\n * subsequent numbers.\n * @param {Scheduler} [scheduler=async] The IScheduler to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `initialDelay` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\n TimerObservable.create = function (initialDelay, period, scheduler) {\n if (initialDelay === void 0) { initialDelay = 0; }\n return new TimerObservable(initialDelay, period, scheduler);\n };\n TimerObservable.dispatch = function (state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n var action = this;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n action.schedule(state, period);\n };\n TimerObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var _a = this, period = _a.period, dueTime = _a.dueTime, scheduler = _a.scheduler;\n return scheduler.schedule(TimerObservable.dispatch, dueTime, {\n index: index, period: period, subscriber: subscriber\n });\n };\n return TimerObservable;\n}(Observable_1.Observable));\nexports.TimerObservable = TimerObservable;\n//# sourceMappingURL=TimerObservable.js.map\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscription_1 = __webpack_require__(14);\n/**\n * A unit of work to be executed in a {@link Scheduler}. An action is typically\n * created from within a Scheduler and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n _super.call(this);\n }\n /**\n * Schedules this action on its parent Scheduler for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription_1.Subscription));\nexports.Action = Action;\n//# sourceMappingURL=Action.js.map\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an {@link Action}.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n */\nvar Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = Date.now ? Date.now : function () { return +new Date(); };\n return Scheduler;\n}());\nexports.Scheduler = Scheduler;\n//# sourceMappingURL=Scheduler.js.map\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\nexports.isDate = isDate;\n//# sourceMappingURL=isDate.js.map\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar emojis = {\r\n trace: '🔍',\r\n debug: '🐛',\r\n info: '✨',\r\n warn: '⚠',\r\n error: '🚨',\r\n fatal: '💀'\r\n};\r\nvar levels = {\r\n trace: 10,\r\n debug: 20,\r\n info: 30,\r\n warn: 40,\r\n error: 50,\r\n fatal: 60\r\n};\r\nvar defaultColors = {\r\n foreground: '#d3c0c8',\r\n background: '#2d2d2d',\r\n black: '#2d2d2d',\r\n red: '#f2777a',\r\n green: '#99cc99',\r\n yellow: '#ffcc66',\r\n blue: '#6699cc',\r\n magenta: '#cc99cc',\r\n cyan: '#66cccc',\r\n white: '#d3d0c8',\r\n brightBlack: '#747369'\r\n};\r\nvar Nanologger = /** @class */ (function () {\r\n function Nanologger(name, opts) {\r\n this.name = name;\r\n this.opts = opts;\r\n this._name = name || '';\r\n this._colors = __assign({}, defaultColors, (opts.colors || {}));\r\n try {\r\n this.logLevel = window.localStorage.getItem('logLevel') || 'info';\r\n }\r\n catch (e) {\r\n this.logLevel = 'info';\r\n }\r\n this._logLevel = levels[this.logLevel];\r\n }\r\n Nanologger.prototype.trace = function () {\r\n var args = ['trace'];\r\n for (var i = 0, len = arguments.length; i < len; i++)\r\n args.push(arguments[i]);\r\n this._print.apply(this, args);\r\n };\r\n Nanologger.prototype.debug = function () {\r\n var args = ['debug'];\r\n for (var i = 0, len = arguments.length; i < len; i++)\r\n args.push(arguments[i]);\r\n this._print.apply(this, args);\r\n };\r\n Nanologger.prototype.info = function () {\r\n var args = ['info'];\r\n for (var i = 0, len = arguments.length; i < len; i++)\r\n args.push(arguments[i]);\r\n this._print.apply(this, args);\r\n };\r\n Nanologger.prototype.warn = function () {\r\n var args = ['warn'];\r\n for (var i = 0, len = arguments.length; i < len; i++)\r\n args.push(arguments[i]);\r\n this._print.apply(this, args);\r\n };\r\n Nanologger.prototype.error = function () {\r\n var args = ['error'];\r\n for (var i = 0, len = arguments.length; i < len; i++)\r\n args.push(arguments[i]);\r\n this._print.apply(this, args);\r\n };\r\n Nanologger.prototype.fatal = function () {\r\n var args = ['fatal'];\r\n for (var i = 0, len = arguments.length; i < len; i++)\r\n args.push(arguments[i]);\r\n this._print.apply(this, args);\r\n };\r\n Nanologger.prototype._print = function (level) {\r\n if (levels[level] < this._logLevel)\r\n return;\r\n // var time = getTimeStamp()\r\n var emoji = emojis[level];\r\n var name = this._name || 'unknown';\r\n var msgColor = (level === 'error' || level.fatal)\r\n ? this._colors.red\r\n : level === 'warn'\r\n ? this._colors.yellow\r\n : this._colors.green;\r\n var objs = [];\r\n var args = [null];\r\n var msg = emoji + ' %c%s';\r\n // args.push(color(this._colors.brightBlack), time)\r\n args.push(color(this._colors.magenta), name);\r\n for (var i = 1, len = arguments.length; i < len; i++) {\r\n var arg = arguments[i];\r\n if (typeof arg === 'string') {\r\n if (i === 1) {\r\n // first string argument is in color\r\n msg += ' %c%s';\r\n args.push(color(msgColor));\r\n args.push(arg);\r\n }\r\n else if (/ms$/.test(arg)) {\r\n // arguments finishing with 'ms', grey out\r\n msg += ' %c%s';\r\n args.push(color(this._colors.brightBlack));\r\n args.push(arg);\r\n }\r\n else {\r\n // normal colors\r\n msg += ' %c%s';\r\n args.push(color(this._colors.white));\r\n args.push(arg);\r\n }\r\n }\r\n else if (typeof arg === 'number') {\r\n msg += ' %c%d';\r\n args.push(color(this._colors.magenta));\r\n args.push(arg);\r\n }\r\n else {\r\n objs.push(arg);\r\n }\r\n }\r\n args[0] = msg;\r\n objs.forEach(function (obj) {\r\n args.push(obj);\r\n });\r\n // In IE/Edge console functions don't inherit from Function.prototype\r\n // so this is necessary to get all the args applied.\r\n Function.prototype.apply.apply(console.log, [console, args]);\r\n };\r\n return Nanologger;\r\n}());\r\nexports.Nanologger = Nanologger;\r\nfunction color(color) {\r\n return 'color: ' + color + ';';\r\n}\r\nfunction getTimeStamp() {\r\n var date = new Date();\r\n var hours = pad(date.getHours().toString());\r\n var minutes = pad(date.getMinutes().toString());\r\n var seconds = pad(date.getSeconds().toString());\r\n return hours + ':' + minutes + ':' + seconds;\r\n}\r\nfunction pad(str) {\r\n return str.length !== 2 ? 0 + str : str;\r\n}\r\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n *\r\n * With thanks to https://github.com/livereload/livereload-js\r\n * :) :) :)\r\n *\r\n */\r\nvar utils_1 = __webpack_require__(23);\r\nvar empty_1 = __webpack_require__(18);\r\nvar Observable_1 = __webpack_require__(1);\r\nvar merge_1 = __webpack_require__(36);\r\nvar timer_1 = __webpack_require__(48);\r\nvar from_1 = __webpack_require__(83);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar mergeMap_1 = __webpack_require__(17);\r\nvar take_1 = __webpack_require__(146);\r\nvar tap_1 = __webpack_require__(6);\r\nvar mapTo_1 = __webpack_require__(85);\r\nvar prop_set_dom_effect_1 = __webpack_require__(72);\r\nvar style_set_dom_effect_1 = __webpack_require__(77);\r\nvar link_replace_dom_effect_1 = __webpack_require__(78);\r\nvar hiddenElem;\r\nvar IMAGE_STYLES = [\r\n { selector: 'background', styleNames: ['backgroundImage'] },\r\n { selector: 'border', styleNames: ['borderImage', 'webkitBorderImage', 'MozBorderImage'] }\r\n];\r\nvar attrs = {\r\n link: \"href\",\r\n img: \"src\",\r\n script: \"src\"\r\n};\r\nfunction reload(document, navigator) {\r\n return function (data, options) {\r\n var path = data.path;\r\n if (options.liveCSS) {\r\n if (path.match(/\\.css$/i)) {\r\n return reloadStylesheet(path, document, navigator);\r\n }\r\n }\r\n if (options.liveImg) {\r\n if (path.match(/\\.(jpe?g|png|gif)$/i)) {\r\n return reloadImages(path, document);\r\n }\r\n }\r\n /**\r\n * LEGACY\r\n */\r\n var domData = getElems(data.ext, options, document);\r\n var elems = getMatches(domData.elems, data.basename, domData.attr);\r\n for (var i = 0, n = elems.length; i < n; i += 1) {\r\n swapFile(elems[i], domData, options, document, navigator);\r\n }\r\n return empty_1.empty();\r\n };\r\n function getMatches(elems, url, attr) {\r\n if (url[0] === \"*\") {\r\n return elems;\r\n }\r\n var matches = [];\r\n var urlMatcher = new RegExp(\"(^|/)\" + url);\r\n for (var i = 0, len = elems.length; i < len; i += 1) {\r\n if (urlMatcher.test(elems[i][attr])) {\r\n matches.push(elems[i]);\r\n }\r\n }\r\n return matches;\r\n }\r\n function getElems(fileExtension, options, document) {\r\n var tagName = options.tagNames[fileExtension];\r\n var attr = attrs[tagName];\r\n return {\r\n attr: attr,\r\n tagName: tagName,\r\n elems: document.getElementsByTagName(tagName)\r\n };\r\n }\r\n function reloadImages(path, document) {\r\n var expando = generateUniqueString(Date.now());\r\n return merge_1.merge(from_1.from([].slice.call(document.images))\r\n .pipe(filter_1.filter(function (img) { return utils_1.pathsMatch(path, utils_1.pathFromUrl(img.src)); }), map_1.map(function (img) {\r\n var payload = {\r\n target: img,\r\n prop: 'src',\r\n value: generateCacheBustUrl(img.src, expando),\r\n pathname: utils_1.getLocation(img.src).pathname\r\n };\r\n return prop_set_dom_effect_1.propSet(payload);\r\n })), from_1.from(IMAGE_STYLES)\r\n .pipe(mergeMap_1.mergeMap(function (_a) {\r\n var selector = _a.selector, styleNames = _a.styleNames;\r\n return from_1.from(document.querySelectorAll(\"[style*=\" + selector + \"]\")).pipe(mergeMap_1.mergeMap(function (img) {\r\n return reloadStyleImages(img.style, styleNames, path, expando);\r\n }));\r\n })));\r\n // if (document.styleSheets) {\r\n // return [].slice.call(document.styleSheets)\r\n // .map((styleSheet) => {\r\n // return reloadStylesheetImages(styleSheet, path, expando);\r\n // });\r\n // }\r\n }\r\n function reloadStylesheetImages(styleSheet, path, expando) {\r\n var rules;\r\n try {\r\n rules = styleSheet != null ? styleSheet.cssRules : undefined;\r\n }\r\n catch (e) { }\r\n //\r\n if (!rules) {\r\n return;\r\n }\r\n [].slice.call(rules).forEach(function (rule) {\r\n switch (rule.type) {\r\n case CSSRule.IMPORT_RULE:\r\n reloadStylesheetImages(rule.styleSheet, path, expando);\r\n break;\r\n case CSSRule.STYLE_RULE:\r\n [].slice.call(IMAGE_STYLES).forEach(function (_a) {\r\n var styleNames = _a.styleNames;\r\n reloadStyleImages(rule.style, styleNames, path, expando);\r\n });\r\n break;\r\n case CSSRule.MEDIA_RULE:\r\n reloadStylesheetImages(rule, path, expando);\r\n break;\r\n }\r\n });\r\n }\r\n function reloadStyleImages(style, styleNames, path, expando) {\r\n return from_1.from(styleNames).pipe(filter_1.filter(function (styleName) { return typeof style[styleName] === 'string'; }), map_1.map(function (styleName) {\r\n var pathName;\r\n var value = style[styleName];\r\n var newValue = value.replace(new RegExp(\"\\\\burl\\\\s*\\\\(([^)]*)\\\\)\"), function (match, src) {\r\n var _src = src;\r\n if (src[0] === '\"' && src[src.length - 1] === '\"') {\r\n _src = src.slice(1, -1);\r\n }\r\n pathName = utils_1.getLocation(_src).pathname;\r\n if (utils_1.pathsMatch(path, utils_1.pathFromUrl(_src))) {\r\n return \"url(\" + generateCacheBustUrl(_src, expando) + \")\";\r\n }\r\n else {\r\n return match;\r\n }\r\n });\r\n return [\r\n style,\r\n styleName,\r\n value,\r\n newValue,\r\n pathName\r\n ];\r\n }), filter_1.filter(function (_a) {\r\n var style = _a[0], styleName = _a[1], value = _a[2], newValue = _a[3];\r\n return newValue !== value;\r\n }), map_1.map(function (_a) {\r\n var style = _a[0], styleName = _a[1], value = _a[2], newValue = _a[3], pathName = _a[4];\r\n return style_set_dom_effect_1.styleSet({ style: style, styleName: styleName, value: value, newValue: newValue, pathName: pathName });\r\n }));\r\n }\r\n function swapFile(elem, domData, options, document, navigator) {\r\n var attr = domData.attr;\r\n var currentValue = elem[attr];\r\n var timeStamp = new Date().getTime();\r\n var key = \"browsersync-legacy\";\r\n var suffix = key + \"=\" + timeStamp;\r\n var anchor = utils_1.getLocation(currentValue);\r\n var search = utils_1.updateSearch(anchor.search, key, suffix);\r\n switch (domData.tagName) {\r\n case 'link': {\r\n // this.logger.trace(`replacing LINK ${attr}`);\r\n reloadStylesheet(currentValue, document, navigator);\r\n break;\r\n }\r\n case 'img': {\r\n reloadImages(currentValue, document);\r\n break;\r\n }\r\n default: {\r\n if (options.timestamps === false) {\r\n elem[attr] = anchor.href;\r\n }\r\n else {\r\n elem[attr] = anchor.href.split(\"?\")[0] + search;\r\n }\r\n // this.logger.info(`reloading ${elem[attr]}`);\r\n setTimeout(function () {\r\n if (!hiddenElem) {\r\n hiddenElem = document.createElement(\"DIV\");\r\n document.body.appendChild(hiddenElem);\r\n }\r\n else {\r\n hiddenElem.style.display = \"none\";\r\n hiddenElem.style.display = \"block\";\r\n }\r\n }, 200);\r\n }\r\n }\r\n return {\r\n elem: elem,\r\n timeStamp: timeStamp\r\n };\r\n }\r\n function reattachStylesheetLink(link, document, navigator) {\r\n // ignore LINKs that will be removed by LR soon\r\n var clone;\r\n if (link.__LiveReload_pendingRemoval) {\r\n return empty_1.empty();\r\n }\r\n link.__LiveReload_pendingRemoval = true;\r\n if (link.tagName === 'STYLE') {\r\n // prefixfree\r\n clone = document.createElement('link');\r\n clone.rel = 'stylesheet';\r\n clone.media = link.media;\r\n clone.disabled = link.disabled;\r\n }\r\n else {\r\n clone = link.cloneNode(false);\r\n }\r\n var prevHref = link.href;\r\n var nextHref = generateCacheBustUrl(linkHref(link));\r\n clone.href = nextHref;\r\n var pathname = utils_1.getLocation(nextHref).pathname;\r\n var basename = pathname.split('/').slice(-1)[0];\r\n // insert the new LINK before the old one\r\n var parent = link.parentNode;\r\n if (parent.lastChild === link) {\r\n parent.appendChild(clone);\r\n }\r\n else {\r\n parent.insertBefore(clone, link.nextSibling);\r\n }\r\n var additionalWaitingTime;\r\n if (/AppleWebKit/.test(navigator.userAgent)) {\r\n additionalWaitingTime = 5;\r\n }\r\n else {\r\n additionalWaitingTime = 200;\r\n }\r\n return Observable_1.Observable.create(function (obs) { return clone.onload = function () { return obs.next(true); }; })\r\n .pipe(take_1.take(1), mergeMap_1.mergeMap(function () {\r\n return timer_1.timer(additionalWaitingTime)\r\n .pipe(tap_1.tap(function () {\r\n if (link && !link.parentNode) {\r\n return;\r\n }\r\n link.parentNode.removeChild(link);\r\n clone.onreadystatechange = null;\r\n }), mapTo_1.mapTo(link_replace_dom_effect_1.linkReplace({ target: clone, nextHref: nextHref, prevHref: prevHref, pathname: pathname, basename: basename })));\r\n }));\r\n }\r\n function reattachImportedRule(_a, document) {\r\n var rule = _a.rule, index = _a.index, link = _a.link;\r\n var parent = rule.parentStyleSheet;\r\n var href = generateCacheBustUrl(rule.href);\r\n var media = rule.media.length ? [].join.call(rule.media, ', ') : '';\r\n var newRule = \"@import url(\\\"\" + href + \"\\\") \" + media + \";\";\r\n // used to detect if reattachImportedRule has been called again on the same rule\r\n rule.__LiveReload_newHref = href;\r\n // WORKAROUND FOR WEBKIT BUG: WebKit resets all styles if we add @import'ed\r\n // stylesheet that hasn't been cached yet. Workaround is to pre-cache the\r\n // stylesheet by temporarily adding it as a LINK tag.\r\n var tempLink = document.createElement(\"link\");\r\n tempLink.rel = 'stylesheet';\r\n tempLink.href = href;\r\n tempLink.__LiveReload_pendingRemoval = true; // exclude from path matching\r\n if (link.parentNode) {\r\n link.parentNode.insertBefore(tempLink, link);\r\n }\r\n return timer_1.timer(200)\r\n .pipe(tap_1.tap(function () {\r\n if (tempLink.parentNode) {\r\n tempLink.parentNode.removeChild(tempLink);\r\n }\r\n // if another reattachImportedRule call is in progress, abandon this one\r\n if (rule.__LiveReload_newHref !== href) {\r\n return;\r\n }\r\n parent.insertRule(newRule, index);\r\n parent.deleteRule(index + 1);\r\n // save the new rule, so that we can detect another reattachImportedRule call\r\n rule = parent.cssRules[index];\r\n rule.__LiveReload_newHref = href;\r\n }), mergeMap_1.mergeMap(function () {\r\n return timer_1.timer(200).pipe(tap_1.tap(function () {\r\n // if another reattachImportedRule call is in progress, abandon this one\r\n if (rule.__LiveReload_newHref !== href) {\r\n return;\r\n }\r\n parent.insertRule(newRule, index);\r\n return parent.deleteRule(index + 1);\r\n }));\r\n }));\r\n }\r\n function generateCacheBustUrl(url, expando) {\r\n if (expando === void 0) { expando = generateUniqueString(Date.now()); }\r\n var hash, oldParams;\r\n (_a = utils_1.splitUrl(url), url = _a.url, hash = _a.hash, oldParams = _a.params);\r\n // if (this.options.overrideURL) {\r\n // if (url.indexOf(this.options.serverURL) < 0) {\r\n // const originalUrl = url;\r\n // url = this.options.serverURL + this.options.overrideURL + \"?url=\" + encodeURIComponent(url);\r\n // this.logger.debug(`overriding source URL ${originalUrl} with ${url}`);\r\n // }\r\n // }\r\n var params = oldParams.replace(/(\\?|&)browsersync=(\\d+)/, function (match, sep) { return \"\" + sep + expando; });\r\n if (params === oldParams) {\r\n if (oldParams.length === 0) {\r\n params = \"?\" + expando;\r\n }\r\n else {\r\n params = oldParams + \"&\" + expando;\r\n }\r\n }\r\n return url + params + hash;\r\n var _a;\r\n }\r\n function reloadStylesheet(path, document, navigator) {\r\n // has to be a real array, because DOMNodeList will be modified\r\n var links = utils_1.array(document.getElementsByTagName('link'))\r\n .filter(function (link) {\r\n return link.rel.match(/^stylesheet$/i)\r\n && !link.__LiveReload_pendingRemoval;\r\n });\r\n /**\r\n * Find imported style sheets in <style> tags\r\n * @type {any[]}\r\n */\r\n var styleImported = utils_1.array(document.getElementsByTagName('style'))\r\n .filter(function (style) { return Boolean(style.sheet); })\r\n .reduce(function (acc, style) {\r\n return acc.concat(collectImportedStylesheets(style, style.sheet));\r\n }, []);\r\n /**\r\n * Find imported style sheets in <link> tags\r\n * @type {any[]}\r\n */\r\n var linksImported = links\r\n .reduce(function (acc, link) {\r\n return acc.concat(collectImportedStylesheets(link, link.sheet));\r\n }, []);\r\n /**\r\n * Combine all links + sheets\r\n */\r\n var allRules = links.concat(styleImported, linksImported);\r\n /**\r\n * Which href best matches the incoming href?\r\n */\r\n var match = utils_1.pickBestMatch(path, allRules, function (l) { return utils_1.pathFromUrl(linkHref(l)); });\r\n if (match) {\r\n if (match.object && match.object.rule) {\r\n return reattachImportedRule(match.object, document);\r\n }\r\n return reattachStylesheetLink(match.object, document, navigator);\r\n }\r\n return empty_1.empty();\r\n }\r\n function collectImportedStylesheets(link, styleSheet) {\r\n // in WebKit, styleSheet.cssRules is null for inaccessible stylesheets;\r\n // Firefox/Opera may throw exceptions\r\n var output = [];\r\n collect(link, makeRules(styleSheet));\r\n return output;\r\n function makeRules(styleSheet) {\r\n var rules;\r\n try {\r\n rules = styleSheet != null ? styleSheet.cssRules : undefined;\r\n }\r\n catch (e) { }\r\n return rules;\r\n }\r\n function collect(link, rules) {\r\n if (rules && rules.length) {\r\n for (var index = 0; index < rules.length; index++) {\r\n var rule = rules[index];\r\n switch (rule.type) {\r\n case CSSRule.CHARSET_RULE:\r\n break;\r\n case CSSRule.IMPORT_RULE:\r\n output.push({ link: link, rule: rule, index: index, href: rule.href });\r\n collect(link, makeRules(rule.styleSheet));\r\n break;\r\n default:\r\n break; // import rules can only be preceded by charset rules\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function linkHref(link) {\r\n // prefixfree uses data-href when it turns LINK into STYLE\r\n return link.href || link.getAttribute('data-href');\r\n }\r\n function generateUniqueString(value) {\r\n return \"browsersync=\" + value;\r\n }\r\n}\r\nexports.reload = reload;\r\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 isArray_1 = __webpack_require__(28);\nvar isArrayLike_1 = __webpack_require__(55);\nvar isPromise_1 = __webpack_require__(56);\nvar PromiseObservable_1 = __webpack_require__(138);\nvar IteratorObservable_1 = __webpack_require__(139);\nvar ArrayObservable_1 = __webpack_require__(25);\nvar ArrayLikeObservable_1 = __webpack_require__(140);\nvar iterator_1 = __webpack_require__(32);\nvar Observable_1 = __webpack_require__(1);\nvar observeOn_1 = __webpack_require__(141);\nvar observable_1 = __webpack_require__(43);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromObservable = (function (_super) {\n __extends(FromObservable, _super);\n function FromObservable(ish, scheduler) {\n _super.call(this, null);\n this.ish = ish;\n this.scheduler = scheduler;\n }\n /**\n * Creates an Observable from an Array, an array-like object, a Promise, an\n * iterable object, or an Observable-like object.\n *\n * <span class=\"informal\">Converts almost anything to an Observable.</span>\n *\n * <img src=\"./img/from.png\" width=\"100%\">\n *\n * Convert various other objects and data types into Observables. `from`\n * converts a Promise or an array-like or an\n * [iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable)\n * object into an Observable that emits the items in that promise or array or\n * iterable. A String, in this context, is treated as an array of characters.\n * Observable-like objects (contains a function named with the ES2015 Symbol\n * for Observable) can also be converted through this operator.\n *\n * @example <caption>Converts an array to an Observable</caption>\n * var array = [10, 20, 30];\n * var result = Rx.Observable.from(array);\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // 10 20 30\n *\n * @example <caption>Convert an infinite iterable (from a generator) to an Observable</caption>\n * function* generateDoubles(seed) {\n * var i = seed;\n * while (true) {\n * yield i;\n * i = 2 * i; // double it\n * }\n * }\n *\n * var iterator = generateDoubles(3);\n * var result = Rx.Observable.from(iterator).take(10);\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // 3 6 12 24 48 96 192 384 768 1536\n *\n * @see {@link create}\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n * @see {@link fromPromise}\n *\n * @param {ObservableInput<T>} ish A subscribable object, a Promise, an\n * Observable-like, an Array, an iterable or an array-like object to be\n * converted.\n * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n * emissions of values.\n * @return {Observable<T>} The Observable whose values are originally from the\n * input object that was converted.\n * @static true\n * @name from\n * @owner Observable\n */\n FromObservable.create = function (ish, scheduler) {\n if (ish != null) {\n if (typeof ish[observable_1.observable] === 'function') {\n if (ish instanceof Observable_1.Observable && !scheduler) {\n return ish;\n }\n return new FromObservable(ish, scheduler);\n }\n else if (isArray_1.isArray(ish)) {\n return new ArrayObservable_1.ArrayObservable(ish, scheduler);\n }\n else if (isPromise_1.isPromise(ish)) {\n return new PromiseObservable_1.PromiseObservable(ish, scheduler);\n }\n else if (typeof ish[iterator_1.iterator] === 'function' || typeof ish === 'string') {\n return new IteratorObservable_1.IteratorObservable(ish, scheduler);\n }\n else if (isArrayLike_1.isArrayLike(ish)) {\n return new ArrayLikeObservable_1.ArrayLikeObservable(ish, scheduler);\n }\n }\n throw new TypeError((ish !== null && typeof ish || ish) + ' is not observable');\n };\n FromObservable.prototype._subscribe = function (subscriber) {\n var ish = this.ish;\n var scheduler = this.scheduler;\n if (scheduler == null) {\n return ish[observable_1.observable]().subscribe(subscriber);\n }\n else {\n return ish[observable_1.observable]().subscribe(new observeOn_1.ObserveOnSubscriber(subscriber, scheduler, 0));\n }\n };\n return FromObservable;\n}(Observable_1.Observable));\nexports.FromObservable = FromObservable;\n//# sourceMappingURL=FromObservable.js.map\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 root_1 = __webpack_require__(8);\nvar Observable_1 = __webpack_require__(1);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar PromiseObservable = (function (_super) {\n __extends(PromiseObservable, _super);\n function PromiseObservable(promise, scheduler) {\n _super.call(this);\n this.promise = promise;\n this.scheduler = scheduler;\n }\n /**\n * Converts a Promise to an Observable.\n *\n * <span class=\"informal\">Returns an Observable that just emits the Promise's\n * resolved value, then completes.</span>\n *\n * Converts an ES2015 Promise or a Promises/A+ spec compliant Promise to an\n * Observable. If the Promise resolves with a value, the output Observable\n * emits that resolved value as a `next`, and then completes. If the Promise\n * is rejected, then the output Observable emits the corresponding Error.\n *\n * @example <caption>Convert the Promise returned by Fetch to an Observable</caption>\n * var result = Rx.Observable.fromPromise(fetch('http://myserver.com/'));\n * result.subscribe(x => console.log(x), e => console.error(e));\n *\n * @see {@link bindCallback}\n * @see {@link from}\n *\n * @param {PromiseLike<T>} promise The promise to be converted.\n * @param {Scheduler} [scheduler] An optional IScheduler to use for scheduling\n * the delivery of the resolved value (or the rejection).\n * @return {Observable<T>} An Observable which wraps the Promise.\n * @static true\n * @name fromPromise\n * @owner Observable\n */\n PromiseObservable.create = function (promise, scheduler) {\n return new PromiseObservable(promise, scheduler);\n };\n PromiseObservable.prototype._subscribe = function (subscriber) {\n var _this = this;\n var promise = this.promise;\n var scheduler = this.scheduler;\n if (scheduler == null) {\n if (this._isScalar) {\n if (!subscriber.closed) {\n subscriber.next(this.value);\n subscriber.complete();\n }\n }\n else {\n promise.then(function (value) {\n _this.value = value;\n _this._isScalar = true;\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) {\n if (!subscriber.closed) {\n subscriber.error(err);\n }\n })\n .then(null, function (err) {\n // escape the promise trap, throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n }\n }\n else {\n if (this._isScalar) {\n if (!subscriber.closed) {\n return scheduler.schedule(dispatchNext, 0, { value: this.value, subscriber: subscriber });\n }\n }\n else {\n promise.then(function (value) {\n _this.value = value;\n _this._isScalar = true;\n if (!subscriber.closed) {\n subscriber.add(scheduler.schedule(dispatchNext, 0, { value: value, subscriber: subscriber }));\n }\n }, function (err) {\n if (!subscriber.closed) {\n subscriber.add(scheduler.schedule(dispatchError, 0, { err: err, subscriber: subscriber }));\n }\n })\n .then(null, function (err) {\n // escape the promise trap, throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n }\n }\n };\n return PromiseObservable;\n}(Observable_1.Observable));\nexports.PromiseObservable = PromiseObservable;\nfunction dispatchNext(arg) {\n var value = arg.value, subscriber = arg.subscriber;\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n}\nfunction dispatchError(arg) {\n var err = arg.err, subscriber = arg.subscriber;\n if (!subscriber.closed) {\n subscriber.error(err);\n }\n}\n//# sourceMappingURL=PromiseObservable.js.map\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 root_1 = __webpack_require__(8);\nvar Observable_1 = __webpack_require__(1);\nvar iterator_1 = __webpack_require__(32);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar IteratorObservable = (function (_super) {\n __extends(IteratorObservable, _super);\n function IteratorObservable(iterator, scheduler) {\n _super.call(this);\n this.scheduler = scheduler;\n if (iterator == null) {\n throw new Error('iterator cannot be null.');\n }\n this.iterator = getIterator(iterator);\n }\n IteratorObservable.create = function (iterator, scheduler) {\n return new IteratorObservable(iterator, scheduler);\n };\n IteratorObservable.dispatch = function (state) {\n var index = state.index, hasError = state.hasError, iterator = state.iterator, subscriber = state.subscriber;\n if (hasError) {\n subscriber.error(state.error);\n return;\n }\n var result = iterator.next();\n if (result.done) {\n subscriber.complete();\n return;\n }\n subscriber.next(result.value);\n state.index = index + 1;\n if (subscriber.closed) {\n if (typeof iterator.return === 'function') {\n iterator.return();\n }\n return;\n }\n this.schedule(state);\n };\n IteratorObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var _a = this, iterator = _a.iterator, scheduler = _a.scheduler;\n if (scheduler) {\n return scheduler.schedule(IteratorObservable.dispatch, 0, {\n index: index, iterator: iterator, subscriber: subscriber\n });\n }\n else {\n do {\n var result = iterator.next();\n if (result.done) {\n subscriber.complete();\n break;\n }\n else {\n subscriber.next(result.value);\n }\n if (subscriber.closed) {\n if (typeof iterator.return === 'function') {\n iterator.return();\n }\n break;\n }\n } while (true);\n }\n };\n return IteratorObservable;\n}(Observable_1.Observable));\nexports.IteratorObservable = IteratorObservable;\nvar StringIterator = (function () {\n function StringIterator(str, idx, len) {\n if (idx === void 0) { idx = 0; }\n if (len === void 0) { len = str.length; }\n this.str = str;\n this.idx = idx;\n this.len = len;\n }\n StringIterator.prototype[iterator_1.iterator] = function () { return (this); };\n StringIterator.prototype.next = function () {\n return this.idx < this.len ? {\n done: false,\n value: this.str.charAt(this.idx++)\n } : {\n done: true,\n value: undefined\n };\n };\n return StringIterator;\n}());\nvar ArrayIterator = (function () {\n function ArrayIterator(arr, idx, len) {\n if (idx === void 0) { idx = 0; }\n if (len === void 0) { len = toLength(arr); }\n this.arr = arr;\n this.idx = idx;\n this.len = len;\n }\n ArrayIterator.prototype[iterator_1.iterator] = function () { return this; };\n ArrayIterator.prototype.next = function () {\n return this.idx < this.len ? {\n done: false,\n value: this.arr[this.idx++]\n } : {\n done: true,\n value: undefined\n };\n };\n return ArrayIterator;\n}());\nfunction getIterator(obj) {\n var i = obj[iterator_1.iterator];\n if (!i && typeof obj === 'string') {\n return new StringIterator(obj);\n }\n if (!i && obj.length !== undefined) {\n return new ArrayIterator(obj);\n }\n if (!i) {\n throw new TypeError('object is not iterable');\n }\n return obj[iterator_1.iterator]();\n}\nvar maxSafeInteger = Math.pow(2, 53) - 1;\nfunction toLength(o) {\n var len = +o.length;\n if (isNaN(len)) {\n return 0;\n }\n if (len === 0 || !numberIsFinite(len)) {\n return len;\n }\n len = sign(len) * Math.floor(Math.abs(len));\n if (len <= 0) {\n return 0;\n }\n if (len > maxSafeInteger) {\n return maxSafeInteger;\n }\n return len;\n}\nfunction numberIsFinite(value) {\n return typeof value === 'number' && root_1.root.isFinite(value);\n}\nfunction sign(value) {\n var valueAsNumber = +value;\n if (valueAsNumber === 0) {\n return valueAsNumber;\n }\n if (isNaN(valueAsNumber)) {\n return valueAsNumber;\n }\n return valueAsNumber < 0 ? -1 : 1;\n}\n//# sourceMappingURL=IteratorObservable.js.map\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Observable_1 = __webpack_require__(1);\nvar ScalarObservable_1 = __webpack_require__(44);\nvar EmptyObservable_1 = __webpack_require__(26);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ArrayLikeObservable = (function (_super) {\n __extends(ArrayLikeObservable, _super);\n function ArrayLikeObservable(arrayLike, scheduler) {\n _super.call(this);\n this.arrayLike = arrayLike;\n this.scheduler = scheduler;\n if (!scheduler && arrayLike.length === 1) {\n this._isScalar = true;\n this.value = arrayLike[0];\n }\n }\n ArrayLikeObservable.create = function (arrayLike, scheduler) {\n var length = arrayLike.length;\n if (length === 0) {\n return new EmptyObservable_1.EmptyObservable();\n }\n else if (length === 1) {\n return new ScalarObservable_1.ScalarObservable(arrayLike[0], scheduler);\n }\n else {\n return new ArrayLikeObservable(arrayLike, scheduler);\n }\n };\n ArrayLikeObservable.dispatch = function (state) {\n var arrayLike = state.arrayLike, index = state.index, length = state.length, subscriber = state.subscriber;\n if (subscriber.closed) {\n return;\n }\n if (index >= length) {\n subscriber.complete();\n return;\n }\n subscriber.next(arrayLike[index]);\n state.index = index + 1;\n this.schedule(state);\n };\n ArrayLikeObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var _a = this, arrayLike = _a.arrayLike, scheduler = _a.scheduler;\n var length = arrayLike.length;\n if (scheduler) {\n return scheduler.schedule(ArrayLikeObservable.dispatch, 0, {\n arrayLike: arrayLike, index: index, length: length, subscriber: subscriber\n });\n }\n else {\n for (var i = 0; i < length && !subscriber.closed; i++) {\n subscriber.next(arrayLike[i]);\n }\n subscriber.complete();\n }\n };\n return ArrayLikeObservable;\n}(Observable_1.Observable));\nexports.ArrayLikeObservable = ArrayLikeObservable;\n//# sourceMappingURL=ArrayLikeObservable.js.map\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\nvar Notification_1 = __webpack_require__(142);\n/**\n *\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * @example <caption>Ensure values in subscribe are called just before browser repaint.</caption>\n * const intervals = Rx.Observable.interval(10); // Intervals are scheduled\n * // with async scheduler by default...\n *\n * intervals\n * .observeOn(Rx.Scheduler.animationFrame) // ...but we will observe on animationFrame\n * .subscribe(val => { // scheduler to ensure smooth animation.\n * someDiv.style.height = val + 'px';\n * });\n *\n * @see {@link delay}\n *\n * @param {IScheduler} scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return {Observable<T>} Observable that emits the same notifications as the source Observable,\n * but with provided scheduler.\n *\n * @method observeOn\n * @owner Observable\n */\nfunction observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nexports.observeOn = observeOn;\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexports.ObserveOnOperator = ObserveOnOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ObserveOnSubscriber = (function (_super) {\n __extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n _super.call(this, destination);\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification_1.Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification_1.Notification.createError(err));\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification_1.Notification.createComplete());\n };\n return ObserveOnSubscriber;\n}(Subscriber_1.Subscriber));\nexports.ObserveOnSubscriber = ObserveOnSubscriber;\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexports.ObserveOnMessage = ObserveOnMessage;\n//# sourceMappingURL=observeOn.js.map\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar Observable_1 = __webpack_require__(1);\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification<T>\n */\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n /**\n * Delivers to the given `observer` the value wrapped by this Notification.\n * @param {Observer} observer\n * @return\n */\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n /**\n * Given some {@link Observer} callbacks, deliver the value represented by the\n * current Notification to the correctly corresponding callback.\n * @param {function(value: T): void} next An Observer `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n /**\n * Takes an Observer or its individual callback functions, and calls `observe`\n * or `do` methods accordingly.\n * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n * the `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n /**\n * Returns a simple Observable that just delivers the notification represented\n * by this Notification instance.\n * @return {any}\n */\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return Observable_1.Observable.of(this.value);\n case 'E':\n return Observable_1.Observable.throw(this.error);\n case 'C':\n return Observable_1.Observable.empty();\n }\n throw new Error('unexpected notification kind value');\n };\n /**\n * A shortcut to create a Notification instance of the type `next` from a\n * given value.\n * @param {T} value The `next` value.\n * @return {Notification<T>} The \"next\" Notification representing the\n * argument.\n */\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n /**\n * A shortcut to create a Notification instance of the type `error` from a\n * given error.\n * @param {any} [err] The `error` error.\n * @return {Notification<T>} The \"error\" Notification representing the\n * argument.\n */\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n /**\n * A shortcut to create a Notification instance of the type `complete`.\n * @return {Notification<any>} The valueless \"complete\" Notification.\n */\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexports.Notification = Notification;\n//# sourceMappingURL=Notification.js.map\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar mergeAll_1 = __webpack_require__(84);\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * <img src=\"./img/concatAll.png\" width=\"100%\">\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * @example <caption>For each click event, tick every second from 0 to 3, with no concurrency</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map(ev => Rx.Observable.interval(1000).take(4));\n * var firstOrder = higherOrder.concatAll();\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n *\n * @see {@link combineAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switch}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable emitting values from all the inner\n * Observables concatenated.\n * @method concatAll\n * @owner Observable\n */\nfunction concatAll() {\n return mergeAll_1.mergeAll(1);\n}\nexports.concatAll = concatAll;\n//# sourceMappingURL=concatAll.js.map\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction identity(x) {\n return x;\n}\nexports.identity = identity;\n//# sourceMappingURL=identity.js.map\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayObservable_1 = __webpack_require__(25);\nvar ScalarObservable_1 = __webpack_require__(44);\nvar EmptyObservable_1 = __webpack_require__(26);\nvar concat_1 = __webpack_require__(50);\nvar isScheduler_1 = __webpack_require__(27);\n/* tslint:enable:max-line-length */\n/**\n * Returns an Observable that emits the items you specify as arguments before it begins to emit\n * items emitted by the source Observable.\n *\n * <img src=\"./img/startWith.png\" width=\"100%\">\n *\n * @param {...T} values - Items you want the modified Observable to emit first.\n * @param {Scheduler} [scheduler] - A {@link IScheduler} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items in the specified Iterable and then emits the items\n * emitted by the source Observable.\n * @method startWith\n * @owner Observable\n */\nfunction startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i - 0] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler_1.isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1) {\n return concat_1.concat(new ScalarObservable_1.ScalarObservable(array[0], scheduler), source);\n }\n else if (len > 1) {\n return concat_1.concat(new ArrayObservable_1.ArrayObservable(array, scheduler), source);\n }\n else {\n return concat_1.concat(new EmptyObservable_1.EmptyObservable(scheduler), source);\n }\n };\n}\nexports.startWith = startWith;\n//# sourceMappingURL=startWith.js.map\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\nvar ArgumentOutOfRangeError_1 = __webpack_require__(147);\nvar EmptyObservable_1 = __webpack_require__(26);\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Takes the first `count` values from the source, then\n * completes.</span>\n *\n * <img src=\"./img/take.png\" width=\"100%\">\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * @example <caption>Take the first 5 seconds of an infinite 1-second interval Observable</caption>\n * var interval = Rx.Observable.interval(1000);\n * var five = interval.take(5);\n * five.subscribe(x => console.log(x));\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of `next` values to emit.\n * @return {Observable<T>} An Observable that emits only the first `count`\n * values emitted by the source Observable, or all of the values from the source\n * if the source emits fewer than `count` values.\n * @method take\n * @owner Observable\n */\nfunction take(count) {\n return function (source) {\n if (count === 0) {\n return new EmptyObservable_1.EmptyObservable();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nexports.take = take;\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TakeSubscriber = (function (_super) {\n __extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n _super.call(this, destination);\n this.total = total;\n this.count = 0;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=take.js.map\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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};\n/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nvar ArgumentOutOfRangeError = (function (_super) {\n __extends(ArgumentOutOfRangeError, _super);\n function ArgumentOutOfRangeError() {\n var err = _super.call(this, 'argument out of range');\n this.name = err.name = 'ArgumentOutOfRangeError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return ArgumentOutOfRangeError;\n}(Error));\nexports.ArgumentOutOfRangeError = ArgumentOutOfRangeError;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar pluck_1 = __webpack_require__(7);\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar partition_1 = __webpack_require__(149);\r\nvar merge_1 = __webpack_require__(36);\r\nvar browser_utils_1 = __webpack_require__(24);\r\nvar tap_1 = __webpack_require__(6);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar map_1 = __webpack_require__(2);\r\nfunction setScrollEffect(xs, inputs) {\r\n {\r\n /**\r\n * Group the incoming event with window, document & scrollProportionally argument\r\n */\r\n var tupleStream$ = xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$, inputs.document$, inputs.option$.pipe(pluck_1.pluck(\"scrollProportionally\"))));\r\n /**\r\n * Split the stream between document scrolls and element scrolls\r\n */\r\n var _a = partition_1.partition(function (_a) {\r\n var event = _a[0];\r\n return event.tagName === \"document\";\r\n })(tupleStream$), document$ = _a[0], element$ = _a[1];\r\n /**\r\n * Further split the element scroll between those matching in `scrollElementMapping`\r\n * and regular element scrolls\r\n */\r\n var _b = partition_1.partition(function (_a) {\r\n var event = _a[0];\r\n return event.mappingIndex > -1;\r\n })(element$), mapped$ = _b[0], nonMapped$ = _b[1];\r\n return merge_1.merge(\r\n /**\r\n * Main window scroll\r\n */\r\n document$.pipe(tap_1.tap(function (incoming) {\r\n var event = incoming[0], window = incoming[1], document = incoming[2], scrollProportionally = incoming[3];\r\n var scrollSpace = browser_utils_1.getDocumentScrollSpace(document);\r\n if (scrollProportionally) {\r\n return window.scrollTo(0, scrollSpace.y * event.position.proportional); // % of y axis of scroll to px\r\n }\r\n return window.scrollTo(0, event.position.raw.y);\r\n })), \r\n /**\r\n * Regular, non-mapped Element scrolls\r\n */\r\n nonMapped$.pipe(tap_1.tap(function (incoming) {\r\n var event = incoming[0], window = incoming[1], document = incoming[2], scrollProportionally = incoming[3];\r\n var matchingElements = document.getElementsByTagName(event.tagName);\r\n if (matchingElements && matchingElements.length) {\r\n var match = matchingElements[event.index];\r\n if (match) {\r\n return scrollElement(match, scrollProportionally, event);\r\n }\r\n }\r\n })), \r\n /**\r\n * Element scrolls given in 'scrollElementMapping'\r\n */\r\n mapped$.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"scrollElementMapping\"))), \r\n /**\r\n * Filter the elements in the option `scrollElementMapping` so\r\n * that it does not contain the element that triggered the event\r\n */\r\n map_1.map(function (_a) {\r\n var incoming = _a[0], scrollElementMapping = _a[1];\r\n var event = incoming[0];\r\n return [\r\n incoming,\r\n scrollElementMapping.filter(function (item, index) { return index !== event.mappingIndex; })\r\n ];\r\n }), \r\n /**\r\n * Now perform the scroll on all other matching elements\r\n */\r\n tap_1.tap(function (_a) {\r\n var incoming = _a[0], scrollElementMapping = _a[1];\r\n var event = incoming[0], window = incoming[1], document = incoming[2], scrollProportionally = incoming[3];\r\n scrollElementMapping\r\n .map(function (selector) { return document.querySelector(selector); })\r\n .forEach(function (element) {\r\n scrollElement(element, scrollProportionally, event);\r\n });\r\n }))).pipe(ignoreElements_1.ignoreElements());\r\n }\r\n}\r\nexports.setScrollEffect = setScrollEffect;\r\nfunction scrollElement(element, scrollProportionally, event) {\r\n if (scrollProportionally) {\r\n return element.scrollTo(0, element.scrollHeight * event.position.proportional); // % of y axis of scroll to px\r\n }\r\n return element.scrollTo(0, event.position.raw.y);\r\n}\r\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar not_1 = __webpack_require__(150);\nvar filter_1 = __webpack_require__(4);\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * <span class=\"informal\">It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.</span>\n *\n * <img src=\"./img/partition.png\" width=\"100%\">\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * @example <caption>Partition click events into those on DIV elements and those elsewhere</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var parts = clicks.partition(ev => ev.target.tagName === 'DIV');\n * var clicksOnDivs = parts[0];\n * var clicksElsewhere = parts[1];\n * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));\n * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable<T>, Observable<T>]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n * @method partition\n * @owner Observable\n */\nfunction partition(predicate, thisArg) {\n return function (source) { return [\n filter_1.filter(predicate, thisArg)(source),\n filter_1.filter(not_1.not(predicate, thisArg))(source)\n ]; };\n}\nexports.partition = partition;\n//# sourceMappingURL=partition.js.map\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nfunction not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\nexports.not = not;\n//# sourceMappingURL=not.js.map\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar map_1 = __webpack_require__(2);\r\nvar Log = __webpack_require__(16);\r\nfunction incomingBrowserNotify(xs) {\r\n return xs.pipe(map_1.map(function (event) { return Log.overlayInfo(event.message, event.timeout); }));\r\n}\r\nexports.incomingBrowserNotify = incomingBrowserNotify;\r\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar pluck_1 = __webpack_require__(7);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar browser_set_location_effect_1 = __webpack_require__(86);\r\nfunction incomingBrowserLocation(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"location\"))), filter_1.filter(function (_a) {\r\n var canSyncLocation = _a[1];\r\n return canSyncLocation === true;\r\n }), map_1.map(function (_a) {\r\n var event = _a[0];\r\n return browser_set_location_effect_1.browserSetLocation(event);\r\n }));\r\n}\r\nexports.incomingBrowserLocation = incomingBrowserLocation;\r\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar SubscribeOnObservable_1 = __webpack_require__(154);\n/**\n * Asynchronously subscribes Observers to this Observable on the specified IScheduler.\n *\n * <img src=\"./img/subscribeOn.png\" width=\"100%\">\n *\n * @param {Scheduler} scheduler - The IScheduler to perform subscription actions on.\n * @return {Observable<T>} The source Observable modified so that its subscriptions happen on the specified IScheduler.\n .\n * @method subscribeOn\n * @owner Observable\n */\nfunction subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nexports.subscribeOn = subscribeOn;\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable_1.SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Observable_1 = __webpack_require__(1);\nvar asap_1 = __webpack_require__(155);\nvar isNumeric_1 = __webpack_require__(73);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar SubscribeOnObservable = (function (_super) {\n __extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = asap_1.asap; }\n _super.call(this);\n this.source = source;\n this.delayTime = delayTime;\n this.scheduler = scheduler;\n if (!isNumeric_1.isNumeric(delayTime) || delayTime < 0) {\n this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n this.scheduler = asap_1.asap;\n }\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = asap_1.asap; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable_1.Observable));\nexports.SubscribeOnObservable = SubscribeOnObservable;\n//# sourceMappingURL=SubscribeOnObservable.js.map\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar AsapAction_1 = __webpack_require__(156);\nvar AsapScheduler_1 = __webpack_require__(159);\n/**\n *\n * Asap Scheduler\n *\n * <span class=\"informal\">Perform task as fast as it can be performed asynchronously</span>\n *\n * `asap` scheduler behaves the same as {@link async} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * @example <caption>Compare async and asap scheduler</caption>\n *\n * Rx.Scheduler.async.schedule(() => console.log('async')); // scheduling 'async' first...\n * Rx.Scheduler.asap.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n *\n * @static true\n * @name asap\n * @owner Scheduler\n */\nexports.asap = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction);\n//# sourceMappingURL=asap.js.map\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Immediate_1 = __webpack_require__(157);\nvar AsyncAction_1 = __webpack_require__(75);\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AsapAction = (function (_super) {\n __extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n _super.call(this, scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If a microtask has already been scheduled, don't schedule another\n // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n // the current scheduled microtask id.\n return scheduler.scheduled || (scheduler.scheduled = Immediate_1.Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested microtask and\n // set the scheduled flag to undefined so the next AsapAction will schedule\n // its own.\n if (scheduler.actions.length === 0) {\n Immediate_1.Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n };\n return AsapAction;\n}(AsyncAction_1.AsyncAction));\nexports.AsapAction = AsapAction;\n//# sourceMappingURL=AsapAction.js.map\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(clearImmediate, setImmediate) {/**\nSome credit for this helper goes to http://github.com/YuzuJS/setImmediate\n*/\n\nvar root_1 = __webpack_require__(8);\nvar ImmediateDefinition = (function () {\n function ImmediateDefinition(root) {\n this.root = root;\n if (root.setImmediate && typeof root.setImmediate === 'function') {\n this.setImmediate = root.setImmediate.bind(root);\n this.clearImmediate = root.clearImmediate.bind(root);\n }\n else {\n this.nextHandle = 1;\n this.tasksByHandle = {};\n this.currentlyRunningATask = false;\n // Don't get fooled by e.g. browserify environments.\n if (this.canUseProcessNextTick()) {\n // For Node.js before 0.9\n this.setImmediate = this.createProcessNextTickSetImmediate();\n }\n else if (this.canUsePostMessage()) {\n // For non-IE10 modern browsers\n this.setImmediate = this.createPostMessageSetImmediate();\n }\n else if (this.canUseMessageChannel()) {\n // For web workers, where supported\n this.setImmediate = this.createMessageChannelSetImmediate();\n }\n else if (this.canUseReadyStateChange()) {\n // For IE 6–8\n this.setImmediate = this.createReadyStateChangeSetImmediate();\n }\n else {\n // For older browsers\n this.setImmediate = this.createSetTimeoutSetImmediate();\n }\n var ci = function clearImmediate(handle) {\n delete clearImmediate.instance.tasksByHandle[handle];\n };\n ci.instance = this;\n this.clearImmediate = ci;\n }\n }\n ImmediateDefinition.prototype.identify = function (o) {\n return this.root.Object.prototype.toString.call(o);\n };\n ImmediateDefinition.prototype.canUseProcessNextTick = function () {\n return this.identify(this.root.process) === '[object process]';\n };\n ImmediateDefinition.prototype.canUseMessageChannel = function () {\n return Boolean(this.root.MessageChannel);\n };\n ImmediateDefinition.prototype.canUseReadyStateChange = function () {\n var document = this.root.document;\n return Boolean(document && 'onreadystatechange' in document.createElement('script'));\n };\n ImmediateDefinition.prototype.canUsePostMessage = function () {\n var root = this.root;\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `root.postMessage` means something completely different and can't be used for this purpose.\n if (root.postMessage && !root.importScripts) {\n var postMessageIsAsynchronous_1 = true;\n var oldOnMessage = root.onmessage;\n root.onmessage = function () {\n postMessageIsAsynchronous_1 = false;\n };\n root.postMessage('', '*');\n root.onmessage = oldOnMessage;\n return postMessageIsAsynchronous_1;\n }\n return false;\n };\n // This function accepts the same arguments as setImmediate, but\n // returns a function that requires no arguments.\n ImmediateDefinition.prototype.partiallyApplied = function (handler) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var fn = function result() {\n var _a = result, handler = _a.handler, args = _a.args;\n if (typeof handler === 'function') {\n handler.apply(undefined, args);\n }\n else {\n (new Function('' + handler))();\n }\n };\n fn.handler = handler;\n fn.args = args;\n return fn;\n };\n ImmediateDefinition.prototype.addFromSetImmediateArguments = function (args) {\n this.tasksByHandle[this.nextHandle] = this.partiallyApplied.apply(undefined, args);\n return this.nextHandle++;\n };\n ImmediateDefinition.prototype.createProcessNextTickSetImmediate = function () {\n var fn = function setImmediate() {\n var instance = setImmediate.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n instance.root.process.nextTick(instance.partiallyApplied(instance.runIfPresent, handle));\n return handle;\n };\n fn.instance = this;\n return fn;\n };\n ImmediateDefinition.prototype.createPostMessageSetImmediate = function () {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var root = this.root;\n var messagePrefix = 'setImmediate$' + root.Math.random() + '$';\n var onGlobalMessage = function globalMessageHandler(event) {\n var instance = globalMessageHandler.instance;\n if (event.source === root &&\n typeof event.data === 'string' &&\n event.data.indexOf(messagePrefix) === 0) {\n instance.runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n onGlobalMessage.instance = this;\n root.addEventListener('message', onGlobalMessage, false);\n var fn = function setImmediate() {\n var _a = setImmediate, messagePrefix = _a.messagePrefix, instance = _a.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n instance.root.postMessage(messagePrefix + handle, '*');\n return handle;\n };\n fn.instance = this;\n fn.messagePrefix = messagePrefix;\n return fn;\n };\n ImmediateDefinition.prototype.runIfPresent = function (handle) {\n // From the spec: 'Wait until any invocations of this algorithm started before this one have completed.'\n // So if we're currently running a task, we'll need to delay this invocation.\n if (this.currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // 'too much recursion' error.\n this.root.setTimeout(this.partiallyApplied(this.runIfPresent, handle), 0);\n }\n else {\n var task = this.tasksByHandle[handle];\n if (task) {\n this.currentlyRunningATask = true;\n try {\n task();\n }\n finally {\n this.clearImmediate(handle);\n this.currentlyRunningATask = false;\n }\n }\n }\n };\n ImmediateDefinition.prototype.createMessageChannelSetImmediate = function () {\n var _this = this;\n var channel = new this.root.MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n _this.runIfPresent(handle);\n };\n var fn = function setImmediate() {\n var _a = setImmediate, channel = _a.channel, instance = _a.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n channel.port2.postMessage(handle);\n return handle;\n };\n fn.channel = channel;\n fn.instance = this;\n return fn;\n };\n ImmediateDefinition.prototype.createReadyStateChangeSetImmediate = function () {\n var fn = function setImmediate() {\n var instance = setImmediate.instance;\n var root = instance.root;\n var doc = root.document;\n var html = doc.documentElement;\n var handle = instance.addFromSetImmediateArguments(arguments);\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement('script');\n script.onreadystatechange = function () {\n instance.runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n return handle;\n };\n fn.instance = this;\n return fn;\n };\n ImmediateDefinition.prototype.createSetTimeoutSetImmediate = function () {\n var fn = function setImmediate() {\n var instance = setImmediate.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n instance.root.setTimeout(instance.partiallyApplied(instance.runIfPresent, handle), 0);\n return handle;\n };\n fn.instance = this;\n return fn;\n };\n return ImmediateDefinition;\n}());\nexports.ImmediateDefinition = ImmediateDefinition;\nexports.Immediate = new ImmediateDefinition(root_1.root);\n//# sourceMappingURL=Immediate.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(93).clearImmediate, __webpack_require__(93).setImmediate))\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5), __webpack_require__(58)))\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 AsyncScheduler_1 = __webpack_require__(76);\nvar AsapScheduler = (function (_super) {\n __extends(AsapScheduler, _super);\n function AsapScheduler() {\n _super.apply(this, arguments);\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.AsapScheduler = AsapScheduler;\n//# sourceMappingURL=AsapScheduler.js.map\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar filter_1 = __webpack_require__(4);\r\nvar empty_1 = __webpack_require__(18);\r\nvar utils_1 = __webpack_require__(23);\r\nvar of_1 = __webpack_require__(11);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar mergeMap_1 = __webpack_require__(17);\r\nvar file_reload_effect_1 = __webpack_require__(82);\r\nvar BrowserReload_1 = __webpack_require__(51);\r\nfunction incomingFileReload(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$), filter_1.filter(function (_a) {\r\n var event = _a[0], options = _a[1];\r\n return options.codeSync;\r\n }), mergeMap_1.mergeMap(function (_a) {\r\n var event = _a[0], options = _a[1];\r\n if (event.url || !options.injectChanges) {\r\n return BrowserReload_1.reloadBrowserSafe();\r\n }\r\n if (event.basename && event.ext && utils_1.isBlacklisted(event)) {\r\n return empty_1.empty();\r\n }\r\n return of_1.of(file_reload_effect_1.fileReload(event));\r\n }));\r\n}\r\nexports.incomingFileReload = incomingFileReload;\r\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar pluck_1 = __webpack_require__(7);\r\nvar of_1 = __webpack_require__(11);\r\nvar Log = __webpack_require__(16);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar mergeMap_1 = __webpack_require__(17);\r\nvar set_options_effect_1 = __webpack_require__(49);\r\nvar BrowserReload_1 = __webpack_require__(51);\r\nfunction incomingConnection(xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"logPrefix\"))), mergeMap_1.mergeMap(function (_a, index) {\r\n var x = _a[0], logPrefix = _a[1];\r\n if (index === 0) {\r\n return of_1.of(set_options_effect_1.setOptions(x), Log.overlayInfo(logPrefix + \": connected\"));\r\n }\r\n return BrowserReload_1.reloadBrowserSafe();\r\n }));\r\n}\r\nexports.incomingConnection = incomingConnection;\r\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ignoreElements_1 = __webpack_require__(13);\r\nvar tap_1 = __webpack_require__(6);\r\nfunction incomingDisconnect(xs) {\r\n return xs.pipe(tap_1.tap(function (x) { return console.log(x); }), ignoreElements_1.ignoreElements());\r\n}\r\nexports.incomingDisconnect = incomingDisconnect;\r\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar map_1 = __webpack_require__(2);\r\nvar set_options_effect_1 = __webpack_require__(49);\r\nfunction incomingOptionsSet(xs) {\r\n return xs.pipe(map_1.map(function (event) { return set_options_effect_1.setOptions(event.options); }));\r\n}\r\nexports.incomingOptionsSet = incomingOptionsSet;\r\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_utils_1 = __webpack_require__(24);\r\nvar effects_1 = __webpack_require__(9);\r\nvar BehaviorSubject_1 = __webpack_require__(15);\r\nvar empty_1 = __webpack_require__(18);\r\nvar of_1 = __webpack_require__(11);\r\nvar Log = __webpack_require__(16);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar map_1 = __webpack_require__(2);\r\nvar set_window_name_dom_effect_1 = __webpack_require__(80);\r\nvar set_scroll_dom_effect_1 = __webpack_require__(79);\r\nexports.PREFIX = \"<<BS_START>>\";\r\nexports.SUFFIX = \"<<BS_START>>\";\r\nexports.regex = new RegExp(exports.PREFIX + \"(.+?)\" + exports.SUFFIX);\r\nfunction initWindowName(window) {\r\n var saved = (function () {\r\n /**\r\n * On page load, check window.name for an existing\r\n * BS json blob & parse it.\r\n */\r\n try {\r\n var json = window.name.match(exports.regex);\r\n if (json) {\r\n return JSON.parse(json[1]);\r\n }\r\n }\r\n catch (e) {\r\n return {};\r\n }\r\n })();\r\n /**\r\n * Remove any existing BS json from window.name\r\n * to ensure we don't interfere with any other\r\n * libs who may be using it.\r\n */\r\n window.name = window.name.replace(exports.regex, \"\");\r\n /**\r\n * If the JSON was parsed correctly, try to\r\n * find a scroll property and restore it.\r\n */\r\n if (saved && saved.bs && saved.bs.hardReload && saved.bs.scroll) {\r\n var _a = saved.bs.scroll, x = _a.x, y = _a.y;\r\n return of_1.of(set_scroll_dom_effect_1.setScroll(x, y), Log.consoleDebug(\"[ScrollRestore] x = \" + x + \" y = \" + y));\r\n }\r\n return empty_1.empty();\r\n}\r\nexports.initWindowName = initWindowName;\r\nexports.scrollRestoreHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\r\n // [EffectNames.SetOptions]: (xs, inputs: Inputs) => {\r\n // return xs.pipe(\r\n // withLatestFrom(inputs.window$),\r\n // take(1),\r\n // mergeMap(([options, window]) => {\r\n // if (options.scrollRestoreTechnique === \"window.name\") {\r\n // return initWindowName(window);\r\n // }\r\n // return empty();\r\n // })\r\n // );\r\n // },\r\n /**\r\n * Save the current scroll position\r\n * before the browser is reloaded (via window.location.reload(true))\r\n * @param xs\r\n * @param {Inputs} inputs\r\n */\r\n _a[effects_1.EffectNames.PreBrowserReload] = function (xs, inputs) {\r\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$, inputs.document$), map_1.map(function (_a) {\r\n var window = _a[1], document = _a[2];\r\n return [\r\n window.name,\r\n exports.PREFIX,\r\n JSON.stringify({\r\n bs: {\r\n hardReload: true,\r\n scroll: browser_utils_1.getBrowserScrollPosition(window, document)\r\n }\r\n }),\r\n exports.SUFFIX\r\n ].join(\"\");\r\n }), map_1.map(function (value) { return set_window_name_dom_effect_1.setWindowName(value); }));\r\n },\r\n _a));\r\nvar _a;\r\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar merge_1 = __webpack_require__(36);\r\nvar form_inputs_listener_1 = __webpack_require__(166);\r\nvar clicks_listener_1 = __webpack_require__(168);\r\nvar scroll_listener_1 = __webpack_require__(169);\r\nvar form_toggles_listener_1 = __webpack_require__(170);\r\nfunction initListeners(window, document, socket$, option$) {\r\n var merged$ = merge_1.merge(scroll_listener_1.getScrollStream(window, document, socket$, option$), clicks_listener_1.getClickStream(document, socket$, option$), form_inputs_listener_1.getFormInputStream(document, socket$, option$), form_toggles_listener_1.getFormTogglesStream(document, socket$, option$));\r\n return merged$;\r\n}\r\nexports.initListeners = initListeners;\r\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar browser_utils_1 = __webpack_require__(24);\r\nvar utils_1 = __webpack_require__(23);\r\nvar KeyupEvent = __webpack_require__(92);\r\nvar filter_1 = __webpack_require__(4);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar map_1 = __webpack_require__(2);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar skip_1 = __webpack_require__(37);\r\nvar distinctUntilChanged_1 = __webpack_require__(38);\r\nvar switchMap_1 = __webpack_require__(22);\r\nvar empty_1 = __webpack_require__(18);\r\nvar fromEvent_1 = __webpack_require__(39);\r\nfunction getFormInputStream(document, socket$, option$) {\r\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\r\n var name = _a[0];\r\n return name === socket_messages_1.IncomingSocketNames.Keyup;\r\n })));\r\n return option$.pipe(skip_1.skip(1), // initial option set before the connection event\r\n pluck_1.pluck(\"ghostMode\", \"forms\", \"inputs\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (formInputs) {\r\n if (!formInputs) {\r\n return empty_1.empty();\r\n }\r\n return fromEvent_1.fromEvent(document.body, \"keyup\", true).pipe(map_1.map(function (e) { return e.target || e.srcElement; }), filter_1.filter(function (target) {\r\n return target.tagName === \"INPUT\" ||\r\n target.tagName === \"TEXTAREA\";\r\n }), withLatestFrom_1.withLatestFrom(canSync$), filter_1.filter(function (_a) {\r\n var canSync = _a[1];\r\n return canSync;\r\n }), map_1.map(function (_a) {\r\n var eventTarget = _a[0];\r\n var target = browser_utils_1.getElementData(eventTarget);\r\n var value = eventTarget.value;\r\n return KeyupEvent.outgoing(target, value);\r\n }));\r\n }));\r\n}\r\nexports.getFormInputStream = getFormInputStream;\r\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Observable_1 = __webpack_require__(1);\nvar tryCatch_1 = __webpack_require__(41);\nvar isFunction_1 = __webpack_require__(40);\nvar errorObject_1 = __webpack_require__(29);\nvar Subscription_1 = __webpack_require__(14);\nvar toString = Object.prototype.toString;\nfunction isNodeStyleEventEmitter(sourceObj) {\n return !!sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return !!sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isNodeList(sourceObj) {\n return !!sourceObj && toString.call(sourceObj) === '[object NodeList]';\n}\nfunction isHTMLCollection(sourceObj) {\n return !!sourceObj && toString.call(sourceObj) === '[object HTMLCollection]';\n}\nfunction isEventTarget(sourceObj) {\n return !!sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromEventObservable = (function (_super) {\n __extends(FromEventObservable, _super);\n function FromEventObservable(sourceObj, eventName, selector, options) {\n _super.call(this);\n this.sourceObj = sourceObj;\n this.eventName = eventName;\n this.selector = selector;\n this.options = options;\n }\n /* tslint:enable:max-line-length */\n /**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * <span class=\"informal\">Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.</span>\n *\n * <img src=\"./img/fromEvent.png\" width=\"100%\">\n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * @example <caption>Emits clicks happening on the DOM document</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n *\n *\n * @example <caption>Use addEventListener with capture option</caption>\n * var clicksInDocument = Rx.Observable.fromEvent(document, 'click', true); // note optional configuration parameter\n * // which will be passed to addEventListener\n * var clicksInDiv = Rx.Observable.fromEvent(someDivInDocument, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {EventTargetLike} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @param {SelectorMethodSignature<T>} [selector] An optional function to\n * post-process results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable<T>}\n * @static true\n * @name fromEvent\n * @owner Observable\n */\n FromEventObservable.create = function (target, eventName, options, selector) {\n if (isFunction_1.isFunction(options)) {\n selector = options;\n options = undefined;\n }\n return new FromEventObservable(target, eventName, selector, options);\n };\n FromEventObservable.setupSubscription = function (sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isNodeList(sourceObj) || isHTMLCollection(sourceObj)) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n FromEventObservable.setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () {\n return source_1.removeEventListener(eventName, handler);\n };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(new Subscription_1.Subscription(unsubscribe));\n };\n FromEventObservable.prototype._subscribe = function (subscriber) {\n var sourceObj = this.sourceObj;\n var eventName = this.eventName;\n var options = this.options;\n var selector = this.selector;\n var handler = selector ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n var result = tryCatch_1.tryCatch(selector).apply(void 0, args);\n if (result === errorObject_1.errorObject) {\n subscriber.error(errorObject_1.errorObject.e);\n }\n else {\n subscriber.next(result);\n }\n } : function (e) { return subscriber.next(e); };\n FromEventObservable.setupSubscription(sourceObj, eventName, handler, subscriber, options);\n };\n return FromEventObservable;\n}(Observable_1.Observable));\nexports.FromEventObservable = FromEventObservable;\n//# sourceMappingURL=FromEventObservable.js.map\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar utils_1 = __webpack_require__(23);\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar browser_utils_1 = __webpack_require__(24);\r\nvar ClickEvent = __webpack_require__(91);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar skip_1 = __webpack_require__(37);\r\nvar distinctUntilChanged_1 = __webpack_require__(38);\r\nvar switchMap_1 = __webpack_require__(22);\r\nvar fromEvent_1 = __webpack_require__(39);\r\nvar empty_1 = __webpack_require__(18);\r\nfunction getClickStream(document, socket$, option$) {\r\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\r\n var name = _a[0];\r\n return name === socket_messages_1.IncomingSocketNames.Click;\r\n })));\r\n return option$.pipe(skip_1.skip(1), // initial option set before the connection event\r\n pluck_1.pluck(\"ghostMode\", \"clicks\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (canClick) {\r\n if (!canClick) {\r\n return empty_1.empty();\r\n }\r\n return fromEvent_1.fromEvent(document, \"click\", true).pipe(map_1.map(function (e) { return e.target; }), filter_1.filter(function (target) {\r\n if (target.tagName === \"LABEL\") {\r\n var id = target.getAttribute(\"for\");\r\n if (id && document.getElementById(id)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }), withLatestFrom_1.withLatestFrom(canSync$), filter_1.filter(function (_a) {\r\n var canSync = _a[1];\r\n return canSync;\r\n }), map_1.map(function (_a) {\r\n var target = _a[0];\r\n return ClickEvent.outgoing(browser_utils_1.getElementData(target));\r\n }));\r\n }));\r\n}\r\nexports.getClickStream = getClickStream;\r\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar utils_1 = __webpack_require__(23);\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar browser_utils_1 = __webpack_require__(24);\r\nvar ScrollEvent = __webpack_require__(81);\r\nvar filter_1 = __webpack_require__(4);\r\nvar map_1 = __webpack_require__(2);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar distinctUntilChanged_1 = __webpack_require__(38);\r\nvar switchMap_1 = __webpack_require__(22);\r\nvar empty_1 = __webpack_require__(18);\r\nvar skip_1 = __webpack_require__(37);\r\nvar fromEvent_1 = __webpack_require__(39);\r\nfunction getScrollStream(window, document, socket$, option$) {\r\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\r\n var name = _a[0];\r\n return name === socket_messages_1.IncomingSocketNames.Scroll;\r\n })));\r\n /**\r\n * If the option 'scrollElementMapping' is provided\r\n * we cache thw\r\n * @type {Observable<(Element | null)[]>}\r\n */\r\n var elemMap$ = option$.pipe(pluck_1.pluck(\"scrollElementMapping\"), map_1.map(function (selectors) {\r\n return selectors.map(function (selector) { return document.querySelector(selector); });\r\n }));\r\n return option$.pipe(skip_1.skip(1), // initial option set before the connection event\r\n pluck_1.pluck(\"ghostMode\", \"scroll\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (scroll) {\r\n if (!scroll)\r\n return empty_1.empty();\r\n return fromEvent_1.fromEvent(document, \"scroll\", true).pipe(map_1.map(function (e) { return e.target; }), withLatestFrom_1.withLatestFrom(canSync$, elemMap$), filter_1.filter(function (_a) {\r\n var canSync = _a[1];\r\n return Boolean(canSync);\r\n }), map_1.map(function (_a) {\r\n var target = _a[0], canSync = _a[1], elemMap = _a[2];\r\n if (target === document) {\r\n return ScrollEvent.outgoing(browser_utils_1.getScrollPosition(window, document), \"document\", 0);\r\n }\r\n var elems = document.getElementsByTagName(target.tagName);\r\n var index = Array.prototype.indexOf.call(elems || [], target);\r\n return ScrollEvent.outgoing(browser_utils_1.getScrollPositionForElement(target), target.tagName, index, elemMap.indexOf(target));\r\n }));\r\n }));\r\n}\r\nexports.getScrollStream = getScrollStream;\r\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar socket_messages_1 = __webpack_require__(12);\r\nvar browser_utils_1 = __webpack_require__(24);\r\nvar utils_1 = __webpack_require__(23);\r\nvar FormToggleEvent = __webpack_require__(94);\r\nvar filter_1 = __webpack_require__(4);\r\nvar skip_1 = __webpack_require__(37);\r\nvar pluck_1 = __webpack_require__(7);\r\nvar distinctUntilChanged_1 = __webpack_require__(38);\r\nvar withLatestFrom_1 = __webpack_require__(0);\r\nvar map_1 = __webpack_require__(2);\r\nvar switchMap_1 = __webpack_require__(22);\r\nvar empty_1 = __webpack_require__(18);\r\nvar fromEvent_1 = __webpack_require__(39);\r\nfunction getFormTogglesStream(document, socket$, option$) {\r\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\r\n var name = _a[0];\r\n return name === socket_messages_1.IncomingSocketNames.InputToggle;\r\n })));\r\n return option$.pipe(skip_1.skip(1), pluck_1.pluck(\"ghostMode\", \"forms\", \"toggles\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (canToggle) {\r\n if (!canToggle) {\r\n return empty_1.empty();\r\n }\r\n return fromEvent_1.fromEvent(document, \"change\", true).pipe(map_1.map(function (e) { return e.target || e.srcElement; }), filter_1.filter(function (elem) { return elem.tagName === \"SELECT\"; }), withLatestFrom_1.withLatestFrom(canSync$), filter_1.filter(function (_a) {\r\n var canSync = _a[1];\r\n return canSync;\r\n }), map_1.map(function (_a) {\r\n var elem = _a[0], canSync = _a[1];\r\n var data = browser_utils_1.getElementData(elem);\r\n return FormToggleEvent.outgoing(data, {\r\n type: elem.type,\r\n checked: elem.checked,\r\n value: elem.value\r\n });\r\n }));\r\n }));\r\n}\r\nexports.getFormTogglesStream = getFormTogglesStream;\r\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __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 Subscriber_1 = __webpack_require__(3);\nvar Subscription_1 = __webpack_require__(14);\nvar Observable_1 = __webpack_require__(1);\nvar Subject_1 = __webpack_require__(35);\nvar Map_1 = __webpack_require__(172);\nvar FastMap_1 = __webpack_require__(174);\n/* tslint:enable:max-line-length */\n/**\n * Groups the items emitted by an Observable according to a specified criterion,\n * and emits these grouped items as `GroupedObservables`, one\n * {@link GroupedObservable} per group.\n *\n * <img src=\"./img/groupBy.png\" width=\"100%\">\n *\n * @example <caption>Group objects by id and return as array</caption>\n * Observable.of<Obj>({id: 1, name: 'aze1'},\n * {id: 2, name: 'sf2'},\n * {id: 2, name: 'dg2'},\n * {id: 1, name: 'erg1'},\n * {id: 1, name: 'df1'},\n * {id: 2, name: 'sfqfb2'},\n * {id: 3, name: 'qfs3'},\n * {id: 2, name: 'qsgqsfg2'}\n * )\n * .groupBy(p => p.id)\n * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], []))\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // [ { id: 1, name: 'aze1' },\n * // { id: 1, name: 'erg1' },\n * // { id: 1, name: 'df1' } ]\n * //\n * // [ { id: 2, name: 'sf2' },\n * // { id: 2, name: 'dg2' },\n * // { id: 2, name: 'sfqfb2' },\n * // { id: 2, name: 'qsgqsfg2' } ]\n * //\n * // [ { id: 3, name: 'qfs3' } ]\n *\n * @example <caption>Pivot data on the id field</caption>\n * Observable.of<Obj>({id: 1, name: 'aze1'},\n * {id: 2, name: 'sf2'},\n * {id: 2, name: 'dg2'},\n * {id: 1, name: 'erg1'},\n * {id: 1, name: 'df1'},\n * {id: 2, name: 'sfqfb2'},\n * {id: 3, name: 'qfs1'},\n * {id: 2, name: 'qsgqsfg2'}\n * )\n * .groupBy(p => p.id, p => p.name)\n * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], [\"\" + group$.key]))\n * .map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)}))\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // { id: 1, values: [ 'aze1', 'erg1', 'df1' ] }\n * // { id: 2, values: [ 'sf2', 'dg2', 'sfqfb2', 'qsgqsfg2' ] }\n * // { id: 3, values: [ 'qfs1' ] }\n *\n * @param {function(value: T): K} keySelector A function that extracts the key\n * for each item.\n * @param {function(value: T): R} [elementSelector] A function that extracts the\n * return element for each item.\n * @param {function(grouped: GroupedObservable<K,R>): Observable<any>} [durationSelector]\n * A function that returns an Observable to determine how long each group should\n * exist.\n * @return {Observable<GroupedObservable<K,R>>} An Observable that emits\n * GroupedObservables, each of which corresponds to a unique key value and each\n * of which emits those items from the source Observable that share that key\n * value.\n * @method groupBy\n * @owner Observable\n */\nfunction groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nexports.groupBy = groupBy;\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar GroupBySubscriber = (function (_super) {\n __extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n _super.call(this, destination);\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n this.groups = null;\n this.attemptedToUnsubscribe = false;\n this.count = 0;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = typeof key === 'string' ? new FastMap_1.FastMap() : new Map_1.Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = this.subjectSelector ? this.subjectSelector() : new Subject_1.Subject();\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber_1.Subscriber));\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar GroupDurationSubscriber = (function (_super) {\n __extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n _super.call(this, group);\n this.key = key;\n this.group = group;\n this.parent = parent;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber_1.Subscriber));\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable<K, T>\n */\nvar GroupedObservable = (function (_super) {\n __extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n _super.call(this);\n this.key = key;\n this.groupSubject = groupSubject;\n this.refCountSubscription = refCountSubscription;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription_1.Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable_1.Observable));\nexports.GroupedObservable = GroupedObservable;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerRefCountSubscription = (function (_super) {\n __extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n _super.call(this);\n this.parent = parent;\n parent.count++;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription_1.Subscription));\n//# sourceMappingURL=groupBy.js.map\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar root_1 = __webpack_require__(8);\nvar MapPolyfill_1 = __webpack_require__(173);\nexports.Map = root_1.root.Map || (function () { return MapPolyfill_1.MapPolyfill; })();\n//# sourceMappingURL=Map.js.map\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar MapPolyfill = (function () {\n function MapPolyfill() {\n this.size = 0;\n this._values = [];\n this._keys = [];\n }\n MapPolyfill.prototype.get = function (key) {\n var i = this._keys.indexOf(key);\n return i === -1 ? undefined : this._values[i];\n };\n MapPolyfill.prototype.set = function (key, value) {\n var i = this._keys.indexOf(key);\n if (i === -1) {\n this._keys.push(key);\n this._values.push(value);\n this.size++;\n }\n else {\n this._values[i] = value;\n }\n return this;\n };\n MapPolyfill.prototype.delete = function (key) {\n var i = this._keys.indexOf(key);\n if (i === -1) {\n return false;\n }\n this._values.splice(i, 1);\n this._keys.splice(i, 1);\n this.size--;\n return true;\n };\n MapPolyfill.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this.size = 0;\n };\n MapPolyfill.prototype.forEach = function (cb, thisArg) {\n for (var i = 0; i < this.size; i++) {\n cb.call(thisArg, this._values[i], this._keys[i]);\n }\n };\n return MapPolyfill;\n}());\nexports.MapPolyfill = MapPolyfill;\n//# sourceMappingURL=MapPolyfill.js.map\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar FastMap = (function () {\n function FastMap() {\n this.values = {};\n }\n FastMap.prototype.delete = function (key) {\n this.values[key] = null;\n return true;\n };\n FastMap.prototype.set = function (key, value) {\n this.values[key] = value;\n return this;\n };\n FastMap.prototype.get = function (key) {\n return this.values[key];\n };\n FastMap.prototype.forEach = function (cb, thisArg) {\n var values = this.values;\n for (var key in values) {\n if (values.hasOwnProperty(key) && values[key] !== null) {\n cb.call(thisArg, values[key], key);\n }\n }\n };\n FastMap.prototype.clear = function () {\n this.values = {};\n };\n return FastMap;\n}());\nexports.FastMap = FastMap;\n//# sourceMappingURL=FastMap.js.map\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// index.min.js"," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 95);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e10c8ac77355846295d0","\"use strict\";\nvar __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 OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:enable:max-line-length */\n/**\n * Combines the source Observable with other Observables to create an Observable\n * whose values are calculated from the latest values of each, only when the\n * source emits.\n *\n * <span class=\"informal\">Whenever the source Observable emits a value, it\n * computes a formula using that value plus the latest values from other input\n * Observables, then emits the output of that formula.</span>\n *\n * <img src=\"./img/withLatestFrom.png\" width=\"100%\">\n *\n * `withLatestFrom` combines each value from the source Observable (the\n * instance) with the latest values from the other input Observables only when\n * the source emits a value, optionally using a `project` function to determine\n * the value to be emitted on the output Observable. All input Observables must\n * emit at least one value before the output Observable will emit a value.\n *\n * @example <caption>On every click event, emit an array with the latest timer event plus the click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var timer = Rx.Observable.interval(1000);\n * var result = clicks.withLatestFrom(timer);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link combineLatest}\n *\n * @param {ObservableInput} other An input Observable to combine with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {Function} [project] Projection function for combining values\n * together. Receives all values in order of the Observables passed, where the\n * first parameter is a value from the source Observable. (e.g.\n * `a.withLatestFrom(b, c, (a1, b1, c1) => a1 + b1 + c1)`). If this is not\n * passed, arrays will be emitted on the output Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @method withLatestFrom\n * @owner Observable\n */\nfunction withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nexports.withLatestFrom = withLatestFrom;\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WithLatestFromSubscriber = (function (_super) {\n __extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n _super.call(this, destination);\n this.observables = observables;\n this.project = project;\n this.toRespond = [];\n var len = observables.length;\n this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult_1.subscribeToResult(this, observable, observable, i));\n }\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n // noop\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/withLatestFrom.js\n// module id = 0\n// module chunks = 0","\"use strict\";\nvar root_1 = require('./util/root');\nvar toSubscriber_1 = require('./util/toSubscriber');\nvar observable_1 = require('./symbol/observable');\nvar pipe_1 = require('./util/pipe');\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nvar Observable = (function () {\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to a {@link create} static factory, but most of the time it is\n * a library implementation, which defines what and when will be emitted by an Observable. This means that calling\n * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent\n * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}.\n *\n * @example <caption>Subscribe with an Observer</caption>\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() { // We actually could just remove this method,\n * }, // since we do not really care about errors right now.\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example <caption>Subscribe with functions</caption>\n * let sum = 0;\n *\n * Rx.Observable.of(1, 2, 3)\n * .subscribe(\n * function(value) {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * function() {\n * console.log('Sum equals: ' + sum);\n * }\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example <caption>Cancel a subscription</caption>\n * const subscription = Rx.Observable.interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => console.log('completed!') // Will not be called, even\n * ); // when cancelling subscription\n *\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n *\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n sink.error(err);\n }\n };\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n Observable.prototype.forEach = function (next, PromiseCtor) {\n var _this = this;\n if (!PromiseCtor) {\n if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n PromiseCtor = root_1.root.Rx.config.Promise;\n }\n else if (root_1.root.Promise) {\n PromiseCtor = root_1.root.Promise;\n }\n }\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n return new PromiseCtor(function (resolve, reject) {\n // Must be declared in a separate statement to avoid a RefernceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n var subscription;\n subscription = _this.subscribe(function (value) {\n if (subscription) {\n // if there is a subscription, then we can surmise\n // the next handling is asynchronous. Any errors thrown\n // need to be rejected explicitly and unsubscribe must be\n // called manually\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscription.unsubscribe();\n }\n }\n else {\n // if there is NO subscription, then we're getting a nexted\n // value synchronously during subscription. We can just call it.\n // If it errors, Observable's `subscribe` will ensure the\n // unsubscription logic is called, then synchronously rethrow the error.\n // After that, Promise will trap the error and send it\n // down the rejection path.\n next(value);\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n return this.source.subscribe(subscriber);\n };\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n /* tslint:enable:max-line-length */\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * @example\n *\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * Rx.Observable.interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n */\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i - 0] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipe_1.pipeFromArray(operations)(this);\n };\n /* tslint:enable:max-line-length */\n Observable.prototype.toPromise = function (PromiseCtor) {\n var _this = this;\n if (!PromiseCtor) {\n if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n PromiseCtor = root_1.root.Rx.config.Promise;\n }\n else if (root_1.root.Promise) {\n PromiseCtor = root_1.root.Promise;\n }\n }\n if (!PromiseCtor) {\n throw new Error('no Promise impl found');\n }\n return new PromiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n */\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\n//# sourceMappingURL=Observable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Observable.js\n// module id = 1\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * <img src=\"./img/map.png\" width=\"100%\">\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * @example <caption>Map every click to the clientX position of that click</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var positions = clicks.map(ev => ev.clientX);\n * positions.subscribe(x => console.log(x));\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable<R>} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nfunction map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexports.map = map;\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexports.MapOperator = MapOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MapSubscriber = (function (_super) {\n __extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n _super.call(this, destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n // NOTE: This looks unoptimized, but it's actually purposefully NOT\n // using try/catch optimizations.\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=map.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/map.js\n// module id = 2\n// module chunks = 0","\"use strict\";\nvar __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 isFunction_1 = require('./util/isFunction');\nvar Subscription_1 = require('./Subscription');\nvar Observer_1 = require('./Observer');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n function Subscriber(destinationOrNext, error, complete) {\n _super.call(this);\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n this.destination.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n */\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached {@link Error}. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n return this;\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n _super.call(this);\n this._parentSubscriber = _parentSubscriber;\n var next;\n var context = this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n if (isFunction_1.isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._error) {\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n throw err;\n }\n else {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n throw err;\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=Subscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Subscriber.js\n// module id = 3\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\n/* tslint:enable:max-line-length */\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * <img src=\"./img/filter.png\" width=\"100%\">\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * @example <caption>Emit only click events whose target was a DIV element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var clicksOnDivs = clicks.filter(ev => ev.target.tagName === 'DIV');\n * clicksOnDivs.subscribe(x => console.log(x));\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nfunction filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nexports.filter = filter;\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FilterSubscriber = (function (_super) {\n __extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n _super.call(this, destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n // the try catch block below is left specifically for\n // optimization and perf reasons. a tryCatcher is not necessary here.\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=filter.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/filter.js\n// module id = 4\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 5\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\n/* tslint:enable:max-line-length */\n/**\n * Perform a side effect for every emission on the source Observable, but return\n * an Observable that is identical to the source.\n *\n * <span class=\"informal\">Intercepts each emission on the source and runs a\n * function, but returns an output which is identical to the source as long as errors don't occur.</span>\n *\n * <img src=\"./img/do.png\" width=\"100%\">\n *\n * Returns a mirrored Observable of the source Observable, but modified so that\n * the provided Observer is called to perform a side effect for every value,\n * error, and completion emitted by the source. Any errors that are thrown in\n * the aforementioned Observer or handlers are safely sent down the error path\n * of the output Observable.\n *\n * This operator is useful for debugging your Observables for the correct values\n * or performing other side effects.\n *\n * Note: this is different to a `subscribe` on the Observable. If the Observable\n * returned by `do` is not subscribed, the side effects specified by the\n * Observer will never happen. `do` therefore simply spies on existing\n * execution, it does not trigger an execution to happen like `subscribe` does.\n *\n * @example <caption>Map every click to the clientX position of that click, while also logging the click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var positions = clicks\n * .do(ev => console.log(ev))\n * .map(ev => ev.clientX);\n * positions.subscribe(x => console.log(x));\n *\n * @see {@link map}\n * @see {@link subscribe}\n *\n * @param {Observer|function} [nextOrObserver] A normal Observer object or a\n * callback for `next`.\n * @param {function} [error] Callback for errors in the source.\n * @param {function} [complete] Callback for the completion of the source.\n * @return {Observable} An Observable identical to the source, but runs the\n * specified Observer or callback(s) for each item.\n * @name tap\n */\nfunction tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nexports.tap = tap;\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DoSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DoSubscriber = (function (_super) {\n __extends(DoSubscriber, _super);\n function DoSubscriber(destination, nextOrObserver, error, complete) {\n _super.call(this, destination);\n var safeSubscriber = new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n safeSubscriber.syncErrorThrowable = true;\n this.add(safeSubscriber);\n this.safeSubscriber = safeSubscriber;\n }\n DoSubscriber.prototype._next = function (value) {\n var safeSubscriber = this.safeSubscriber;\n safeSubscriber.next(value);\n if (safeSubscriber.syncErrorThrown) {\n this.destination.error(safeSubscriber.syncErrorValue);\n }\n else {\n this.destination.next(value);\n }\n };\n DoSubscriber.prototype._error = function (err) {\n var safeSubscriber = this.safeSubscriber;\n safeSubscriber.error(err);\n if (safeSubscriber.syncErrorThrown) {\n this.destination.error(safeSubscriber.syncErrorValue);\n }\n else {\n this.destination.error(err);\n }\n };\n DoSubscriber.prototype._complete = function () {\n var safeSubscriber = this.safeSubscriber;\n safeSubscriber.complete();\n if (safeSubscriber.syncErrorThrown) {\n this.destination.error(safeSubscriber.syncErrorValue);\n }\n else {\n this.destination.complete();\n }\n };\n return DoSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=tap.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/tap.js\n// module id = 6\n// module chunks = 0","\"use strict\";\nvar map_1 = require('./map');\n/**\n * Maps each source value (an object) to its specified nested property.\n *\n * <span class=\"informal\">Like {@link map}, but meant only for picking one of\n * the nested properties of every emitted object.</span>\n *\n * <img src=\"./img/pluck.png\" width=\"100%\">\n *\n * Given a list of strings describing a path to an object property, retrieves\n * the value of a specified nested property from all values in the source\n * Observable. If a property can't be resolved, it will return `undefined` for\n * that value.\n *\n * @example <caption>Map every click to the tagName of the clicked target element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var tagNames = clicks.pluck('target', 'tagName');\n * tagNames.subscribe(x => console.log(x));\n *\n * @see {@link map}\n *\n * @param {...string} properties The nested properties to pluck from each source\n * value (an object).\n * @return {Observable} A new Observable of property values from the source values.\n * @method pluck\n * @owner Observable\n */\nfunction pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i - 0] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map_1.map(plucker(properties, length))(source); };\n}\nexports.pluck = pluck;\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/pluck.js\n// module id = 7\n// module chunks = 0","\"use strict\";\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\nexports.root = _root;\n// Workaround Closure Compiler restriction: The body of a goog.module cannot use throw.\n// This is needed when used with angular/tsickle which inserts a goog.module statement.\n// Wrap in IIFE\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\n//# sourceMappingURL=root.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/root.js\n// module id = 8\n// module chunks = 0","import { BehaviorSubject } from \"rxjs/BehaviorSubject\";\nimport { setOptionsEffect } from \"./effects/set-options.effect\";\nimport { fileReloadEffect } from \"./effects/file-reload.effect\";\nimport { browserSetLocationEffect } from \"./effects/browser-set-location.effect\";\nimport { simulateClickEffect } from \"./effects/simulate-click.effect\";\nimport { setElementValueEffect } from \"./effects/set-element-value.effect\";\nimport { setElementToggleValueEffect } from \"./effects/set-element-toggle-value.effect\";\nimport { setScrollEffect } from \"./effects/set-scroll\";\nimport { browserReloadEffect } from \"./effects/browser-reload.effect\";\n\nexport enum EffectNames {\n FileReload = \"@@FileReload\",\n PreBrowserReload = \"@@PreBrowserReload\",\n BrowserReload = \"@@BrowserReload\",\n BrowserSetLocation = \"@@BrowserSetLocation\",\n BrowserSetScroll = \"@@BrowserSetScroll\",\n SetOptions = \"@@SetOptions\",\n SimulateClick = \"@@SimulateClick\",\n SetElementValue = \"@@SetElementValue\",\n SetElementToggleValue = \"@@SetElementToggleValue\"\n}\n\nexport const effectOutputHandlers$ = new BehaviorSubject({\n [EffectNames.SetOptions]: setOptionsEffect,\n [EffectNames.FileReload]: fileReloadEffect,\n [EffectNames.BrowserReload]: browserReloadEffect,\n [EffectNames.BrowserSetLocation]: browserSetLocationEffect,\n [EffectNames.SimulateClick]: simulateClickEffect,\n [EffectNames.SetElementValue]: setElementValueEffect,\n [EffectNames.SetElementToggleValue]: setElementToggleValueEffect,\n [EffectNames.BrowserSetScroll]: setScrollEffect\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects.ts","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/debug/src/browser.js\n// module id = 10\n// module chunks = 0","\"use strict\";\nvar ArrayObservable_1 = require('./ArrayObservable');\nexports.of = ArrayObservable_1.ArrayObservable.of;\n//# sourceMappingURL=of.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/of.js\n// module id = 11\n// module chunks = 0","import { BehaviorSubject } from \"rxjs/BehaviorSubject\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { incomingScrollHandler } from \"./messages/ScrollEvent\";\nimport { incomingHandler$ } from \"./messages/ClickEvent\";\nimport { incomingKeyupHandler } from \"./messages/KeyupEvent\";\nimport { incomingBrowserNotify } from \"./messages/BrowserNotify\";\nimport { incomingBrowserLocation } from \"./messages/BrowserLocation\";\nimport { incomingBrowserReload } from \"./messages/BrowserReload\";\nimport { incomingFileReload } from \"./messages/FileReload\";\nimport { incomingConnection } from \"./messages/Connection\";\nimport { incomingDisconnect } from \"./messages/Disconnect\";\nimport { incomingInputsToggles } from \"./messages/FormToggleEvent\";\nimport { incomingOptionsSet } from \"./messages/OptionsSet\";\n\nexport enum IncomingSocketNames {\n Connection = \"connection\",\n Disconnect = \"disconnect\",\n FileReload = \"file:reload\",\n BrowserReload = \"browser:reload\",\n BrowserLocation = \"browser:location\",\n BrowserNotify = \"browser:notify\",\n Scroll = \"scroll\",\n Click = \"click\",\n Keyup = \"input:text\",\n InputToggle = \"input:toggles\",\n OptionsSet = \"options:set\"\n}\n\nexport enum OutgoingSocketEvents {\n Scroll = \"@@outgoing/scroll\",\n Click = \"@@outgoing/click\",\n Keyup = \"@@outgoing/keyup\",\n InputToggle = \"@@outgoing/Toggle\"\n}\n\nexport type SocketEvent = [IncomingSocketNames, any];\nexport type OutgoingSocketEvent = [OutgoingSocketEvents, any];\n\nexport const socketHandlers$ = new BehaviorSubject({\n [IncomingSocketNames.Connection]: incomingConnection,\n [IncomingSocketNames.Disconnect]: incomingDisconnect,\n [IncomingSocketNames.FileReload]: incomingFileReload,\n [IncomingSocketNames.BrowserReload]: incomingBrowserReload,\n [IncomingSocketNames.BrowserLocation]: incomingBrowserLocation,\n [IncomingSocketNames.BrowserNotify]: incomingBrowserNotify,\n [IncomingSocketNames.Scroll]: incomingScrollHandler,\n [IncomingSocketNames.Click]: incomingHandler$,\n [IncomingSocketNames.Keyup]: incomingKeyupHandler,\n [IncomingSocketNames.InputToggle]: incomingInputsToggles,\n [IncomingSocketNames.OptionsSet]: incomingOptionsSet,\n [OutgoingSocketEvents.Scroll]: emitWithPathname(IncomingSocketNames.Scroll),\n [OutgoingSocketEvents.Click]: emitWithPathname(IncomingSocketNames.Click),\n [OutgoingSocketEvents.Keyup]: emitWithPathname(IncomingSocketNames.Keyup),\n [OutgoingSocketEvents.InputToggle]: emitWithPathname(\n IncomingSocketNames.InputToggle\n )\n});\n\nfunction emitWithPathname(name) {\n return function(xs, inputs) {\n return xs.pipe(\n withLatestFrom(\n inputs.io$,\n inputs.window$.pipe(pluck(\"location\", \"pathname\"))\n ),\n tap(([event, io, pathname]) =>\n io.emit(name, { ...event, pathname })\n ),\n ignoreElements()\n );\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/socket-messages.ts","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\nvar noop_1 = require('../util/noop');\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * <img src=\"./img/ignoreElements.png\" width=\"100%\">\n *\n * @return {Observable} An empty Observable that only calls `complete`\n * or `error`, based on which one is called by the source Observable.\n * @method ignoreElements\n * @owner Observable\n */\nfunction ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nexports.ignoreElements = ignoreElements;\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar IgnoreElementsSubscriber = (function (_super) {\n __extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n _super.apply(this, arguments);\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n noop_1.noop();\n };\n return IgnoreElementsSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=ignoreElements.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/ignoreElements.js\n// module id = 13\n// module chunks = 0","\"use strict\";\nvar isArray_1 = require('./util/isArray');\nvar isObject_1 = require('./util/isObject');\nvar isFunction_1 = require('./util/isFunction');\nvar tryCatch_1 = require('./util/tryCatch');\nvar errorObject_1 = require('./util/errorObject');\nvar UnsubscriptionError_1 = require('./util/UnsubscriptionError');\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nvar Subscription = (function () {\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n function Subscription(unsubscribe) {\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n this.closed = false;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n // if this._parent is null, then so is this._parents, and we\n // don't have to remove ourselves from any parent subscriptions.\n while (_parent) {\n _parent.remove(this);\n // if this._parents is null or index >= len,\n // then _parent is set to null, and the loop exits\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction_1.isFunction(_unsubscribe)) {\n var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || (errorObject_1.errorObject.e instanceof UnsubscriptionError_1.UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject_1.errorObject.e.errors) : [errorObject_1.errorObject.e]);\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject_1.errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject_1.errorObject.e;\n if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function' /* quack quack */) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n // If we don't have a parent, or the new parent is the same as the\n // current parent, then set this._parent to the new parent.\n this._parent = parent;\n }\n else if (!_parents) {\n // If there's already one parent, but not multiple, allocate an Array to\n // store the rest of the parent Subscriptions.\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n // Only add the new parent to the _parents list if it's not already there.\n _parents.push(parent);\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Subscription.js\n// module id = 14\n// module chunks = 0","\"use strict\";\nvar __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 Subject_1 = require('./Subject');\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\n/**\n * @class BehaviorSubject<T>\n */\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n _super.call(this);\n this._value = _value;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject_1.Subject));\nexports.BehaviorSubject = BehaviorSubject;\n//# sourceMappingURL=BehaviorSubject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/BehaviorSubject.js\n// module id = 15\n// module chunks = 0","import { BehaviorSubject } from \"rxjs/BehaviorSubject\";\nimport { timer } from \"rxjs/observable/timer\";\nimport { Observable } from \"rxjs/Observable\";\nimport { of } from \"rxjs/observable/of\";\nimport { Nanologger } from \"../vendor/logger\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { switchMap } from \"rxjs/operators/switchMap\";\nimport { Inputs } from \"./index\";\nimport { pluck } from \"rxjs/operators/pluck\";\n\nexport function initLogger(options: IBrowserSyncOptions) {\n const log = new Nanologger(options.logPrefix, {\n colors: { magenta: \"#0F2634\" }\n });\n return of(log);\n}\n\nexport enum LogNames {\n Log = \"@@Log\",\n Info = \"@@Log.info\",\n Debug = \"@@Log.debug\"\n}\n\nexport enum Overlay {\n Info = \"@@Overlay.info\"\n}\n\nexport type ConsolePayload = [LogNames, any[]];\n\nexport function consoleInfo(...args): [LogNames.Log, ConsolePayload] {\n return [LogNames.Log, [LogNames.Info, args]];\n}\n\nexport function consoleDebug(...args): [LogNames.Log, ConsolePayload] {\n return [LogNames.Log, [LogNames.Debug, args]];\n}\n\nexport type OverlayInfoPayload = [string, number];\n\nexport function overlayInfo(\n message: string,\n timeout = 2000\n): [Overlay.Info, OverlayInfoPayload] {\n return [Overlay.Info, [message, timeout]];\n}\n\nexport const logHandler$ = new BehaviorSubject({\n [LogNames.Log]: (xs: Observable<[LogNames, any]>, inputs: Inputs) => {\n return xs.pipe(\n /**\n * access injectNotification from the options stream\n */\n withLatestFrom(\n inputs.logInstance$,\n inputs.option$.pipe(pluck(\"injectNotification\"))\n ),\n /**\n * only accept messages if injectNotification !== console\n */\n filter(\n ([, , injectNotification]) => injectNotification === \"console\"\n ),\n tap(([event, log]) => {\n switch (event[0]) {\n case LogNames.Info: {\n return log.info.apply(log, event[1]);\n }\n case LogNames.Debug: {\n return log.debug.apply(log, event[1]);\n }\n }\n })\n );\n },\n [Overlay.Info]: (xs: Observable<[LogNames, any]>, inputs: Inputs) => {\n return xs.pipe(\n withLatestFrom(\n inputs.option$,\n inputs.notifyElement$,\n inputs.document$\n ),\n /**\n * Reject all notifications if notify: false\n */\n filter(([, options]) => Boolean(options.notify)),\n /**\n * Set the HTML of the notify element\n */\n tap(([event, options, element, document]) => {\n element.innerHTML = event[0];\n element.style.display = \"block\";\n document.body.appendChild(element);\n }),\n /**\n * Now remove the element after the given timeout\n */\n switchMap(([event, options, element, document]) => {\n return timer(event[1] || 2000).pipe(\n tap(() => {\n element.style.display = \"none\";\n if (element.parentNode) {\n document.body.removeChild(element);\n }\n })\n );\n })\n );\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/log.ts","\"use strict\";\nvar __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 subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * <img src=\"./img/mergeMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * @example <caption>Map and flatten each letter to an Observable ticking every 1 second</caption>\n * var letters = Rx.Observable.of('a', 'b', 'c');\n * var result = letters.mergeMap(x =>\n * Rx.Observable.interval(1000).map(i => x+i)\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a,b,c with respective ascending integers\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and merging the results of the Observables obtained\n * from this transformation.\n * @method mergeMap\n * @owner Observable\n */\nfunction mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function mergeMapOperatorFunction(source) {\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n resultSelector = null;\n }\n return source.lift(new MergeMapOperator(project, resultSelector, concurrent));\n };\n}\nexports.mergeMap = mergeMap;\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.resultSelector = resultSelector;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.resultSelector, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexports.MergeMapOperator = MergeMapOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MergeMapSubscriber = (function (_super) {\n __extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n _super.call(this, destination);\n this.project = project;\n this.resultSelector = resultSelector;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n this.add(subscribeToResult_1.subscribeToResult(this, ish, value, index));\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (this.resultSelector) {\n this._notifyResultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n this.destination.next(innerValue);\n }\n };\n MergeMapSubscriber.prototype._notifyResultSelector = function (outerValue, innerValue, outerIndex, innerIndex) {\n var result;\n try {\n result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.MergeMapSubscriber = MergeMapSubscriber;\n//# sourceMappingURL=mergeMap.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/mergeMap.js\n// module id = 17\n// module chunks = 0","\"use strict\";\nvar EmptyObservable_1 = require('./EmptyObservable');\nexports.empty = EmptyObservable_1.EmptyObservable.create;\n//# sourceMappingURL=empty.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/empty.js\n// module id = 18\n// module chunks = 0","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/component-emitter/index.js\n// module id = 19\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n , close: 1 // non-ws\n , ping: 2\n , pong: 3\n , message: 4\n , upgrade: 5\n , noop: 6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n * <packet type id> [ <data> ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n\n var data = (packet.data === undefined)\n ? undefined\n : packet.data.buffer || packet.data;\n\n if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (Blob && data instanceof global.Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n }\n\n return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i+1] = contentArray[i];\n }\n\n return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var fr = new FileReader();\n fr.onload = function() {\n packet.data = fr.result;\n exports.encodePacket(packet, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (Blob && packet.data instanceof global.Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += global.btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n\n if (data.length > 1) {\n return { type: packetslist[type], data: data.substring(1) };\n } else {\n return { type: packetslist[type] };\n }\n }\n\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, { strict: false });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return { type: type, data: { base64: true, data: msg.substr(1) } };\n }\n\n var data = base64encoder.decode(msg.substr(1));\n\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n\n return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * <length>:data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n\n var isBinary = hasBinary(packets);\n\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n\n if (!packets.length) {\n return callback('0:');\n }\n\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n var length = '', n, msg;\n\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n\n if (chr !== ':') {\n length += chr;\n continue;\n }\n\n if (length === '' || (length != (n = Number(length)))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n msg = data.substr(i + 1, n);\n\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string'){\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n\n var resultArray = new Uint8Array(totalLength);\n\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n\n if (isString) { // not true binary\n resultArray[bufferIndex++] = 0;\n } else { // true binary\n resultArray[bufferIndex++] = 1;\n }\n\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n\n var len = (encoded instanceof ArrayBuffer)\n ? encoded.byteLength\n : encoded.size;\n\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var bufferTail = data;\n var buffers = [];\n\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n\n for (var i = 1; ; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n\n msgLength += tailArray[i];\n }\n\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-parser/lib/browser.js\n// module id = 20\n// module chunks = 0","import { BehaviorSubject } from \"rxjs/BehaviorSubject\";\nimport { propSetDomEffect } from \"./dom-effects/prop-set.dom-effect\";\nimport { styleSetDomEffect } from \"./dom-effects/style-set.dom-effect\";\nimport { linkReplaceDomEffect } from \"./dom-effects/link-replace.dom-effect\";\nimport { setScrollDomEffect } from \"./dom-effects/set-scroll.dom-effect\";\nimport { setWindowNameDomEffect } from \"./dom-effects/set-window-name.dom-effect\";\n\nexport enum Events {\n PropSet = \"@@BSDOM.Events.PropSet\",\n StyleSet = \"@@BSDOM.Events.StyleSet\",\n LinkReplace = \"@@BSDOM.Events.LinkReplace\",\n SetScroll = \"@@BSDOM.Events.SetScroll\",\n SetWindowName = \"@@BSDOM.Events.SetWindowName\"\n}\n\nexport const domHandlers$ = new BehaviorSubject({\n [Events.PropSet]: propSetDomEffect,\n [Events.StyleSet]: styleSetDomEffect,\n [Events.LinkReplace]: linkReplaceDomEffect,\n [Events.SetScroll]: setScrollDomEffect,\n [Events.SetWindowName]: setWindowNameDomEffect\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/dom-effects.ts","\"use strict\";\nvar __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 OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:enable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link switch}.</span>\n *\n * <img src=\"./img/switchMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * @example <caption>Rerun an interval Observable on every click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMap((ev) => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switch}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nfunction switchMap(project, resultSelector) {\n return function switchMapOperatorFunction(source) {\n return source.lift(new SwitchMapOperator(project, resultSelector));\n };\n}\nexports.switchMap = switchMap;\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project, resultSelector) {\n this.project = project;\n this.resultSelector = resultSelector;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project, this.resultSelector));\n };\n return SwitchMapOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapSubscriber = (function (_super) {\n __extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project, resultSelector) {\n _super.call(this, destination);\n this.project = project;\n this.resultSelector = resultSelector;\n this.index = 0;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, value, index));\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (this.resultSelector) {\n this._tryNotifyNext(outerValue, innerValue, outerIndex, innerIndex);\n }\n else {\n this.destination.next(innerValue);\n }\n };\n SwitchMapSubscriber.prototype._tryNotifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n var result;\n try {\n result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/switchMap.js\n// module id = 22\n// module chunks = 0","import { concat } from \"rxjs/observable/concat\";\nimport { timer } from \"rxjs/observable/timer\";\nimport { of } from \"rxjs/observable/of\";\nimport { switchMap } from \"rxjs/operators/switchMap\";\nimport { startWith } from \"rxjs/operators/startWith\";\nimport { mapTo } from \"rxjs/operators/mapTo\";\n\nexport function each(incoming) {\n return [].slice.call(incoming || []);\n}\n\nexport const splitUrl = function(url) {\n let hash, index, params;\n if ((index = url.indexOf(\"#\")) >= 0) {\n hash = url.slice(index);\n url = url.slice(0, index);\n } else {\n hash = \"\";\n }\n\n if ((index = url.indexOf(\"?\")) >= 0) {\n params = url.slice(index);\n url = url.slice(0, index);\n } else {\n params = \"\";\n }\n\n return { url, params, hash };\n};\n\nexport const pathFromUrl = function(url) {\n let path;\n ({ url } = splitUrl(url));\n if (url.indexOf(\"file://\") === 0) {\n path = url.replace(new RegExp(`^file://(localhost)?`), \"\");\n } else {\n // http : // hostname :8080 /\n path = url.replace(new RegExp(`^([^:]+:)?//([^:/]+)(:\\\\d*)?/`), \"/\");\n }\n\n // decodeURI has special handling of stuff like semicolons, so use decodeURIComponent\n return decodeURIComponent(path);\n};\n\nexport const pickBestMatch = function(path, objects, pathFunc): any {\n let score;\n let bestMatch = { score: 0, object: null };\n\n objects.forEach(object => {\n score = numberOfMatchingSegments(path, pathFunc(object));\n if (score > bestMatch.score) {\n bestMatch = { object, score };\n }\n });\n\n if (bestMatch.score > 0) {\n return bestMatch;\n } else {\n return null;\n }\n};\n\nexport const numberOfMatchingSegments = function(path1, path2) {\n // get rid of leading slashes and normalize to lower case\n path1 = path1.replace(/^\\/+/, \"\").toLowerCase();\n path2 = path2.replace(/^\\/+/, \"\").toLowerCase();\n\n if (path1 === path2) {\n return 10000;\n }\n\n const comps1 = path1.split(\"/\").reverse();\n const comps2 = path2.split(\"/\").reverse();\n const len = Math.min(comps1.length, comps2.length);\n\n let eqCount = 0;\n while (eqCount < len && comps1[eqCount] === comps2[eqCount]) {\n ++eqCount;\n }\n\n return eqCount;\n};\n\nexport const pathsMatch = (path1, path2) =>\n numberOfMatchingSegments(path1, path2) > 0;\n\nexport function getLocation(url: string) {\n var location = document.createElement(\"a\");\n location.href = url;\n\n if (location.host === \"\") {\n location.href = location.href;\n }\n\n return location;\n}\n\n/**\n * @param {string} search\n * @param {string} key\n * @param {string} suffix\n */\nexport function updateSearch(search, key, suffix) {\n if (search === \"\") {\n return \"?\" + suffix;\n }\n\n return (\n \"?\" +\n search\n .slice(1)\n .split(\"&\")\n .map(function(item) {\n return item.split(\"=\");\n })\n .filter(function(tuple) {\n return tuple[0] !== key;\n })\n .map(function(item) {\n return [item[0], item[1]].join(\"=\");\n })\n .concat(suffix)\n .join(\"&\")\n );\n}\n\nconst blacklist = [\n // never allow .map files through\n function(incoming) {\n return incoming.ext === \"map\";\n }\n];\n\n/**\n * @param incoming\n * @returns {boolean}\n */\nexport function isBlacklisted(incoming) {\n return blacklist.some(function(fn) {\n return fn(incoming);\n });\n}\n\nexport function createTimedBooleanSwitch(source$, timeout = 1000) {\n return source$.pipe(\n switchMap(() => {\n return concat(of(false), timer(timeout).pipe(mapTo(true)));\n }),\n startWith(true)\n );\n}\n\nexport function array(incoming) {\n return [].slice.call(incoming);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils.ts","/**\n * @returns {window}\n */\nimport * as ScrollEvent from \"./messages/ScrollEvent\";\nimport ICoords = ScrollEvent.ICoords;\n\nexport function getWindow() {\n return window;\n}\n\n/**\n * @returns {HTMLDocument}\n */\nexport function getDocument() {\n return document;\n}\n\n/**\n * Get the current x/y position crossbow\n * @returns {{x: *, y: *}}\n */\nexport function getBrowserScrollPosition(window, document): ICoords {\n let scrollX;\n let scrollY;\n const dElement = document.documentElement;\n const dBody = document.body;\n\n if (window.pageYOffset !== undefined) {\n scrollX = window.pageXOffset;\n scrollY = window.pageYOffset;\n } else {\n scrollX = dElement.scrollLeft || dBody.scrollLeft || 0;\n scrollY = dElement.scrollTop || dBody.scrollTop || 0;\n }\n\n return {\n x: scrollX,\n y: scrollY\n };\n}\n\n/**\n * @returns {{x: number, y: number}}\n */\nexport function getDocumentScrollSpace(\n document: Document\n): ScrollEvent.ICoords {\n const dElement = document.documentElement;\n const dBody = document.body;\n return {\n x: dBody.scrollHeight - dElement.clientWidth,\n y: dBody.scrollHeight - dElement.clientHeight\n };\n}\n\n/**\n * Saves scroll position into cookies\n */\nexport function saveScrollPosition(window, document) {\n const pos = getBrowserScrollPosition(window, document);\n document.cookie = \"bs_scroll_pos=\" + [pos.x, pos.y].join(\",\");\n}\n\n/**\n * Restores scroll position from cookies\n */\nexport function restoreScrollPosition() {\n const pos = getDocument()\n .cookie.replace(\n /(?:(?:^|.*;\\s*)bs_scroll_pos\\s*\\=\\s*([^;]*).*$)|^.*$/,\n \"$1\"\n )\n .split(\",\");\n getWindow().scrollTo(Number(pos[0]), Number(pos[1]));\n}\n\n/**\n * @param tagName\n * @param elem\n * @returns {*|number}\n */\nexport function getElementIndex(tagName, elem) {\n var allElems = getDocument().getElementsByTagName(tagName);\n return Array.prototype.indexOf.call(allElems, elem);\n}\n\n/**\n * Force Change event on radio & checkboxes (IE)\n */\nexport function forceChange(elem) {\n elem.blur();\n elem.focus();\n}\n\n/**\n * @param elem\n * @returns {{tagName: (elem.tagName|*), index: *}}\n */\nexport function getElementData(elem) {\n var tagName = elem.tagName;\n var index = getElementIndex(tagName, elem);\n return {\n tagName: tagName,\n index: index\n };\n}\n\n/**\n * @param {string} tagName\n * @param {number} index\n */\nexport function getSingleElement(tagName, index) {\n var elems = getDocument().getElementsByTagName(tagName);\n return elems[index];\n}\n\n/**\n * Get the body element\n */\nexport function getBody() {\n return getDocument().getElementsByTagName(\"body\")[0];\n}\n\n/**\n * @param {{x: number, y: number}} pos\n */\nexport function setScroll(pos) {\n getWindow().scrollTo(pos.x, pos.y);\n}\n\n/**\n * Hard reload\n */\nexport function reloadBrowser() {\n getWindow().location.reload(true);\n}\n\n/**\n * Foreach polyfill\n * @param coll\n * @param fn\n */\nexport function forEach(coll, fn) {\n for (var i = 0, n = coll.length; i < n; i += 1) {\n fn(coll[i], i, coll);\n }\n}\n\n/**\n * Are we dealing with old IE?\n * @returns {boolean}\n */\nexport function isOldIe() {\n return typeof getWindow().attachEvent !== \"undefined\";\n}\n\n/**\n * Split the URL information\n * @returns {object}\n */\nexport function getLocation(url) {\n const location = getDocument().createElement(\"a\");\n location.href = url;\n\n if (location.host === \"\") {\n location.href = location.href;\n }\n\n return location;\n}\n\n/**\n * @param {String} val\n * @returns {boolean}\n */\nexport function isUndefined(val) {\n return \"undefined\" === typeof val;\n}\n\n/**\n * @param obj\n * @param path\n */\nexport function getByPath(obj, path) {\n for (\n var i = 0, tempPath = path.split(\".\"), len = tempPath.length;\n i < len;\n i++\n ) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n obj = obj[tempPath[i]];\n }\n\n if (typeof obj === \"undefined\") {\n return false;\n }\n\n return obj;\n}\n\nexport function getScrollPosition(\n window: Window,\n document: Document\n): ScrollEvent.Data {\n const pos = getBrowserScrollPosition(window, document);\n return {\n raw: pos, // Get px of x and y axis of scroll\n proportional: getScrollTopPercentage(pos, document) // Get % of y axis of scroll\n };\n}\n\nexport function getScrollPositionForElement(\n element: HTMLElement\n): ScrollEvent.Data {\n const raw: ICoords = {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n const scrollSpace: ICoords = {\n x: element.scrollWidth,\n y: element.scrollHeight\n };\n return {\n raw, // Get px of x and y axis of scroll\n proportional: getScrollPercentage(scrollSpace, raw).y // Get % of y axis of scroll\n };\n}\n\nexport function getScrollTopPercentage(pos, document): number {\n const scrollSpace = getDocumentScrollSpace(document);\n const percentage = getScrollPercentage(scrollSpace, pos);\n return percentage.y;\n}\n\nexport function getScrollPercentage(\n scrollSpace: ICoords,\n scrollPosition: ICoords\n): ICoords {\n const x = scrollPosition.x / scrollSpace.x;\n const y = scrollPosition.y / scrollSpace.y;\n\n return {\n x: x || 0,\n y: y\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/browser.utils.ts","\"use strict\";\nvar __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 Observable_1 = require('../Observable');\nvar ScalarObservable_1 = require('./ScalarObservable');\nvar EmptyObservable_1 = require('./EmptyObservable');\nvar isScheduler_1 = require('../util/isScheduler');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ArrayObservable = (function (_super) {\n __extends(ArrayObservable, _super);\n function ArrayObservable(array, scheduler) {\n _super.call(this);\n this.array = array;\n this.scheduler = scheduler;\n if (!scheduler && array.length === 1) {\n this._isScalar = true;\n this.value = array[0];\n }\n }\n ArrayObservable.create = function (array, scheduler) {\n return new ArrayObservable(array, scheduler);\n };\n /**\n * Creates an Observable that emits some values you specify as arguments,\n * immediately one after the other, and then emits a complete notification.\n *\n * <span class=\"informal\">Emits the arguments you provide, then completes.\n * </span>\n *\n * <img src=\"./img/of.png\" width=\"100%\">\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the arguments given, and the complete notification thereafter. It can\n * be used for composing with other Observables, such as with {@link concat}.\n * By default, it uses a `null` IScheduler, which means the `next`\n * notifications are sent synchronously, although with a different IScheduler\n * it is possible to determine when those notifications will be delivered.\n *\n * @example <caption>Emit 10, 20, 30, then 'a', 'b', 'c', then start ticking every second.</caption>\n * var numbers = Rx.Observable.of(10, 20, 30);\n * var letters = Rx.Observable.of('a', 'b', 'c');\n * var interval = Rx.Observable.interval(1000);\n * var result = numbers.concat(letters).concat(interval);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link create}\n * @see {@link empty}\n * @see {@link never}\n * @see {@link throw}\n *\n * @param {...T} values Arguments that represent `next` values to be emitted.\n * @param {Scheduler} [scheduler] A {@link IScheduler} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable<T>} An Observable that emits each given input value.\n * @static true\n * @name of\n * @owner Observable\n */\n ArrayObservable.of = function () {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i - 0] = arguments[_i];\n }\n var scheduler = array[array.length - 1];\n if (isScheduler_1.isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len > 1) {\n return new ArrayObservable(array, scheduler);\n }\n else if (len === 1) {\n return new ScalarObservable_1.ScalarObservable(array[0], scheduler);\n }\n else {\n return new EmptyObservable_1.EmptyObservable(scheduler);\n }\n };\n ArrayObservable.dispatch = function (state) {\n var array = state.array, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(array[index]);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n this.schedule(state);\n };\n ArrayObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var array = this.array;\n var count = array.length;\n var scheduler = this.scheduler;\n if (scheduler) {\n return scheduler.schedule(ArrayObservable.dispatch, 0, {\n array: array, index: index, count: count, subscriber: subscriber\n });\n }\n else {\n for (var i = 0; i < count && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n }\n };\n return ArrayObservable;\n}(Observable_1.Observable));\nexports.ArrayObservable = ArrayObservable;\n//# sourceMappingURL=ArrayObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/ArrayObservable.js\n// module id = 25\n// module chunks = 0","\"use strict\";\nvar __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 Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar EmptyObservable = (function (_super) {\n __extends(EmptyObservable, _super);\n function EmptyObservable(scheduler) {\n _super.call(this);\n this.scheduler = scheduler;\n }\n /**\n * Creates an Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * <span class=\"informal\">Just emits 'complete', and nothing else.\n * </span>\n *\n * <img src=\"./img/empty.png\" width=\"100%\">\n *\n * This static operator is useful for creating a simple Observable that only\n * emits the complete notification. It can be used for composing with other\n * Observables, such as in a {@link mergeMap}.\n *\n * @example <caption>Emit the number 7, then complete.</caption>\n * var result = Rx.Observable.empty().startWith(7);\n * result.subscribe(x => console.log(x));\n *\n * @example <caption>Map and flatten only odd numbers to the sequence 'a', 'b', 'c'</caption>\n * var interval = Rx.Observable.interval(1000);\n * var result = interval.mergeMap(x =>\n * x % 2 === 1 ? Rx.Observable.of('a', 'b', 'c') : Rx.Observable.empty()\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval eg(0,1,2,3,...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1 print abc\n * // if x % 2 is not equal to 1 nothing will be output\n *\n * @see {@link create}\n * @see {@link never}\n * @see {@link of}\n * @see {@link throw}\n *\n * @param {Scheduler} [scheduler] A {@link IScheduler} to use for scheduling\n * the emission of the complete notification.\n * @return {Observable} An \"empty\" Observable: emits only the complete\n * notification.\n * @static true\n * @name empty\n * @owner Observable\n */\n EmptyObservable.create = function (scheduler) {\n return new EmptyObservable(scheduler);\n };\n EmptyObservable.dispatch = function (arg) {\n var subscriber = arg.subscriber;\n subscriber.complete();\n };\n EmptyObservable.prototype._subscribe = function (subscriber) {\n var scheduler = this.scheduler;\n if (scheduler) {\n return scheduler.schedule(EmptyObservable.dispatch, 0, { subscriber: subscriber });\n }\n else {\n subscriber.complete();\n }\n };\n return EmptyObservable;\n}(Observable_1.Observable));\nexports.EmptyObservable = EmptyObservable;\n//# sourceMappingURL=EmptyObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/EmptyObservable.js\n// module id = 26\n// module chunks = 0","\"use strict\";\nfunction isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\nexports.isScheduler = isScheduler;\n//# sourceMappingURL=isScheduler.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isScheduler.js\n// module id = 27\n// module chunks = 0","\"use strict\";\nexports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isArray.js\n// module id = 28\n// module chunks = 0","\"use strict\";\n// typeof any so that it we don't have to cast when comparing a result to the error object\nexports.errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/errorObject.js\n// module id = 29\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('./Subscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar OuterSubscriber = (function (_super) {\n __extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n _super.apply(this, arguments);\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber_1.Subscriber));\nexports.OuterSubscriber = OuterSubscriber;\n//# sourceMappingURL=OuterSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/OuterSubscriber.js\n// module id = 30\n// module chunks = 0","\"use strict\";\nvar root_1 = require('./root');\nvar isArrayLike_1 = require('./isArrayLike');\nvar isPromise_1 = require('./isPromise');\nvar isObject_1 = require('./isObject');\nvar Observable_1 = require('../Observable');\nvar iterator_1 = require('../symbol/iterator');\nvar InnerSubscriber_1 = require('../InnerSubscriber');\nvar observable_1 = require('../symbol/observable');\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex) {\n var destination = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n if (destination.closed) {\n return null;\n }\n if (result instanceof Observable_1.Observable) {\n if (result._isScalar) {\n destination.next(result.value);\n destination.complete();\n return null;\n }\n else {\n destination.syncErrorThrowable = true;\n return result.subscribe(destination);\n }\n }\n else if (isArrayLike_1.isArrayLike(result)) {\n for (var i = 0, len = result.length; i < len && !destination.closed; i++) {\n destination.next(result[i]);\n }\n if (!destination.closed) {\n destination.complete();\n }\n }\n else if (isPromise_1.isPromise(result)) {\n result.then(function (value) {\n if (!destination.closed) {\n destination.next(value);\n destination.complete();\n }\n }, function (err) { return destination.error(err); })\n .then(null, function (err) {\n // Escaping the Promise trap: globally throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n return destination;\n }\n else if (result && typeof result[iterator_1.iterator] === 'function') {\n var iterator = result[iterator_1.iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n destination.complete();\n break;\n }\n destination.next(item.value);\n if (destination.closed) {\n break;\n }\n } while (true);\n }\n else if (result && typeof result[observable_1.observable] === 'function') {\n var obs = result[observable_1.observable]();\n if (typeof obs.subscribe !== 'function') {\n destination.error(new TypeError('Provided object does not correctly implement Symbol.observable'));\n }\n else {\n return obs.subscribe(new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex));\n }\n }\n else {\n var value = isObject_1.isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = (\"You provided \" + value + \" where a stream was expected.\")\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n destination.error(new TypeError(msg));\n }\n return null;\n}\nexports.subscribeToResult = subscribeToResult;\n//# sourceMappingURL=subscribeToResult.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/subscribeToResult.js\n// module id = 31\n// module chunks = 0","\"use strict\";\nvar root_1 = require('../util/root');\nfunction symbolIteratorPonyfill(root) {\n var Symbol = root.Symbol;\n if (typeof Symbol === 'function') {\n if (!Symbol.iterator) {\n Symbol.iterator = Symbol('iterator polyfill');\n }\n return Symbol.iterator;\n }\n else {\n // [for Mozilla Gecko 27-35:](https://mzl.la/2ewE1zC)\n var Set_1 = root.Set;\n if (Set_1 && typeof new Set_1()['@@iterator'] === 'function') {\n return '@@iterator';\n }\n var Map_1 = root.Map;\n // required for compatability with es6-shim\n if (Map_1) {\n var keys = Object.getOwnPropertyNames(Map_1.prototype);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n // according to spec, Map.prototype[@@iterator] and Map.orototype.entries must be equal.\n if (key !== 'entries' && key !== 'size' && Map_1.prototype[key] === Map_1.prototype['entries']) {\n return key;\n }\n }\n }\n return '@@iterator';\n }\n}\nexports.symbolIteratorPonyfill = symbolIteratorPonyfill;\nexports.iterator = symbolIteratorPonyfill(root_1.root);\n/**\n * @deprecated use iterator instead\n */\nexports.$$iterator = exports.iterator;\n//# sourceMappingURL=iterator.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/symbol/iterator.js\n// module id = 32\n// module chunks = 0","/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n var str = '';\r\n\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n if (str.length) str += '&';\r\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n }\r\n }\r\n\r\n return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n var qry = {};\r\n var pairs = qs.split('&');\r\n for (var i = 0, l = pairs.length; i < l; i++) {\r\n var pair = pairs[i].split('=');\r\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n }\r\n return qry;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parseqs/index.js\n// module id = 33\n// module chunks = 0","\nmodule.exports = function(a, b){\n var fn = function(){};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/component-inherit/index.js\n// module id = 34\n// module chunks = 0","\"use strict\";\nvar __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 Observable_1 = require('./Observable');\nvar Subscriber_1 = require('./Subscriber');\nvar Subscription_1 = require('./Subscription');\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\nvar SubjectSubscription_1 = require('./SubjectSubscription');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\n/**\n * @class SubjectSubscriber<T>\n */\nvar SubjectSubscriber = (function (_super) {\n __extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n _super.call(this, destination);\n this.destination = destination;\n }\n return SubjectSubscriber;\n}(Subscriber_1.Subscriber));\nexports.SubjectSubscriber = SubjectSubscriber;\n/**\n * @class Subject<T>\n */\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n _super.call(this);\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription_1.Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription_1.Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable_1.Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable_1.Observable));\nexports.Subject = Subject;\n/**\n * @class AnonymousSubject<T>\n */\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n _super.call(this);\n this.destination = destination;\n this.source = source;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription_1.Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexports.AnonymousSubject = AnonymousSubject;\n//# sourceMappingURL=Subject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Subject.js\n// module id = 35\n// module chunks = 0","\"use strict\";\nvar Observable_1 = require('../Observable');\nvar ArrayObservable_1 = require('./ArrayObservable');\nvar isScheduler_1 = require('../util/isScheduler');\nvar mergeAll_1 = require('../operators/mergeAll');\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * <span class=\"informal\">Flattens multiple Observables together by blending\n * their values into one Observable.</span>\n *\n * <img src=\"./img/merge.png\" width=\"100%\">\n *\n * `merge` subscribes to each given input Observable (as arguments), and simply\n * forwards (without doing any transformation) all the values from all the input\n * Observables to the output Observable. The output Observable only completes\n * once all input Observables have completed. Any error delivered by an input\n * Observable will be immediately emitted on the output Observable.\n *\n * @example <caption>Merge together two Observables: 1s interval and clicks</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var timer = Rx.Observable.interval(1000);\n * var clicksOrTimer = Rx.Observable.merge(clicks, timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // timer will emit ascending values, one every second(1000ms) to console\n * // clicks logs MouseEvents to console everytime the \"document\" is clicked\n * // Since the two streams are merged you see these happening\n * // as they occur.\n *\n * @example <caption>Merge together 3 Observables, but only 2 run concurrently</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var concurrent = 2; // the argument\n * var merged = Rx.Observable.merge(timer1, timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - First timer1 and timer2 will run concurrently\n * // - timer1 will emit a value every 1000ms for 10 iterations\n * // - timer2 will emit a value every 2000ms for 6 iterations\n * // - after timer1 hits it's max iteration, timer2 will\n * // continue, and timer3 will start to run concurrently with timer2\n * // - when timer2 hits it's max iteration it terminates, and\n * // timer3 will continue to emit a value every 500ms until it is complete\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {...ObservableInput} observables Input Observables to merge together.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {Scheduler} [scheduler=null] The IScheduler to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @static true\n * @name merge\n * @owner Observable\n */\nfunction merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler_1.isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable_1.Observable) {\n return observables[0];\n }\n return mergeAll_1.mergeAll(concurrent)(new ArrayObservable_1.ArrayObservable(observables, scheduler));\n}\nexports.merge = merge;\n//# sourceMappingURL=merge.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/merge.js\n// module id = 36\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\n/**\n * Returns an Observable that skips the first `count` items emitted by the source Observable.\n *\n * <img src=\"./img/skip.png\" width=\"100%\">\n *\n * @param {Number} count - The number of times, items emitted by source Observable should be skipped.\n * @return {Observable} An Observable that skips values emitted by the source Observable.\n *\n * @method skip\n * @owner Observable\n */\nfunction skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nexports.skip = skip;\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SkipSubscriber = (function (_super) {\n __extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n _super.call(this, destination);\n this.total = total;\n this.count = 0;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=skip.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/skip.js\n// module id = 37\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\n/* tslint:enable:max-line-length */\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item.\n *\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n *\n * If a comparator function is not provided, an equality check is used by default.\n *\n * @example <caption>A simple example with numbers</caption>\n * Observable.of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4)\n * .distinctUntilChanged()\n * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4\n *\n * @example <caption>An example using a compare function</caption>\n * interface Person {\n * age: number,\n * name: string\n * }\n *\n * Observable.of<Person>(\n * { age: 4, name: 'Foo'},\n * { age: 7, name: 'Bar'},\n * { age: 5, name: 'Foo'})\n * { age: 6, name: 'Foo'})\n * .distinctUntilChanged((p: Person, q: Person) => p.name === q.name)\n * .subscribe(x => console.log(x));\n *\n * // displays:\n * // { age: 4, name: 'Foo' }\n * // { age: 7, name: 'Bar' }\n * // { age: 5, name: 'Foo' }\n *\n * @see {@link distinct}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} An Observable that emits items from the source Observable with distinct values.\n * @method distinctUntilChanged\n * @owner Observable\n */\nfunction distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nexports.distinctUntilChanged = distinctUntilChanged;\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DistinctUntilChangedSubscriber = (function (_super) {\n __extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n _super.call(this, destination);\n this.keySelector = keySelector;\n this.hasKey = false;\n if (typeof compare === 'function') {\n this.compare = compare;\n }\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var keySelector = this.keySelector;\n var key = value;\n if (keySelector) {\n key = tryCatch_1.tryCatch(this.keySelector)(value);\n if (key === errorObject_1.errorObject) {\n return this.destination.error(errorObject_1.errorObject.e);\n }\n }\n var result = false;\n if (this.hasKey) {\n result = tryCatch_1.tryCatch(this.compare)(this.key, key);\n if (result === errorObject_1.errorObject) {\n return this.destination.error(errorObject_1.errorObject.e);\n }\n }\n else {\n this.hasKey = true;\n }\n if (Boolean(result) === false) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/distinctUntilChanged.js\n// module id = 38\n// module chunks = 0","\"use strict\";\nvar FromEventObservable_1 = require('./FromEventObservable');\nexports.fromEvent = FromEventObservable_1.FromEventObservable.create;\n//# sourceMappingURL=fromEvent.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/fromEvent.js\n// module id = 39\n// module chunks = 0","\"use strict\";\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isFunction.js\n// module id = 40\n// module chunks = 0","\"use strict\";\nvar errorObject_1 = require('./errorObject');\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject_1.errorObject.e = e;\n return errorObject_1.errorObject;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\nexports.tryCatch = tryCatch;\n;\n//# sourceMappingURL=tryCatch.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/tryCatch.js\n// module id = 41\n// module chunks = 0","\"use strict\";\nvar root_1 = require('../util/root');\nvar Symbol = root_1.root.Symbol;\nexports.rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ?\n Symbol.for('rxSubscriber') : '@@rxSubscriber';\n/**\n * @deprecated use rxSubscriber instead\n */\nexports.$$rxSubscriber = exports.rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/symbol/rxSubscriber.js\n// module id = 42\n// module chunks = 0","\"use strict\";\nvar root_1 = require('../util/root');\nfunction getSymbolObservable(context) {\n var $$observable;\n var Symbol = context.Symbol;\n if (typeof Symbol === 'function') {\n if (Symbol.observable) {\n $$observable = Symbol.observable;\n }\n else {\n $$observable = Symbol('observable');\n Symbol.observable = $$observable;\n }\n }\n else {\n $$observable = '@@observable';\n }\n return $$observable;\n}\nexports.getSymbolObservable = getSymbolObservable;\nexports.observable = getSymbolObservable(root_1.root);\n/**\n * @deprecated use observable instead\n */\nexports.$$observable = exports.observable;\n//# sourceMappingURL=observable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/symbol/observable.js\n// module id = 43\n// module chunks = 0","\"use strict\";\nvar __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 Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ScalarObservable = (function (_super) {\n __extends(ScalarObservable, _super);\n function ScalarObservable(value, scheduler) {\n _super.call(this);\n this.value = value;\n this.scheduler = scheduler;\n this._isScalar = true;\n if (scheduler) {\n this._isScalar = false;\n }\n }\n ScalarObservable.create = function (value, scheduler) {\n return new ScalarObservable(value, scheduler);\n };\n ScalarObservable.dispatch = function (state) {\n var done = state.done, value = state.value, subscriber = state.subscriber;\n if (done) {\n subscriber.complete();\n return;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n state.done = true;\n this.schedule(state);\n };\n ScalarObservable.prototype._subscribe = function (subscriber) {\n var value = this.value;\n var scheduler = this.scheduler;\n if (scheduler) {\n return scheduler.schedule(ScalarObservable.dispatch, 0, {\n done: false, value: value, subscriber: subscriber\n });\n }\n else {\n subscriber.next(value);\n if (!subscriber.closed) {\n subscriber.complete();\n }\n }\n };\n return ScalarObservable;\n}(Observable_1.Observable));\nexports.ScalarObservable = ScalarObservable;\n//# sourceMappingURL=ScalarObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/ScalarObservable.js\n// module id = 44\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar hasBin = require('has-binary2');\nvar binary = require('./binary');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n 'CONNECT',\n 'DISCONNECT',\n 'EVENT',\n 'ACK',\n 'ERROR',\n 'BINARY_EVENT',\n 'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n if ((obj.type === exports.EVENT || obj.type === exports.ACK) && hasBin(obj.data)) {\n obj.type = obj.type === exports.EVENT ? exports.BINARY_EVENT : exports.BINARY_ACK;\n }\n\n debug('encoding packet %j', obj);\n\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n encodeAsBinary(obj, callback);\n }\n else {\n var encoding = encodeAsString(obj);\n callback([encoding]);\n }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n // first is type\n var str = '' + obj.type;\n\n // attachments if we have them\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n str += obj.attachments + '-';\n }\n\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && '/' !== obj.nsp) {\n str += obj.nsp + ',';\n }\n\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data);\n }\n\n debug('encoded %j as %s', obj, str);\n return str;\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n function writeEncoding(bloblessData) {\n var deconstruction = binary.deconstructPacket(bloblessData);\n var pack = encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n\n buffers.unshift(pack); // add packet info to beginning of data list\n callback(buffers); // write all the buffers\n }\n\n binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an ecoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n var packet;\n if (typeof obj === 'string') {\n packet = decodeString(obj);\n if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n\n // no attachments, labeled binary but no binary data to follow\n if (this.reconstructor.reconPack.attachments === 0) {\n this.emit('decoded', packet);\n }\n } else { // non-binary full packet\n this.emit('decoded', packet);\n }\n }\n else if (isBuf(obj) || obj.base64) { // raw binary data\n if (!this.reconstructor) {\n throw new Error('got binary data when not reconstructing a packet');\n } else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) { // received final buffer\n this.reconstructor = null;\n this.emit('decoded', packet);\n }\n }\n }\n else {\n throw new Error('Unknown type: ' + obj);\n }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n var i = 0;\n // look up type\n var p = {\n type: Number(str.charAt(0))\n };\n\n if (null == exports.types[p.type]) return error();\n\n // look up attachments if type binary\n if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n var buf = '';\n while (str.charAt(++i) !== '-') {\n buf += str.charAt(i);\n if (i == str.length) break;\n }\n if (buf != Number(buf) || str.charAt(i) !== '-') {\n throw new Error('Illegal attachments');\n }\n p.attachments = Number(buf);\n }\n\n // look up namespace (if any)\n if ('/' === str.charAt(i + 1)) {\n p.nsp = '';\n while (++i) {\n var c = str.charAt(i);\n if (',' === c) break;\n p.nsp += c;\n if (i === str.length) break;\n }\n } else {\n p.nsp = '/';\n }\n\n // look up id\n var next = str.charAt(i + 1);\n if ('' !== next && Number(next) == next) {\n p.id = '';\n while (++i) {\n var c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n p.id += str.charAt(i);\n if (i === str.length) break;\n }\n p.id = Number(p.id);\n }\n\n // look up json data\n if (str.charAt(++i)) {\n p = tryParse(p, str.substr(i));\n }\n\n debug('decoded %s as %j', str, p);\n return p;\n}\n\nfunction tryParse(p, str) {\n try {\n p.data = JSON.parse(str);\n } catch(e){\n return error();\n }\n return p; \n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n this.reconPack = packet;\n this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n this.reconPack = null;\n this.buffers = [];\n};\n\nfunction error() {\n return {\n type: exports.ERROR,\n data: 'parser error'\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/index.js\n// module id = 45\n// module chunks = 0","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\n\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) { }\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) { }\n\n if (!xdomain) {\n try {\n return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) { }\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/xmlhttprequest.js\n// module id = 46\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n this.path = opts.path;\n this.hostname = opts.hostname;\n this.port = opts.port;\n this.secure = opts.secure;\n this.query = opts.query;\n this.timestampParam = opts.timestampParam;\n this.timestampRequests = opts.timestampRequests;\n this.readyState = '';\n this.agent = opts.agent || false;\n this.socket = opts.socket;\n this.enablesXDR = opts.enablesXDR;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n this.forceNode = opts.forceNode;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n var err = new Error(msg);\n err.type = 'TransportError';\n err.description = desc;\n this.emit('error', err);\n return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n if ('closed' === this.readyState || '' === this.readyState) {\n this.readyState = 'opening';\n this.doOpen();\n }\n\n return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.doClose();\n this.onClose();\n }\n\n return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n if ('open' === this.readyState) {\n this.write(packets);\n } else {\n throw new Error('Transport not open');\n }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n this.readyState = 'open';\n this.writable = true;\n this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n var packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n this.readyState = 'closed';\n this.emit('close');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transport.js\n// module id = 47\n// module chunks = 0","\"use strict\";\nvar TimerObservable_1 = require('./TimerObservable');\nexports.timer = TimerObservable_1.TimerObservable.create;\n//# sourceMappingURL=timer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/timer.js\n// module id = 48\n// module chunks = 0","import { Inputs } from \"../index\";\nimport { Observable } from \"rxjs/Observable\";\nimport { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { map } from \"rxjs/operators/map\";\nimport { EffectNames } from \"../effects\";\nimport { consoleInfo } from \"../log\";\n\n/**\n * Set the local client options\n * @param xs\n * @param inputs\n */\nexport function setOptionsEffect(\n xs: Observable<IBrowserSyncOptions>,\n inputs: Inputs\n) {\n return xs.pipe(\n tap(options => inputs.option$.next(options)),\n // map(() => consoleInfo('set options'))\n ignoreElements()\n );\n}\n\nexport function setOptions(options: IBrowserSyncOptions) {\n return [EffectNames.SetOptions, options];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/set-options.effect.ts","\"use strict\";\nvar isScheduler_1 = require('../util/isScheduler');\nvar of_1 = require('./of');\nvar from_1 = require('./from');\nvar concatAll_1 = require('../operators/concatAll');\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from given\n * Observable and then moves on to the next.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * <img src=\"./img/concat.png\" width=\"100%\">\n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * @example <caption>Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10</caption>\n * var timer = Rx.Observable.interval(1000).take(4);\n * var sequence = Rx.Observable.range(1, 10);\n * var result = Rx.Observable.concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n *\n *\n * @example <caption>Concatenate an array of 3 Observables</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var result = Rx.Observable.concat([timer1, timer2, timer3]); // note that array is passed\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n *\n *\n * @example <caption>Concatenate the same Observable to repeat it</caption>\n * const timer = Rx.Observable.interval(1000).take(2);\n *\n * Rx.Observable.concat(timer, timer) // concating the same Observable!\n * .subscribe(\n * value => console.log(value),\n * err => {},\n * () => console.log('...and it is done!')\n * );\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // \"...and it is done!\" also after 4s\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n *\n * @param {ObservableInput} input1 An input Observable to concatenate with others.\n * @param {ObservableInput} input2 An input Observable to concatenate with others.\n * More than one input Observables may be given as argument.\n * @param {Scheduler} [scheduler=null] An optional IScheduler to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @static true\n * @name concat\n * @owner Observable\n */\nfunction concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n if (observables.length === 1 || (observables.length === 2 && isScheduler_1.isScheduler(observables[1]))) {\n return from_1.from(observables[0]);\n }\n return concatAll_1.concatAll()(of_1.of.apply(void 0, observables));\n}\nexports.concat = concat;\n//# sourceMappingURL=concat.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/concat.js\n// module id = 50\n// module chunks = 0","import { Inputs } from \"../index\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { Observable } from \"rxjs/Observable\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { mergeMap } from \"rxjs/operators/mergeMap\";\nimport { concat } from \"rxjs/observable/concat\";\nimport { of } from \"rxjs/observable/of\";\nimport {\n browserReload,\n preBrowserReload\n} from \"../effects/browser-reload.effect\";\nimport { subscribeOn } from \"rxjs/operators/subscribeOn\";\nimport { async } from \"rxjs/scheduler/async\";\n\nexport function incomingBrowserReload(xs: Observable<any>, inputs: Inputs) {\n return xs.pipe(\n withLatestFrom(inputs.option$),\n filter(([event, options]) => options.codeSync),\n mergeMap(reloadBrowserSafe)\n );\n}\n\nexport function reloadBrowserSafe() {\n return concat(\n /**\n * Emit a warning message allowing others to do some work\n */\n of(preBrowserReload()),\n /**\n * On the next tick, perform the reload\n */\n of(browserReload()).pipe(subscribeOn(async))\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/BrowserReload.ts","\"use strict\";\nfunction isObject(x) {\n return x != null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isObject.js\n// module id = 52\n// module chunks = 0","\"use strict\";\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) { throw err; },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Observer.js\n// module id = 53\n// module chunks = 0","\"use strict\";\n/* tslint:disable:no-empty */\nfunction noop() { }\nexports.noop = noop;\n//# sourceMappingURL=noop.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/noop.js\n// module id = 54\n// module chunks = 0","\"use strict\";\nexports.isArrayLike = (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArrayLike.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isArrayLike.js\n// module id = 55\n// module chunks = 0","\"use strict\";\nfunction isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\nexports.isPromise = isPromise;\n//# sourceMappingURL=isPromise.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isPromise.js\n// module id = 56\n// module chunks = 0","/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n var src = str,\r\n b = str.indexOf('['),\r\n e = str.indexOf(']');\r\n\r\n if (b != -1 && e != -1) {\r\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n }\r\n\r\n var m = re.exec(str || ''),\r\n uri = {},\r\n i = 14;\r\n\r\n while (i--) {\r\n uri[parts[i]] = m[i] || '';\r\n }\r\n\r\n if (b != -1 && e != -1) {\r\n uri.source = src;\r\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n uri.ipv6uri = true;\r\n }\r\n\r\n return uri;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parseuri/index.js\n// module id = 57\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 58\n// module chunks = 0","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n\n if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)\n ) {\n return true;\n }\n\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-binary2/index.js\n// module id = 59\n// module chunks = 0","\nmodule.exports = isBuf;\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n return (global.Buffer && global.Buffer.isBuffer(obj)) ||\n (global.ArrayBuffer && obj instanceof ArrayBuffer);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/is-buffer.js\n// module id = 60\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n if (!(this instanceof Manager)) return new Manager(uri, opts);\n if (uri && ('object' === typeof uri)) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n\n opts.path = opts.path || '/socket.io';\n this.nsps = {};\n this.subs = [];\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this.readyState = 'closed';\n this.uri = uri;\n this.connecting = [];\n this.lastPing = null;\n this.encoding = false;\n this.packetBuffer = [];\n var _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this.autoConnect = opts.autoConnect !== false;\n if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n }\n }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].id = this.generateId(nsp);\n }\n }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n if (!arguments.length) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n if (!arguments.length) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n this.backoff && this.backoff.setMin(v);\n return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n if (!arguments.length) return this._randomizationFactor;\n this._randomizationFactor = v;\n this.backoff && this.backoff.setJitter(v);\n return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n if (!arguments.length) return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n this.backoff && this.backoff.setMax(v);\n return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n // Only try to reconnect if it's the first time we're connecting\n if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n debug('readyState %s', this.readyState);\n if (~this.readyState.indexOf('open')) return this;\n\n debug('opening %s', this.uri);\n this.engine = eio(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this.readyState = 'opening';\n this.skipReconnect = false;\n\n // emit `open`\n var openSub = on(socket, 'open', function () {\n self.onopen();\n fn && fn();\n });\n\n // emit `connect_error`\n var errorSub = on(socket, 'error', function (data) {\n debug('connect_error');\n self.cleanup();\n self.readyState = 'closed';\n self.emitAll('connect_error', data);\n if (fn) {\n var err = new Error('Connection error');\n err.data = data;\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n\n // emit `connect_timeout`\n if (false !== this._timeout) {\n var timeout = this._timeout;\n debug('connect attempt will timeout after %d', timeout);\n\n // set timer\n var timer = setTimeout(function () {\n debug('connect attempt timed out after %d', timeout);\n openSub.destroy();\n socket.close();\n socket.emit('error', 'timeout');\n self.emitAll('connect_timeout', timeout);\n }, timeout);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n\n this.subs.push(openSub);\n this.subs.push(errorSub);\n\n return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n debug('open');\n\n // clear old subs\n this.cleanup();\n\n // mark as open\n this.readyState = 'open';\n this.emit('open');\n\n // add new subs\n var socket = this.engine;\n this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n this.lastPing = new Date();\n this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n debug('error', err);\n this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n var socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n var self = this;\n socket.on('connecting', onConnecting);\n socket.on('connect', function () {\n socket.id = self.generateId(nsp);\n });\n\n if (this.autoConnect) {\n // manually call here since connecting event is fired before listening\n onConnecting();\n }\n }\n\n function onConnecting () {\n if (!~indexOf(self.connecting, socket)) {\n self.connecting.push(socket);\n }\n }\n\n return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n var index = indexOf(this.connecting, socket);\n if (~index) this.connecting.splice(index, 1);\n if (this.connecting.length) return;\n\n this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n debug('writing packet %j', packet);\n var self = this;\n if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n if (!self.encoding) {\n // encode, then write to engine with result\n self.encoding = true;\n this.encoder.encode(packet, function (encodedPackets) {\n for (var i = 0; i < encodedPackets.length; i++) {\n self.engine.write(encodedPackets[i], packet.options);\n }\n self.encoding = false;\n self.processPacketQueue();\n });\n } else { // add packet to the queue\n self.packetBuffer.push(packet);\n }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var pack = this.packetBuffer.shift();\n this.packet(pack);\n }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n debug('cleanup');\n\n var subsLength = this.subs.length;\n for (var i = 0; i < subsLength; i++) {\n var sub = this.subs.shift();\n sub.destroy();\n }\n\n this.packetBuffer = [];\n this.encoding = false;\n this.lastPing = null;\n\n this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n debug('disconnect');\n this.skipReconnect = true;\n this.reconnecting = false;\n if ('opening' === this.readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this.readyState = 'closed';\n if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n debug('onclose');\n\n this.cleanup();\n this.backoff.reset();\n this.readyState = 'closed';\n this.emit('close', reason);\n\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n\n var self = this;\n\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug('reconnect failed');\n this.backoff.reset();\n this.emitAll('reconnect_failed');\n this.reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n debug('will wait %dms before reconnect attempt', delay);\n\n this.reconnecting = true;\n var timer = setTimeout(function () {\n if (self.skipReconnect) return;\n\n debug('attempting reconnect');\n self.emitAll('reconnect_attempt', self.backoff.attempts);\n self.emitAll('reconnecting', self.backoff.attempts);\n\n // check again for the case socket closed in above events\n if (self.skipReconnect) return;\n\n self.open(function (err) {\n if (err) {\n debug('reconnect attempt error');\n self.reconnecting = false;\n self.reconnect();\n self.emitAll('reconnect_error', err.data);\n } else {\n debug('reconnect success');\n self.onreconnect();\n }\n });\n }, delay);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n var attempt = this.backoff.attempts;\n this.reconnecting = false;\n this.backoff.reset();\n this.updateSocketIds();\n this.emitAll('reconnect', attempt);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/manager.js\n// module id = 61\n// module chunks = 0","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n var xhr;\n var xd = false;\n var xs = false;\n var jsonp = false !== opts.jsonp;\n\n if (global.location) {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n\n if ('open' in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error('JSONP disabled');\n return new JSONP(opts);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/index.js\n// module id = 62\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = require('xmlhttprequest-ssl');\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState) {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n\n function close () {\n debug('writing close packet');\n self.write([{ type: 'close' }]);\n }\n\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n ('http' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/polling.js\n// module id = 63\n// module chunks = 0","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n , length = 64\n , map = {}\n , seed = 0\n , i = 0\n , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n var encoded = '';\n\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n\n return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n var decoded = 0;\n\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n\n return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n var now = encode(+new Date());\n\n if (now !== prev) return seed = 0, prev = now;\n return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/yeast/index.js\n// module id = 64\n// module chunks = 0","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/indexof/index.js\n// module id = 65\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n if (this.subs) return;\n\n var io = this.io;\n this.subs = [\n on(io, 'open', bind(this, 'onopen')),\n on(io, 'packet', bind(this, 'onpacket')),\n on(io, 'close', bind(this, 'onclose'))\n ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n if (this.connected) return this;\n\n this.subEvents();\n this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n\n var args = toArray(arguments);\n var packet = { type: parser.EVENT, data: args };\n\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n\n delete this.flags;\n\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n debug('transport is open - connecting');\n\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({type: parser.CONNECT, query: query});\n } else {\n this.packet({type: parser.CONNECT});\n }\n }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n if (packet.nsp !== this.nsp) return;\n\n switch (packet.type) {\n case parser.CONNECT:\n this.onconnect();\n break;\n\n case parser.EVENT:\n this.onevent(packet);\n break;\n\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n\n case parser.ACK:\n this.onack(packet);\n break;\n\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n\n self.packet({\n type: parser.ACK,\n id: id,\n data: args\n });\n };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n this.connected = true;\n this.disconnected = false;\n this.emit('connect');\n this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n var i;\n for (i = 0; i < this.receiveBuffer.length; i++) {\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n\n for (i = 0; i < this.sendBuffer.length; i++) {\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for (var i = 0; i < this.subs.length; i++) {\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n\n this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({ type: parser.DISCONNECT });\n }\n\n // remove socket from pool\n this.destroy();\n\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n this.flags = this.flags || {};\n this.flags.compress = compress;\n return this;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/socket.js\n// module id = 66\n// module chunks = 0","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n obj.on(ev, fn);\n return {\n destroy: function () {\n obj.removeListener(ev, fn);\n }\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/on.js\n// module id = 67\n// module chunks = 0","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n if ('string' == typeof fn) fn = obj[fn];\n if ('function' != typeof fn) throw new Error('bind() requires a function');\n var args = slice.call(arguments, 2);\n return function(){\n return fn.apply(obj, args.concat(slice.call(arguments)));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/component-bind/index.js\n// module id = 68\n// module chunks = 0","\"use strict\";\nvar __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};\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nvar ObjectUnsubscribedError = (function (_super) {\n __extends(ObjectUnsubscribedError, _super);\n function ObjectUnsubscribedError() {\n var err = _super.call(this, 'object unsubscribed');\n this.name = err.name = 'ObjectUnsubscribedError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return ObjectUnsubscribedError;\n}(Error));\nexports.ObjectUnsubscribedError = ObjectUnsubscribedError;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/ObjectUnsubscribedError.js\n// module id = 69\n// module chunks = 0","\"use strict\";\nvar multicast_1 = require('./multicast');\nvar refCount_1 = require('./refCount');\nvar Subject_1 = require('../Subject');\nfunction shareSubjectFactory() {\n return new Subject_1.Subject();\n}\n/**\n * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one\n * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will\n * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.\n * This is an alias for .multicast(() => new Subject()).refCount().\n *\n * <img src=\"./img/share.png\" width=\"100%\">\n *\n * @return {Observable<T>} An Observable that upon connection causes the source Observable to emit items to its Observers.\n * @method share\n * @owner Observable\n */\nfunction share() {\n return function (source) { return refCount_1.refCount()(multicast_1.multicast(shareSubjectFactory)(source)); };\n}\nexports.share = share;\n;\n//# sourceMappingURL=share.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/share.js\n// module id = 70\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\nfunction refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nexports.refCount = refCount;\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n _super.call(this, destination);\n this.connectable = connectable;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // Observable.range(0, 10)\n // .publish()\n // .refCount()\n // .take(5)\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=refCount.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/refCount.js\n// module id = 71\n// module chunks = 0","import { map } from \"rxjs/operators/map\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { Observable } from \"rxjs/Observable\";\nimport { Events } from \"../dom-effects\";\nimport * as Log from \"../log\";\n\nexport interface PropSetPayload {\n target: Element;\n prop: string;\n value: string;\n pathname: string;\n}\n\nexport function propSetDomEffect(xs: Observable<PropSetPayload>) {\n return xs.pipe(\n tap(event => {\n const { target, prop, value } = event;\n target[prop] = value;\n }),\n map(e =>\n Log.consoleInfo(`[PropSet]`, e.target, `${e.prop} = ${e.pathname}`)\n )\n );\n}\n\nexport function propSet(incoming: PropSetPayload): [Events.PropSet, any] {\n return [Events.PropSet, incoming];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/dom-effects/prop-set.dom-effect.ts","\"use strict\";\nvar isArray_1 = require('../util/isArray');\nfunction isNumeric(val) {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n return !isArray_1.isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\nexports.isNumeric = isNumeric;\n;\n//# sourceMappingURL=isNumeric.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isNumeric.js\n// module id = 73\n// module chunks = 0","\"use strict\";\nvar AsyncAction_1 = require('./AsyncAction');\nvar AsyncScheduler_1 = require('./AsyncScheduler');\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asap} scheduler.\n *\n * @example <caption>Use async scheduler to delay task</caption>\n * const task = () => console.log('it works!');\n *\n * Rx.Scheduler.async.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n *\n *\n * @example <caption>Use async scheduler to repeat task in intervals</caption>\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * Rx.Scheduler.async.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n *\n * @static true\n * @name async\n * @owner Scheduler\n */\nexports.async = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction);\n//# sourceMappingURL=async.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/scheduler/async.js\n// module id = 74\n// module chunks = 0","\"use strict\";\nvar __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 root_1 = require('../util/root');\nvar Action_1 = require('./Action');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n _super.call(this, scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n // Always replace the current state with the new state.\n this.state = state;\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n var id = this.id;\n var scheduler = this.scheduler;\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return root_1.root.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n return root_1.root.clearInterval(id) && undefined || undefined;\n };\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action_1.Action));\nexports.AsyncAction = AsyncAction;\n//# sourceMappingURL=AsyncAction.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/scheduler/AsyncAction.js\n// module id = 75\n// module chunks = 0","\"use strict\";\nvar __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 Scheduler_1 = require('../Scheduler');\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler() {\n _super.apply(this, arguments);\n this.actions = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n */\n this.active = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n */\n this.scheduled = undefined;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift()); // exhaust the scheduler queue\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler_1.Scheduler));\nexports.AsyncScheduler = AsyncScheduler;\n//# sourceMappingURL=AsyncScheduler.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/scheduler/AsyncScheduler.js\n// module id = 76\n// module chunks = 0","import { map } from \"rxjs/operators/map\";\nimport { Events } from \"../dom-effects\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as Log from \"../log\";\n\nexport interface StyleSetPayload {\n style: string;\n styleName: string;\n value: string;\n newValue: string;\n pathName: string;\n}\n\nexport function styleSetDomEffect(xs: Observable<StyleSetPayload>) {\n return xs.pipe(\n tap(event => {\n const { style, styleName, newValue } = event;\n style[styleName] = newValue;\n }),\n map(e => Log.consoleInfo(`[StyleSet] ${e.styleName} = ${e.pathName}`))\n );\n}\n\nexport function styleSet(incoming: StyleSetPayload): [Events.StyleSet, any] {\n return [Events.StyleSet, incoming];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/dom-effects/style-set.dom-effect.ts","import { map } from \"rxjs/operators/map\";\nimport { Inputs } from \"../index\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as Log from \"../log\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { Events } from \"../dom-effects\";\n\nexport type LinkReplacePayload = {\n target: HTMLLinkElement;\n nextHref: string;\n prevHref: string;\n pathname: string;\n basename: string;\n};\n\nexport function linkReplaceDomEffect(\n xs: Observable<LinkReplacePayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom<LinkReplacePayload, any>(\n inputs.option$.pipe(pluck(\"injectNotification\"))\n ),\n filter(([, inject]) => inject),\n map(([incoming, inject]) => {\n const message = `[LinkReplace] ${incoming.basename}`;\n if (inject === \"overlay\") {\n return Log.overlayInfo(message);\n }\n return Log.consoleInfo(message);\n })\n );\n}\n\nexport function linkReplace(\n incoming: LinkReplacePayload\n): [Events.LinkReplace, LinkReplacePayload] {\n return [Events.LinkReplace, incoming];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/dom-effects/link-replace.dom-effect.ts","import { Inputs } from \"../index\";\nimport { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { Observable } from \"rxjs/Observable\";\nimport { Events } from \"../dom-effects\";\n\nexport type SetScrollPayload = { x: number; y: number };\n\nexport function setScroll(\n x: number,\n y: number\n): [Events.SetScroll, SetScrollPayload] {\n return [Events.SetScroll, { x, y }];\n}\n\nexport function setScrollDomEffect(\n xs: Observable<SetScrollPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.window$),\n tap(([event, window]) => window.scrollTo(event.x, event.y)),\n ignoreElements()\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/dom-effects/set-scroll.dom-effect.ts","import { Inputs } from \"../index\";\nimport { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { Observable } from \"rxjs/Observable\";\nimport { Events } from \"../dom-effects\";\n\nexport function setWindowNameDomEffect(xs: Observable<string>, inputs: Inputs) {\n return xs.pipe(\n withLatestFrom(inputs.window$),\n tap(([value, window]) => (window.name = value)),\n ignoreElements()\n );\n}\n\nexport function setWindowName(\n incoming: string\n): [Events.SetWindowName, string] {\n return [Events.SetWindowName, incoming];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/dom-effects/set-window-name.dom-effect.ts","import { OutgoingSocketEvents } from \"../socket-messages\";\nimport { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { map } from \"rxjs/operators/map\";\nimport { Observable } from \"rxjs/Observable\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { EffectNames } from \"../effects\";\n\nexport interface ICoords {\n x: number;\n y: number;\n}\n\nexport interface Data {\n raw: ICoords;\n proportional: number;\n}\n\nexport interface OutgoingPayload {\n position: Data;\n tagName: string;\n index: number;\n mappingIndex: number;\n}\n\nexport interface IncomingPayload extends OutgoingPayload {\n override?: boolean;\n pathname: string;\n}\n\nexport function outgoing(\n data: Data,\n tagName: string,\n index: number,\n mappingIndex: number = -1\n): [OutgoingSocketEvents.Scroll, OutgoingPayload] {\n return [\n OutgoingSocketEvents.Scroll,\n { position: data, tagName, index, mappingIndex }\n ];\n}\n\nexport function incomingScrollHandler(\n xs: Observable<IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(\n inputs.option$.pipe(pluck(\"ghostMode\", \"scroll\")),\n inputs.window$.pipe(pluck(\"location\", \"pathname\"))\n ),\n filter(([event, canScroll, pathname]) => {\n return canScroll && event.pathname === pathname;\n }),\n map(([event]) => {\n return [EffectNames.BrowserSetScroll, event];\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/ScrollEvent.ts","import { FileReloadEventPayload } from \"../../types/socket\";\nimport { EffectNames } from \"../effects\";\nimport { Inputs } from \"../index\";\nimport { reload } from \"../../vendor/Reloader\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { mergeMap } from \"rxjs/operators/mergeMap\";\nimport { Observable } from \"rxjs/Observable\";\n\nexport function fileReload(event: FileReloadEventPayload) {\n return [EffectNames.FileReload, event];\n}\n\n/**\n * Attempt to reload files in place\n * @param xs\n * @param inputs\n */\nexport function fileReloadEffect(\n xs: Observable<FileReloadEventPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.option$, inputs.document$, inputs.navigator$),\n mergeMap(([event, options, document, navigator]) => {\n return reload(document, navigator)(event, {\n tagNames: options.tagNames,\n liveCSS: true,\n liveImg: true\n });\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/file-reload.effect.ts","\"use strict\";\nvar FromObservable_1 = require('./FromObservable');\nexports.from = FromObservable_1.FromObservable.create;\n//# sourceMappingURL=from.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/from.js\n// module id = 83\n// module chunks = 0","\"use strict\";\nvar mergeMap_1 = require('./mergeMap');\nvar identity_1 = require('../util/identity');\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * <img src=\"./img/mergeAll.png\" width=\"100%\">\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * @example <caption>Spawn a new interval Observable for each click event, and blend their outputs as one Observable</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000));\n * var firstOrder = higherOrder.mergeAll();\n * firstOrder.subscribe(x => console.log(x));\n *\n * @example <caption>Count from 0 to 9 every second for each click, but only allow 2 concurrent timers</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(10));\n * var firstOrder = higherOrder.mergeAll(2);\n * firstOrder.subscribe(x => console.log(x));\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switch}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nfunction mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap_1.mergeMap(identity_1.identity, null, concurrent);\n}\nexports.mergeAll = mergeAll;\n//# sourceMappingURL=mergeAll.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/mergeAll.js\n// module id = 84\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * <span class=\"informal\">Like {@link map}, but it maps every source value to\n * the same output value every time.</span>\n *\n * <img src=\"./img/mapTo.png\" width=\"100%\">\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * @example <caption>Map every click to the string 'Hi'</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var greetings = clicks.mapTo('Hi');\n * greetings.subscribe(x => console.log(x));\n *\n * @see {@link map}\n *\n * @param {any} value The value to map each source value to.\n * @return {Observable} An Observable that emits the given `value` every time\n * the source Observable emits something.\n * @method mapTo\n * @owner Observable\n */\nfunction mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nexports.mapTo = mapTo;\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MapToSubscriber = (function (_super) {\n __extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n _super.call(this, destination);\n this.value = value;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=mapTo.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/mapTo.js\n// module id = 85\n// module chunks = 0","import { Inputs } from \"../index\";\nimport { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { Observable } from \"rxjs/Observable\";\nimport { IncomingPayload } from \"../messages/BrowserLocation\";\nimport { EffectNames } from \"../effects\";\n\nexport function browserSetLocationEffect(\n xs: Observable<IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.window$),\n tap(([event, window]) => {\n if (event.path) {\n return ((window.location as any) =\n window.location.protocol +\n \"//\" +\n window.location.host +\n event.path);\n }\n if (event.url) {\n return ((window.location as any) = event.url);\n }\n }),\n ignoreElements()\n );\n}\n\nexport function browserSetLocation(input: IncomingPayload) {\n return [EffectNames.BrowserSetLocation, input];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/browser-set-location.effect.ts","import { Inputs } from \"../index\";\nimport { Observable } from \"rxjs/Observable\";\nimport { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport * as ClickEvent from \"../messages/ClickEvent\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { EffectNames } from \"../effects\";\nimport { IncomingPayload } from \"../messages/ClickEvent\";\n\nexport function simulateClickEffect(\n xs: Observable<ClickEvent.IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.window$, inputs.document$),\n tap(([event, window, document]) => {\n const elems = document.getElementsByTagName(event.tagName);\n const match = elems[event.index];\n\n if (match) {\n if (document.createEvent) {\n window.setTimeout(function() {\n const evObj = document.createEvent(\"MouseEvents\");\n evObj.initEvent(\"click\", true, true);\n match.dispatchEvent(evObj);\n }, 0);\n } else {\n window.setTimeout(function() {\n if ((document as any).createEventObject) {\n const evObj = (document as any).createEventObject();\n evObj.cancelBubble = true;\n (match as any).fireEvent(\"on\" + \"click\", evObj);\n }\n }, 0);\n }\n }\n }),\n ignoreElements()\n );\n}\n\nexport function simulateClick(event: IncomingPayload) {\n return [EffectNames.SimulateClick, event];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/simulate-click.effect.ts","import { Inputs } from \"../index\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as KeyupEvent from \"../messages/KeyupEvent\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { EffectNames } from \"../effects\";\n\nexport function setElementValueEffect(\n xs: Observable<KeyupEvent.IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.document$),\n tap(([event, document]) => {\n const elems = document.getElementsByTagName(event.tagName);\n const match = elems[event.index];\n if (match) {\n (match as HTMLInputElement).value = event.value;\n }\n })\n );\n}\n\nexport function setElementValue(event: KeyupEvent.IncomingPayload) {\n return [EffectNames.SetElementValue, event];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/set-element-value.effect.ts","import { Inputs } from \"../index\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as FormToggleEvent from \"../messages/FormToggleEvent\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { EffectNames } from \"../effects\";\n\nexport function setElementToggleValueEffect(\n xs: Observable<FormToggleEvent.IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.document$),\n tap(([event, document]) => {\n const elems = document.getElementsByTagName(event.tagName);\n const match = <HTMLInputElement>elems[event.index];\n if (match) {\n if (event.type === \"radio\") {\n match.checked = true;\n }\n if (event.type === \"checkbox\") {\n match.checked = event.checked;\n }\n if (event.tagName === \"SELECT\") {\n match.value = event.value;\n }\n }\n })\n );\n}\n\nexport function setElementToggleValue(event: FormToggleEvent.IncomingPayload) {\n return [EffectNames.SetElementToggleValue, event];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/set-element-toggle-value.effect.ts","import { EffectNames } from \"../effects\";\nimport { Inputs } from \"../index\";\nimport { Observable } from \"rxjs/Observable\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\n\nexport function browserReload() {\n return [EffectNames.BrowserReload];\n}\n\nexport function preBrowserReload() {\n return [EffectNames.PreBrowserReload];\n}\n\nexport function browserReloadEffect(xs: Observable<any>, inputs: Inputs) {\n return xs.pipe(\n withLatestFrom(inputs.window$),\n tap(([, window]) => window.location.reload(true))\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/browser-reload.effect.ts","import { OutgoingSocketEvents } from \"../socket-messages\";\nimport { Inputs } from \"../index\";\nimport { Observable } from \"rxjs/Observable\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { map } from \"rxjs/operators/map\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { simulateClick } from \"../effects/simulate-click.effect\";\n\nexport interface ElementData {\n tagName: string;\n index: number;\n}\n\nexport interface IncomingPayload extends ElementData {\n pathname: string;\n}\n\nexport function outgoing(\n data: ElementData\n): [OutgoingSocketEvents.Click, ElementData] {\n return [OutgoingSocketEvents.Click, data];\n}\n\nexport function incomingHandler$(\n xs: Observable<IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(\n inputs.option$.pipe(pluck(\"ghostMode\", \"clicks\")),\n inputs.window$.pipe(pluck(\"location\", \"pathname\"))\n ),\n filter(([event, canClick, pathname]) => {\n return canClick && event.pathname === pathname;\n }),\n map(([event]) => {\n return simulateClick(event);\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/ClickEvent.ts","import { OutgoingSocketEvents } from \"../socket-messages\";\nimport * as ClickEvent from \"./ClickEvent\";\nimport { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { map } from \"rxjs/operators/map\";\nimport { Observable } from \"rxjs/Observable\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { setElementValue } from \"../effects/set-element-value.effect\";\n\nexport interface Payload {\n value: any;\n tagName: string;\n index: number;\n}\n\nexport type OutgoingPayload = Payload;\n\nexport interface IncomingPayload extends OutgoingPayload {\n pathname: string;\n}\n\nexport function outgoing(\n element: ClickEvent.ElementData,\n value: any\n): [OutgoingSocketEvents.Keyup, OutgoingPayload] {\n return [\n OutgoingSocketEvents.Keyup,\n {\n ...element,\n value\n }\n ];\n}\n\nexport function incomingKeyupHandler(\n xs: Observable<IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(\n inputs.option$.pipe(pluck(\"ghostMode\", \"forms\", \"inputs\")),\n inputs.window$.pipe(pluck(\"location\", \"pathname\"))\n ),\n filter(([event, canKeyup, pathname]) => {\n return canKeyup && event.pathname === pathname;\n }),\n map(([event]) => setElementValue(event))\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/KeyupEvent.ts","var apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/timers-browserify/main.js\n// module id = 93\n// module chunks = 0","import { OutgoingSocketEvents } from \"../socket-messages\";\nimport * as ClickEvent from \"./ClickEvent\";\nimport { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { map } from \"rxjs/operators/map\";\nimport { Observable } from \"rxjs/Observable\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { setElementToggleValue } from \"../effects/set-element-toggle-value.effect\";\n\nexport interface Payload {\n tagName: string;\n index: number;\n value: any;\n type: any;\n checked: any;\n}\n\nexport type OutgoingPayload = Payload;\n\nexport interface IncomingPayload extends OutgoingPayload {\n pathname: string;\n}\n\nexport function outgoing(\n element: ClickEvent.ElementData,\n props: { value: string; type: string; checked: boolean }\n): [OutgoingSocketEvents.InputToggle, OutgoingPayload] {\n return [\n OutgoingSocketEvents.InputToggle,\n {\n ...element,\n ...props\n }\n ];\n}\n\nexport function incomingInputsToggles(\n xs: Observable<IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(\n inputs.option$.pipe(pluck(\"ghostMode\", \"forms\", \"toggles\")),\n inputs.window$.pipe(pluck(\"location\", \"pathname\"))\n ),\n filter(([, toggles]) => toggles === true),\n map(([event]) => setElementToggleValue(event))\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/FormToggleEvent.ts","///<reference path=\"types.ts\"/>\nimport { Observable } from \"rxjs/Observable\";\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\nimport { zip } from \"rxjs/observable/zip\";\nimport { initDocument, initOptions, initSocket, initWindow } from \"./socket\";\nimport { initNotify } from \"./notify\";\nimport { domHandlers$ } from \"./dom-effects\";\nimport { SocketEvent, socketHandlers$ } from \"./socket-messages\";\nimport { merge } from \"rxjs/observable/merge\";\nimport { initLogger, logHandler$ } from \"./log\";\nimport { effectOutputHandlers$ } from \"./effects\";\nimport { Nanologger } from \"../vendor/logger\";\nimport { scrollRestoreHandlers$ } from \"./scroll-restore\";\nimport { initListeners } from \"./listeners\";\nimport { groupBy } from \"rxjs/operators/groupBy\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { mergeMap } from \"rxjs/operators/mergeMap\";\nimport { share } from \"rxjs/operators/share\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { of } from \"rxjs/observable/of\";\n\nexport interface Inputs {\n window$: Observable<Window>;\n document$: Observable<Document>;\n socket$: Observable<SocketEvent>;\n option$: BehaviorSubject<IBrowserSyncOptions>;\n navigator$: Observable<Navigator>;\n notifyElement$: BehaviorSubject<HTMLElement>;\n logInstance$: Observable<Nanologger>;\n io$: BehaviorSubject<any>;\n outgoing$: Observable<any>;\n}\n\nconst window$ = initWindow();\nconst document$ = initDocument();\nconst { socket$, io$ } = initSocket();\nconst option$ = initOptions();\nconst navigator$ = of(navigator);\nconst notifyElement$ = initNotify(option$.getValue());\nconst logInstance$ = initLogger(option$.getValue());\nconst outgoing$ = initListeners(window, document, socket$, option$);\n\nconst inputs: Inputs = {\n window$,\n document$,\n socket$,\n option$,\n navigator$,\n notifyElement$,\n logInstance$,\n io$,\n outgoing$\n};\n\nfunction getStream(name: string, inputs) {\n return function(handlers$, inputStream$) {\n return inputStream$.pipe(\n groupBy(([keyName]) => {\n return keyName;\n }),\n withLatestFrom(handlers$),\n filter(([x, handlers]) => {\n return typeof handlers[x.key] === \"function\";\n }),\n mergeMap(([x, handlers]) => {\n return handlers[x.key](x.pipe(pluck(String(1))), inputs);\n }),\n share()\n );\n };\n}\n\nconst combinedEffectHandler$ = zip(\n effectOutputHandlers$,\n scrollRestoreHandlers$,\n (...args) => {\n return args.reduce((acc, item) => ({ ...acc, ...item }), {});\n }\n);\n\nconst output$ = getStream(\"[socket]\", inputs)(\n socketHandlers$,\n merge(inputs.socket$, outgoing$)\n);\n\nconst effect$ = getStream(\"[effect]\", inputs)(combinedEffectHandler$, output$);\nconst dom$ = getStream(\"[dom-effect]\", inputs)(domHandlers$, effect$);\n\nconst merged$ = merge(output$, effect$, dom$);\n\nconst log$ = getStream(\"[log]\", inputs)(logHandler$, merged$);\n\nlog$.subscribe();\n\n// resume$.next(true);\n\n// var socket = require(\"./socket\");\n// var shims = require(\"./client-shims\");\n// var notify = require(\"./notify\");\n// // var codeSync = require(\"./code-sync\");\n// const { BrowserSync } = require(\"./browser-sync\");\n// var ghostMode = require(\"./ghostmode\");\n// var events = require(\"./events\");\n// var utils = require(\"./browser.utils\");\n//\n// const mitt = require(\"mitt\").default;\n//\n// var shouldReload = false;\n// var initialised = false;\n//\n// /**\n// * @param options\n// */\n// function init(options: bs.InitOptions) {\n// if (shouldReload && options.reloadOnRestart) {\n// utils.reloadBrowser();\n// }\n//\n// var BS = window.___browserSync___ || {};\n// var emitter = mitt();\n//\n// if (!BS.client) {\n// BS.client = true;\n//\n// var browserSync = new BrowserSync({ options, emitter, socket });\n//\n// // codeSync.init(browserSync);\n//\n// // // Always init on page load\n// // ghostMode.init(browserSync);\n// //\n// // notify.init(browserSync);\n// //\n// // if (options.notify) {\n// // notify.flash(\"Connected to BrowserSync\");\n// // }\n// }\n//\n// // if (!initialised) {\n// // socket.on(\"disconnect\", function() {\n// // if (options.notify) {\n// // notify.flash(\"Disconnected from BrowserSync\");\n// // }\n// // shouldReload = true;\n// // });\n// // initialised = true;\n// // }\n// }\n//\n// /**\n// * Handle individual socket connections\n// */\n// socket.on(\"connection\", init);\n\n\n\n// WEBPACK FOOTER //\n// ./lib/index.ts","\"use strict\";\nvar zip_1 = require('../operators/zip');\nexports.zip = zip_1.zipStatic;\n//# sourceMappingURL=zip.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/zip.js\n// module id = 97\n// module chunks = 0","\"use strict\";\nvar __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 ArrayObservable_1 = require('../observable/ArrayObservable');\nvar isArray_1 = require('../util/isArray');\nvar Subscriber_1 = require('../Subscriber');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar iterator_1 = require('../symbol/iterator');\n/* tslint:enable:max-line-length */\n/**\n * @param observables\n * @return {Observable<R>}\n * @method zip\n * @owner Observable\n */\nfunction zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\nexports.zip = zip;\n/* tslint:enable:max-line-length */\n/**\n * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each\n * of its input Observables.\n *\n * If the latest parameter is a function, this function is used to compute the created value from the input values.\n * Otherwise, an array of the input values is returned.\n *\n * @example <caption>Combine age and name from different sources</caption>\n *\n * let age$ = Observable.of<number>(27, 25, 29);\n * let name$ = Observable.of<string>('Foo', 'Bar', 'Beer');\n * let isDev$ = Observable.of<boolean>(true, true, false);\n *\n * Observable\n * .zip(age$,\n * name$,\n * isDev$,\n * (age: number, name: string, isDev: boolean) => ({ age, name, isDev }))\n * .subscribe(x => console.log(x));\n *\n * // outputs\n * // { age: 27, name: 'Foo', isDev: true }\n * // { age: 25, name: 'Bar', isDev: true }\n * // { age: 29, name: 'Beer', isDev: false }\n *\n * @param observables\n * @return {Observable<R>}\n * @static true\n * @name zip\n * @owner Observable\n */\nfunction zipStatic() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i - 0] = arguments[_i];\n }\n var project = observables[observables.length - 1];\n if (typeof project === 'function') {\n observables.pop();\n }\n return new ArrayObservable_1.ArrayObservable(observables).lift(new ZipOperator(project));\n}\nexports.zipStatic = zipStatic;\nvar ZipOperator = (function () {\n function ZipOperator(project) {\n this.project = project;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.project));\n };\n return ZipOperator;\n}());\nexports.ZipOperator = ZipOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ZipSubscriber = (function (_super) {\n __extends(ZipSubscriber, _super);\n function ZipSubscriber(destination, project, values) {\n if (values === void 0) { values = Object.create(null); }\n _super.call(this, destination);\n this.iterators = [];\n this.active = 0;\n this.project = (typeof project === 'function') ? project : null;\n this.values = values;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (isArray_1.isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[iterator_1.iterator] === 'function') {\n iterators.push(new StaticIterator(value[iterator_1.iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n this.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--; // not an observable\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n // abort if not all of them have values\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n // check to see if it's completed now that you've gotten\n // the next value.\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.project) {\n this._tryProject(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(Subscriber_1.Subscriber));\nexports.ZipSubscriber = ZipSubscriber;\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[iterator_1.iterator] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ZipBufferIterator = (function (_super) {\n __extends(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n _super.call(this, destination);\n this.parent = parent;\n this.observable = observable;\n this.stillUnsubscribed = true;\n this.buffer = [];\n this.isComplete = false;\n }\n ZipBufferIterator.prototype[iterator_1.iterator] = function () {\n return this;\n };\n // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next\n // this is legit because `next()` will never be called by a subscription in this case.\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return subscribeToResult_1.subscribeToResult(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=zip.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/zip.js\n// module id = 98\n// module chunks = 0","\"use strict\";\nvar Subscriber_1 = require('../Subscriber');\nvar rxSubscriber_1 = require('../symbol/rxSubscriber');\nvar Observer_1 = require('../Observer');\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/toSubscriber.js\n// module id = 99\n// module chunks = 0","\"use strict\";\nvar __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};\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nvar UnsubscriptionError = (function (_super) {\n __extends(UnsubscriptionError, _super);\n function UnsubscriptionError(errors) {\n _super.call(this);\n this.errors = errors;\n var err = Error.call(this, errors ?\n errors.length + \" errors occurred during unsubscription:\\n \" + errors.map(function (err, i) { return ((i + 1) + \") \" + err.toString()); }).join('\\n ') : '');\n this.name = err.name = 'UnsubscriptionError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return UnsubscriptionError;\n}(Error));\nexports.UnsubscriptionError = UnsubscriptionError;\n//# sourceMappingURL=UnsubscriptionError.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/UnsubscriptionError.js\n// module id = 100\n// module chunks = 0","\"use strict\";\nvar noop_1 = require('./noop');\n/* tslint:enable:max-line-length */\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i - 0] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexports.pipe = pipe;\n/* @internal */\nfunction pipeFromArray(fns) {\n if (!fns) {\n return noop_1.noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\nexports.pipeFromArray = pipeFromArray;\n//# sourceMappingURL=pipe.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/pipe.js\n// module id = 101\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('./Subscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerSubscriber = (function (_super) {\n __extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n _super.call(this);\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber_1.Subscriber));\nexports.InnerSubscriber = InnerSubscriber;\n//# sourceMappingURL=InnerSubscriber.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/InnerSubscriber.js\n// module id = 102\n// module chunks = 0","import socket = require(\"socket.io-client\");\nimport { Observable } from \"rxjs/Observable\";\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\nimport { of } from \"rxjs/observable/of\";\nimport { share } from \"rxjs/operators/share\";\n\n/**\n * Alias for socket.emit\n * @param name\n * @param data\n */\n// export function emit(name, data) {\n// if (io && io.emit) {\n// // send relative path of where the event is sent\n// data.url = window.location.pathname;\n// io.emit(name, data);\n// }\n// }\n//\n// /**\n// * Alias for socket.on\n// * @param name\n// * @param func\n// */\n// export function on(name, func) {\n// io.on(name, func);\n// }\n\nexport function initWindow() {\n return of(window);\n}\n\nexport function initDocument() {\n return of(document);\n}\n\nexport function initNavigator() {\n return of(navigator);\n}\n\nexport function initOptions() {\n return new BehaviorSubject(window.___browserSync___.options);\n}\n\nexport function initSocket() {\n /**\n * @type {{emit: emit, on: on}}\n */\n\n const socketConfig = window.___browserSync___.socketConfig;\n const socketUrl = window.___browserSync___.socketUrl;\n const io = socket(socketUrl, socketConfig);\n const onevent = io.onevent;\n\n const socket$ = Observable.create(obs => {\n io.onevent = function(packet) {\n onevent.call(this, packet);\n obs.next(packet.data);\n };\n }).pipe(share());\n\n const io$ = new BehaviorSubject(io);\n\n /**\n * *****BACK-COMPAT*******\n * Scripts that come after Browsersync may rely on the previous window.___browserSync___.socket\n */\n window.___browserSync___.socket = io;\n\n return { socket$, io$ };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/socket.ts","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] ||\n false === opts.multiplex || sameNamespace;\n\n var io;\n\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/index.js\n// module id = 104\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n var obj = uri;\n\n // default to window.location\n loc = loc || global.location;\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n\n obj.path = obj.path || '/';\n\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/url.js\n// module id = 105\n// module chunks = 0","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/debug/src/debug.js\n// module id = 106\n// module chunks = 0","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ms/index.js\n// module id = 107\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-binary2/node_modules/isarray/index.js\n// module id = 108\n// module chunks = 0","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (isBuf(data)) {\n var placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for (var key in data) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (data && data._placeholder) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else if (isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for (var key in data) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n\n return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n\n // convert any blob\n if ((withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)) {\n pendingBlobs++;\n\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function() { // this.result == arraybuffer\n if (containingObject) {\n containingObject[curKey] = this.result;\n }\n else {\n bloblessData = this.result;\n }\n\n // if nothing pending its callback time\n if(! --pendingBlobs) {\n callback(bloblessData);\n }\n };\n\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) { // handle array\n for (var i = 0; i < obj.length; i++) {\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n for (var key in obj) {\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/binary.js\n// module id = 109\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/node_modules/isarray/index.js\n// module id = 110\n// module chunks = 0","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/index.js\n// module id = 111\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n opts = opts || {};\n\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = null;\n }\n\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n\n this.secure = null != opts.secure ? opts.secure\n : (global.location && 'https:' === location.protocol);\n\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? '443' : '80';\n }\n\n this.agent = opts.agent || false;\n this.hostname = opts.hostname ||\n (global.location ? location.hostname : 'localhost');\n this.port = opts.port || (global.location && location.port\n ? location.port\n : (this.secure ? 443 : 80));\n this.query = opts.query || {};\n if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n this.upgrade = false !== opts.upgrade;\n this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n this.forceJSONP = !!opts.forceJSONP;\n this.jsonp = false !== opts.jsonp;\n this.forceBase64 = !!opts.forceBase64;\n this.enablesXDR = !!opts.enablesXDR;\n this.timestampParam = opts.timestampParam || 't';\n this.timestampRequests = opts.timestampRequests;\n this.transports = opts.transports || ['polling', 'websocket'];\n this.transportOptions = opts.transportOptions || {};\n this.readyState = '';\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.policyPort = opts.policyPort || 843;\n this.rememberUpgrade = opts.rememberUpgrade || false;\n this.binaryType = null;\n this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n this.perMessageDeflate.threshold = 1024;\n }\n\n // SSL options for Node.js client\n this.pfx = opts.pfx || null;\n this.key = opts.key || null;\n this.passphrase = opts.passphrase || null;\n this.cert = opts.cert || null;\n this.ca = opts.ca || null;\n this.ciphers = opts.ciphers || null;\n this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n this.forceNode = !!opts.forceNode;\n\n // other options for Node.js client\n var freeGlobal = typeof global === 'object' && global;\n if (freeGlobal.global === freeGlobal) {\n if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n this.extraHeaders = opts.extraHeaders;\n }\n\n if (opts.localAddress) {\n this.localAddress = opts.localAddress;\n }\n }\n\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n\n // set on heartbeat\n this.pingIntervalTimer = null;\n this.pingTimeoutTimer = null;\n\n this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n debug('creating transport \"%s\"', name);\n var query = clone(this.query);\n\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n\n // transport name\n query.transport = name;\n\n // per-transport options\n var options = this.transportOptions[name] || {};\n\n // session id if we already have one\n if (this.id) query.sid = this.id;\n\n var transport = new transports[name]({\n query: query,\n socket: this,\n agent: options.agent || this.agent,\n hostname: options.hostname || this.hostname,\n port: options.port || this.port,\n secure: options.secure || this.secure,\n path: options.path || this.path,\n forceJSONP: options.forceJSONP || this.forceJSONP,\n jsonp: options.jsonp || this.jsonp,\n forceBase64: options.forceBase64 || this.forceBase64,\n enablesXDR: options.enablesXDR || this.enablesXDR,\n timestampRequests: options.timestampRequests || this.timestampRequests,\n timestampParam: options.timestampParam || this.timestampParam,\n policyPort: options.policyPort || this.policyPort,\n pfx: options.pfx || this.pfx,\n key: options.key || this.key,\n passphrase: options.passphrase || this.passphrase,\n cert: options.cert || this.cert,\n ca: options.ca || this.ca,\n ciphers: options.ciphers || this.ciphers,\n rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n extraHeaders: options.extraHeaders || this.extraHeaders,\n forceNode: options.forceNode || this.forceNode,\n localAddress: options.localAddress || this.localAddress,\n requestTimeout: options.requestTimeout || this.requestTimeout,\n protocols: options.protocols || void (0)\n });\n\n return transport;\n};\n\nfunction clone (obj) {\n var o = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n var transport;\n if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n transport = 'websocket';\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n var self = this;\n setTimeout(function () {\n self.emit('error', 'No transports available');\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = 'opening';\n\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n\n transport.open();\n this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n debug('setting transport %s', transport.name);\n var self = this;\n\n if (this.transport) {\n debug('clearing existing transport %s', this.transport.name);\n this.transport.removeAllListeners();\n }\n\n // set up transport\n this.transport = transport;\n\n // set up transport listeners\n transport\n .on('drain', function () {\n self.onDrain();\n })\n .on('packet', function (packet) {\n self.onPacket(packet);\n })\n .on('error', function (e) {\n self.onError(e);\n })\n .on('close', function () {\n self.onClose('transport close');\n });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n debug('probing transport \"%s\"', name);\n var transport = this.createTransport(name, { probe: 1 });\n var failed = false;\n var self = this;\n\n Socket.priorWebsocketSuccess = false;\n\n function onTransportOpen () {\n if (self.onlyBinaryUpgrades) {\n var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n\n debug('probe transport \"%s\" opened', name);\n transport.send([{ type: 'ping', data: 'probe' }]);\n transport.once('packet', function (msg) {\n if (failed) return;\n if ('pong' === msg.type && 'probe' === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit('upgrading', transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function () {\n if (failed) return;\n if ('closed' === self.readyState) return;\n debug('changing transport and sending upgrade packet');\n\n cleanup();\n\n self.setTransport(transport);\n transport.send([{ type: 'upgrade' }]);\n self.emit('upgrade', transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n var err = new Error('probe error');\n err.transport = transport.name;\n self.emit('upgradeError', err);\n }\n });\n }\n\n function freezeTransport () {\n if (failed) return;\n\n // Any callback called by transport should be ignored since now\n failed = true;\n\n cleanup();\n\n transport.close();\n transport = null;\n }\n\n // Handle any error that happens while probing\n function onerror (err) {\n var error = new Error('probe error: ' + err);\n error.transport = transport.name;\n\n freezeTransport();\n\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n self.emit('upgradeError', error);\n }\n\n function onTransportClose () {\n onerror('transport closed');\n }\n\n // When the socket is closed while we're probing\n function onclose () {\n onerror('socket closed');\n }\n\n // When the socket is upgraded while we're probing\n function onupgrade (to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n\n // Remove all listeners on the transport and on self\n function cleanup () {\n transport.removeListener('open', onTransportOpen);\n transport.removeListener('error', onerror);\n transport.removeListener('close', onTransportClose);\n self.removeListener('close', onclose);\n self.removeListener('upgrading', onupgrade);\n }\n\n transport.once('open', onTransportOpen);\n transport.once('error', onerror);\n transport.once('close', onTransportClose);\n\n this.once('close', onclose);\n this.once('upgrading', onupgrade);\n\n transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n debug('socket open');\n this.readyState = 'open';\n Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n this.emit('open');\n this.flush();\n\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n debug('starting upgrade probes');\n for (var i = 0, l = this.upgrades.length; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n if ('opening' === this.readyState || 'open' === this.readyState ||\n 'closing' === this.readyState) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n this.emit('packet', packet);\n\n // Socket is live - any packet counts\n this.emit('heartbeat');\n\n switch (packet.type) {\n case 'open':\n this.onHandshake(JSON.parse(packet.data));\n break;\n\n case 'pong':\n this.setPing();\n this.emit('pong');\n break;\n\n case 'error':\n var err = new Error('server error');\n err.code = packet.data;\n this.onError(err);\n break;\n\n case 'message':\n this.emit('data', packet.data);\n this.emit('message', packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n this.emit('handshake', data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if ('closed' === this.readyState) return;\n this.setPing();\n\n // Prolong liveness of socket on heartbeat\n this.removeListener('heartbeat', this.onHeartbeat);\n this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n clearTimeout(this.pingTimeoutTimer);\n var self = this;\n self.pingTimeoutTimer = setTimeout(function () {\n if ('closed' === self.readyState) return;\n self.onClose('ping timeout');\n }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n var self = this;\n clearTimeout(self.pingIntervalTimer);\n self.pingIntervalTimer = setTimeout(function () {\n debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n self.ping();\n self.onHeartbeat(self.pingTimeout);\n }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n var self = this;\n this.sendPacket('ping', function () {\n self.emit('ping');\n });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n this.writeBuffer.splice(0, this.prevBufferLen);\n\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n\n if (0 === this.writeBuffer.length) {\n this.emit('drain');\n } else {\n this.flush();\n }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n if ('closed' !== this.readyState && this.transport.writable &&\n !this.upgrading && this.writeBuffer.length) {\n debug('flushing %d packets in socket', this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit('flush');\n }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n this.sendPacket('message', msg, options, fn);\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n if ('function' === typeof data) {\n fn = data;\n data = undefined;\n }\n\n if ('function' === typeof options) {\n fn = options;\n options = null;\n }\n\n if ('closing' === this.readyState || 'closed' === this.readyState) {\n return;\n }\n\n options = options || {};\n options.compress = false !== options.compress;\n\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit('packetCreate', packet);\n this.writeBuffer.push(packet);\n if (fn) this.once('flush', fn);\n this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.readyState = 'closing';\n\n var self = this;\n\n if (this.writeBuffer.length) {\n this.once('drain', function () {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n\n function close () {\n self.onClose('forced close');\n debug('socket closing - telling transport to close');\n self.transport.close();\n }\n\n function cleanupAndClose () {\n self.removeListener('upgrade', cleanupAndClose);\n self.removeListener('upgradeError', cleanupAndClose);\n close();\n }\n\n function waitForUpgrade () {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once('upgrade', cleanupAndClose);\n self.once('upgradeError', cleanupAndClose);\n }\n\n return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n debug('socket error %j', err);\n Socket.priorWebsocketSuccess = false;\n this.emit('error', err);\n this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket close with reason: \"%s\"', reason);\n var self = this;\n\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n\n // stop event from firing again for transport\n this.transport.removeAllListeners('close');\n\n // ensure transport won't stay open\n this.transport.close();\n\n // ignore further transport communication\n this.transport.removeAllListeners();\n\n // set ready state\n this.readyState = 'closed';\n\n // clear session id\n this.id = null;\n\n // emit close event\n this.emit('close', reason, desc);\n\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n var filteredUpgrades = [];\n for (var i = 0, j = upgrades.length; i < j; i++) {\n if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/socket.js\n// module id = 112\n// module chunks = 0","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-cors/index.js\n// module id = 113\n// module chunks = 0","/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (global.location) {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = opts.hostname !== global.location.hostname ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n var contentType;\n try {\n contentType = xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream') {\n xhr.responseType = 'arraybuffer';\n }\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(xhr.status);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (global.document) {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (global.document) {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (global.document) {\n if (global.attachEvent) {\n global.attachEvent('onunload', unloadHandler);\n } else if (global.addEventListener) {\n global.addEventListener('beforeunload', unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/polling-xhr.js\n// module id = 114\n// module chunks = 0","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n\n for (var i in obj) {\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-parser/lib/keys.js\n// module id = 115\n// module chunks = 0","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n\n if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n if (start < 0) { start += bytes; }\n if (end < 0) { end += bytes; }\n if (end > bytes) { end = bytes; }\n\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for (var i = start, ii = 0; i < end; i++, ii++) {\n result[ii] = abv[i];\n }\n return result.buffer;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/arraybuffer.slice/index.js\n// module id = 116\n// module chunks = 0","module.exports = after\n\nfunction after(count, callback, err_cb) {\n var bail = false\n err_cb = err_cb || noop\n proxy.count = count\n\n return (count === 0) ? callback() : proxy\n\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times')\n }\n --proxy.count\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true\n callback(err)\n // future error callbacks will go to error handler\n callback = err_cb\n } else if (proxy.count === 0 && !bail) {\n callback(null, result)\n }\n }\n}\n\nfunction noop() {}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/after/index.js\n// module id = 117\n// module chunks = 0","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint, strict) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tif (strict) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t' is not a scalar value'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint, strict) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t}\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol(strict) {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-parser/lib/utf8.js\n// module id = 118\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 119\n// module chunks = 0","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n \"use strict\";\n\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n // Use a lookup table to find the index.\n var lookup = new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js\n// module id = 120\n// module chunks = 0","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n || global.WebKitBlobBuilder\n || global.MSBlobBuilder\n || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n try {\n var a = new Blob(['hi']);\n return a.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n try {\n var b = new Blob([new Uint8Array([1,2])]);\n return b.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n && BlobBuilder.prototype.append\n && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n for (var i = 0; i < ary.length; i++) {\n var chunk = ary[i];\n if (chunk.buffer instanceof ArrayBuffer) {\n var buf = chunk.buffer;\n\n // if this is a subarray, make a copy so we only\n // include the subarray region from the underlying buffer\n if (chunk.byteLength !== buf.byteLength) {\n var copy = new Uint8Array(chunk.byteLength);\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n buf = copy.buffer;\n }\n\n ary[i] = buf;\n }\n }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n options = options || {};\n\n var bb = new BlobBuilder();\n mapArrayBufferViews(ary);\n\n for (var i = 0; i < ary.length; i++) {\n bb.append(ary[i]);\n }\n\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n mapArrayBufferViews(ary);\n return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n if (blobSupported) {\n return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n } else if (blobBuilderSupported) {\n return BlobBuilderConstructor;\n } else {\n return undefined;\n }\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/blob/index.js\n// module id = 121\n// module chunks = 0","\n/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n Polling.call(this, opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n if (!global.___eio) global.___eio = [];\n callbacks = global.___eio;\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (global.document && global.addEventListener) {\n global.addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete () {\n initIframe();\n fn();\n }\n\n function initIframe () {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n iframe = document.createElement(html);\n } catch (e) {\n iframe = document.createElement('iframe');\n iframe.name = self.iframeId;\n iframe.src = 'javascript:0';\n }\n\n iframe.id = self.iframeId;\n\n self.form.appendChild(iframe);\n self.iframe = iframe;\n }\n\n initIframe();\n\n // escape \\n to prevent it from being converted into \\r\\n by some UAs\n // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n data = data.replace(rEscapedNewline, '\\\\\\n');\n this.area.value = data.replace(rNewline, '\\\\n');\n\n try {\n this.form.submit();\n } catch (e) {}\n\n if (this.iframe.attachEvent) {\n this.iframe.onreadystatechange = function () {\n if (self.iframe.readyState === 'complete') {\n complete();\n }\n };\n } else {\n this.iframe.onload = complete;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/polling-jsonp.js\n// module id = 122\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\nvar NodeWebSocket;\nif (typeof window === 'undefined') {\n try {\n NodeWebSocket = require('ws');\n } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n WebSocket = NodeWebSocket;\n}\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (forceBase64) {\n this.supportsBinary = false;\n }\n this.perMessageDeflate = opts.perMessageDeflate;\n this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n this.protocols = opts.protocols;\n if (!this.usingBrowserWebSocket) {\n WebSocket = NodeWebSocket;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n\n var uri = this.uri();\n var protocols = this.protocols;\n var opts = {\n agent: this.agent,\n perMessageDeflate: this.perMessageDeflate\n };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n if (this.extraHeaders) {\n opts.headers = this.extraHeaders;\n }\n if (this.localAddress) {\n opts.localAddress = this.localAddress;\n }\n\n try {\n this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n } catch (err) {\n return this.emit('error', err);\n }\n\n if (this.ws.binaryType === undefined) {\n this.supportsBinary = false;\n }\n\n if (this.ws.supports && this.ws.supports.binary) {\n this.supportsBinary = true;\n this.ws.binaryType = 'nodebuffer';\n } else {\n this.ws.binaryType = 'arraybuffer';\n }\n\n this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n var self = this;\n\n this.ws.onopen = function () {\n self.onOpen();\n };\n this.ws.onclose = function () {\n self.onClose();\n };\n this.ws.onmessage = function (ev) {\n self.onData(ev.data);\n };\n this.ws.onerror = function (e) {\n self.onError('websocket error', e);\n };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n var total = packets.length;\n for (var i = 0, l = total; i < l; i++) {\n (function (packet) {\n parser.encodePacket(packet, self.supportsBinary, function (data) {\n if (!self.usingBrowserWebSocket) {\n // always create a new object (GH-437)\n var opts = {};\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n\n if (self.perMessageDeflate) {\n var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n if (len < self.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (self.usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n self.ws.send(data);\n } else {\n self.ws.send(data, opts);\n }\n } catch (e) {\n debug('websocket closed before onclose event');\n }\n\n --total || done();\n });\n })(packets[i]);\n }\n\n function done () {\n self.emit('flush');\n\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n setTimeout(function () {\n self.writable = true;\n self.emit('drain');\n }, 0);\n }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n if (typeof this.ws !== 'undefined') {\n this.ws.close();\n }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'wss' : 'ws';\n var port = '';\n\n // avoid port if default for schema\n if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n ('ws' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // append timestamp to URI\n if (this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/websocket.js\n// module id = 123\n// module chunks = 0","module.exports = toArray\n\nfunction toArray(list, index) {\n var array = []\n\n index = index || 0\n\n for (var i = index || 0; i < list.length; i++) {\n array[i - index] = list[i]\n }\n\n return array\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/to-array/index.js\n// module id = 125\n// module chunks = 0","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n this.jitter = jitter;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/backo2/index.js\n// module id = 126\n// module chunks = 0","\"use strict\";\nvar __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 Subscription_1 = require('./Subscription');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubjectSubscription = (function (_super) {\n __extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n _super.call(this);\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription_1.Subscription));\nexports.SubjectSubscription = SubjectSubscription;\n//# sourceMappingURL=SubjectSubscription.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/SubjectSubscription.js\n// module id = 127\n// module chunks = 0","\"use strict\";\nvar ConnectableObservable_1 = require('../observable/ConnectableObservable');\n/* tslint:enable:max-line-length */\n/**\n * Returns an Observable that emits the results of invoking a specified selector on items\n * emitted by a ConnectableObservable that shares a single subscription to the underlying stream.\n *\n * <img src=\"./img/multicast.png\" width=\"100%\">\n *\n * @param {Function|Subject} subjectOrSubjectFactory - Factory function to create an intermediate subject through\n * which the source sequence's elements will be multicast to the selector function\n * or Subject to push source elements into.\n * @param {Function} [selector] - Optional selector function that can use the multicasted source stream\n * as many times as needed, without causing multiple subscriptions to the source stream.\n * Subscribers to the given source will receive all notifications of the source from the\n * time of the subscription forward.\n * @return {Observable} An Observable that emits the results of invoking the selector\n * on the items emitted by a `ConnectableObservable` that shares a single subscription to\n * the underlying stream.\n * @method multicast\n * @owner Observable\n */\nfunction multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, ConnectableObservable_1.connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexports.multicast = multicast;\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexports.MulticastOperator = MulticastOperator;\n//# sourceMappingURL=multicast.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/multicast.js\n// module id = 128\n// module chunks = 0","\"use strict\";\nvar __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 Subject_1 = require('../Subject');\nvar Observable_1 = require('../Observable');\nvar Subscriber_1 = require('../Subscriber');\nvar Subscription_1 = require('../Subscription');\nvar refCount_1 = require('../operators/refCount');\n/**\n * @class ConnectableObservable<T>\n */\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n _super.call(this);\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription_1.Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription_1.Subscription.EMPTY;\n }\n else {\n this._connection = connection;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return refCount_1.refCount()(this);\n };\n return ConnectableObservable;\n}(Observable_1.Observable));\nexports.ConnectableObservable = ConnectableObservable;\nvar connectableProto = ConnectableObservable.prototype;\nexports.connectableObservableDescriptor = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\nvar ConnectableSubscriber = (function (_super) {\n __extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n _super.call(this, destination);\n this.connectable = connectable;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(Subject_1.SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n __extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n _super.call(this, destination);\n this.connectable = connectable;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n ///\n // Compare the local RefCountSubscriber's connection Subscription to the\n // connection Subscription on the shared ConnectableObservable. In cases\n // where the ConnectableObservable source synchronously emits values, and\n // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n // execution continues to here before the RefCountOperator has a chance to\n // supply the RefCountSubscriber with the shared connection Subscription.\n // For example:\n // ```\n // Observable.range(0, 10)\n // .publish()\n // .refCount()\n // .take(5)\n // .subscribe();\n // ```\n // In order to account for this case, RefCountSubscriber should only dispose\n // the ConnectableObservable's shared connection Subscription if the\n // connection Subscription exists, *and* either:\n // a. RefCountSubscriber doesn't have a reference to the shared connection\n // Subscription yet, or,\n // b. RefCountSubscriber's connection Subscription reference is identical\n // to the shared connection Subscription\n ///\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/ConnectableObservable.js\n// module id = 129\n// module chunks = 0","import { BehaviorSubject } from \"rxjs/BehaviorSubject\";\n\nconst styles = {\n display: \"none\",\n padding: \"15px\",\n fontFamily: \"sans-serif\",\n position: \"fixed\",\n fontSize: \"0.9em\",\n zIndex: 9999,\n right: 0,\n top: 0,\n borderBottomLeftRadius: \"5px\",\n backgroundColor: \"#1B2032\",\n margin: 0,\n color: \"white\",\n textAlign: \"center\",\n pointerEvents: \"none\"\n};\n\n/**\n * @param {IBrowserSyncOptions} options\n * @returns {BehaviorSubject<any>}\n */\nexport function initNotify(options) {\n let cssStyles = styles;\n let elem;\n\n if (options.notify.styles) {\n if (\n Object.prototype.toString.call(options.notify.styles) ===\n \"[object Array]\"\n ) {\n // handle original array behavior, replace all styles with a joined copy\n cssStyles = options.notify.styles.join(\";\");\n } else {\n for (var key in options.notify.styles) {\n if (options.notify.styles.hasOwnProperty(key)) {\n cssStyles[key] = options.notify.styles[key];\n }\n }\n }\n }\n\n elem = document.createElement(\"DIV\");\n elem.id = \"__bs_notify__\";\n\n if (typeof cssStyles === \"string\") {\n elem.style.cssText = cssStyles;\n } else {\n for (var rule in cssStyles) {\n elem.style[rule] = cssStyles[rule];\n }\n }\n\n return new BehaviorSubject(elem);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/notify.ts","\"use strict\";\nvar __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 isNumeric_1 = require('../util/isNumeric');\nvar Observable_1 = require('../Observable');\nvar async_1 = require('../scheduler/async');\nvar isScheduler_1 = require('../util/isScheduler');\nvar isDate_1 = require('../util/isDate');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar TimerObservable = (function (_super) {\n __extends(TimerObservable, _super);\n function TimerObservable(dueTime, period, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n _super.call(this);\n this.period = -1;\n this.dueTime = 0;\n if (isNumeric_1.isNumeric(period)) {\n this.period = Number(period) < 1 && 1 || Number(period);\n }\n else if (isScheduler_1.isScheduler(period)) {\n scheduler = period;\n }\n if (!isScheduler_1.isScheduler(scheduler)) {\n scheduler = async_1.async;\n }\n this.scheduler = scheduler;\n this.dueTime = isDate_1.isDate(dueTime) ?\n (+dueTime - this.scheduler.now()) :\n dueTime;\n }\n /**\n * Creates an Observable that starts emitting after an `initialDelay` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * <span class=\"informal\">Its like {@link interval}, but you can specify when\n * should the emissions start.</span>\n *\n * <img src=\"./img/timer.png\" width=\"100%\">\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `initialDelay`. The initial delay may be a {@link Date}. By default, this\n * operator uses the `async` IScheduler to provide a notion of time, but you\n * may pass any IScheduler to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * @example <caption>Emits ascending numbers, one every second (1000ms), starting after 3 seconds</caption>\n * var numbers = Rx.Observable.timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n *\n * @example <caption>Emits one number after five seconds</caption>\n * var numbers = Rx.Observable.timer(5000);\n * numbers.subscribe(x => console.log(x));\n *\n * @see {@link interval}\n * @see {@link delay}\n *\n * @param {number|Date} initialDelay The initial delay time to wait before\n * emitting the first value of `0`.\n * @param {number} [period] The period of time between emissions of the\n * subsequent numbers.\n * @param {Scheduler} [scheduler=async] The IScheduler to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `initialDelay` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\n TimerObservable.create = function (initialDelay, period, scheduler) {\n if (initialDelay === void 0) { initialDelay = 0; }\n return new TimerObservable(initialDelay, period, scheduler);\n };\n TimerObservable.dispatch = function (state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n var action = this;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n action.schedule(state, period);\n };\n TimerObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var _a = this, period = _a.period, dueTime = _a.dueTime, scheduler = _a.scheduler;\n return scheduler.schedule(TimerObservable.dispatch, dueTime, {\n index: index, period: period, subscriber: subscriber\n });\n };\n return TimerObservable;\n}(Observable_1.Observable));\nexports.TimerObservable = TimerObservable;\n//# sourceMappingURL=TimerObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/TimerObservable.js\n// module id = 131\n// module chunks = 0","\"use strict\";\nvar __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 Subscription_1 = require('../Subscription');\n/**\n * A unit of work to be executed in a {@link Scheduler}. An action is typically\n * created from within a Scheduler and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n _super.call(this);\n }\n /**\n * Schedules this action on its parent Scheduler for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription_1.Subscription));\nexports.Action = Action;\n//# sourceMappingURL=Action.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/scheduler/Action.js\n// module id = 132\n// module chunks = 0","\"use strict\";\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an {@link Action}.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n */\nvar Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = Date.now ? Date.now : function () { return +new Date(); };\n return Scheduler;\n}());\nexports.Scheduler = Scheduler;\n//# sourceMappingURL=Scheduler.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Scheduler.js\n// module id = 133\n// module chunks = 0","\"use strict\";\nfunction isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\nexports.isDate = isDate;\n//# sourceMappingURL=isDate.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/isDate.js\n// module id = 134\n// module chunks = 0","const emojis = {\n trace: '🔍',\n debug: '🐛',\n info: '✨',\n warn: '⚠',\n error: '🚨',\n fatal: '💀'\n};\n\nconst levels = {\n trace: 10,\n debug: 20,\n info: 30,\n warn: 40,\n error: 50,\n fatal: 60\n};\n\nconst defaultColors = {\n foreground: '#d3c0c8',\n background: '#2d2d2d',\n black: '#2d2d2d',\n red: '#f2777a',\n green: '#99cc99',\n yellow: '#ffcc66',\n blue: '#6699cc',\n magenta: '#cc99cc',\n cyan: '#66cccc',\n white: '#d3d0c8',\n brightBlack: '#747369'\n};\n\nexport class Nanologger {\n public _name: string;\n public _colors: { [index: string]: string };\n public logLevel: string;\n public _logLevel: string;\n\n constructor(public name: string, public opts) {\n this._name = name || '';\n this._colors = {\n ...defaultColors,\n ...(opts.colors || {})\n }\n try {\n this.logLevel = window.localStorage.getItem('logLevel') || 'info'\n } catch (e) {\n this.logLevel = 'info'\n }\n\n this._logLevel = levels[this.logLevel]\n }\n\n public trace() {\n var args = ['trace']\n for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n this._print.apply(this, args)\n }\n\n public debug() {\n var args = ['debug']\n for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n this._print.apply(this, args)\n }\n\n public info() {\n var args = ['info']\n for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n this._print.apply(this, args)\n }\n\n public warn() {\n var args = ['warn']\n for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n this._print.apply(this, args)\n }\n\n public error() {\n var args = ['error']\n for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n this._print.apply(this, args)\n }\n\n public fatal() {\n var args = ['fatal']\n for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n this._print.apply(this, args)\n }\n\n private _print(level) {\n if (levels[level] < this._logLevel) return\n\n // var time = getTimeStamp()\n var emoji = emojis[level]\n var name = this._name || 'unknown'\n\n var msgColor = (level === 'error' || level.fatal)\n ? this._colors.red\n : level === 'warn'\n ? this._colors.yellow\n : this._colors.green\n\n var objs = []\n var args = [null]\n var msg = emoji + ' %c%s';\n\n // args.push(color(this._colors.brightBlack), time)\n args.push(color(this._colors.magenta), name)\n\n for (var i = 1, len = arguments.length; i < len; i++) {\n var arg = arguments[i]\n if (typeof arg === 'string') {\n if (i === 1) {\n // first string argument is in color\n msg += ' %c%s'\n args.push(color(msgColor))\n args.push(arg)\n } else if (/ms$/.test(arg)) {\n // arguments finishing with 'ms', grey out\n msg += ' %c%s'\n args.push(color(this._colors.brightBlack))\n args.push(arg)\n } else {\n // normal colors\n msg += ' %c%s'\n args.push(color(this._colors.white))\n args.push(arg)\n }\n } else if (typeof arg === 'number') {\n msg += ' %c%d'\n args.push(color(this._colors.magenta))\n args.push(arg)\n } else {\n objs.push(arg)\n }\n }\n\n args[0] = msg\n objs.forEach(function (obj) {\n args.push(obj)\n })\n\n // In IE/Edge console functions don't inherit from Function.prototype\n // so this is necessary to get all the args applied.\n Function.prototype.apply.apply(console.log, [console, args])\n }\n}\n\nfunction color(color) {\n return 'color: ' + color + ';'\n}\n\nfunction getTimeStamp() {\n var date = new Date()\n var hours = pad(date.getHours().toString())\n var minutes = pad(date.getMinutes().toString())\n var seconds = pad(date.getSeconds().toString())\n return hours + ':' + minutes + ':' + seconds\n}\n\nfunction pad(str) {\n return str.length !== 2 ? 0 + str : str\n}\n\n\n\n// WEBPACK FOOTER //\n// ./vendor/logger.ts","/**\n *\n * With thanks to https://github.com/livereload/livereload-js\n * :) :) :)\n *\n */\nimport {getLocation, pathFromUrl, pathsMatch, pickBestMatch, splitUrl, updateSearch, array} from \"../lib/utils\";\nimport {empty} from \"rxjs/observable/empty\";\nimport {Observable} from \"rxjs/Observable\";\nimport {merge} from \"rxjs/observable/merge\";\nimport {timer} from \"rxjs/observable/timer\";\nimport {from} from \"rxjs/observable/from\";\nimport {filter} from \"rxjs/operators/filter\";\nimport {map} from \"rxjs/operators/map\";\nimport {mergeMap} from \"rxjs/operators/mergeMap\";\nimport {take} from \"rxjs/operators/take\";\nimport {tap} from \"rxjs/operators/tap\";\nimport {mapTo} from \"rxjs/operators/mapTo\";\nimport {propSet} from \"../lib/dom-effects/prop-set.dom-effect\";\nimport {styleSet} from \"../lib/dom-effects/style-set.dom-effect\";\nimport {linkReplace} from \"../lib/dom-effects/link-replace.dom-effect\";\n\nvar hiddenElem;\n\ndeclare global {\n interface HTMLLinkElement {\n __LiveReload_pendingRemoval: boolean\n }\n}\n\nconst IMAGE_STYLES = [\n { selector: 'background', styleNames: ['backgroundImage'] },\n { selector: 'border', styleNames: ['borderImage', 'webkitBorderImage', 'MozBorderImage'] }\n];\n\nconst attrs = {\n link: \"href\",\n img: \"src\",\n script: \"src\"\n};\n\nexport interface ReloadOptions {\n stylesheetReloadTimeout?: number;\n serverURL?: string;\n overrideURL?: string;\n liveCSS?: boolean;\n liveImg?: boolean;\n tagNames: {[index: string]: string}\n}\n\nexport function reload(document: Document, navigator: Navigator) {\n return function(data, options: ReloadOptions): Observable<any> {\n const {path} = data;\n\n if (options.liveCSS) {\n if (path.match(/\\.css$/i)) {\n return reloadStylesheet(path, document, navigator);\n }\n }\n\n if (options.liveImg) {\n if (path.match(/\\.(jpe?g|png|gif)$/i)) {\n return reloadImages(path, document);\n }\n }\n\n /**\n * LEGACY\n */\n const domData = getElems(data.ext, options, document);\n const elems = getMatches(domData.elems, data.basename, domData.attr);\n\n for (var i = 0, n = elems.length; i < n; i += 1) {\n swapFile(elems[i], domData, options, document, navigator);\n }\n\n return empty();\n }\n\n function getMatches(elems, url, attr) {\n\n if (url[0] === \"*\") {\n return elems;\n }\n\n var matches = [];\n var urlMatcher = new RegExp(\"(^|/)\" + url);\n\n for (var i = 0, len = elems.length; i < len; i += 1) {\n if (urlMatcher.test(elems[i][attr])) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n }\n\n function getElems(fileExtension, options: ReloadOptions, document: Document) {\n const tagName = options.tagNames[fileExtension];\n const attr = attrs[tagName];\n return {\n attr,\n tagName,\n elems: document.getElementsByTagName(tagName)\n };\n }\n\n\n function reloadImages(path, document): Observable<any> {\n\n const expando = generateUniqueString(Date.now());\n\n return merge(\n from([].slice.call(document.images))\n .pipe(\n filter((img: HTMLImageElement) => pathsMatch(path, pathFromUrl(img.src)))\n , map((img: HTMLImageElement) => {\n const payload = {\n target: img,\n prop: 'src',\n value: generateCacheBustUrl(img.src, expando),\n pathname: getLocation(img.src).pathname\n };\n return propSet(payload);\n })\n ),\n from(IMAGE_STYLES)\n .pipe(\n mergeMap(({ selector, styleNames }) => {\n return from(document.querySelectorAll(`[style*=${selector}]`)).pipe(\n mergeMap((img: HTMLImageElement) => {\n return reloadStyleImages(img.style, styleNames, path, expando);\n })\n )\n\n })\n )\n );\n\n // if (document.styleSheets) {\n // return [].slice.call(document.styleSheets)\n // .map((styleSheet) => {\n // return reloadStylesheetImages(styleSheet, path, expando);\n // });\n // }\n }\n\n\n function reloadStylesheetImages(styleSheet, path, expando) {\n let rules;\n try {\n rules = styleSheet != null ? styleSheet.cssRules : undefined;\n } catch (e) {}\n //\n if (!rules) { return; }\n\n [].slice.call(rules).forEach(rule => {\n switch (rule.type) {\n case CSSRule.IMPORT_RULE:\n reloadStylesheetImages(rule.styleSheet, path, expando);\n break;\n case CSSRule.STYLE_RULE:\n [].slice.call(IMAGE_STYLES).forEach(({ styleNames }) => {\n reloadStyleImages((rule as any).style, styleNames, path, expando);\n })\n break;\n case CSSRule.MEDIA_RULE:\n reloadStylesheetImages(rule, path, expando);\n break;\n }\n })\n }\n\n function reloadStyleImages(style, styleNames: string[], path, expando): Observable<any> {\n return from(styleNames).pipe(\n filter(styleName => typeof style[styleName] === 'string')\n , map((styleName: string) => {\n let pathName;\n const value = style[styleName];\n const newValue = value.replace(new RegExp(`\\\\burl\\\\s*\\\\(([^)]*)\\\\)`), (match, src) => {\n let _src = src;\n if (src[0] === '\"' && src[src.length-1] === '\"') {\n _src = src.slice(1, -1);\n }\n pathName = getLocation(_src).pathname;\n if (pathsMatch(path, pathFromUrl(_src))) {\n return `url(${generateCacheBustUrl(_src, expando)})`;\n } else {\n return match;\n }\n });\n\n return [\n style,\n styleName,\n value,\n newValue,\n pathName\n ];\n })\n , filter(([style, styleName, value, newValue]) => newValue !== value)\n , map(([style, styleName, value, newValue, pathName]) => styleSet({style, styleName, value, newValue, pathName}))\n )\n }\n\n function swapFile(elem, domData, options, document, navigator) {\n\n const attr = domData.attr;\n const currentValue = elem[attr];\n const timeStamp = new Date().getTime();\n const key = \"browsersync-legacy\";\n const suffix = key + \"=\" + timeStamp;\n const anchor = getLocation(currentValue);\n const search = updateSearch(anchor.search, key, suffix);\n\n switch (domData.tagName) {\n case 'link': {\n // this.logger.trace(`replacing LINK ${attr}`);\n reloadStylesheet(currentValue, document, navigator);\n break;\n }\n case 'img': {\n reloadImages(currentValue, document);\n break;\n }\n default: {\n if (options.timestamps === false) {\n elem[attr] = anchor.href;\n } else {\n elem[attr] = anchor.href.split(\"?\")[0] + search;\n }\n\n // this.logger.info(`reloading ${elem[attr]}`);\n\n setTimeout(function () {\n if (!hiddenElem) {\n hiddenElem = document.createElement(\"DIV\");\n document.body.appendChild(hiddenElem);\n } else {\n hiddenElem.style.display = \"none\";\n hiddenElem.style.display = \"block\";\n }\n }, 200);\n }\n }\n\n return {\n elem: elem,\n timeStamp: timeStamp\n };\n }\n\n function reattachStylesheetLink(link, document: Document, navigator: Navigator): Observable<any> {\n // ignore LINKs that will be removed by LR soon\n let clone;\n\n if (link.__LiveReload_pendingRemoval) {\n return empty();\n }\n link.__LiveReload_pendingRemoval = true;\n\n if (link.tagName === 'STYLE') {\n // prefixfree\n clone = document.createElement('link');\n clone.rel = 'stylesheet';\n clone.media = link.media;\n clone.disabled = link.disabled;\n } else {\n clone = link.cloneNode(false);\n }\n\n const prevHref = link.href;\n const nextHref = generateCacheBustUrl(linkHref(link));\n clone.href = nextHref;\n\n const {pathname} = getLocation(nextHref);\n const basename = pathname.split('/').slice(-1)[0];\n\n // insert the new LINK before the old one\n const parent = link.parentNode;\n if (parent.lastChild === link) {\n parent.appendChild(clone);\n } else {\n parent.insertBefore(clone, link.nextSibling);\n }\n\n let additionalWaitingTime;\n if (/AppleWebKit/.test(navigator.userAgent)) {\n additionalWaitingTime = 5;\n } else {\n additionalWaitingTime = 200;\n }\n\n return Observable.create(obs => clone.onload = () => obs.next(true))\n .pipe(\n take(1)\n , mergeMap(() => {\n return timer(additionalWaitingTime)\n .pipe(\n tap(() => {\n if (link && !link.parentNode) {\n return;\n }\n link.parentNode.removeChild(link);\n clone.onreadystatechange = null;\n })\n , mapTo(linkReplace({target: clone, nextHref, prevHref, pathname, basename}))\n )\n })\n )\n }\n\n function reattachImportedRule({ rule, index, link }, document: Document): Observable<any> {\n const parent = rule.parentStyleSheet;\n const href = generateCacheBustUrl(rule.href);\n const media = rule.media.length ? [].join.call(rule.media, ', ') : '';\n const newRule = `@import url(\"${href}\") ${media};`;\n\n // used to detect if reattachImportedRule has been called again on the same rule\n rule.__LiveReload_newHref = href;\n\n // WORKAROUND FOR WEBKIT BUG: WebKit resets all styles if we add @import'ed\n // stylesheet that hasn't been cached yet. Workaround is to pre-cache the\n // stylesheet by temporarily adding it as a LINK tag.\n const tempLink = document.createElement(\"link\");\n tempLink.rel = 'stylesheet';\n tempLink.href = href;\n tempLink.__LiveReload_pendingRemoval = true; // exclude from path matching\n\n if (link.parentNode) {\n link.parentNode.insertBefore(tempLink, link);\n }\n\n return timer(200)\n .pipe(\n tap(() => {\n if (tempLink.parentNode) { tempLink.parentNode.removeChild(tempLink); }\n\n // if another reattachImportedRule call is in progress, abandon this one\n if (rule.__LiveReload_newHref !== href) { return; }\n\n parent.insertRule(newRule, index);\n parent.deleteRule(index+1);\n\n // save the new rule, so that we can detect another reattachImportedRule call\n rule = parent.cssRules[index];\n rule.__LiveReload_newHref = href;\n })\n , mergeMap(() => {\n return timer(200).pipe(\n tap(() => {\n // if another reattachImportedRule call is in progress, abandon this one\n if (rule.__LiveReload_newHref !== href) { return; }\n parent.insertRule(newRule, index);\n return parent.deleteRule(index+1);\n })\n )\n })\n );\n }\n\n function generateCacheBustUrl(url, expando = generateUniqueString(Date.now())) {\n let hash, oldParams;\n\n ({ url, hash, params: oldParams } = splitUrl(url));\n\n // if (this.options.overrideURL) {\n // if (url.indexOf(this.options.serverURL) < 0) {\n // const originalUrl = url;\n // url = this.options.serverURL + this.options.overrideURL + \"?url=\" + encodeURIComponent(url);\n // this.logger.debug(`overriding source URL ${originalUrl} with ${url}`);\n // }\n // }\n\n let params = oldParams.replace(/(\\?|&)browsersync=(\\d+)/, (match, sep) => `${sep}${expando}`);\n if (params === oldParams) {\n if (oldParams.length === 0) {\n params = `?${expando}`;\n } else {\n params = `${oldParams}&${expando}`;\n }\n }\n\n return url + params + hash;\n }\n\n\n function reloadStylesheet(path: string, document: Document, navigator): Observable<any> {\n // has to be a real array, because DOMNodeList will be modified\n const links = array(document.getElementsByTagName('link'))\n .filter(link => {\n return link.rel.match(/^stylesheet$/i)\n && !link.__LiveReload_pendingRemoval;\n });\n\n /**\n * Find imported style sheets in <style> tags\n * @type {any[]}\n */\n const styleImported = array(document.getElementsByTagName('style'))\n .filter(style => Boolean(style.sheet))\n .reduce((acc, style) => {\n return acc.concat(collectImportedStylesheets(style, style.sheet));\n }, []);\n\n /**\n * Find imported style sheets in <link> tags\n * @type {any[]}\n */\n const linksImported = links\n .reduce((acc, link) => {\n return acc.concat(collectImportedStylesheets(link, link.sheet));\n }, []);\n\n /**\n * Combine all links + sheets\n */\n const allRules = links.concat(styleImported, linksImported);\n\n /**\n * Which href best matches the incoming href?\n */\n const match = pickBestMatch(path, allRules, l => pathFromUrl(linkHref(l)));\n\n if (match) {\n if (match.object && match.object.rule) {\n return reattachImportedRule(match.object, document);\n }\n return reattachStylesheetLink(match.object, document, navigator);\n }\n\n return empty();\n }\n\n\n function collectImportedStylesheets(link, styleSheet) {\n // in WebKit, styleSheet.cssRules is null for inaccessible stylesheets;\n // Firefox/Opera may throw exceptions\n const output = [];\n collect(link, makeRules(styleSheet));\n return output;\n\n function makeRules(styleSheet) {\n let rules;\n try {\n rules = styleSheet != null ? styleSheet.cssRules : undefined;\n } catch (e) {}\n return rules;\n }\n function collect(link, rules) {\n if (rules && rules.length) {\n for (let index = 0; index < rules.length; index++) {\n const rule = rules[index];\n switch (rule.type) {\n case CSSRule.CHARSET_RULE:\n break;\n case CSSRule.IMPORT_RULE:\n output.push({ link, rule, index, href: rule.href });\n collect(link, makeRules(rule.styleSheet));\n break;\n default:\n break; // import rules can only be preceded by charset rules\n }\n }\n }\n }\n }\n\n function linkHref(link) {\n // prefixfree uses data-href when it turns LINK into STYLE\n return link.href || link.getAttribute('data-href');\n }\n\n function generateUniqueString(value) {\n return `browsersync=${value}`;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./vendor/Reloader.ts","\"use strict\";\nvar __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 isArray_1 = require('../util/isArray');\nvar isArrayLike_1 = require('../util/isArrayLike');\nvar isPromise_1 = require('../util/isPromise');\nvar PromiseObservable_1 = require('./PromiseObservable');\nvar IteratorObservable_1 = require('./IteratorObservable');\nvar ArrayObservable_1 = require('./ArrayObservable');\nvar ArrayLikeObservable_1 = require('./ArrayLikeObservable');\nvar iterator_1 = require('../symbol/iterator');\nvar Observable_1 = require('../Observable');\nvar observeOn_1 = require('../operators/observeOn');\nvar observable_1 = require('../symbol/observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromObservable = (function (_super) {\n __extends(FromObservable, _super);\n function FromObservable(ish, scheduler) {\n _super.call(this, null);\n this.ish = ish;\n this.scheduler = scheduler;\n }\n /**\n * Creates an Observable from an Array, an array-like object, a Promise, an\n * iterable object, or an Observable-like object.\n *\n * <span class=\"informal\">Converts almost anything to an Observable.</span>\n *\n * <img src=\"./img/from.png\" width=\"100%\">\n *\n * Convert various other objects and data types into Observables. `from`\n * converts a Promise or an array-like or an\n * [iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable)\n * object into an Observable that emits the items in that promise or array or\n * iterable. A String, in this context, is treated as an array of characters.\n * Observable-like objects (contains a function named with the ES2015 Symbol\n * for Observable) can also be converted through this operator.\n *\n * @example <caption>Converts an array to an Observable</caption>\n * var array = [10, 20, 30];\n * var result = Rx.Observable.from(array);\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // 10 20 30\n *\n * @example <caption>Convert an infinite iterable (from a generator) to an Observable</caption>\n * function* generateDoubles(seed) {\n * var i = seed;\n * while (true) {\n * yield i;\n * i = 2 * i; // double it\n * }\n * }\n *\n * var iterator = generateDoubles(3);\n * var result = Rx.Observable.from(iterator).take(10);\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // 3 6 12 24 48 96 192 384 768 1536\n *\n * @see {@link create}\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n * @see {@link fromPromise}\n *\n * @param {ObservableInput<T>} ish A subscribable object, a Promise, an\n * Observable-like, an Array, an iterable or an array-like object to be\n * converted.\n * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n * emissions of values.\n * @return {Observable<T>} The Observable whose values are originally from the\n * input object that was converted.\n * @static true\n * @name from\n * @owner Observable\n */\n FromObservable.create = function (ish, scheduler) {\n if (ish != null) {\n if (typeof ish[observable_1.observable] === 'function') {\n if (ish instanceof Observable_1.Observable && !scheduler) {\n return ish;\n }\n return new FromObservable(ish, scheduler);\n }\n else if (isArray_1.isArray(ish)) {\n return new ArrayObservable_1.ArrayObservable(ish, scheduler);\n }\n else if (isPromise_1.isPromise(ish)) {\n return new PromiseObservable_1.PromiseObservable(ish, scheduler);\n }\n else if (typeof ish[iterator_1.iterator] === 'function' || typeof ish === 'string') {\n return new IteratorObservable_1.IteratorObservable(ish, scheduler);\n }\n else if (isArrayLike_1.isArrayLike(ish)) {\n return new ArrayLikeObservable_1.ArrayLikeObservable(ish, scheduler);\n }\n }\n throw new TypeError((ish !== null && typeof ish || ish) + ' is not observable');\n };\n FromObservable.prototype._subscribe = function (subscriber) {\n var ish = this.ish;\n var scheduler = this.scheduler;\n if (scheduler == null) {\n return ish[observable_1.observable]().subscribe(subscriber);\n }\n else {\n return ish[observable_1.observable]().subscribe(new observeOn_1.ObserveOnSubscriber(subscriber, scheduler, 0));\n }\n };\n return FromObservable;\n}(Observable_1.Observable));\nexports.FromObservable = FromObservable;\n//# sourceMappingURL=FromObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/FromObservable.js\n// module id = 137\n// module chunks = 0","\"use strict\";\nvar __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 root_1 = require('../util/root');\nvar Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar PromiseObservable = (function (_super) {\n __extends(PromiseObservable, _super);\n function PromiseObservable(promise, scheduler) {\n _super.call(this);\n this.promise = promise;\n this.scheduler = scheduler;\n }\n /**\n * Converts a Promise to an Observable.\n *\n * <span class=\"informal\">Returns an Observable that just emits the Promise's\n * resolved value, then completes.</span>\n *\n * Converts an ES2015 Promise or a Promises/A+ spec compliant Promise to an\n * Observable. If the Promise resolves with a value, the output Observable\n * emits that resolved value as a `next`, and then completes. If the Promise\n * is rejected, then the output Observable emits the corresponding Error.\n *\n * @example <caption>Convert the Promise returned by Fetch to an Observable</caption>\n * var result = Rx.Observable.fromPromise(fetch('http://myserver.com/'));\n * result.subscribe(x => console.log(x), e => console.error(e));\n *\n * @see {@link bindCallback}\n * @see {@link from}\n *\n * @param {PromiseLike<T>} promise The promise to be converted.\n * @param {Scheduler} [scheduler] An optional IScheduler to use for scheduling\n * the delivery of the resolved value (or the rejection).\n * @return {Observable<T>} An Observable which wraps the Promise.\n * @static true\n * @name fromPromise\n * @owner Observable\n */\n PromiseObservable.create = function (promise, scheduler) {\n return new PromiseObservable(promise, scheduler);\n };\n PromiseObservable.prototype._subscribe = function (subscriber) {\n var _this = this;\n var promise = this.promise;\n var scheduler = this.scheduler;\n if (scheduler == null) {\n if (this._isScalar) {\n if (!subscriber.closed) {\n subscriber.next(this.value);\n subscriber.complete();\n }\n }\n else {\n promise.then(function (value) {\n _this.value = value;\n _this._isScalar = true;\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) {\n if (!subscriber.closed) {\n subscriber.error(err);\n }\n })\n .then(null, function (err) {\n // escape the promise trap, throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n }\n }\n else {\n if (this._isScalar) {\n if (!subscriber.closed) {\n return scheduler.schedule(dispatchNext, 0, { value: this.value, subscriber: subscriber });\n }\n }\n else {\n promise.then(function (value) {\n _this.value = value;\n _this._isScalar = true;\n if (!subscriber.closed) {\n subscriber.add(scheduler.schedule(dispatchNext, 0, { value: value, subscriber: subscriber }));\n }\n }, function (err) {\n if (!subscriber.closed) {\n subscriber.add(scheduler.schedule(dispatchError, 0, { err: err, subscriber: subscriber }));\n }\n })\n .then(null, function (err) {\n // escape the promise trap, throw unhandled errors\n root_1.root.setTimeout(function () { throw err; });\n });\n }\n }\n };\n return PromiseObservable;\n}(Observable_1.Observable));\nexports.PromiseObservable = PromiseObservable;\nfunction dispatchNext(arg) {\n var value = arg.value, subscriber = arg.subscriber;\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n}\nfunction dispatchError(arg) {\n var err = arg.err, subscriber = arg.subscriber;\n if (!subscriber.closed) {\n subscriber.error(err);\n }\n}\n//# sourceMappingURL=PromiseObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/PromiseObservable.js\n// module id = 138\n// module chunks = 0","\"use strict\";\nvar __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 root_1 = require('../util/root');\nvar Observable_1 = require('../Observable');\nvar iterator_1 = require('../symbol/iterator');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar IteratorObservable = (function (_super) {\n __extends(IteratorObservable, _super);\n function IteratorObservable(iterator, scheduler) {\n _super.call(this);\n this.scheduler = scheduler;\n if (iterator == null) {\n throw new Error('iterator cannot be null.');\n }\n this.iterator = getIterator(iterator);\n }\n IteratorObservable.create = function (iterator, scheduler) {\n return new IteratorObservable(iterator, scheduler);\n };\n IteratorObservable.dispatch = function (state) {\n var index = state.index, hasError = state.hasError, iterator = state.iterator, subscriber = state.subscriber;\n if (hasError) {\n subscriber.error(state.error);\n return;\n }\n var result = iterator.next();\n if (result.done) {\n subscriber.complete();\n return;\n }\n subscriber.next(result.value);\n state.index = index + 1;\n if (subscriber.closed) {\n if (typeof iterator.return === 'function') {\n iterator.return();\n }\n return;\n }\n this.schedule(state);\n };\n IteratorObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var _a = this, iterator = _a.iterator, scheduler = _a.scheduler;\n if (scheduler) {\n return scheduler.schedule(IteratorObservable.dispatch, 0, {\n index: index, iterator: iterator, subscriber: subscriber\n });\n }\n else {\n do {\n var result = iterator.next();\n if (result.done) {\n subscriber.complete();\n break;\n }\n else {\n subscriber.next(result.value);\n }\n if (subscriber.closed) {\n if (typeof iterator.return === 'function') {\n iterator.return();\n }\n break;\n }\n } while (true);\n }\n };\n return IteratorObservable;\n}(Observable_1.Observable));\nexports.IteratorObservable = IteratorObservable;\nvar StringIterator = (function () {\n function StringIterator(str, idx, len) {\n if (idx === void 0) { idx = 0; }\n if (len === void 0) { len = str.length; }\n this.str = str;\n this.idx = idx;\n this.len = len;\n }\n StringIterator.prototype[iterator_1.iterator] = function () { return (this); };\n StringIterator.prototype.next = function () {\n return this.idx < this.len ? {\n done: false,\n value: this.str.charAt(this.idx++)\n } : {\n done: true,\n value: undefined\n };\n };\n return StringIterator;\n}());\nvar ArrayIterator = (function () {\n function ArrayIterator(arr, idx, len) {\n if (idx === void 0) { idx = 0; }\n if (len === void 0) { len = toLength(arr); }\n this.arr = arr;\n this.idx = idx;\n this.len = len;\n }\n ArrayIterator.prototype[iterator_1.iterator] = function () { return this; };\n ArrayIterator.prototype.next = function () {\n return this.idx < this.len ? {\n done: false,\n value: this.arr[this.idx++]\n } : {\n done: true,\n value: undefined\n };\n };\n return ArrayIterator;\n}());\nfunction getIterator(obj) {\n var i = obj[iterator_1.iterator];\n if (!i && typeof obj === 'string') {\n return new StringIterator(obj);\n }\n if (!i && obj.length !== undefined) {\n return new ArrayIterator(obj);\n }\n if (!i) {\n throw new TypeError('object is not iterable');\n }\n return obj[iterator_1.iterator]();\n}\nvar maxSafeInteger = Math.pow(2, 53) - 1;\nfunction toLength(o) {\n var len = +o.length;\n if (isNaN(len)) {\n return 0;\n }\n if (len === 0 || !numberIsFinite(len)) {\n return len;\n }\n len = sign(len) * Math.floor(Math.abs(len));\n if (len <= 0) {\n return 0;\n }\n if (len > maxSafeInteger) {\n return maxSafeInteger;\n }\n return len;\n}\nfunction numberIsFinite(value) {\n return typeof value === 'number' && root_1.root.isFinite(value);\n}\nfunction sign(value) {\n var valueAsNumber = +value;\n if (valueAsNumber === 0) {\n return valueAsNumber;\n }\n if (isNaN(valueAsNumber)) {\n return valueAsNumber;\n }\n return valueAsNumber < 0 ? -1 : 1;\n}\n//# sourceMappingURL=IteratorObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/IteratorObservable.js\n// module id = 139\n// module chunks = 0","\"use strict\";\nvar __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 Observable_1 = require('../Observable');\nvar ScalarObservable_1 = require('./ScalarObservable');\nvar EmptyObservable_1 = require('./EmptyObservable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ArrayLikeObservable = (function (_super) {\n __extends(ArrayLikeObservable, _super);\n function ArrayLikeObservable(arrayLike, scheduler) {\n _super.call(this);\n this.arrayLike = arrayLike;\n this.scheduler = scheduler;\n if (!scheduler && arrayLike.length === 1) {\n this._isScalar = true;\n this.value = arrayLike[0];\n }\n }\n ArrayLikeObservable.create = function (arrayLike, scheduler) {\n var length = arrayLike.length;\n if (length === 0) {\n return new EmptyObservable_1.EmptyObservable();\n }\n else if (length === 1) {\n return new ScalarObservable_1.ScalarObservable(arrayLike[0], scheduler);\n }\n else {\n return new ArrayLikeObservable(arrayLike, scheduler);\n }\n };\n ArrayLikeObservable.dispatch = function (state) {\n var arrayLike = state.arrayLike, index = state.index, length = state.length, subscriber = state.subscriber;\n if (subscriber.closed) {\n return;\n }\n if (index >= length) {\n subscriber.complete();\n return;\n }\n subscriber.next(arrayLike[index]);\n state.index = index + 1;\n this.schedule(state);\n };\n ArrayLikeObservable.prototype._subscribe = function (subscriber) {\n var index = 0;\n var _a = this, arrayLike = _a.arrayLike, scheduler = _a.scheduler;\n var length = arrayLike.length;\n if (scheduler) {\n return scheduler.schedule(ArrayLikeObservable.dispatch, 0, {\n arrayLike: arrayLike, index: index, length: length, subscriber: subscriber\n });\n }\n else {\n for (var i = 0; i < length && !subscriber.closed; i++) {\n subscriber.next(arrayLike[i]);\n }\n subscriber.complete();\n }\n };\n return ArrayLikeObservable;\n}(Observable_1.Observable));\nexports.ArrayLikeObservable = ArrayLikeObservable;\n//# sourceMappingURL=ArrayLikeObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/ArrayLikeObservable.js\n// module id = 140\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\nvar Notification_1 = require('../Notification');\n/**\n *\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * @example <caption>Ensure values in subscribe are called just before browser repaint.</caption>\n * const intervals = Rx.Observable.interval(10); // Intervals are scheduled\n * // with async scheduler by default...\n *\n * intervals\n * .observeOn(Rx.Scheduler.animationFrame) // ...but we will observe on animationFrame\n * .subscribe(val => { // scheduler to ensure smooth animation.\n * someDiv.style.height = val + 'px';\n * });\n *\n * @see {@link delay}\n *\n * @param {IScheduler} scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return {Observable<T>} Observable that emits the same notifications as the source Observable,\n * but with provided scheduler.\n *\n * @method observeOn\n * @owner Observable\n */\nfunction observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nexports.observeOn = observeOn;\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexports.ObserveOnOperator = ObserveOnOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ObserveOnSubscriber = (function (_super) {\n __extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n _super.call(this, destination);\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification_1.Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification_1.Notification.createError(err));\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification_1.Notification.createComplete());\n };\n return ObserveOnSubscriber;\n}(Subscriber_1.Subscriber));\nexports.ObserveOnSubscriber = ObserveOnSubscriber;\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexports.ObserveOnMessage = ObserveOnMessage;\n//# sourceMappingURL=observeOn.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/observeOn.js\n// module id = 141\n// module chunks = 0","\"use strict\";\nvar Observable_1 = require('./Observable');\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification<T>\n */\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n /**\n * Delivers to the given `observer` the value wrapped by this Notification.\n * @param {Observer} observer\n * @return\n */\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n /**\n * Given some {@link Observer} callbacks, deliver the value represented by the\n * current Notification to the correctly corresponding callback.\n * @param {function(value: T): void} next An Observer `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n /**\n * Takes an Observer or its individual callback functions, and calls `observe`\n * or `do` methods accordingly.\n * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n * the `next` callback.\n * @param {function(err: any): void} [error] An Observer `error` callback.\n * @param {function(): void} [complete] An Observer `complete` callback.\n * @return {any}\n */\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n /**\n * Returns a simple Observable that just delivers the notification represented\n * by this Notification instance.\n * @return {any}\n */\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return Observable_1.Observable.of(this.value);\n case 'E':\n return Observable_1.Observable.throw(this.error);\n case 'C':\n return Observable_1.Observable.empty();\n }\n throw new Error('unexpected notification kind value');\n };\n /**\n * A shortcut to create a Notification instance of the type `next` from a\n * given value.\n * @param {T} value The `next` value.\n * @return {Notification<T>} The \"next\" Notification representing the\n * argument.\n */\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n /**\n * A shortcut to create a Notification instance of the type `error` from a\n * given error.\n * @param {any} [err] The `error` error.\n * @return {Notification<T>} The \"error\" Notification representing the\n * argument.\n */\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n /**\n * A shortcut to create a Notification instance of the type `complete`.\n * @return {Notification<any>} The valueless \"complete\" Notification.\n */\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexports.Notification = Notification;\n//# sourceMappingURL=Notification.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/Notification.js\n// module id = 142\n// module chunks = 0","\"use strict\";\nvar mergeAll_1 = require('./mergeAll');\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * <img src=\"./img/concatAll.png\" width=\"100%\">\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * @example <caption>For each click event, tick every second from 0 to 3, with no concurrency</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map(ev => Rx.Observable.interval(1000).take(4));\n * var firstOrder = higherOrder.concatAll();\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n *\n * @see {@link combineAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switch}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable emitting values from all the inner\n * Observables concatenated.\n * @method concatAll\n * @owner Observable\n */\nfunction concatAll() {\n return mergeAll_1.mergeAll(1);\n}\nexports.concatAll = concatAll;\n//# sourceMappingURL=concatAll.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/concatAll.js\n// module id = 143\n// module chunks = 0","\"use strict\";\nfunction identity(x) {\n return x;\n}\nexports.identity = identity;\n//# sourceMappingURL=identity.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/identity.js\n// module id = 144\n// module chunks = 0","\"use strict\";\nvar ArrayObservable_1 = require('../observable/ArrayObservable');\nvar ScalarObservable_1 = require('../observable/ScalarObservable');\nvar EmptyObservable_1 = require('../observable/EmptyObservable');\nvar concat_1 = require('../observable/concat');\nvar isScheduler_1 = require('../util/isScheduler');\n/* tslint:enable:max-line-length */\n/**\n * Returns an Observable that emits the items you specify as arguments before it begins to emit\n * items emitted by the source Observable.\n *\n * <img src=\"./img/startWith.png\" width=\"100%\">\n *\n * @param {...T} values - Items you want the modified Observable to emit first.\n * @param {Scheduler} [scheduler] - A {@link IScheduler} to use for scheduling\n * the emissions of the `next` notifications.\n * @return {Observable} An Observable that emits the items in the specified Iterable and then emits the items\n * emitted by the source Observable.\n * @method startWith\n * @owner Observable\n */\nfunction startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i - 0] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler_1.isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1) {\n return concat_1.concat(new ScalarObservable_1.ScalarObservable(array[0], scheduler), source);\n }\n else if (len > 1) {\n return concat_1.concat(new ArrayObservable_1.ArrayObservable(array, scheduler), source);\n }\n else {\n return concat_1.concat(new EmptyObservable_1.EmptyObservable(scheduler), source);\n }\n };\n}\nexports.startWith = startWith;\n//# sourceMappingURL=startWith.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/startWith.js\n// module id = 145\n// module chunks = 0","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\nvar ArgumentOutOfRangeError_1 = require('../util/ArgumentOutOfRangeError');\nvar EmptyObservable_1 = require('../observable/EmptyObservable');\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Takes the first `count` values from the source, then\n * completes.</span>\n *\n * <img src=\"./img/take.png\" width=\"100%\">\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * @example <caption>Take the first 5 seconds of an infinite 1-second interval Observable</caption>\n * var interval = Rx.Observable.interval(1000);\n * var five = interval.take(5);\n * five.subscribe(x => console.log(x));\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of `next` values to emit.\n * @return {Observable<T>} An Observable that emits only the first `count`\n * values emitted by the source Observable, or all of the values from the source\n * if the source emits fewer than `count` values.\n * @method take\n * @owner Observable\n */\nfunction take(count) {\n return function (source) {\n if (count === 0) {\n return new EmptyObservable_1.EmptyObservable();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nexports.take = take;\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TakeSubscriber = (function (_super) {\n __extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n _super.call(this, destination);\n this.total = total;\n this.count = 0;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=take.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/take.js\n// module id = 146\n// module chunks = 0","\"use strict\";\nvar __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};\n/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nvar ArgumentOutOfRangeError = (function (_super) {\n __extends(ArgumentOutOfRangeError, _super);\n function ArgumentOutOfRangeError() {\n var err = _super.call(this, 'argument out of range');\n this.name = err.name = 'ArgumentOutOfRangeError';\n this.stack = err.stack;\n this.message = err.message;\n }\n return ArgumentOutOfRangeError;\n}(Error));\nexports.ArgumentOutOfRangeError = ArgumentOutOfRangeError;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/ArgumentOutOfRangeError.js\n// module id = 147\n// module chunks = 0","import { IncomingPayload } from \"../messages/ScrollEvent\";\nimport { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { Observable } from \"rxjs/Observable\";\nimport { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport { partition } from \"rxjs/operators/partition\";\nimport { merge } from \"rxjs/observable/merge\";\nimport { getDocumentScrollSpace } from \"../browser.utils\";\nimport { tap } from \"rxjs/operators/tap\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { map } from \"rxjs/operators/map\";\n\ntype Tuple = [IncomingPayload, Window, Document, boolean];\n\nexport function setScrollEffect(\n xs: Observable<IncomingPayload>,\n inputs: Inputs\n) {\n {\n /**\n * Group the incoming event with window, document & scrollProportionally argument\n */\n const tupleStream$: Observable<Tuple> = xs.pipe(\n withLatestFrom<IncomingPayload, Window, Document, boolean>(\n inputs.window$,\n inputs.document$,\n inputs.option$.pipe(pluck(\"scrollProportionally\"))\n )\n );\n\n /**\n * Split the stream between document scrolls and element scrolls\n */\n const [document$, element$] = partition(([event]: Tuple) => {\n return event.tagName === \"document\";\n })(tupleStream$);\n\n /**\n * Further split the element scroll between those matching in `scrollElementMapping`\n * and regular element scrolls\n */\n const [mapped$, nonMapped$] = partition(([event]: Tuple) => {\n return event.mappingIndex > -1;\n })(element$);\n\n return merge(\n /**\n * Main window scroll\n */\n document$.pipe(\n tap((incoming: Tuple) => {\n const [\n event,\n window,\n document,\n scrollProportionally\n ] = incoming;\n const scrollSpace = getDocumentScrollSpace(document);\n\n if (scrollProportionally) {\n return window.scrollTo(\n 0,\n scrollSpace.y * event.position.proportional\n ); // % of y axis of scroll to px\n }\n return window.scrollTo(0, event.position.raw.y);\n })\n ),\n /**\n * Regular, non-mapped Element scrolls\n */\n nonMapped$.pipe(\n tap((incoming: Tuple) => {\n const [\n event,\n window,\n document,\n scrollProportionally\n ] = incoming;\n\n const matchingElements = document.getElementsByTagName(\n event.tagName\n );\n if (matchingElements && matchingElements.length) {\n const match = matchingElements[event.index];\n if (match) {\n return scrollElement(\n match,\n scrollProportionally,\n event\n );\n }\n }\n })\n ),\n /**\n * Element scrolls given in 'scrollElementMapping'\n */\n mapped$.pipe(\n withLatestFrom(\n inputs.option$.pipe(pluck(\"scrollElementMapping\"))\n ),\n /**\n * Filter the elements in the option `scrollElementMapping` so\n * that it does not contain the element that triggered the event\n */\n map(([incoming, scrollElementMapping]: [Tuple, string[]]) => {\n const [event] = incoming;\n return [\n incoming,\n scrollElementMapping.filter(\n (item, index) => index !== event.mappingIndex\n )\n ];\n }),\n /**\n * Now perform the scroll on all other matching elements\n */\n tap(([incoming, scrollElementMapping]: [Tuple, string[]]) => {\n const [\n event,\n window,\n document,\n scrollProportionally\n ] = incoming;\n scrollElementMapping\n .map(selector => document.querySelector(selector))\n .forEach(element => {\n scrollElement(element, scrollProportionally, event);\n });\n })\n )\n ).pipe(ignoreElements());\n }\n}\n\nfunction scrollElement(element, scrollProportionally, event: IncomingPayload) {\n if (scrollProportionally) {\n return element.scrollTo(\n 0,\n element.scrollHeight * event.position.proportional\n ); // % of y axis of scroll to px\n }\n return element.scrollTo(0, event.position.raw.y);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/effects/set-scroll.ts","\"use strict\";\nvar not_1 = require('../util/not');\nvar filter_1 = require('./filter');\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * <span class=\"informal\">It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.</span>\n *\n * <img src=\"./img/partition.png\" width=\"100%\">\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * @example <caption>Partition click events into those on DIV elements and those elsewhere</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var parts = clicks.partition(ev => ev.target.tagName === 'DIV');\n * var clicksOnDivs = parts[0];\n * var clicksElsewhere = parts[1];\n * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));\n * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable<T>, Observable<T>]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n * @method partition\n * @owner Observable\n */\nfunction partition(predicate, thisArg) {\n return function (source) { return [\n filter_1.filter(predicate, thisArg)(source),\n filter_1.filter(not_1.not(predicate, thisArg))(source)\n ]; };\n}\nexports.partition = partition;\n//# sourceMappingURL=partition.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/partition.js\n// module id = 149\n// module chunks = 0","\"use strict\";\nfunction not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\nexports.not = not;\n//# sourceMappingURL=not.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/not.js\n// module id = 150\n// module chunks = 0","import { map } from \"rxjs/operators/map\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as Log from \"../log\";\n\nexport interface IncomingPayload {\n message: string;\n timeout: number;\n override?: boolean;\n}\n\nexport function incomingBrowserNotify(xs: Observable<IncomingPayload>) {\n return xs.pipe(map(event => Log.overlayInfo(event.message, event.timeout)));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/BrowserNotify.ts","import { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { map } from \"rxjs/operators/map\";\nimport { Observable } from \"rxjs/Observable\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { browserSetLocation } from \"../effects/browser-set-location.effect\";\n\nexport interface IncomingPayload {\n url?: string;\n path?: number;\n}\n\nexport function incomingBrowserLocation(\n xs: Observable<IncomingPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.option$.pipe(pluck(\"ghostMode\", \"location\"))),\n filter(([, canSyncLocation]) => canSyncLocation === true),\n map(([event]) => browserSetLocation(event))\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/BrowserLocation.ts","\"use strict\";\nvar SubscribeOnObservable_1 = require('../observable/SubscribeOnObservable');\n/**\n * Asynchronously subscribes Observers to this Observable on the specified IScheduler.\n *\n * <img src=\"./img/subscribeOn.png\" width=\"100%\">\n *\n * @param {Scheduler} scheduler - The IScheduler to perform subscription actions on.\n * @return {Observable<T>} The source Observable modified so that its subscriptions happen on the specified IScheduler.\n .\n * @method subscribeOn\n * @owner Observable\n */\nfunction subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nexports.subscribeOn = subscribeOn;\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable_1.SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/subscribeOn.js\n// module id = 153\n// module chunks = 0","\"use strict\";\nvar __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 Observable_1 = require('../Observable');\nvar asap_1 = require('../scheduler/asap');\nvar isNumeric_1 = require('../util/isNumeric');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar SubscribeOnObservable = (function (_super) {\n __extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = asap_1.asap; }\n _super.call(this);\n this.source = source;\n this.delayTime = delayTime;\n this.scheduler = scheduler;\n if (!isNumeric_1.isNumeric(delayTime) || delayTime < 0) {\n this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n this.scheduler = asap_1.asap;\n }\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = asap_1.asap; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable_1.Observable));\nexports.SubscribeOnObservable = SubscribeOnObservable;\n//# sourceMappingURL=SubscribeOnObservable.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/SubscribeOnObservable.js\n// module id = 154\n// module chunks = 0","\"use strict\";\nvar AsapAction_1 = require('./AsapAction');\nvar AsapScheduler_1 = require('./AsapScheduler');\n/**\n *\n * Asap Scheduler\n *\n * <span class=\"informal\">Perform task as fast as it can be performed asynchronously</span>\n *\n * `asap` scheduler behaves the same as {@link async} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * @example <caption>Compare async and asap scheduler</caption>\n *\n * Rx.Scheduler.async.schedule(() => console.log('async')); // scheduling 'async' first...\n * Rx.Scheduler.asap.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n *\n * @static true\n * @name asap\n * @owner Scheduler\n */\nexports.asap = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction);\n//# sourceMappingURL=asap.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/scheduler/asap.js\n// module id = 155\n// module chunks = 0","\"use strict\";\nvar __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 Immediate_1 = require('../util/Immediate');\nvar AsyncAction_1 = require('./AsyncAction');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AsapAction = (function (_super) {\n __extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n _super.call(this, scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If a microtask has already been scheduled, don't schedule another\n // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n // the current scheduled microtask id.\n return scheduler.scheduled || (scheduler.scheduled = Immediate_1.Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n // If the scheduler queue is empty, cancel the requested microtask and\n // set the scheduled flag to undefined so the next AsapAction will schedule\n // its own.\n if (scheduler.actions.length === 0) {\n Immediate_1.Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n };\n return AsapAction;\n}(AsyncAction_1.AsyncAction));\nexports.AsapAction = AsapAction;\n//# sourceMappingURL=AsapAction.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/scheduler/AsapAction.js\n// module id = 156\n// module chunks = 0","/**\nSome credit for this helper goes to http://github.com/YuzuJS/setImmediate\n*/\n\"use strict\";\nvar root_1 = require('./root');\nvar ImmediateDefinition = (function () {\n function ImmediateDefinition(root) {\n this.root = root;\n if (root.setImmediate && typeof root.setImmediate === 'function') {\n this.setImmediate = root.setImmediate.bind(root);\n this.clearImmediate = root.clearImmediate.bind(root);\n }\n else {\n this.nextHandle = 1;\n this.tasksByHandle = {};\n this.currentlyRunningATask = false;\n // Don't get fooled by e.g. browserify environments.\n if (this.canUseProcessNextTick()) {\n // For Node.js before 0.9\n this.setImmediate = this.createProcessNextTickSetImmediate();\n }\n else if (this.canUsePostMessage()) {\n // For non-IE10 modern browsers\n this.setImmediate = this.createPostMessageSetImmediate();\n }\n else if (this.canUseMessageChannel()) {\n // For web workers, where supported\n this.setImmediate = this.createMessageChannelSetImmediate();\n }\n else if (this.canUseReadyStateChange()) {\n // For IE 6–8\n this.setImmediate = this.createReadyStateChangeSetImmediate();\n }\n else {\n // For older browsers\n this.setImmediate = this.createSetTimeoutSetImmediate();\n }\n var ci = function clearImmediate(handle) {\n delete clearImmediate.instance.tasksByHandle[handle];\n };\n ci.instance = this;\n this.clearImmediate = ci;\n }\n }\n ImmediateDefinition.prototype.identify = function (o) {\n return this.root.Object.prototype.toString.call(o);\n };\n ImmediateDefinition.prototype.canUseProcessNextTick = function () {\n return this.identify(this.root.process) === '[object process]';\n };\n ImmediateDefinition.prototype.canUseMessageChannel = function () {\n return Boolean(this.root.MessageChannel);\n };\n ImmediateDefinition.prototype.canUseReadyStateChange = function () {\n var document = this.root.document;\n return Boolean(document && 'onreadystatechange' in document.createElement('script'));\n };\n ImmediateDefinition.prototype.canUsePostMessage = function () {\n var root = this.root;\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `root.postMessage` means something completely different and can't be used for this purpose.\n if (root.postMessage && !root.importScripts) {\n var postMessageIsAsynchronous_1 = true;\n var oldOnMessage = root.onmessage;\n root.onmessage = function () {\n postMessageIsAsynchronous_1 = false;\n };\n root.postMessage('', '*');\n root.onmessage = oldOnMessage;\n return postMessageIsAsynchronous_1;\n }\n return false;\n };\n // This function accepts the same arguments as setImmediate, but\n // returns a function that requires no arguments.\n ImmediateDefinition.prototype.partiallyApplied = function (handler) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var fn = function result() {\n var _a = result, handler = _a.handler, args = _a.args;\n if (typeof handler === 'function') {\n handler.apply(undefined, args);\n }\n else {\n (new Function('' + handler))();\n }\n };\n fn.handler = handler;\n fn.args = args;\n return fn;\n };\n ImmediateDefinition.prototype.addFromSetImmediateArguments = function (args) {\n this.tasksByHandle[this.nextHandle] = this.partiallyApplied.apply(undefined, args);\n return this.nextHandle++;\n };\n ImmediateDefinition.prototype.createProcessNextTickSetImmediate = function () {\n var fn = function setImmediate() {\n var instance = setImmediate.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n instance.root.process.nextTick(instance.partiallyApplied(instance.runIfPresent, handle));\n return handle;\n };\n fn.instance = this;\n return fn;\n };\n ImmediateDefinition.prototype.createPostMessageSetImmediate = function () {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var root = this.root;\n var messagePrefix = 'setImmediate$' + root.Math.random() + '$';\n var onGlobalMessage = function globalMessageHandler(event) {\n var instance = globalMessageHandler.instance;\n if (event.source === root &&\n typeof event.data === 'string' &&\n event.data.indexOf(messagePrefix) === 0) {\n instance.runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n onGlobalMessage.instance = this;\n root.addEventListener('message', onGlobalMessage, false);\n var fn = function setImmediate() {\n var _a = setImmediate, messagePrefix = _a.messagePrefix, instance = _a.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n instance.root.postMessage(messagePrefix + handle, '*');\n return handle;\n };\n fn.instance = this;\n fn.messagePrefix = messagePrefix;\n return fn;\n };\n ImmediateDefinition.prototype.runIfPresent = function (handle) {\n // From the spec: 'Wait until any invocations of this algorithm started before this one have completed.'\n // So if we're currently running a task, we'll need to delay this invocation.\n if (this.currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // 'too much recursion' error.\n this.root.setTimeout(this.partiallyApplied(this.runIfPresent, handle), 0);\n }\n else {\n var task = this.tasksByHandle[handle];\n if (task) {\n this.currentlyRunningATask = true;\n try {\n task();\n }\n finally {\n this.clearImmediate(handle);\n this.currentlyRunningATask = false;\n }\n }\n }\n };\n ImmediateDefinition.prototype.createMessageChannelSetImmediate = function () {\n var _this = this;\n var channel = new this.root.MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n _this.runIfPresent(handle);\n };\n var fn = function setImmediate() {\n var _a = setImmediate, channel = _a.channel, instance = _a.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n channel.port2.postMessage(handle);\n return handle;\n };\n fn.channel = channel;\n fn.instance = this;\n return fn;\n };\n ImmediateDefinition.prototype.createReadyStateChangeSetImmediate = function () {\n var fn = function setImmediate() {\n var instance = setImmediate.instance;\n var root = instance.root;\n var doc = root.document;\n var html = doc.documentElement;\n var handle = instance.addFromSetImmediateArguments(arguments);\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement('script');\n script.onreadystatechange = function () {\n instance.runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n return handle;\n };\n fn.instance = this;\n return fn;\n };\n ImmediateDefinition.prototype.createSetTimeoutSetImmediate = function () {\n var fn = function setImmediate() {\n var instance = setImmediate.instance;\n var handle = instance.addFromSetImmediateArguments(arguments);\n instance.root.setTimeout(instance.partiallyApplied(instance.runIfPresent, handle), 0);\n return handle;\n };\n fn.instance = this;\n return fn;\n };\n return ImmediateDefinition;\n}());\nexports.ImmediateDefinition = ImmediateDefinition;\nexports.Immediate = new ImmediateDefinition(root_1.root);\n//# sourceMappingURL=Immediate.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/Immediate.js\n// module id = 157\n// module chunks = 0","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/setimmediate/setImmediate.js\n// module id = 158\n// module chunks = 0","\"use strict\";\nvar __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 AsyncScheduler_1 = require('./AsyncScheduler');\nvar AsapScheduler = (function (_super) {\n __extends(AsapScheduler, _super);\n function AsapScheduler() {\n _super.apply(this, arguments);\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.AsapScheduler = AsapScheduler;\n//# sourceMappingURL=AsapScheduler.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/scheduler/AsapScheduler.js\n// module id = 159\n// module chunks = 0","import { Inputs } from \"../index\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { empty } from \"rxjs/observable/empty\";\nimport { isBlacklisted } from \"../utils\";\nimport { FileReloadEventPayload } from \"../../types/socket\";\nimport { of } from \"rxjs/observable/of\";\nimport { Observable } from \"rxjs/Observable\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { mergeMap } from \"rxjs/operators/mergeMap\";\nimport { fileReload } from \"../effects/file-reload.effect\";\nimport { reloadBrowserSafe } from \"./BrowserReload\";\n\nexport function incomingFileReload(\n xs: Observable<FileReloadEventPayload>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.option$),\n filter(([event, options]) => options.codeSync),\n mergeMap(([event, options]) => {\n if (event.url || !options.injectChanges) {\n return reloadBrowserSafe();\n }\n if (event.basename && event.ext && isBlacklisted(event)) {\n return empty();\n }\n return of(fileReload(event));\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/FileReload.ts","import { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { of } from \"rxjs/observable/of\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as Log from \"../log\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { mergeMap } from \"rxjs/operators/mergeMap\";\nimport { setOptions } from \"../effects/set-options.effect\";\nimport { reloadBrowserSafe } from \"./BrowserReload\";\n\nexport function incomingConnection(\n xs: Observable<IBrowserSyncOptions>,\n inputs: Inputs\n) {\n return xs.pipe(\n withLatestFrom(inputs.option$.pipe(pluck(\"logPrefix\"))),\n mergeMap(([x, logPrefix], index) => {\n if (index === 0) {\n return of<any>(\n setOptions(x),\n Log.overlayInfo(`${logPrefix}: connected`)\n );\n }\n return reloadBrowserSafe();\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/Connection.ts","import { ignoreElements } from \"rxjs/operators/ignoreElements\";\nimport { Observable } from \"rxjs/Observable\";\nimport { tap } from \"rxjs/operators/tap\";\n\nexport function incomingDisconnect(xs: Observable<any>) {\n return xs.pipe(tap(x => console.log(x)), ignoreElements());\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/Disconnect.ts","import { map } from \"rxjs/operators/map\";\nimport { Observable } from \"rxjs/Observable\";\nimport { setOptions } from \"../effects/set-options.effect\";\nimport { tap } from \"rxjs/operators/tap\";\n\nexport interface Payload {\n options: IBrowserSyncOptions;\n path: string[];\n value: any;\n}\n\ntype IncomingPayload = Payload;\n\nexport function incomingOptionsSet(xs: Observable<IncomingPayload>) {\n return xs.pipe(map(event => setOptions(event.options)));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/messages/OptionsSet.ts","import { getBrowserScrollPosition } from \"./browser.utils\";\nimport { EffectNames } from \"./effects\";\nimport { Observable } from \"rxjs/Observable\";\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\nimport { Inputs } from \"./index\";\nimport { empty } from \"rxjs/observable/empty\";\nimport { of } from \"rxjs/observable/of\";\nimport * as Log from \"./log\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { take } from \"rxjs/operators/take\";\nimport { mergeMap } from \"rxjs/operators/mergeMap\";\nimport { map } from \"rxjs/operators/map\";\nimport { setWindowName } from \"./dom-effects/set-window-name.dom-effect\";\nimport { setScroll } from \"./dom-effects/set-scroll.dom-effect\";\n\nexport const PREFIX = \"<<BS_START>>\";\nexport const SUFFIX = \"<<BS_START>>\";\nexport const regex = new RegExp(PREFIX + \"(.+?)\" + SUFFIX);\n\nexport function initWindowName(window: Window) {\n const saved = (() => {\n /**\n * On page load, check window.name for an existing\n * BS json blob & parse it.\n */\n try {\n const json = window.name.match(regex);\n if (json) {\n return JSON.parse(json[1]);\n }\n } catch (e) {\n return {};\n }\n })();\n\n /**\n * Remove any existing BS json from window.name\n * to ensure we don't interfere with any other\n * libs who may be using it.\n */\n window.name = window.name.replace(regex, \"\");\n\n /**\n * If the JSON was parsed correctly, try to\n * find a scroll property and restore it.\n */\n if (saved && saved.bs && saved.bs.hardReload && saved.bs.scroll) {\n const { x, y } = saved.bs.scroll;\n return of<any>(\n setScroll(x, y),\n Log.consoleDebug(`[ScrollRestore] x = ${x} y = ${y}`)\n );\n }\n return empty();\n}\n\nexport const scrollRestoreHandlers$ = new BehaviorSubject({\n // [EffectNames.SetOptions]: (xs, inputs: Inputs) => {\n // return xs.pipe(\n // withLatestFrom(inputs.window$),\n // take(1),\n // mergeMap(([options, window]) => {\n // if (options.scrollRestoreTechnique === \"window.name\") {\n // return initWindowName(window);\n // }\n // return empty();\n // })\n // );\n // },\n /**\n * Save the current scroll position\n * before the browser is reloaded (via window.location.reload(true))\n * @param xs\n * @param {Inputs} inputs\n */\n [EffectNames.PreBrowserReload]: (xs: Observable<any>, inputs: Inputs) => {\n return xs.pipe(\n withLatestFrom(inputs.window$, inputs.document$),\n map(([, window, document]) => {\n return [\n window.name,\n PREFIX,\n JSON.stringify({\n bs: {\n hardReload: true,\n scroll: getBrowserScrollPosition(window, document)\n }\n }),\n SUFFIX\n ].join(\"\");\n }),\n map(value => setWindowName(value))\n );\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/scroll-restore.ts","import { merge } from \"rxjs/observable/merge\";\nimport { getFormInputStream } from \"./listeners/form-inputs.listener\";\nimport { getClickStream } from \"./listeners/clicks.listener\";\nimport { getScrollStream } from \"./listeners/scroll.listener\";\nimport { getFormTogglesStream } from \"./listeners/form-toggles.listener\";\nimport { OutgoingSocketEvent } from \"./socket-messages\";\nimport { Observable } from \"rxjs/Observable\";\nimport { Inputs } from \"./index\";\n\nexport function initListeners(\n window: Window,\n document: Document,\n socket$: Inputs[\"socket$\"],\n option$: Inputs[\"option$\"]\n): Observable<OutgoingSocketEvent> {\n const merged$ = merge(\n getScrollStream(window, document, socket$, option$),\n getClickStream(document, socket$, option$),\n getFormInputStream(document, socket$, option$),\n getFormTogglesStream(document, socket$, option$)\n );\n\n return merged$;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/listeners.ts","import { IncomingSocketNames, OutgoingSocketEvent } from \"../socket-messages\";\nimport { getElementData } from \"../browser.utils\";\nimport { Observable } from \"rxjs/Observable\";\nimport { createTimedBooleanSwitch } from \"../utils\";\nimport * as KeyupEvent from \"../messages/KeyupEvent\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { map } from \"rxjs/operators/map\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { skip } from \"rxjs/operators/skip\";\nimport { distinctUntilChanged } from \"rxjs/operators/distinctUntilChanged\";\nimport { switchMap } from \"rxjs/operators/switchMap\";\nimport { empty } from \"rxjs/observable/empty\";\nimport { fromEvent } from \"rxjs/observable/fromEvent\";\nimport { Inputs } from \"../index\";\n\nexport function getFormInputStream(\n document: Document,\n socket$: Inputs[\"socket$\"],\n option$: Inputs[\"option$\"]\n): Observable<OutgoingSocketEvent> {\n const canSync$ = createTimedBooleanSwitch(\n socket$.pipe(filter(([name]) => name === IncomingSocketNames.Keyup))\n );\n return option$.pipe(\n skip(1), // initial option set before the connection event\n pluck(\"ghostMode\", \"forms\", \"inputs\"),\n distinctUntilChanged(),\n switchMap(formInputs => {\n if (!formInputs) {\n return empty();\n }\n return fromEvent(document.body, \"keyup\", true).pipe(\n map((e: Event) => e.target || e.srcElement),\n filter(\n (target: Element) =>\n target.tagName === \"INPUT\" ||\n target.tagName === \"TEXTAREA\"\n ),\n withLatestFrom(canSync$),\n filter(([, canSync]) => canSync),\n map(([eventTarget]) => {\n const target = getElementData(eventTarget);\n const value = eventTarget.value;\n\n return KeyupEvent.outgoing(target, value);\n })\n );\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/listeners/form-inputs.listener.ts","\"use strict\";\nvar __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 Observable_1 = require('../Observable');\nvar tryCatch_1 = require('../util/tryCatch');\nvar isFunction_1 = require('../util/isFunction');\nvar errorObject_1 = require('../util/errorObject');\nvar Subscription_1 = require('../Subscription');\nvar toString = Object.prototype.toString;\nfunction isNodeStyleEventEmitter(sourceObj) {\n return !!sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return !!sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isNodeList(sourceObj) {\n return !!sourceObj && toString.call(sourceObj) === '[object NodeList]';\n}\nfunction isHTMLCollection(sourceObj) {\n return !!sourceObj && toString.call(sourceObj) === '[object HTMLCollection]';\n}\nfunction isEventTarget(sourceObj) {\n return !!sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromEventObservable = (function (_super) {\n __extends(FromEventObservable, _super);\n function FromEventObservable(sourceObj, eventName, selector, options) {\n _super.call(this);\n this.sourceObj = sourceObj;\n this.eventName = eventName;\n this.selector = selector;\n this.options = options;\n }\n /* tslint:enable:max-line-length */\n /**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * <span class=\"informal\">Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.</span>\n *\n * <img src=\"./img/fromEvent.png\" width=\"100%\">\n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * @example <caption>Emits clicks happening on the DOM document</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n *\n *\n * @example <caption>Use addEventListener with capture option</caption>\n * var clicksInDocument = Rx.Observable.fromEvent(document, 'click', true); // note optional configuration parameter\n * // which will be passed to addEventListener\n * var clicksInDiv = Rx.Observable.fromEvent(someDivInDocument, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {EventTargetLike} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @param {SelectorMethodSignature<T>} [selector] An optional function to\n * post-process results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable<T>}\n * @static true\n * @name fromEvent\n * @owner Observable\n */\n FromEventObservable.create = function (target, eventName, options, selector) {\n if (isFunction_1.isFunction(options)) {\n selector = options;\n options = undefined;\n }\n return new FromEventObservable(target, eventName, selector, options);\n };\n FromEventObservable.setupSubscription = function (sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isNodeList(sourceObj) || isHTMLCollection(sourceObj)) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n FromEventObservable.setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () {\n return source_1.removeEventListener(eventName, handler);\n };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(new Subscription_1.Subscription(unsubscribe));\n };\n FromEventObservable.prototype._subscribe = function (subscriber) {\n var sourceObj = this.sourceObj;\n var eventName = this.eventName;\n var options = this.options;\n var selector = this.selector;\n var handler = selector ? function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i - 0] = arguments[_i];\n }\n var result = tryCatch_1.tryCatch(selector).apply(void 0, args);\n if (result === errorObject_1.errorObject) {\n subscriber.error(errorObject_1.errorObject.e);\n }\n else {\n subscriber.next(result);\n }\n } : function (e) { return subscriber.next(e); };\n FromEventObservable.setupSubscription(sourceObj, eventName, handler, subscriber, options);\n };\n return FromEventObservable;\n}(Observable_1.Observable));\nexports.FromEventObservable = FromEventObservable;\n//# sourceMappingURL=FromEventObservable.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/observable/FromEventObservable.js\n// module id = 167\n// module chunks = 0","import { createTimedBooleanSwitch } from \"../utils\";\nimport { IncomingSocketNames, OutgoingSocketEvent } from \"../socket-messages\";\nimport { getElementData } from \"../browser.utils\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as ClickEvent from \"../messages/ClickEvent\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { map } from \"rxjs/operators/map\";\nimport { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { skip } from \"rxjs/operators/skip\";\nimport { distinctUntilChanged } from \"rxjs/operators/distinctUntilChanged\";\nimport { switchMap } from \"rxjs/operators/switchMap\";\nimport { fromEvent } from \"rxjs/observable/fromEvent\";\nimport { empty } from \"rxjs/observable/empty\";\n\nexport function getClickStream(\n document: Document,\n socket$: Inputs[\"socket$\"],\n option$: Inputs[\"option$\"]\n): Observable<OutgoingSocketEvent> {\n const canSync$ = createTimedBooleanSwitch(\n socket$.pipe(filter(([name]) => name === IncomingSocketNames.Click))\n );\n\n return option$.pipe(\n skip(1), // initial option set before the connection event\n pluck(\"ghostMode\", \"clicks\"),\n distinctUntilChanged(),\n switchMap(canClick => {\n if (!canClick) {\n return empty();\n }\n return fromEvent(document, \"click\", true).pipe(\n map((e: Event) => e.target),\n filter((target: any) => {\n if (target.tagName === \"LABEL\") {\n const id = target.getAttribute(\"for\");\n if (id && document.getElementById(id)) {\n return false;\n }\n }\n return true;\n }),\n withLatestFrom(canSync$),\n filter(([, canSync]) => canSync),\n map(([target]): OutgoingSocketEvent => {\n return ClickEvent.outgoing(getElementData(target));\n })\n );\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/listeners/clicks.listener.ts","import { createTimedBooleanSwitch } from \"../utils\";\nimport { IncomingSocketNames, OutgoingSocketEvent } from \"../socket-messages\";\nimport {\n getScrollPosition,\n getScrollPositionForElement\n} from \"../browser.utils\";\nimport { Observable } from \"rxjs/Observable\";\nimport * as ScrollEvent from \"../messages/ScrollEvent\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { map } from \"rxjs/operators/map\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { Inputs } from \"../index\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { distinctUntilChanged } from \"rxjs/operators/distinctUntilChanged\";\nimport { switchMap } from \"rxjs/operators/switchMap\";\nimport { empty } from \"rxjs/observable/empty\";\nimport { skip } from \"rxjs/operators/skip\";\nimport { fromEvent } from \"rxjs/observable/fromEvent\";\n\nexport function getScrollStream(\n window: Window,\n document: Document,\n socket$: Inputs[\"socket$\"],\n option$: Inputs[\"option$\"]\n): Observable<OutgoingSocketEvent> {\n const canSync$ = createTimedBooleanSwitch(\n socket$.pipe(filter(([name]) => name === IncomingSocketNames.Scroll))\n );\n\n /**\n * If the option 'scrollElementMapping' is provided\n * we cache thw\n * @type {Observable<(Element | null)[]>}\n */\n const elemMap$ = option$.pipe(\n pluck(\"scrollElementMapping\"),\n map((selectors: string[]) =>\n selectors.map(selector => document.querySelector(selector))\n )\n );\n\n return option$.pipe(\n skip(1), // initial option set before the connection event\n pluck(\"ghostMode\", \"scroll\"),\n distinctUntilChanged(),\n switchMap(scroll => {\n if (!scroll) return empty();\n return fromEvent(document, \"scroll\", true).pipe(\n map((e: Event) => e.target),\n withLatestFrom(canSync$, elemMap$),\n filter(([, canSync]) => Boolean(canSync)),\n map(([target, canSync, elemMap]: [any, boolean, any[]]) => {\n if (target === document) {\n return ScrollEvent.outgoing(\n getScrollPosition(window, document),\n \"document\",\n 0\n );\n }\n\n const elems = document.getElementsByTagName(target.tagName);\n const index = Array.prototype.indexOf.call(\n elems || [],\n target\n );\n\n return ScrollEvent.outgoing(\n getScrollPositionForElement(target),\n target.tagName,\n index,\n elemMap.indexOf(target)\n );\n })\n );\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/listeners/scroll.listener.ts","import { IncomingSocketNames, OutgoingSocketEvent } from \"../socket-messages\";\nimport { getElementData } from \"../browser.utils\";\nimport { Observable } from \"rxjs/Observable\";\nimport { createTimedBooleanSwitch } from \"../utils\";\nimport * as FormToggleEvent from \"../messages/FormToggleEvent\";\nimport { filter } from \"rxjs/operators/filter\";\nimport { skip } from \"rxjs/operators/skip\";\nimport { pluck } from \"rxjs/operators/pluck\";\nimport { distinctUntilChanged } from \"rxjs/operators/distinctUntilChanged\";\nimport { withLatestFrom } from \"rxjs/operators/withLatestFrom\";\nimport { map } from \"rxjs/operators/map\";\nimport { switchMap } from \"rxjs/operators/switchMap\";\nimport { Inputs } from \"../index\";\nimport { empty } from \"rxjs/observable/empty\";\nimport { fromEvent } from \"rxjs/observable/fromEvent\";\n\nexport function getFormTogglesStream(\n document: Document,\n socket$: Inputs[\"socket$\"],\n option$: Inputs[\"option$\"]\n): Observable<OutgoingSocketEvent> {\n const canSync$ = createTimedBooleanSwitch(\n socket$.pipe(\n filter(([name]) => name === IncomingSocketNames.InputToggle)\n )\n );\n\n return option$.pipe(\n skip(1),\n pluck(\"ghostMode\", \"forms\", \"toggles\"),\n distinctUntilChanged(),\n switchMap(canToggle => {\n if (!canToggle) {\n return empty();\n }\n return fromEvent(document, \"change\", true).pipe(\n map((e: Event) => e.target || e.srcElement),\n filter((elem: HTMLInputElement) => elem.tagName === \"SELECT\"),\n withLatestFrom(canSync$),\n filter(([, canSync]) => canSync),\n map(([elem, canSync]: [HTMLInputElement, boolean]) => {\n const data = getElementData(elem);\n\n return FormToggleEvent.outgoing(data, {\n type: elem.type,\n checked: elem.checked,\n value: elem.value\n });\n })\n );\n })\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/listeners/form-toggles.listener.ts","\"use strict\";\nvar __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 Subscriber_1 = require('../Subscriber');\nvar Subscription_1 = require('../Subscription');\nvar Observable_1 = require('../Observable');\nvar Subject_1 = require('../Subject');\nvar Map_1 = require('../util/Map');\nvar FastMap_1 = require('../util/FastMap');\n/* tslint:enable:max-line-length */\n/**\n * Groups the items emitted by an Observable according to a specified criterion,\n * and emits these grouped items as `GroupedObservables`, one\n * {@link GroupedObservable} per group.\n *\n * <img src=\"./img/groupBy.png\" width=\"100%\">\n *\n * @example <caption>Group objects by id and return as array</caption>\n * Observable.of<Obj>({id: 1, name: 'aze1'},\n * {id: 2, name: 'sf2'},\n * {id: 2, name: 'dg2'},\n * {id: 1, name: 'erg1'},\n * {id: 1, name: 'df1'},\n * {id: 2, name: 'sfqfb2'},\n * {id: 3, name: 'qfs3'},\n * {id: 2, name: 'qsgqsfg2'}\n * )\n * .groupBy(p => p.id)\n * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], []))\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // [ { id: 1, name: 'aze1' },\n * // { id: 1, name: 'erg1' },\n * // { id: 1, name: 'df1' } ]\n * //\n * // [ { id: 2, name: 'sf2' },\n * // { id: 2, name: 'dg2' },\n * // { id: 2, name: 'sfqfb2' },\n * // { id: 2, name: 'qsgqsfg2' } ]\n * //\n * // [ { id: 3, name: 'qfs3' } ]\n *\n * @example <caption>Pivot data on the id field</caption>\n * Observable.of<Obj>({id: 1, name: 'aze1'},\n * {id: 2, name: 'sf2'},\n * {id: 2, name: 'dg2'},\n * {id: 1, name: 'erg1'},\n * {id: 1, name: 'df1'},\n * {id: 2, name: 'sfqfb2'},\n * {id: 3, name: 'qfs1'},\n * {id: 2, name: 'qsgqsfg2'}\n * )\n * .groupBy(p => p.id, p => p.name)\n * .flatMap( (group$) => group$.reduce((acc, cur) => [...acc, cur], [\"\" + group$.key]))\n * .map(arr => ({'id': parseInt(arr[0]), 'values': arr.slice(1)}))\n * .subscribe(p => console.log(p));\n *\n * // displays:\n * // { id: 1, values: [ 'aze1', 'erg1', 'df1' ] }\n * // { id: 2, values: [ 'sf2', 'dg2', 'sfqfb2', 'qsgqsfg2' ] }\n * // { id: 3, values: [ 'qfs1' ] }\n *\n * @param {function(value: T): K} keySelector A function that extracts the key\n * for each item.\n * @param {function(value: T): R} [elementSelector] A function that extracts the\n * return element for each item.\n * @param {function(grouped: GroupedObservable<K,R>): Observable<any>} [durationSelector]\n * A function that returns an Observable to determine how long each group should\n * exist.\n * @return {Observable<GroupedObservable<K,R>>} An Observable that emits\n * GroupedObservables, each of which corresponds to a unique key value and each\n * of which emits those items from the source Observable that share that key\n * value.\n * @method groupBy\n * @owner Observable\n */\nfunction groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nexports.groupBy = groupBy;\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar GroupBySubscriber = (function (_super) {\n __extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n _super.call(this, destination);\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n this.groups = null;\n this.attemptedToUnsubscribe = false;\n this.count = 0;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = typeof key === 'string' ? new FastMap_1.FastMap() : new Map_1.Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = this.subjectSelector ? this.subjectSelector() : new Subject_1.Subject();\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber_1.Subscriber));\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar GroupDurationSubscriber = (function (_super) {\n __extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n _super.call(this, group);\n this.key = key;\n this.group = group;\n this.parent = parent;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber_1.Subscriber));\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable<K, T>\n */\nvar GroupedObservable = (function (_super) {\n __extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n _super.call(this);\n this.key = key;\n this.groupSubject = groupSubject;\n this.refCountSubscription = refCountSubscription;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription_1.Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable_1.Observable));\nexports.GroupedObservable = GroupedObservable;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerRefCountSubscription = (function (_super) {\n __extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n _super.call(this);\n this.parent = parent;\n parent.count++;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription_1.Subscription));\n//# sourceMappingURL=groupBy.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/operators/groupBy.js\n// module id = 171\n// module chunks = 0","\"use strict\";\nvar root_1 = require('./root');\nvar MapPolyfill_1 = require('./MapPolyfill');\nexports.Map = root_1.root.Map || (function () { return MapPolyfill_1.MapPolyfill; })();\n//# sourceMappingURL=Map.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/Map.js\n// module id = 172\n// module chunks = 0","\"use strict\";\nvar MapPolyfill = (function () {\n function MapPolyfill() {\n this.size = 0;\n this._values = [];\n this._keys = [];\n }\n MapPolyfill.prototype.get = function (key) {\n var i = this._keys.indexOf(key);\n return i === -1 ? undefined : this._values[i];\n };\n MapPolyfill.prototype.set = function (key, value) {\n var i = this._keys.indexOf(key);\n if (i === -1) {\n this._keys.push(key);\n this._values.push(value);\n this.size++;\n }\n else {\n this._values[i] = value;\n }\n return this;\n };\n MapPolyfill.prototype.delete = function (key) {\n var i = this._keys.indexOf(key);\n if (i === -1) {\n return false;\n }\n this._values.splice(i, 1);\n this._keys.splice(i, 1);\n this.size--;\n return true;\n };\n MapPolyfill.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this.size = 0;\n };\n MapPolyfill.prototype.forEach = function (cb, thisArg) {\n for (var i = 0; i < this.size; i++) {\n cb.call(thisArg, this._values[i], this._keys[i]);\n }\n };\n return MapPolyfill;\n}());\nexports.MapPolyfill = MapPolyfill;\n//# sourceMappingURL=MapPolyfill.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/MapPolyfill.js\n// module id = 173\n// module chunks = 0","\"use strict\";\nvar FastMap = (function () {\n function FastMap() {\n this.values = {};\n }\n FastMap.prototype.delete = function (key) {\n this.values[key] = null;\n return true;\n };\n FastMap.prototype.set = function (key, value) {\n this.values[key] = value;\n return this;\n };\n FastMap.prototype.get = function (key) {\n return this.values[key];\n };\n FastMap.prototype.forEach = function (cb, thisArg) {\n var values = this.values;\n for (var key in values) {\n if (values.hasOwnProperty(key) && values[key] !== null) {\n cb.call(thisArg, values[key], key);\n }\n }\n };\n FastMap.prototype.clear = function () {\n this.values = {};\n };\n return FastMap;\n}());\nexports.FastMap = FastMap;\n//# sourceMappingURL=FastMap.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/rxjs/util/FastMap.js\n// module id = 174\n// module chunks = 0"],"sourceRoot":""}