UNPKG

rx

Version:

Library for composing asynchronous and event-based operations in JavaScript

1 lines 213 kB
{"version":3,"file":"rx.all.min.js","sources":["rx.all.js"],"names":["undefined","checkGlobal","value","Object","cloneArray","arr","a","i","len","length","push","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","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","Array","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","concatMap","selector","thisArg","selectorFunc","bindCallback","map","isPromise","observableFromPromise","isArrayLike","isIterable","observableFrom","concatAll","arrayIndexOfComparer","item","comparer","HashSet","set","plucker","currentProp","firstOnly","EmptyError","findValue","yieldIndex","callback","AnonymousObservable","FindValueObserver","toObservable","obj","Observable","isObservable","fromPromise","isGeneratorFunction","isGenerator","spawn","isFunction","thunkToObservable","arrayToObservable","objectToObservable","from","Rx","just","defer","results","observables","next","forkJoin","fn","err","res","onError","onNext","onCompleted","ctor","displayName","prototype","val","createCbObservable","ctx","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","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","create","ObjectDisposedError","ArgumentOutOfRangeError","NotSupportedError","NotImplementedError","notImplemented","notSupported","Symbol","iterator","Set","doneEnumerator","func","argCount","arg","collection","dontEnums","funcTag","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","objectProto","pow","hasDontEnumBug","propertyIsEnumerable","dontEnumsLength","prop","type","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","splice","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","setInterval","clearInterval","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","String","replace","setImmediate","test","process","nextTick","MSG_PREFIX","random","onGlobalPostMessage","event","data","substring","currentId","MessageChannel","channel","port1","port2","document","createElement","scriptElement","onreadystatechange","parentNode","removeChild","documentElement","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","forEach","oOrOnNext","subscribeOnNext","subscribeOnError","subscribeOnCompleted","ObservableBase","fixSubscriber","subscriber","ado","sub","subscribeCore","AutoDetachObserver","FlatMapObservable","InnerObserver","_wrapResult","i2","Enumerable","ConcatEnumerableObservable","currentItem","currentValue","_recurse","concat","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","mapFn","mapper","_args","observableFromArray","fromArray","GenerateObservable","cndFn","itrFn","resFn","_cndFn","_itrFn","_resFn","_o","hasResult","generate","initialState","iterate","ofWithScheduler","ofArrayChanges","observe","unobserve","observerFn","changes","ofObjectChanges","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","_params","_cb","CombineLatestObserver","notTheSame","filter","observableConcat","ConcatObserver","ConcatObservable","_sources","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","t","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","Infinity","createWindow","refCountDisposable","selectConcat","selectorResult","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","_k","ExtremaByObserver","_v","comparison","ReduceObservable","ReduceObserver","reduce","SomeObservable","SomeObserver","Boolean","some","IsEmptyObservable","IsEmptyObserver","isEmpty","EveryObservable","EveryObserver","IncludesObservable","elem","_elem","IncludesObserver","b","includes","searchElement","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","returnValue","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","interval","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","TransduceObserver","xform","_xform","transduce","transducer","SwitchFirstObservable","hasCurrent","SwitchFirstObserver","switchFirst","flatMapFirst","selectManyFirst","flatMapWithMaxConcurrent","limit","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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