rx
Version:
Library for composing asynchronous and event-based operations in JavaScript
1 lines • 219 kB
Source Map (JSON)
{"version":3,"file":"rx.all.compat.min.js","sources":["rx.all.compat.js"],"names":["undefined","checkGlobal","value","Object","cloneArray","arr","len","length","a","Array","i","tryCatcherGen","tryCatchTarget","apply","this","arguments","e","errorObj","thrower","makeStackTraceLong","error","observable","hasStacks","stack","indexOf","STACK_JUMP_SEPARATOR","stacks","o","source","unshift","concatedStacks","join","filterStackString","stackString","lines","split","desiredLines","line","isInternalFrame","isNodeFrame","push","stackLine","fileNameAndLineNumber","getFileNameAndLineNumber","fileName","lineNumber","rFileName","rStartingLine","rEndingLine","captureLine","Error","firstLine","attempt1","exec","Number","attempt2","attempt3","equalObjects","object","other","equalFunc","isLoose","stackA","stackB","objProps","keys","objLength","othProps","othLength","key","index","hasOwnProperty","call","skipCtor","result","objValue","othValue","objCtor","constructor","othCtor","equalByTag","tag","boolTag","dateTag","errorTag","name","message","numberTag","regexpTag","stringTag","isObjectLike","isLength","MAX_SAFE_INTEGER","isTypedArray","typedArrayTags","objToString","arraySome","array","predicate","equalArrays","arrLength","arrValue","baseIsEqualDeep","objIsArr","isArray","othIsArr","objTag","arrayTag","othTag","argsTag","objectTag","objIsObj","isHostObject","othIsObj","isSameTag","objIsWrapped","othIsWrapped","pop","baseIsEqual","isObject","arrayInitialize","count","factory","IndexedItem","id","ScheduledDisposable","scheduler","disposable","isDisposed","scheduleItem","s","self","dispose","IsDisposedDisposable","state","_s","StringIterable","StringIterator","_l","_i","ArrayIterable","_a","ArrayIterator","toLength","numberIsFinite","root","isFinite","getIterable","it","$iterator$","TypeError","sign","number","isNaN","Math","floor","abs","maxSafeInteger","observableOf","isScheduler","currentThreadScheduler","FromArrayObservable","RepeatSink","observer","parent","amb","p","c","falseFactory","argumentsToArray","args","emptyArrayFactory","asObservable","subscribe","toArray","x","notEmpty","arrayIndexOfComparer","item","comparer","HashSet","set","plucker","currentProp","firstOnly","EmptyError","findValue","thisArg","yieldIndex","callback","bindCallback","AnonymousObservable","FindValueObserver","toObservable","obj","Observable","isObservable","isPromise","fromPromise","isGeneratorFunction","isGenerator","spawn","isFunction","thunkToObservable","isArrayLike","isIterable","arrayToObservable","objectToObservable","from","concatMap","Rx","just","defer","results","observables","map","next","forkJoin","fn","err","res","onError","onNext","onCompleted","ctor","displayName","prototype","val","createCbObservable","ctx","selector","AsyncSubject","createCbHandler","tryCatch","createNodeObservable","createNodeHandler","isNodeList","el","StaticNodeList","NodeList","toString","ListenDisposable","n","_e","_n","_fn","addEventListener","createEventListener","eventName","handler","disposables","CompositeDisposable","elemToString","add","combineLatestSource","subject","resultSelector","values","hasValue","hasValueAll","every","identity","isDone","BinaryDisposable","observableWindowWithOpenings","windowOpenings","windowClosingSelector","groupJoin","observableEmpty","_","win","observableWindowWithBoundaries","windowBoundaries","Subject","d","r","RefCountDisposable","addRef","observableFromPromise","w","observableWindowWithClosingSelector","createWindowClose","windowClose","m1","SingleAssignmentDisposable","m","setDisposable","take","noop","SerialDisposable","enumerableWhile","condition","WhileEnumerable","Pattern","patterns","Plan","expression","handleOnError","handleOnNext","planCreateObserver","externalSubscriptions","entry","get","JoinObserver","ActivePlan","joinObserverArray","joinObservers","Map","joinObserver","_observableTimer","dueTime","TimerObservable","observableTimerDateAndPeriod","period","normalizeTime","scheduleRecursiveFuture","now","Date","getTime","observableTimerTimeSpanAndPeriod","schedulePeriodic","observableDefer","observableDelayRelative","subscription","active","cancelable","exception","q","running","materialize","timestamp","notification","shouldRun","kind","recurseDueTime","shouldRecurse","shift","accept","max","observableDelayAbsolute","delayWithSelector","subscriptionDelay","delayDurationSelector","subDelay","start","delay","delays","remove","done","atEnd","debounceWithSelector","durationSelector","throttle","currentid","sampleObservable","sampler","sampleSubscribe","sourceSubscription","newValue","timeoutWithSelector","firstTimeout","timeoutDurationSelector","observableNever","observableThrow","TimeoutError","setTimer","timeout","timerWins","switched","myId","timer","oWins","original","defaultScheduler","createTimer","scheduleFuture","transformForObserver","@@transducer/init","@@transducer/step","obs","input","@@transducer/result","OnNextPredicate","OnErrorPredicate","MockPromise","messages","subscriptions","observers","innerNotification","scheduleAbsolute","time","slice","j","jLen","disposableEmpty","objectTypes","function","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","freeSelf","freeWindow","window","moduleExports","thisGlobal","Function","internals","config","Promise","helpers","defaultNow","defaultComparer","y","isEqual","defaultSubComparer","defaultError","defaultKeySerializer","then","isFn","longStackSupport","forEach","T","k","O","kValue","boxedString","splitString","fun","stringClass","thisp","funcClass","filter","t","arg","arrayClass","searchElement","Infinity","propertyIsEnumerable","hasDontEnumBug","prop","dontEnumsLength","dontEnums","create","Temp","hasOwn","Properties","Element","attachEvent","addMethod","Window","HTMLDocument","ready","interval","document","body","clearInterval","dispatchEvent","CustomEvent","type","listener","target","listeners","_c1_listeners","typeListeners","event","documentElement","scrollLeft","scrollTop","currentTarget","pageX","clientX","pageY","clientY","preventDefault","bubbledKeyCode","keyCode","ctrlKey","defaultPrevented","returnValue","modified","stopImmediatePropagation","immediatePropagation","cancelBubble","stopPropagation","relatedTarget","fromElement","srcElement","timeStamp","charCode","keyChar","String","fromCharCode","copiedEvent","typeListenerCache","typeListenersCache","concat","typeListener","ii","splice","detachEvent","fireEvent","setInterval","params","bubbles","detail","createEvent","initCustomEvent","createEventObject","initEvent","ObjectDisposedError","ArgumentOutOfRangeError","NotSupportedError","NotImplementedError","notImplemented","notSupported","Symbol","iterator","Set","doneEnumerator","func","argCount","collection","funcTag","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","objectProto","pow","inherits","child","__","addProperties","sources","idx","ln","xs","getDisposable","compareTo","PriorityQueue","capacity","items","priorityProto","isHigherPriority","left","right","percolate","temp","heapify","first","peek","removeAt","dequeue","enqueue","CompositeDisposablePrototype","shouldDispose","currentDisposables","Disposable","action","disposableCreate","empty","isDisposable","checkDisposed","disposableFixup","_fixup","current","old","second","_first","_second","old1","old2","NAryDisposable","_disposables","InnerDisposable","isInnerDisposed","underlyingDisposable","isPrimaryDisposed","schedule","ScheduledItem","invoke","invokeCore","isCancelled","Scheduler","schedulerProto","dt","normalize","_scheduleFuture","timeSpan","invokeRecImmediate","pair","innerAction","state2","scheduleWork","state3","isAdded","group","invokeRecDate","dueTime1","scheduleRecursive","catchError","CatchScheduler","scheduleMethod","clearMethod","SchedulePeriodicRecursive","createTick","command","recurse","_period","_action","_state","_cancel","_scheduler","ImmediateScheduler","__super__","immediateScheduler","immediate","CurrentThreadScheduler","runTrampoline","queue","si","scheduleRequired","currentThread","localTimer","localSetTimeout","localClearTimeout","setTimeout","clearTimeout","WScript","Sleep","runTask","handle","currentlyRunning","task","tasksByHandle","postMessageSupported","postMessage","importScripts","isAsync","oldHandler","onmessage","nextHandle","reNative","RegExp","replace","setImmediate","test","process","nextTick","MSG_PREFIX","random","onGlobalPostMessage","data","substring","currentId","MessageChannel","channel","port1","port2","createElement","scriptElement","onreadystatechange","parentNode","removeChild","appendChild","DefaultScheduler","scheduleAction","ClearDisposable","_id","LocalClearDisposable","async","_handler","_recursiveOriginal","_recursiveWrapper","_wrap","_clone","_getRecursiveWrapper","wrapper","failed","state1","Notification","_accept","_acceptObserver","observerOrOnNext","OnNextNotification","OnErrorNotification","OnCompletedNotification","notificationCreateOnNext","createOnNext","notificationCreateOnError","createOnError","notificationCreateOnCompleted","createOnCompleted","Observer","toNotifier","asObserver","AnonymousObserver","checked","CheckedObserver","observerCreate","fromNotifier","cb","notifyOn","ObserveOnObserver","makeSafe","AnonymousSafeObserver","_onNext","_onError","_onCompleted","observableProto","AbstractObserver","isStopped","completed","fail","_observer","CheckedObserverPrototype","checkAccess","ScheduledObserver","isAcquired","hasFaulted","enqueueNext","enqueueError","enqueueCompleted","work","ensureActive","isOwner","cancel","makeSubscribe","oldOnError","oldSubscribe","_subscribe","oOrOnNext","subscribeOnNext","subscribeOnError","subscribeOnCompleted","ObservableBase","fixSubscriber","subscriber","ado","sub","subscribeCore","AutoDetachObserver","FlatMapObservable","InnerObserver","_wrapResult","i2","Enumerable","ConcatEnumerableObservable","currentItem","currentValue","_recurse","CatchErrorObservable","lastError","catchErrorWhen","notificationHandler","exceptions","notifier","handled","notificationDisposable","outer","inner","exn","ex","RepeatEnumerable","v","RepeatEnumerator","l","enumerableRepeat","repeat","repeatCount","OfEnumerable","OfEnumerator","enumerableOf","of","ObserveOnObservable","observeOn","SubscribeOnObservable","subscribeOn","FromPromiseObservable","_p","scheduleNext","scheduleError","sad","promise","toPromise","promiseCtor","resolve","reject","ToArrayObservable","Defer","_f","observableFactory","EmptyObservable","EmptySink","sink","run","EMPTY_OBSERVABLE","FromObservable","iterable","_iterable","createScheduleMethod","list","charAt","observableFrom","mapFn","mapper","_args","observableFromArray","fromArray","GenerateObservable","cndFn","itrFn","resFn","_cndFn","_itrFn","_resFn","_o","hasResult","generate","initialState","iterate","ofWithScheduler","NeverObservable","NEVER_OBSERVABLE","never","PairsObservable","_keys","pairs","RangeObservable","rangeCount","loopRecursive","range","RepeatObservable","JustObservable","_value","ThrowObservable","_error","UsingObservable","obsFn","_obsFn","resource","using","resourceFactory","rightSource","leftSource","choiceL","choice","leftChoice","rightSubscription","choiceR","rightChoice","leftSubscription","leftSubscribe","rightSubscribe","acc","CatchObservable","d1","CatchObserver","handlerOrSecond","observableCatch","combineLatest","CombineLatestObservable","_params","_cb","CombineLatestObserver","notTheSame","observableConcat","ConcatObserver","ConcatObservable","_sources","concatAll","merge","MergeObservable","maxConcurrent","g","MergeObserver","activeCount","handleSubscribe","innerSource","maxConcurrentOrOther","observableMerge","mergeAll","MergeAllObservable","MergeAllObserver","CompositeError","errors","innerErrors","MergeDelayErrorObservable","MergeDelayErrorObserver","_group","setCompletion","_inner","mergeDelayError","onErrorResumeNext","OnErrorResumeNextObservable","pos","OnErrorResumeNextObserver","cancellable","SkipUntilObservable","_open","SkipUntilSourceObserver","SkipUntilOtherObserver","_r","skipUntil","SwitchObservable","SwitchObserver","stopped","latest","hasLatest","switchLatest","TakeUntilObservable","TakeUntilObserver","takeUntil","WithLatestFromObservable","_ss","WithLatestFromOtherObserver","outerSad","WithLatestFromSourceObserver","allValues","withLatestFrom","ZipObservable","ZipObserver","_q","_d","shiftEach","queuedValues","zip","ZipIterableObservable","ZipIterableObserver","zipIterable","bufferWithCount","skip","windowWithCount","flatMap","DematerializeObservable","DematerializeObserver","dematerialize","DistinctUntilChangedObservable","keyFn","DistinctUntilChangedObserver","hasCurrentKey","currentKey","comparerEquals","distinctUntilChanged","TapObservable","_oN","_oE","_oC","tap","doAction","doOnNext","tapOnNext","doOnError","tapOnError","doOnCompleted","tapOnCompleted","FinallyObservable","FinallyDisposable","IgnoreElementsObservable","ignoreElements","MaterializeObservable","MaterializeObserver","retry","retryCount","retryWhen","ScanObservable","accumulator","hasSeed","seed","ScanObserver","_hs","_ha","_hv","scan","SkipLastObservable","_c","SkipLastObserver","skipLast","startWith","TakeLastObserver","takeLast","TakeLastBufferObserver","takeLastBuffer","createWindow","refCountDisposable","flatMapConcat","concatMapObserver","selectConcatObserver","onNextFunc","onErrorFunc","onCompletedFunc","DefaultIfEmptyObserver","defaultIfEmpty","defaultValue","retValue","DistinctObservable","cmpFn","_keyFn","_cmpFn","DistinctObserver","_h","distinct","keySelector","groupBy","elementSelector","groupByUntil","groupDisposable","handleError","fireNewMapEntry","writer","GroupedObservable","durationGroup","duration","md","element","MapObservable","innerMap","internalMap","select","selectorFn","pluck","selectMany","flatMapObserver","selectManyObserver","flatMapLatest","SkipObservable","_count","SkipObserver","SkipWhileObservable","SkipWhileObserver","skipWhile","TakeObservable","TakeObserver","TakeWhileObservable","TakeWhileObserver","takeWhile","FilterObservable","innerPredicate","internalFilter","shouldYield","where","ExtremaByObservable","_k","ExtremaByObserver","_v","comparison","ReduceObservable","ReduceObserver","reduce","SomeObservable","SomeObserver","Boolean","some","IsEmptyObservable","IsEmptyObserver","isEmpty","EveryObservable","EveryObserver","IncludesObservable","elem","_elem","IncludesObserver","b","includes","fromIndex","CountObservable","CountObserver","IndexOfObservable","IndexOfObserver","SumObservable","SumObserver","sum","minBy","min","maxBy","AverageObservable","AverageObserver","_t","average","sequenceEqual","donel","doner","ql","qr","subscription1","equal","subscription2","ElementAtObservable","ElementAtObserver","elementAt","SingleObserver","_obj","single","FirstObservable","FirstObserver","LastObservable","LastObserver","last","_y","find","findIndex","ToSetObservable","ToSetObserver","toSet","ToMapObservable","ToMapObserver","_m","toMap","SliceObservable","_b","SliceObserver","begin","end","LastIndexOfObservable","LastIndexOfObserver","lastIndexOf","wrap","createObservable","__generatorFunction__","gen","processGenerator","ret","context","observableToAsync","toAsync","fromCallback","fromNodeCallback","removeEventListener","useNativeEvents","EventObservable","_el","createHandler","fromEvent","addListener","fromEventPattern","h","removeListener","on","off","publish","refCount","EventPatternObservable","del","_add","_del","EventPatternDisposable","_ret","addHandler","removeHandler","startAsync","functionAsync","PausableObservable","pauser","controller","conn","connection","pausable","connect","pause","resume","PausableBufferedObservable","drainQueue","previousShouldFire","shouldFire","pausableBuffered","ControlledObservable","enableQueue","ControlledSubject","multicast","request","numberOfItems","requestedCount","requestedDisposable","hasFailed","hasCompleted","disposeCurrentRequest","_processRequest","remaining","controlled","StopAndWaitObservable","StopAndWaitObserver","__sub__","scheduleDisposable","innerScheduleMethod","stopAndWait","WindowedObservable","windowSize","WindowedObserver","received","windowed","pipe","dest","onDrain","write","emit","_isStdio","MulticastObservable","fn1","fn2","_fn1","_fn2","connectable","subjectOrSubjectSelector","ConnectableObservable","share","publishLast","publishValue","initialValueOrSelector","initialValue","BehaviorSubject","shareValue","replay","bufferSize","ReplaySubject","shareReplay","InnerSubscription","RefCountObservable","_connectableSubscription","_connection","_source","_subject","ConnectDisposable","singleInstance","getObservable","hasObservable","leftDurationSelector","rightDurationSelector","leftDone","rightDone","leftId","rightId","leftMap","rightMap","size","buffer","windowOpeningsOrClosingSelector","PairwiseObservable","PairwiseObserver","_hp","pairwise","partition","letBind","thenSource","elseSourceOrScheduler","forIn","observableWhileDo","whileDo","doWhile","defaultSourceOrScheduler","ExpandObservable","ExpandObserver","_ensureActive","_m1","expand","ForkJoinObservable","finished","hasResults","ForkJoinObserver","subs","_subs","manySelect","extend","chain","curr","ChainObservable","head","tail","_values","and","thenDo","activate","deactivate","errHandler","activePlan","jlen","removeActivePlan","addActivePlan","match","hasValues","firstValues","isCompleted","activePlans","JoinObserverPrototype","when","plans","outObserver","_dt","observableinterval","periodOrScheduler","firstArg","DebounceObservable","DebounceObserver","debounce","windowWithTime","timeShiftOrScheduler","timeShift","isSpan","isShift","timerD","nextSpan","nextShift","newTotalTime","ts","totalTime","windowWithTimeOrCount","windowId","newId","newWindow","bufferWithTime","bufferWithTimeOrCount","TimeIntervalObservable","TimeIntervalObserver","span","timeInterval","TimestampObservable","TimestampObserver","sample","throttleLatest","intervalOrSampler","GenerateAbsoluteObservable","timeFn","_timeFn","_hasResult","generateWithAbsoluteTime","timeSelector","GenerateRelativeObservable","generateWithRelativeTime","DelaySubscription","delaySubscription","SkipLastWithTimeObservable","SkipLastWithTimeObserver","skipLastWithTime","TakeLastWithTimeObservable","TakeLastWithTimeObserver","takeLastWithTime","takeLastBufferWithTime","TakeWithTimeObservable","takeWithTime","SkipWithTimeObservable","SkipWithTimeObserver","skipWithTime","SkipUntilWithTimeObservable","startTime","_st","SkipUntilWithTimeObserver","skipUntilWithTime","takeUntilWithTime","endTime","windowDuration","RangeError","lastOnNext","SwitchFirstObservable","hasCurrent","SwitchFirstObserver","switchFirst","flatMapFirst","selectManyFirst","flatMapWithMaxConcurrent","limit","TransduceObserver","xform","_xform","transduce","transducer","VirtualTimeScheduler","initialClock","clock","isEnabled","VirtualTimeSchedulerPrototype","toAbsoluteTime","toRelativeTime","scheduleRelative","runAt","getNext","stop","advanceTo","dueToClock","advanceBy","sleep","HistoricalScheduler","cmp","HistoricalSchedulerProto","absolute","relative","equals","ReactiveTest","created","subscribed","disposed","ticks","Recorded","Subscription","unsubscribe","MAX_VALUE","MockDisposable","disposes","MockObserver","MockObserverPrototype","onResolved","onRejected","newPromise","HotObservable","ColdObservable","TestScheduler","baseComparer","startScheduler","createFn","settings","createObserver","createHotObservable","createColdObservable","createResolvedPromise","createRejectedPromise","reason","__subscribe","AutoDetachObserverPrototype","UnderlyingObservable","u","_u","underlyingObservable","mergedDisposable","hasError","hasObservers","os","AnonymousSubject","getValue","createRemovableDisposable","so","_trim","Pauser","define","amd"],"mappings":"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