(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o */ var Observable = (function () { /** * @constructor * @param {Function} subscribe the function that is * called when the Observable is initially subscribed to. This function is given a Subscriber, to which new values * can be `next`ed, or an `error` method can be called to raise an error, or `complete` can be called to notify * of a successful completion. */ function Observable(subscribe) { this._isScalar = false; if (subscribe) { this._subscribe = subscribe; } } /** * @method lift * @param {Operator} operator the operator defining the operation to take on the observable * @returns {Observable} a new observable with the Operator applied * @description creates a new Observable, with this Observable as the source, and the passed * operator defined as the new observable's operator. */ Observable.prototype.lift = function (operator) { var observable = new Observable(); observable.source = this; observable.operator = operator; return observable; }; /** * @method Symbol.observable * @returns {Observable} this instance of the observable * @description an interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable */ Observable.prototype[Symbol_observable_1.$$observable] = function () { return this; }; /** * @method subscribe * @param {Observer|Function} observerOrNext (optional) either an observer defining all functions to be called, * or the first of three possible handlers, which is the handler for each value emitted from the observable. * @param {Function} error (optional) a handler for a terminal event resulting from an error. If no error handler is provided, * the error will be thrown as unhandled * @param {Function} complete (optional) a handler for a terminal event resulting from successful completion. * @returns {Subscription} a subscription reference to the registered handlers * @description registers handlers for handling emitted values, error and completions from the observable, and * executes the observable's subscriber function, which will take action to set up the underlying data stream */ Observable.prototype.subscribe = function (observerOrNext, error, complete) { var subscriber; if (observerOrNext && typeof observerOrNext === 'object') { if (observerOrNext instanceof Subscriber_1.Subscriber) { subscriber = observerOrNext; } else { subscriber = new Subscriber_1.Subscriber(observerOrNext); } } else { var next = observerOrNext; subscriber = Subscriber_1.Subscriber.create(next, error, complete); } subscriber.add(this._subscribe(subscriber)); return subscriber; }; /** * @method forEach * @param {Function} next a handler for each value emitted by the observable * @param {PromiseConstructor} PromiseCtor? a constructor function used to instantiate the Promise * @returns {Promise} a promise that either resolves on observable completion or * rejects with the handled error */ Observable.prototype.forEach = function (next, PromiseCtor) { var _this = this; if (!PromiseCtor) { if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) { PromiseCtor = root_1.root.Rx.config.Promise; } else if (root_1.root.Promise) { PromiseCtor = root_1.root.Promise; } } if (!PromiseCtor) { throw new Error('no Promise impl found'); } return new PromiseCtor(function (resolve, reject) { _this.subscribe(next, reject, resolve); }); }; Observable.prototype._subscribe = function (subscriber) { return this.source._subscribe(this.operator.call(subscriber)); }; // HACK: Since TypeScript inherits static properties too, we have to // fight against TypeScript here so Subject can have a different static create signature /** * @static * @method create * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor * @returns {Observable} a new cold observable * @description creates a new cold Observable by calling the Observable constructor */ Observable.create = function (subscribe) { return new Observable(subscribe); }; return Observable; })(); exports.Observable = Observable; //# sourceMappingURL=Observable.js.map },{"./Subscriber":20,"./util/Symbol_observable":141,"./util/root":149}],17:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('./Subscriber'); var OuterSubscriber = (function (_super) { __extends(OuterSubscriber, _super); function OuterSubscriber() { _super.apply(this, arguments); } OuterSubscriber.prototype.notifyComplete = function (inner) { this.destination.complete(); }; OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { this.destination.next(innerValue); }; OuterSubscriber.prototype.notifyError = function (error, inner) { this.destination.error(error); }; return OuterSubscriber; })(Subscriber_1.Subscriber); exports.OuterSubscriber = OuterSubscriber; //# sourceMappingURL=OuterSubscriber.js.map },{"./Subscriber":20}],18:[function(require,module,exports){ var Observable_1 = require('./Observable'); exports.Observable = Observable_1.Observable; // operators /* tslint:disable:no-use-before-declare */ var combineLatest_static_1 = require('./operators/combineLatest-static'); Observable_1.Observable.combineLatest = combineLatest_static_1.combineLatest; var concat_static_1 = require('./operators/concat-static'); Observable_1.Observable.concat = concat_static_1.concat; var merge_static_1 = require('./operators/merge-static'); Observable_1.Observable.merge = merge_static_1.merge; /* tslint:enable:no-use-before-declare */ var DeferObservable_1 = require('./observables/DeferObservable'); Observable_1.Observable.defer = DeferObservable_1.DeferObservable.create; var EmptyObservable_1 = require('./observables/EmptyObservable'); Observable_1.Observable.empty = EmptyObservable_1.EmptyObservable.create; var ForkJoinObservable_1 = require('./observables/ForkJoinObservable'); Observable_1.Observable.forkJoin = ForkJoinObservable_1.ForkJoinObservable.create; var FromObservable_1 = require('./observables/FromObservable'); Observable_1.Observable.from = FromObservable_1.FromObservable.create; var ArrayObservable_1 = require('./observables/ArrayObservable'); Observable_1.Observable.fromArray = ArrayObservable_1.ArrayObservable.create; var FromEventObservable_1 = require('./observables/FromEventObservable'); Observable_1.Observable.fromEvent = FromEventObservable_1.FromEventObservable.create; var FromEventPatternObservable_1 = require('./observables/FromEventPatternObservable'); Observable_1.Observable.fromEventPattern = FromEventPatternObservable_1.FromEventPatternObservable.create; var PromiseObservable_1 = require('./observables/PromiseObservable'); Observable_1.Observable.fromPromise = PromiseObservable_1.PromiseObservable.create; var IntervalObservable_1 = require('./observables/IntervalObservable'); Observable_1.Observable.interval = IntervalObservable_1.IntervalObservable.create; var InfiniteObservable_1 = require('./observables/InfiniteObservable'); Observable_1.Observable.never = InfiniteObservable_1.InfiniteObservable.create; Observable_1.Observable.of = ArrayObservable_1.ArrayObservable.of; var RangeObservable_1 = require('./observables/RangeObservable'); Observable_1.Observable.range = RangeObservable_1.RangeObservable.create; var ErrorObservable_1 = require('./observables/ErrorObservable'); Observable_1.Observable.throw = ErrorObservable_1.ErrorObservable.create; var TimerObservable_1 = require('./observables/TimerObservable'); Observable_1.Observable.timer = TimerObservable_1.TimerObservable.create; var zip_static_1 = require('./operators/zip-static'); Observable_1.Observable.zip = zip_static_1.zip; var observableProto = Observable_1.Observable.prototype; var buffer_1 = require('./operators/buffer'); observableProto.buffer = buffer_1.buffer; var bufferCount_1 = require('./operators/bufferCount'); observableProto.bufferCount = bufferCount_1.bufferCount; var bufferTime_1 = require('./operators/bufferTime'); observableProto.bufferTime = bufferTime_1.bufferTime; var bufferToggle_1 = require('./operators/bufferToggle'); observableProto.bufferToggle = bufferToggle_1.bufferToggle; var bufferWhen_1 = require('./operators/bufferWhen'); observableProto.bufferWhen = bufferWhen_1.bufferWhen; var catch_1 = require('./operators/catch'); observableProto.catch = catch_1._catch; var combineAll_1 = require('./operators/combineAll'); observableProto.combineAll = combineAll_1.combineAll; var combineLatest_1 = require('./operators/combineLatest'); observableProto.combineLatest = combineLatest_1.combineLatest; var concat_1 = require('./operators/concat'); observableProto.concat = concat_1.concat; var concatAll_1 = require('./operators/concatAll'); observableProto.concatAll = concatAll_1.concatAll; var concatMap_1 = require('./operators/concatMap'); observableProto.concatMap = concatMap_1.concatMap; var concatMapTo_1 = require('./operators/concatMapTo'); observableProto.concatMapTo = concatMapTo_1.concatMapTo; var count_1 = require('./operators/count'); observableProto.count = count_1.count; var dematerialize_1 = require('./operators/dematerialize'); observableProto.dematerialize = dematerialize_1.dematerialize; var debounce_1 = require('./operators/debounce'); observableProto.debounce = debounce_1.debounce; var debounceTime_1 = require('./operators/debounceTime'); observableProto.debounceTime = debounceTime_1.debounceTime; var defaultIfEmpty_1 = require('./operators/defaultIfEmpty'); observableProto.defaultIfEmpty = defaultIfEmpty_1.defaultIfEmpty; var delay_1 = require('./operators/delay'); observableProto.delay = delay_1.delay; var distinctUntilChanged_1 = require('./operators/distinctUntilChanged'); observableProto.distinctUntilChanged = distinctUntilChanged_1.distinctUntilChanged; var do_1 = require('./operators/do'); observableProto.do = do_1._do; var expand_1 = require('./operators/expand'); observableProto.expand = expand_1.expand; var filter_1 = require('./operators/filter'); observableProto.filter = filter_1.filter; var finally_1 = require('./operators/finally'); observableProto.finally = finally_1._finally; var first_1 = require('./operators/first'); observableProto.first = first_1.first; var groupBy_1 = require('./operators/groupBy'); observableProto.groupBy = groupBy_1.groupBy; var ignoreElements_1 = require('./operators/ignoreElements'); observableProto.ignoreElements = ignoreElements_1.ignoreElements; var every_1 = require('./operators/every'); observableProto.every = every_1.every; var last_1 = require('./operators/last'); observableProto.last = last_1.last; var map_1 = require('./operators/map'); observableProto.map = map_1.map; var mapTo_1 = require('./operators/mapTo'); observableProto.mapTo = mapTo_1.mapTo; var materialize_1 = require('./operators/materialize'); observableProto.materialize = materialize_1.materialize; var merge_1 = require('./operators/merge'); observableProto.merge = merge_1.merge; var mergeAll_1 = require('./operators/mergeAll'); observableProto.mergeAll = mergeAll_1.mergeAll; var mergeMap_1 = require('./operators/mergeMap'); observableProto.mergeMap = mergeMap_1.mergeMap; observableProto.flatMap = mergeMap_1.mergeMap; var mergeMapTo_1 = require('./operators/mergeMapTo'); observableProto.mergeMapTo = mergeMapTo_1.mergeMapTo; observableProto.flatMapTo = mergeMapTo_1.mergeMapTo; var multicast_1 = require('./operators/multicast'); observableProto.multicast = multicast_1.multicast; var observeOn_1 = require('./operators/observeOn'); observableProto.observeOn = observeOn_1.observeOn; var partition_1 = require('./operators/partition'); observableProto.partition = partition_1.partition; var publish_1 = require('./operators/publish'); observableProto.publish = publish_1.publish; var publishBehavior_1 = require('./operators/publishBehavior'); observableProto.publishBehavior = publishBehavior_1.publishBehavior; var publishReplay_1 = require('./operators/publishReplay'); observableProto.publishReplay = publishReplay_1.publishReplay; var reduce_1 = require('./operators/reduce'); observableProto.reduce = reduce_1.reduce; var repeat_1 = require('./operators/repeat'); observableProto.repeat = repeat_1.repeat; var retry_1 = require('./operators/retry'); observableProto.retry = retry_1.retry; var retryWhen_1 = require('./operators/retryWhen'); observableProto.retryWhen = retryWhen_1.retryWhen; var sample_1 = require('./operators/sample'); observableProto.sample = sample_1.sample; var sampleTime_1 = require('./operators/sampleTime'); observableProto.sampleTime = sampleTime_1.sampleTime; var scan_1 = require('./operators/scan'); observableProto.scan = scan_1.scan; var share_1 = require('./operators/share'); observableProto.share = share_1.share; var single_1 = require('./operators/single'); observableProto.single = single_1.single; var skip_1 = require('./operators/skip'); observableProto.skip = skip_1.skip; var skipUntil_1 = require('./operators/skipUntil'); observableProto.skipUntil = skipUntil_1.skipUntil; var startWith_1 = require('./operators/startWith'); observableProto.startWith = startWith_1.startWith; var subscribeOn_1 = require('./operators/subscribeOn'); observableProto.subscribeOn = subscribeOn_1.subscribeOn; var switch_1 = require('./operators/switch'); observableProto.switch = switch_1._switch; var switchMap_1 = require('./operators/switchMap'); observableProto.switchMap = switchMap_1.switchMap; var switchMapTo_1 = require('./operators/switchMapTo'); observableProto.switchMapTo = switchMapTo_1.switchMapTo; var take_1 = require('./operators/take'); observableProto.take = take_1.take; var takeUntil_1 = require('./operators/takeUntil'); observableProto.takeUntil = takeUntil_1.takeUntil; var throttle_1 = require('./operators/throttle'); observableProto.throttle = throttle_1.throttle; var timeout_1 = require('./operators/timeout'); observableProto.timeout = timeout_1.timeout; var timeoutWith_1 = require('./operators/timeoutWith'); observableProto.timeoutWith = timeoutWith_1.timeoutWith; var toArray_1 = require('./operators/toArray'); observableProto.toArray = toArray_1.toArray; var toPromise_1 = require('./operators/toPromise'); observableProto.toPromise = toPromise_1.toPromise; var window_1 = require('./operators/window'); observableProto.window = window_1.window; var windowCount_1 = require('./operators/windowCount'); observableProto.windowCount = windowCount_1.windowCount; var windowTime_1 = require('./operators/windowTime'); observableProto.windowTime = windowTime_1.windowTime; var windowToggle_1 = require('./operators/windowToggle'); observableProto.windowToggle = windowToggle_1.windowToggle; var windowWhen_1 = require('./operators/windowWhen'); observableProto.windowWhen = windowWhen_1.windowWhen; var withLatestFrom_1 = require('./operators/withLatestFrom'); observableProto.withLatestFrom = withLatestFrom_1.withLatestFrom; var zip_1 = require('./operators/zip'); observableProto.zip = zip_1.zipProto; var zipAll_1 = require('./operators/zipAll'); observableProto.zipAll = zipAll_1.zipAll; /* tslint:disable:no-unused-variable */ var Subject_1 = require('./Subject'); exports.Subject = Subject_1.Subject; var Subscription_1 = require('./Subscription'); exports.Subscription = Subscription_1.Subscription; var Subscriber_1 = require('./Subscriber'); exports.Subscriber = Subscriber_1.Subscriber; var ReplaySubject_1 = require('./subjects/ReplaySubject'); exports.ReplaySubject = ReplaySubject_1.ReplaySubject; var BehaviorSubject_1 = require('./subjects/BehaviorSubject'); exports.BehaviorSubject = BehaviorSubject_1.BehaviorSubject; var ConnectableObservable_1 = require('./observables/ConnectableObservable'); exports.ConnectableObservable = ConnectableObservable_1.ConnectableObservable; var Notification_1 = require('./Notification'); exports.Notification = Notification_1.Notification; var EmptyError_1 = require('./util/EmptyError'); exports.EmptyError = EmptyError_1.EmptyError; var ArgumentOutOfRangeError_1 = require('./util/ArgumentOutOfRangeError'); exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; var nextTick_1 = require('./schedulers/nextTick'); var immediate_1 = require('./schedulers/immediate'); /* tslint:enable:no-unused-variable */ /* tslint:disable:no-var-keyword */ var Scheduler = { nextTick: nextTick_1.nextTick, immediate: immediate_1.immediate }; exports.Scheduler = Scheduler; /* tslint:enable:no-var-keyword */ //# sourceMappingURL=Rx.js.map },{"./Notification":15,"./Observable":16,"./Subject":19,"./Subscriber":20,"./Subscription":21,"./observables/ArrayObservable":22,"./observables/ConnectableObservable":23,"./observables/DeferObservable":24,"./observables/EmptyObservable":25,"./observables/ErrorObservable":26,"./observables/ForkJoinObservable":27,"./observables/FromEventObservable":28,"./observables/FromEventPatternObservable":29,"./observables/FromObservable":30,"./observables/InfiniteObservable":31,"./observables/IntervalObservable":32,"./observables/PromiseObservable":34,"./observables/RangeObservable":35,"./observables/TimerObservable":38,"./operators/buffer":39,"./operators/bufferCount":40,"./operators/bufferTime":41,"./operators/bufferToggle":42,"./operators/bufferWhen":43,"./operators/catch":44,"./operators/combineAll":45,"./operators/combineLatest":48,"./operators/combineLatest-static":46,"./operators/concat":50,"./operators/concat-static":49,"./operators/concatAll":51,"./operators/concatMap":52,"./operators/concatMapTo":53,"./operators/count":54,"./operators/debounce":55,"./operators/debounceTime":56,"./operators/defaultIfEmpty":57,"./operators/delay":58,"./operators/dematerialize":59,"./operators/distinctUntilChanged":60,"./operators/do":61,"./operators/every":62,"./operators/expand":64,"./operators/filter":65,"./operators/finally":66,"./operators/first":67,"./operators/groupBy":69,"./operators/ignoreElements":70,"./operators/last":71,"./operators/map":72,"./operators/mapTo":73,"./operators/materialize":74,"./operators/merge":76,"./operators/merge-static":75,"./operators/mergeAll":78,"./operators/mergeMap":80,"./operators/mergeMapTo":82,"./operators/multicast":83,"./operators/observeOn":85,"./operators/partition":86,"./operators/publish":87,"./operators/publishBehavior":88,"./operators/publishReplay":89,"./operators/reduce":91,"./operators/repeat":92,"./operators/retry":93,"./operators/retryWhen":94,"./operators/sample":95,"./operators/sampleTime":96,"./operators/scan":97,"./operators/share":98,"./operators/single":99,"./operators/skip":100,"./operators/skipUntil":101,"./operators/startWith":102,"./operators/subscribeOn":103,"./operators/switch":104,"./operators/switchMap":105,"./operators/switchMapTo":106,"./operators/take":107,"./operators/takeUntil":108,"./operators/throttle":109,"./operators/timeout":110,"./operators/timeoutWith":111,"./operators/toArray":112,"./operators/toPromise":113,"./operators/window":114,"./operators/windowCount":115,"./operators/windowTime":116,"./operators/windowToggle":117,"./operators/windowWhen":118,"./operators/withLatestFrom":119,"./operators/zip":122,"./operators/zip-static":120,"./operators/zipAll":123,"./schedulers/immediate":129,"./schedulers/nextTick":130,"./subjects/BehaviorSubject":131,"./subjects/ReplaySubject":132,"./util/ArgumentOutOfRangeError":134,"./util/EmptyError":135}],19:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('./Observable'); var Subscriber_1 = require('./Subscriber'); var Subscription_1 = require('./Subscription'); var SubjectSubscription_1 = require('./subjects/SubjectSubscription'); var subscriptionAdd = Subscription_1.Subscription.prototype.add; var subscriptionRemove = Subscription_1.Subscription.prototype.remove; var subscriptionUnsubscribe = Subscription_1.Subscription.prototype.unsubscribe; var subscriberNext = Subscriber_1.Subscriber.prototype.next; var subscriberError = Subscriber_1.Subscriber.prototype.error; var subscriberComplete = Subscriber_1.Subscriber.prototype.complete; var _subscriberNext = Subscriber_1.Subscriber.prototype._next; var _subscriberError = Subscriber_1.Subscriber.prototype._error; var _subscriberComplete = Subscriber_1.Subscriber.prototype._complete; var Subject = (function (_super) { __extends(Subject, _super); function Subject() { _super.apply(this, arguments); this.observers = []; this.isUnsubscribed = false; this.dispatching = false; this.errorSignal = false; this.completeSignal = false; } Subject.create = function (source, destination) { return new BidirectionalSubject(source, destination); }; Subject.prototype.lift = function (operator) { var subject = new BidirectionalSubject(this, this.destination || this); subject.operator = operator; return subject; }; Subject.prototype._subscribe = function (subscriber) { if (subscriber.isUnsubscribed) { return; } else if (this.errorSignal) { subscriber.error(this.errorInstance); return; } else if (this.completeSignal) { subscriber.complete(); return; } else if (this.isUnsubscribed) { throw new Error('Cannot subscribe to a disposed Subject.'); } this.observers.push(subscriber); return new SubjectSubscription_1.SubjectSubscription(this, subscriber); }; Subject.prototype.add = function (subscription) { subscriptionAdd.call(this, subscription); }; Subject.prototype.remove = function (subscription) { subscriptionRemove.call(this, subscription); }; Subject.prototype.unsubscribe = function () { this.observers = void 0; subscriptionUnsubscribe.call(this); }; Subject.prototype.next = function (value) { if (this.isUnsubscribed) { return; } this.dispatching = true; this._next(value); this.dispatching = false; if (this.errorSignal) { this.error(this.errorInstance); } else if (this.completeSignal) { this.complete(); } }; Subject.prototype.error = function (err) { if (this.isUnsubscribed || this.completeSignal) { return; } this.errorSignal = true; this.errorInstance = err; if (this.dispatching) { return; } this._error(err); this.unsubscribe(); }; Subject.prototype.complete = function () { if (this.isUnsubscribed || this.errorSignal) { return; } this.completeSignal = true; if (this.dispatching) { return; } this._complete(); this.unsubscribe(); }; Subject.prototype._next = function (value) { var index = -1; var observers = this.observers.slice(0); var len = observers.length; while (++index < len) { observers[index].next(value); } }; Subject.prototype._error = function (err) { var index = -1; var observers = this.observers; var len = observers.length; // optimization -- block next, complete, and unsubscribe while dispatching this.observers = void 0; this.isUnsubscribed = true; while (++index < len) { observers[index].error(err); } this.isUnsubscribed = false; }; Subject.prototype._complete = function () { var index = -1; var observers = this.observers; var len = observers.length; // optimization -- block next, complete, and unsubscribe while dispatching this.observers = void 0; // optimization this.isUnsubscribed = true; while (++index < len) { observers[index].complete(); } this.isUnsubscribed = false; }; return Subject; })(Observable_1.Observable); exports.Subject = Subject; var BidirectionalSubject = (function (_super) { __extends(BidirectionalSubject, _super); function BidirectionalSubject(source, destination) { _super.call(this); this.source = source; this.destination = destination; } BidirectionalSubject.prototype._subscribe = function (subscriber) { var operator = this.operator; return this.source._subscribe.call(this.source, operator ? operator.call(subscriber) : subscriber); }; BidirectionalSubject.prototype.next = function (value) { subscriberNext.call(this, value); }; BidirectionalSubject.prototype.error = function (err) { subscriberError.call(this, err); }; BidirectionalSubject.prototype.complete = function () { subscriberComplete.call(this); }; BidirectionalSubject.prototype._next = function (value) { _subscriberNext.call(this, value); }; BidirectionalSubject.prototype._error = function (err) { _subscriberError.call(this, err); }; BidirectionalSubject.prototype._complete = function () { _subscriberComplete.call(this); }; return BidirectionalSubject; })(Subject); //# sourceMappingURL=Subject.js.map },{"./Observable":16,"./Subscriber":20,"./Subscription":21,"./subjects/SubjectSubscription":133}],20:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var noop_1 = require('./util/noop'); var throwError_1 = require('./util/throwError'); var tryOrOnError_1 = require('./util/tryOrOnError'); var Subscription_1 = require('./Subscription'); var Subscriber = (function (_super) { __extends(Subscriber, _super); function Subscriber(destination) { _super.call(this); this.destination = destination; this._isUnsubscribed = false; if (!this.destination) { return; } var subscription = destination._subscription; if (subscription) { this._subscription = subscription; } else if (destination instanceof Subscriber) { this._subscription = destination; } } Object.defineProperty(Subscriber.prototype, "isUnsubscribed", { get: function () { var subscription = this._subscription; if (subscription) { // route to the shared Subscription if it exists return this._isUnsubscribed || subscription.isUnsubscribed; } else { return this._isUnsubscribed; } }, set: function (value) { var subscription = this._subscription; if (subscription) { // route to the shared Subscription if it exists subscription.isUnsubscribed = Boolean(value); } else { this._isUnsubscribed = Boolean(value); } }, enumerable: true, configurable: true }); Subscriber.create = function (next, error, complete) { var subscriber = new Subscriber(); subscriber._next = (typeof next === 'function') && tryOrOnError_1.tryOrOnError(next) || noop_1.noop; subscriber._error = (typeof error === 'function') && error || throwError_1.throwError; subscriber._complete = (typeof complete === 'function') && complete || noop_1.noop; return subscriber; }; Subscriber.prototype.add = function (sub) { // route add to the shared Subscription if it exists var _subscription = this._subscription; if (_subscription) { _subscription.add(sub); } else { _super.prototype.add.call(this, sub); } }; Subscriber.prototype.remove = function (sub) { // route remove to the shared Subscription if it exists if (this._subscription) { this._subscription.remove(sub); } else { _super.prototype.remove.call(this, sub); } }; Subscriber.prototype.unsubscribe = function () { if (this._isUnsubscribed) { return; } else if (this._subscription) { this._isUnsubscribed = true; } else { _super.prototype.unsubscribe.call(this); } }; Subscriber.prototype._next = function (value) { this.destination.next(value); }; Subscriber.prototype._error = function (err) { this.destination.error(err); }; Subscriber.prototype._complete = function () { this.destination.complete(); }; Subscriber.prototype.next = function (value) { if (!this.isUnsubscribed) { this._next(value); } }; Subscriber.prototype.error = function (err) { if (!this.isUnsubscribed) { this._error(err); this.unsubscribe(); } }; Subscriber.prototype.complete = function () { if (!this.isUnsubscribed) { this._complete(); this.unsubscribe(); } }; return Subscriber; })(Subscription_1.Subscription); exports.Subscriber = Subscriber; //# sourceMappingURL=Subscriber.js.map },{"./Subscription":21,"./util/noop":147,"./util/throwError":151,"./util/tryOrOnError":153}],21:[function(require,module,exports){ var noop_1 = require('./util/noop'); var Subscription = (function () { function Subscription(_unsubscribe) { this.isUnsubscribed = false; if (_unsubscribe) { this._unsubscribe = _unsubscribe; } } Subscription.prototype._unsubscribe = function () { noop_1.noop(); }; Subscription.prototype.unsubscribe = function () { if (this.isUnsubscribed) { return; } this.isUnsubscribed = true; var unsubscribe = this._unsubscribe; var subscriptions = this._subscriptions; this._subscriptions = void 0; if (unsubscribe) { unsubscribe.call(this); } if (subscriptions != null) { var index = -1; var len = subscriptions.length; while (++index < len) { subscriptions[index].unsubscribe(); } } }; Subscription.prototype.add = function (subscription) { // return early if: // 1. the subscription is null // 2. we're attempting to add our this // 3. we're attempting to add the static `empty` Subscription if (!subscription || (subscription === this) || (subscription === Subscription.EMPTY)) { return; } var sub = subscription; switch (typeof subscription) { case 'function': sub = new Subscription(subscription); case 'object': if (sub.isUnsubscribed || typeof sub.unsubscribe !== 'function') { break; } else if (this.isUnsubscribed) { sub.unsubscribe(); } else { var subscriptions = this._subscriptions || (this._subscriptions = []); subscriptions.push(sub); } break; default: throw new Error('Unrecognized subscription ' + subscription + ' added to Subscription.'); } }; Subscription.prototype.remove = function (subscription) { // return early if: // 1. the subscription is null // 2. we're attempting to remove ourthis // 3. we're attempting to remove the static `empty` Subscription if (subscription == null || (subscription === this) || (subscription === Subscription.EMPTY)) { return; } var subscriptions = this._subscriptions; if (subscriptions) { var subscriptionIndex = subscriptions.indexOf(subscription); if (subscriptionIndex !== -1) { subscriptions.splice(subscriptionIndex, 1); } } }; Subscription.EMPTY = (function (empty) { empty.isUnsubscribed = true; return empty; }(new Subscription())); return Subscription; })(); exports.Subscription = Subscription; //# sourceMappingURL=Subscription.js.map },{"./util/noop":147}],22:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var ScalarObservable_1 = require('./ScalarObservable'); var EmptyObservable_1 = require('./EmptyObservable'); var ArrayObservable = (function (_super) { __extends(ArrayObservable, _super); function ArrayObservable(array, scheduler) { _super.call(this); this.array = array; this.scheduler = scheduler; if (!scheduler && array.length === 1) { this._isScalar = true; this.value = array[0]; } } ArrayObservable.create = function (array, scheduler) { return new ArrayObservable(array, scheduler); }; ArrayObservable.of = function () { var array = []; for (var _i = 0; _i < arguments.length; _i++) { array[_i - 0] = arguments[_i]; } var scheduler = array[array.length - 1]; if (scheduler && typeof scheduler.schedule === 'function') { array.pop(); } else { scheduler = void 0; } var len = array.length; if (len > 1) { return new ArrayObservable(array, scheduler); } else if (len === 1) { return new ScalarObservable_1.ScalarObservable(array[0], scheduler); } else { return new EmptyObservable_1.EmptyObservable(scheduler); } }; ArrayObservable.dispatch = function (state) { var array = state.array, index = state.index, count = state.count, subscriber = state.subscriber; if (index >= count) { subscriber.complete(); return; } subscriber.next(array[index]); if (subscriber.isUnsubscribed) { return; } state.index = index + 1; this.schedule(state); }; ArrayObservable.prototype._subscribe = function (subscriber) { var index = 0; var array = this.array; var count = array.length; var scheduler = this.scheduler; if (scheduler) { subscriber.add(scheduler.schedule(ArrayObservable.dispatch, 0, { array: array, index: index, count: count, subscriber: subscriber })); } else { for (var i = 0; i < count && !subscriber.isUnsubscribed; i++) { subscriber.next(array[i]); } subscriber.complete(); } }; return ArrayObservable; })(Observable_1.Observable); exports.ArrayObservable = ArrayObservable; //# sourceMappingURL=ArrayObservable.js.map },{"../Observable":16,"./EmptyObservable":25,"./ScalarObservable":36}],23:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var Subscription_1 = require('../Subscription'); var ConnectableObservable = (function (_super) { __extends(ConnectableObservable, _super); function ConnectableObservable(source, subjectFactory) { _super.call(this); this.source = source; this.subjectFactory = subjectFactory; } ConnectableObservable.prototype._subscribe = function (subscriber) { return this._getSubject().subscribe(subscriber); }; ConnectableObservable.prototype._getSubject = function () { var subject = this.subject; if (subject && !subject.isUnsubscribed) { return subject; } return (this.subject = this.subjectFactory()); }; ConnectableObservable.prototype.connect = function () { var source = this.source; var subscription = this.subscription; if (subscription && !subscription.isUnsubscribed) { return subscription; } subscription = source.subscribe(this._getSubject()); subscription.add(new ConnectableSubscription(this)); return (this.subscription = subscription); }; ConnectableObservable.prototype.refCount = function () { return new RefCountObservable(this); }; return ConnectableObservable; })(Observable_1.Observable); exports.ConnectableObservable = ConnectableObservable; var ConnectableSubscription = (function (_super) { __extends(ConnectableSubscription, _super); function ConnectableSubscription(connectable) { _super.call(this); this.connectable = connectable; } ConnectableSubscription.prototype._unsubscribe = function () { var connectable = this.connectable; connectable.subject = void 0; connectable.subscription = void 0; this.connectable = void 0; }; return ConnectableSubscription; })(Subscription_1.Subscription); var RefCountObservable = (function (_super) { __extends(RefCountObservable, _super); function RefCountObservable(connectable, refCount) { if (refCount === void 0) { refCount = 0; } _super.call(this); this.connectable = connectable; this.refCount = refCount; } RefCountObservable.prototype._subscribe = function (subscriber) { var connectable = this.connectable; var subscription = connectable.subscribe(subscriber); if (++this.refCount === 1) { this.connection = connectable.connect(); } subscription.add(new RefCountSubscription(this)); return subscription; }; return RefCountObservable; })(Observable_1.Observable); var RefCountSubscription = (function (_super) { __extends(RefCountSubscription, _super); function RefCountSubscription(refCountObservable) { _super.call(this); this.refCountObservable = refCountObservable; } RefCountSubscription.prototype._unsubscribe = function () { var observable = this.refCountObservable; if (--observable.refCount === 0) { observable.connection.unsubscribe(); observable.connection = void 0; } }; return RefCountSubscription; })(Subscription_1.Subscription); //# sourceMappingURL=ConnectableObservable.js.map },{"../Observable":16,"../Subscription":21}],24:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var DeferObservable = (function (_super) { __extends(DeferObservable, _super); function DeferObservable(observableFactory) { _super.call(this); this.observableFactory = observableFactory; } DeferObservable.create = function (observableFactory) { return new DeferObservable(observableFactory); }; DeferObservable.prototype._subscribe = function (subscriber) { var result = tryCatch_1.tryCatch(this.observableFactory)(); if (result === errorObject_1.errorObject) { subscriber.error(errorObject_1.errorObject.e); } else { result.subscribe(subscriber); } }; return DeferObservable; })(Observable_1.Observable); exports.DeferObservable = DeferObservable; //# sourceMappingURL=DeferObservable.js.map },{"../Observable":16,"../util/errorObject":143,"../util/tryCatch":152}],25:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var EmptyObservable = (function (_super) { __extends(EmptyObservable, _super); function EmptyObservable(scheduler) { _super.call(this); this.scheduler = scheduler; } EmptyObservable.create = function (scheduler) { return new EmptyObservable(scheduler); }; EmptyObservable.dispatch = function (_a) { var subscriber = _a.subscriber; subscriber.complete(); }; EmptyObservable.prototype._subscribe = function (subscriber) { var scheduler = this.scheduler; if (scheduler) { subscriber.add(scheduler.schedule(EmptyObservable.dispatch, 0, { subscriber: subscriber })); } else { subscriber.complete(); } }; return EmptyObservable; })(Observable_1.Observable); exports.EmptyObservable = EmptyObservable; //# sourceMappingURL=EmptyObservable.js.map },{"../Observable":16}],26:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var ErrorObservable = (function (_super) { __extends(ErrorObservable, _super); function ErrorObservable(error, scheduler) { _super.call(this); this.error = error; this.scheduler = scheduler; } ErrorObservable.create = function (error, scheduler) { return new ErrorObservable(error, scheduler); }; ErrorObservable.dispatch = function (_a) { var error = _a.error, subscriber = _a.subscriber; subscriber.error(error); }; ErrorObservable.prototype._subscribe = function (subscriber) { var error = this.error; var scheduler = this.scheduler; if (scheduler) { subscriber.add(scheduler.schedule(ErrorObservable.dispatch, 0, { error: error, subscriber: subscriber })); } else { subscriber.error(error); } }; return ErrorObservable; })(Observable_1.Observable); exports.ErrorObservable = ErrorObservable; //# sourceMappingURL=ErrorObservable.js.map },{"../Observable":16}],27:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var Subscriber_1 = require('../Subscriber'); var PromiseObservable_1 = require('./PromiseObservable'); var EmptyObservable_1 = require('./EmptyObservable'); var isPromise_1 = require('../util/isPromise'); var ForkJoinObservable = (function (_super) { __extends(ForkJoinObservable, _super); function ForkJoinObservable(sources) { _super.call(this); this.sources = sources; } ForkJoinObservable.create = function () { var sources = []; for (var _i = 0; _i < arguments.length; _i++) { sources[_i - 0] = arguments[_i]; } if (sources === null || sources.length === 0) { return new EmptyObservable_1.EmptyObservable(); } return new ForkJoinObservable(sources); }; ForkJoinObservable.prototype.getResultSelector = function () { var sources = this.sources; var resultSelector = sources[sources.length - 1]; if (typeof resultSelector !== 'function') { return null; } this.sources.pop(); return resultSelector; }; ForkJoinObservable.prototype._subscribe = function (subscriber) { var resultSelector = this.getResultSelector(); var sources = this.sources; var len = sources.length; var context = { completed: 0, total: len, values: emptyArray(len), selector: resultSelector }; for (var i = 0; i < len; i++) { var source = sources[i]; if (isPromise_1.isPromise(source)) { source = new PromiseObservable_1.PromiseObservable(source); } source.subscribe(new AllSubscriber(subscriber, i, context)); } }; return ForkJoinObservable; })(Observable_1.Observable); exports.ForkJoinObservable = ForkJoinObservable; var AllSubscriber = (function (_super) { __extends(AllSubscriber, _super); function AllSubscriber(destination, index, context) { _super.call(this, destination); this.index = index; this.context = context; this._value = null; } AllSubscriber.prototype._next = function (value) { this._value = value; }; AllSubscriber.prototype._complete = function () { var destination = this.destination; if (this._value == null) { destination.complete(); } var context = this.context; context.completed++; context.values[this.index] = this._value; var values = context.values; if (context.completed !== values.length) { return; } if (values.every(hasValue)) { var value = context.selector ? context.selector.apply(this, values) : values; destination.next(value); } destination.complete(); }; return AllSubscriber; })(Subscriber_1.Subscriber); function hasValue(x) { return x !== null; } function emptyArray(len) { var arr = []; for (var i = 0; i < len; i++) { arr.push(null); } return arr; } //# sourceMappingURL=ForkJoinObservable.js.map },{"../Observable":16,"../Subscriber":20,"../util/isPromise":146,"./EmptyObservable":25,"./PromiseObservable":34}],28:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var Subscription_1 = require('../Subscription'); var FromEventObservable = (function (_super) { __extends(FromEventObservable, _super); function FromEventObservable(sourceObj, eventName, selector) { _super.call(this); this.sourceObj = sourceObj; this.eventName = eventName; this.selector = selector; } FromEventObservable.create = function (sourceObj, eventName, selector) { return new FromEventObservable(sourceObj, eventName, selector); }; FromEventObservable.setupSubscription = function (sourceObj, eventName, handler, subscriber) { var unsubscribe; var tag = sourceObj.toString(); if (tag === '[object NodeList]' || tag === '[object HTMLCollection]') { for (var i = 0, len = sourceObj.length; i < len; i++) { FromEventObservable.setupSubscription(sourceObj[i], eventName, handler, subscriber); } } else if (typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function') { sourceObj.addEventListener(eventName, handler); unsubscribe = function () { return sourceObj.removeEventListener(eventName, handler); }; } else if (typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function') { sourceObj.on(eventName, handler); unsubscribe = function () { return sourceObj.off(eventName, handler); }; } else if (typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function') { sourceObj.addListener(eventName, handler); unsubscribe = function () { return sourceObj.removeListener(eventName, handler); }; } subscriber.add(new Subscription_1.Subscription(unsubscribe)); }; FromEventObservable.prototype._subscribe = function (subscriber) { var sourceObj = this.sourceObj; var eventName = this.eventName; var selector = this.selector; var handler = selector ? function (e) { var result = tryCatch_1.tryCatch(selector)(e); if (result === errorObject_1.errorObject) { subscriber.error(result.e); } else { subscriber.next(result); } } : function (e) { return subscriber.next(e); }; FromEventObservable.setupSubscription(sourceObj, eventName, handler, subscriber); }; return FromEventObservable; })(Observable_1.Observable); exports.FromEventObservable = FromEventObservable; //# sourceMappingURL=FromEventObservable.js.map },{"../Observable":16,"../Subscription":21,"../util/errorObject":143,"../util/tryCatch":152}],29:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var Subscription_1 = require('../Subscription'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var FromEventPatternObservable = (function (_super) { __extends(FromEventPatternObservable, _super); function FromEventPatternObservable(addHandler, removeHandler, selector) { _super.call(this); this.addHandler = addHandler; this.removeHandler = removeHandler; this.selector = selector; } FromEventPatternObservable.create = function (addHandler, removeHandler, selector) { return new FromEventPatternObservable(addHandler, removeHandler, selector); }; FromEventPatternObservable.prototype._subscribe = function (subscriber) { var addHandler = this.addHandler; var removeHandler = this.removeHandler; var selector = this.selector; var handler = selector ? function (e) { var result = tryCatch_1.tryCatch(selector).apply(null, arguments); if (result === errorObject_1.errorObject) { subscriber.error(result.e); } else { subscriber.next(result); } } : function (e) { subscriber.next(e); }; var result = tryCatch_1.tryCatch(addHandler)(handler); if (result === errorObject_1.errorObject) { subscriber.error(result.e); } subscriber.add(new Subscription_1.Subscription(function () { //TODO: determine whether or not to forward to error handler removeHandler(handler); })); }; return FromEventPatternObservable; })(Observable_1.Observable); exports.FromEventPatternObservable = FromEventPatternObservable; //# sourceMappingURL=FromEventPatternObservable.js.map },{"../Observable":16,"../Subscription":21,"../util/errorObject":143,"../util/tryCatch":152}],30:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var PromiseObservable_1 = require('./PromiseObservable'); var IteratorObservable_1 = require('./IteratorObservable'); var ArrayObservable_1 = require('./ArrayObservable'); var Symbol_observable_1 = require('../util/Symbol_observable'); var Symbol_iterator_1 = require('../util/Symbol_iterator'); var Observable_1 = require('../Observable'); var observeOn_support_1 = require('../operators/observeOn-support'); var immediate_1 = require('../schedulers/immediate'); var isArray = Array.isArray; var FromObservable = (function (_super) { __extends(FromObservable, _super); function FromObservable(ish, scheduler) { _super.call(this, null); this.ish = ish; this.scheduler = scheduler; } FromObservable.create = function (ish, scheduler) { if (scheduler === void 0) { scheduler = immediate_1.immediate; } if (ish) { if (isArray(ish)) { return new ArrayObservable_1.ArrayObservable(ish, scheduler); } else if (typeof ish.then === 'function') { return new PromiseObservable_1.PromiseObservable(ish, scheduler); } else if (typeof ish[Symbol_observable_1.$$observable] === 'function') { if (ish instanceof Observable_1.Observable) { return ish; } return new FromObservable(ish, scheduler); } else if (typeof ish[Symbol_iterator_1.$$iterator] === 'function') { return new IteratorObservable_1.IteratorObservable(ish, null, null, scheduler); } } throw new TypeError((typeof ish) + ' is not observable'); }; FromObservable.prototype._subscribe = function (subscriber) { var ish = this.ish; var scheduler = this.scheduler; if (scheduler === immediate_1.immediate) { return ish[Symbol_observable_1.$$observable]().subscribe(subscriber); } else { return ish[Symbol_observable_1.$$observable]().subscribe(new observeOn_support_1.ObserveOnSubscriber(subscriber, scheduler, 0)); } }; return FromObservable; })(Observable_1.Observable); exports.FromObservable = FromObservable; //# sourceMappingURL=FromObservable.js.map },{"../Observable":16,"../operators/observeOn-support":84,"../schedulers/immediate":129,"../util/Symbol_iterator":140,"../util/Symbol_observable":141,"./ArrayObservable":22,"./IteratorObservable":33,"./PromiseObservable":34}],31:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var noop_1 = require('../util/noop'); var InfiniteObservable = (function (_super) { __extends(InfiniteObservable, _super); function InfiniteObservable() { _super.call(this); } InfiniteObservable.create = function () { return new InfiniteObservable(); }; InfiniteObservable.prototype._subscribe = function (subscriber) { noop_1.noop(); }; return InfiniteObservable; })(Observable_1.Observable); exports.InfiniteObservable = InfiniteObservable; //# sourceMappingURL=InfiniteObservable.js.map },{"../Observable":16,"../util/noop":147}],32:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var isNumeric_1 = require('../util/isNumeric'); var Observable_1 = require('../Observable'); var nextTick_1 = require('../schedulers/nextTick'); var IntervalObservable = (function (_super) { __extends(IntervalObservable, _super); function IntervalObservable(period, scheduler) { if (period === void 0) { period = 0; } if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } _super.call(this); this.period = period; this.scheduler = scheduler; if (!isNumeric_1.isNumeric(period) || period < 0) { this.period = 0; } if (!scheduler || typeof scheduler.schedule !== 'function') { this.scheduler = nextTick_1.nextTick; } } IntervalObservable.create = function (period, scheduler) { if (period === void 0) { period = 0; } if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } return new IntervalObservable(period, scheduler); }; IntervalObservable.dispatch = function (state) { var index = state.index, subscriber = state.subscriber, period = state.period; subscriber.next(index); if (subscriber.isUnsubscribed) { return; } state.index += 1; this.schedule(state, period); }; IntervalObservable.prototype._subscribe = function (subscriber) { var index = 0; var period = this.period; var scheduler = this.scheduler; subscriber.add(scheduler.schedule(IntervalObservable.dispatch, period, { index: index, subscriber: subscriber, period: period })); }; return IntervalObservable; })(Observable_1.Observable); exports.IntervalObservable = IntervalObservable; //# sourceMappingURL=IntervalObservable.js.map },{"../Observable":16,"../schedulers/nextTick":130,"../util/isNumeric":145}],33:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var root_1 = require('../util/root'); var Symbol_iterator_1 = require('../util/Symbol_iterator'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var IteratorObservable = (function (_super) { __extends(IteratorObservable, _super); function IteratorObservable(iterator, project, thisArg, scheduler) { _super.call(this); this.iterator = iterator; this.project = project; this.thisArg = thisArg; this.scheduler = scheduler; } IteratorObservable.create = function (iterator, project, thisArg, scheduler) { if (iterator == null) { throw new Error('iterator cannot be null.'); } if (project && typeof project !== 'function') { throw new Error('When provided, `project` must be a function.'); } return new IteratorObservable(iterator, project, thisArg, scheduler); }; IteratorObservable.dispatch = function (state) { var index = state.index, hasError = state.hasError, thisArg = state.thisArg, project = state.project, iterator = state.iterator, subscriber = state.subscriber; if (hasError) { subscriber.error(state.error); return; } var result = iterator.next(); if (result.done) { subscriber.complete(); return; } if (project) { result = tryCatch_1.tryCatch(project).call(thisArg, result.value, index); if (result === errorObject_1.errorObject) { state.error = errorObject_1.errorObject.e; state.hasError = true; } else { subscriber.next(result); state.index = index + 1; } } else { subscriber.next(result.value); state.index = index + 1; } if (subscriber.isUnsubscribed) { return; } this.schedule(state); }; IteratorObservable.prototype._subscribe = function (subscriber) { var index = 0; var project = this.project; var thisArg = this.thisArg; var iterator = getIterator(Object(this.iterator)); var scheduler = this.scheduler; if (scheduler) { subscriber.add(scheduler.schedule(IteratorObservable.dispatch, 0, { index: index, thisArg: thisArg, project: project, iterator: iterator, subscriber: subscriber })); } else { do { var result = iterator.next(); if (result.done) { subscriber.complete(); break; } else if (project) { result = tryCatch_1.tryCatch(project).call(thisArg, result.value, index++); if (result === errorObject_1.errorObject) { subscriber.error(errorObject_1.errorObject.e); break; } subscriber.next(result); } else { subscriber.next(result.value); } if (subscriber.isUnsubscribed) { break; } } while (true); } }; return IteratorObservable; })(Observable_1.Observable); exports.IteratorObservable = IteratorObservable; var maxSafeInteger = Math.pow(2, 53) - 1; var StringIterator = (function () { function StringIterator(str, idx, len) { if (idx === void 0) { idx = 0; } if (len === void 0) { len = str.length; } this.str = str; this.idx = idx; this.len = len; } StringIterator.prototype[Symbol_iterator_1.$$iterator] = function () { return (this); }; StringIterator.prototype.next = function () { return this.idx < this.len ? { done: false, value: this.str.charAt(this.idx++) } : { done: true, value: undefined }; }; return StringIterator; })(); var ArrayIterator = (function () { function ArrayIterator(arr, idx, len) { if (idx === void 0) { idx = 0; } if (len === void 0) { len = toLength(arr); } this.arr = arr; this.idx = idx; this.len = len; } ArrayIterator.prototype[Symbol_iterator_1.$$iterator] = function () { return this; }; ArrayIterator.prototype.next = function () { return this.idx < this.len ? { done: false, value: this.arr[this.idx++] } : { done: true, value: undefined }; }; return ArrayIterator; })(); function getIterator(o) { var i = o[Symbol_iterator_1.$$iterator]; if (!i && typeof o === 'string') { return new StringIterator(o); } if (!i && o.length !== undefined) { return new ArrayIterator(o); } if (!i) { throw new TypeError('Object is not iterable'); } return o[Symbol_iterator_1.$$iterator](); } function toLength(o) { var len = +o.length; if (isNaN(len)) { return 0; } if (len === 0 || !numberIsFinite(len)) { return len; } len = sign(len) * Math.floor(Math.abs(len)); if (len <= 0) { return 0; } if (len > maxSafeInteger) { return maxSafeInteger; } return len; } function numberIsFinite(value) { return typeof value === 'number' && root_1.root.isFinite(value); } function sign(value) { var valueAsNumber = +value; if (valueAsNumber === 0) { return valueAsNumber; } if (isNaN(valueAsNumber)) { return valueAsNumber; } return valueAsNumber < 0 ? -1 : 1; } //# sourceMappingURL=IteratorObservable.js.map },{"../Observable":16,"../util/Symbol_iterator":140,"../util/errorObject":143,"../util/root":149,"../util/tryCatch":152}],34:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var Subscription_1 = require('../Subscription'); var immediate_1 = require('../schedulers/immediate'); var PromiseObservable = (function (_super) { __extends(PromiseObservable, _super); function PromiseObservable(promise, scheduler) { if (scheduler === void 0) { scheduler = immediate_1.immediate; } _super.call(this); this.promise = promise; this.scheduler = scheduler; this._isScalar = false; } PromiseObservable.create = function (promise, scheduler) { if (scheduler === void 0) { scheduler = immediate_1.immediate; } return new PromiseObservable(promise, scheduler); }; PromiseObservable.prototype._subscribe = function (subscriber) { var _this = this; var scheduler = this.scheduler; var promise = this.promise; if (scheduler === immediate_1.immediate) { if (this._isScalar) { subscriber.next(this.value); subscriber.complete(); } else { promise.then(function (value) { _this._isScalar = true; _this.value = value; subscriber.next(value); subscriber.complete(); }, function (err) { return subscriber.error(err); }) .then(null, function (err) { // escape the promise trap, throw unhandled errors setTimeout(function () { throw err; }); }); } } else { var subscription = new Subscription_1.Subscription(); if (this._isScalar) { var value = this.value; subscription.add(scheduler.schedule(dispatchNext, 0, { value: value, subscriber: subscriber })); } else { promise.then(function (value) { _this._isScalar = true; _this.value = value; subscription.add(scheduler.schedule(dispatchNext, 0, { value: value, subscriber: subscriber })); }, function (err) { return subscription.add(scheduler.schedule(dispatchError, 0, { err: err, subscriber: subscriber })); }) .then(null, function (err) { // escape the promise trap, throw unhandled errors scheduler.schedule(function () { throw err; }); }); } return subscription; } }; return PromiseObservable; })(Observable_1.Observable); exports.PromiseObservable = PromiseObservable; function dispatchNext(_a) { var value = _a.value, subscriber = _a.subscriber; subscriber.next(value); subscriber.complete(); } function dispatchError(_a) { var err = _a.err, subscriber = _a.subscriber; subscriber.error(err); } //# sourceMappingURL=PromiseObservable.js.map },{"../Observable":16,"../Subscription":21,"../schedulers/immediate":129}],35:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var RangeObservable = (function (_super) { __extends(RangeObservable, _super); function RangeObservable(start, end, scheduler) { _super.call(this); this.start = start; this.end = end; this.scheduler = scheduler; } RangeObservable.create = function (start, end, scheduler) { if (start === void 0) { start = 0; } if (end === void 0) { end = 0; } return new RangeObservable(start, end, scheduler); }; RangeObservable.dispatch = function (state) { var start = state.start, index = state.index, end = state.end, subscriber = state.subscriber; if (index >= end) { subscriber.complete(); return; } subscriber.next(start); if (subscriber.isUnsubscribed) { return; } state.index = index + 1; state.start = start + 1; this.schedule(state); }; RangeObservable.prototype._subscribe = function (subscriber) { var index = 0; var start = this.start; var end = this.end; var scheduler = this.scheduler; if (scheduler) { subscriber.add(scheduler.schedule(RangeObservable.dispatch, 0, { index: index, end: end, start: start, subscriber: subscriber })); } else { do { if (index++ >= end) { subscriber.complete(); break; } subscriber.next(start++); if (subscriber.isUnsubscribed) { break; } } while (true); } }; return RangeObservable; })(Observable_1.Observable); exports.RangeObservable = RangeObservable; //# sourceMappingURL=RangeObservable.js.map },{"../Observable":16}],36:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var ErrorObservable_1 = require('./ErrorObservable'); var EmptyObservable_1 = require('./EmptyObservable'); var ScalarObservable = (function (_super) { __extends(ScalarObservable, _super); function ScalarObservable(value, scheduler) { _super.call(this); this.value = value; this.scheduler = scheduler; this._isScalar = true; } ScalarObservable.create = function (value, scheduler) { return new ScalarObservable(value, scheduler); }; ScalarObservable.dispatch = function (state) { var done = state.done, value = state.value, subscriber = state.subscriber; if (done) { subscriber.complete(); return; } subscriber.next(value); if (subscriber.isUnsubscribed) { return; } state.done = true; this.schedule(state); }; ScalarObservable.prototype._subscribe = function (subscriber) { var value = this.value; var scheduler = this.scheduler; if (scheduler) { subscriber.add(scheduler.schedule(ScalarObservable.dispatch, 0, { done: false, value: value, subscriber: subscriber })); } else { subscriber.next(value); if (!subscriber.isUnsubscribed) { subscriber.complete(); } } }; return ScalarObservable; })(Observable_1.Observable); exports.ScalarObservable = ScalarObservable; // TypeScript is weird about class prototype member functions and instance properties touching on it's plate. var proto = ScalarObservable.prototype; proto.map = function (project, thisArg) { var result = tryCatch_1.tryCatch(project).call(thisArg || this, this.value, 0); if (result === errorObject_1.errorObject) { return new ErrorObservable_1.ErrorObservable(errorObject_1.errorObject.e); } else { return new ScalarObservable(project.call(thisArg || this, this.value, 0)); } }; proto.filter = function (select, thisArg) { var result = tryCatch_1.tryCatch(select).call(thisArg || this, this.value, 0); if (result === errorObject_1.errorObject) { return new ErrorObservable_1.ErrorObservable(errorObject_1.errorObject.e); } else if (result) { return this; } else { return new EmptyObservable_1.EmptyObservable(); } }; proto.reduce = function (project, seed) { if (typeof seed === 'undefined') { return this; } var result = tryCatch_1.tryCatch(project)(seed, this.value); if (result === errorObject_1.errorObject) { return new ErrorObservable_1.ErrorObservable(errorObject_1.errorObject.e); } else { return new ScalarObservable(result); } }; proto.scan = function (project, acc) { return this.reduce(project, acc); }; proto.count = function (predicate, thisArg) { if (!predicate) { return new ScalarObservable(1); } else { var result = tryCatch_1.tryCatch(predicate).call(thisArg || this, this.value, 0, this); if (result === errorObject_1.errorObject) { return new ErrorObservable_1.ErrorObservable(errorObject_1.errorObject.e); } else { return new ScalarObservable(result ? 1 : 0); } } }; proto.skip = function (count) { if (count > 0) { return new EmptyObservable_1.EmptyObservable(); } return this; }; proto.take = function (count) { if (count > 0) { return this; } return new EmptyObservable_1.EmptyObservable(); }; //# sourceMappingURL=ScalarObservable.js.map },{"../Observable":16,"../util/errorObject":143,"../util/tryCatch":152,"./EmptyObservable":25,"./ErrorObservable":26}],37:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Observable_1 = require('../Observable'); var nextTick_1 = require('../schedulers/nextTick'); var isNumeric_1 = require('../util/isNumeric'); var SubscribeOnObservable = (function (_super) { __extends(SubscribeOnObservable, _super); function SubscribeOnObservable(source, delayTime, scheduler) { if (delayTime === void 0) { delayTime = 0; } if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } _super.call(this); this.source = source; this.delayTime = delayTime; this.scheduler = scheduler; if (!isNumeric_1.isNumeric(delayTime) || delayTime < 0) { this.delayTime = 0; } if (!scheduler || typeof scheduler.schedule !== 'function') { this.scheduler = nextTick_1.nextTick; } } SubscribeOnObservable.create = function (source, delay, scheduler) { if (delay === void 0) { delay = 0; } if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } return new SubscribeOnObservable(source, delay, scheduler); }; SubscribeOnObservable.dispatch = function (_a) { var source = _a.source, subscriber = _a.subscriber; return source.subscribe(subscriber); }; SubscribeOnObservable.prototype._subscribe = function (subscriber) { var delay = this.delayTime; var source = this.source; var scheduler = this.scheduler; subscriber.add(scheduler.schedule(SubscribeOnObservable.dispatch, delay, { source: source, subscriber: subscriber })); }; return SubscribeOnObservable; })(Observable_1.Observable); exports.SubscribeOnObservable = SubscribeOnObservable; //# sourceMappingURL=SubscribeOnObservable.js.map },{"../Observable":16,"../schedulers/nextTick":130,"../util/isNumeric":145}],38:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var isNumeric_1 = require('../util/isNumeric'); var Observable_1 = require('../Observable'); var nextTick_1 = require('../schedulers/nextTick'); var TimerObservable = (function (_super) { __extends(TimerObservable, _super); function TimerObservable(dueTime, period, scheduler) { if (dueTime === void 0) { dueTime = 0; } _super.call(this); this.dueTime = dueTime; this.period = period; this.scheduler = scheduler; if (isNumeric_1.isNumeric(period)) { this._period = Number(period) < 1 && 1 || Number(period); } else if (period && typeof period.schedule === 'function') { scheduler = period; } if (!scheduler || typeof scheduler.schedule !== 'function') { scheduler = nextTick_1.nextTick; } this.scheduler = scheduler; } TimerObservable.create = function (dueTime, period, scheduler) { if (dueTime === void 0) { dueTime = 0; } return new TimerObservable(dueTime, period, scheduler); }; TimerObservable.dispatch = function (state) { var index = state.index, period = state.period, subscriber = state.subscriber; var action = this; subscriber.next(index); if (typeof period === 'undefined') { subscriber.complete(); return; } else if (subscriber.isUnsubscribed) { return; } if (typeof action.delay === 'undefined') { action.add(action.scheduler.schedule(TimerObservable.dispatch, period, { index: index + 1, period: period, subscriber: subscriber })); } else { state.index = index + 1; action.schedule(state, period); } }; TimerObservable.prototype._subscribe = function (subscriber) { var index = 0; var period = this._period; var dueTime = this.dueTime; var scheduler = this.scheduler; subscriber.add(scheduler.schedule(TimerObservable.dispatch, dueTime, { index: index, period: period, subscriber: subscriber })); }; return TimerObservable; })(Observable_1.Observable); exports.TimerObservable = TimerObservable; //# sourceMappingURL=TimerObservable.js.map },{"../Observable":16,"../schedulers/nextTick":130,"../util/isNumeric":145}],39:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); /** * buffers the incoming observable values until the passed `closingNotifier` emits a value, at which point * it emits the buffer on the returned observable and starts a new buffer internally, awaiting the * next time `closingNotifier` emits * * @param {Observable} closingNotifier an observable, that signals the buffer to be emitted} from the returned observable * @returns {Observable} an observable of buffers, which are arrays of values */ function buffer(closingNotifier) { return this.lift(new BufferOperator(closingNotifier)); } exports.buffer = buffer; var BufferOperator = (function () { function BufferOperator(closingNotifier) { this.closingNotifier = closingNotifier; } BufferOperator.prototype.call = function (subscriber) { return new BufferSubscriber(subscriber, this.closingNotifier); }; return BufferOperator; })(); var BufferSubscriber = (function (_super) { __extends(BufferSubscriber, _super); function BufferSubscriber(destination, closingNotifier) { _super.call(this, destination); this.buffer = []; this.notifierSubscriber = null; this.notifierSubscriber = new BufferClosingNotifierSubscriber(this); this.add(closingNotifier._subscribe(this.notifierSubscriber)); } BufferSubscriber.prototype._next = function (value) { this.buffer.push(value); }; BufferSubscriber.prototype._error = function (err) { this.destination.error(err); }; BufferSubscriber.prototype._complete = function () { this.destination.complete(); }; BufferSubscriber.prototype.flushBuffer = function () { var buffer = this.buffer; this.buffer = []; this.destination.next(buffer); if (this.isUnsubscribed) { this.notifierSubscriber.unsubscribe(); } }; return BufferSubscriber; })(Subscriber_1.Subscriber); var BufferClosingNotifierSubscriber = (function (_super) { __extends(BufferClosingNotifierSubscriber, _super); function BufferClosingNotifierSubscriber(parent) { _super.call(this, null); this.parent = parent; } BufferClosingNotifierSubscriber.prototype._next = function (value) { this.parent.flushBuffer(); }; BufferClosingNotifierSubscriber.prototype._error = function (err) { this.parent.error(err); }; BufferClosingNotifierSubscriber.prototype._complete = function () { this.parent.complete(); }; return BufferClosingNotifierSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=buffer.js.map },{"../Subscriber":20}],40:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); /** * buffers a number of values from the source observable by `bufferSize` then emits the buffer and clears it, and starts a * new buffer each `startBufferEvery` values. If `startBufferEvery` is not provided or is `null`, then new buffers are * started immediately at the start of the source and when each buffer closes and is emitted. * @param {number} bufferSize the maximum size of the buffer emitted. * @param {number} [startBufferEvery] optional interval at which to start a new buffer. (e.g. if `startBufferEvery` is `2`,asdf then a * new buffer will be started on every other value from the source.) A new buffer is started at the beginning of the source by default. * @returns {Observable} an observable of arrays of buffered values. */ function bufferCount(bufferSize, startBufferEvery) { if (startBufferEvery === void 0) { startBufferEvery = null; } return this.lift(new BufferCountOperator(bufferSize, startBufferEvery)); } exports.bufferCount = bufferCount; var BufferCountOperator = (function () { function BufferCountOperator(bufferSize, startBufferEvery) { this.bufferSize = bufferSize; this.startBufferEvery = startBufferEvery; } BufferCountOperator.prototype.call = function (subscriber) { return new BufferCountSubscriber(subscriber, this.bufferSize, this.startBufferEvery); }; return BufferCountOperator; })(); var BufferCountSubscriber = (function (_super) { __extends(BufferCountSubscriber, _super); function BufferCountSubscriber(destination, bufferSize, startBufferEvery) { _super.call(this, destination); this.bufferSize = bufferSize; this.startBufferEvery = startBufferEvery; this.buffers = [[]]; this.count = 0; } BufferCountSubscriber.prototype._next = function (value) { var count = (this.count += 1); var destination = this.destination; var bufferSize = this.bufferSize; var startBufferEvery = (this.startBufferEvery == null) ? bufferSize : this.startBufferEvery; var buffers = this.buffers; var len = buffers.length; var remove = -1; if (count % startBufferEvery === 0) { buffers.push([]); } for (var i = 0; i < len; i++) { var buffer = buffers[i]; buffer.push(value); if (buffer.length === bufferSize) { remove = i; destination.next(buffer); } } if (remove !== -1) { buffers.splice(remove, 1); } }; BufferCountSubscriber.prototype._error = function (err) { this.destination.error(err); }; BufferCountSubscriber.prototype._complete = function () { var destination = this.destination; var buffers = this.buffers; while (buffers.length > 0) { var buffer = buffers.shift(); if (buffer.length > 0) { destination.next(buffer); } } destination.complete(); }; return BufferCountSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=bufferCount.js.map },{"../Subscriber":20}],41:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var nextTick_1 = require('../schedulers/nextTick'); /** * buffers values from the source for a specific time period. Optionally allows new buffers to be set up at an interval. * @param {number} the amount of time to fill each buffer for before emitting them and clearing them. * @param {number} [bufferCreationInterval] the interval at which to start new buffers. * @param {Scheduler} [scheduler] (optional, defaults to `nextTick` scheduler) The scheduler on which to schedule the * intervals that determine buffer boundaries. * @returns {Observable} an observable of arrays of buffered values. */ function bufferTime(bufferTimeSpan, bufferCreationInterval, scheduler) { if (bufferCreationInterval === void 0) { bufferCreationInterval = null; } if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } return this.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, scheduler)); } exports.bufferTime = bufferTime; var BufferTimeOperator = (function () { function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, scheduler) { this.bufferTimeSpan = bufferTimeSpan; this.bufferCreationInterval = bufferCreationInterval; this.scheduler = scheduler; } BufferTimeOperator.prototype.call = function (subscriber) { return new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.scheduler); }; return BufferTimeOperator; })(); var BufferTimeSubscriber = (function (_super) { __extends(BufferTimeSubscriber, _super); function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, scheduler) { _super.call(this, destination); this.bufferTimeSpan = bufferTimeSpan; this.bufferCreationInterval = bufferCreationInterval; this.scheduler = scheduler; this.buffers = []; var buffer = this.openBuffer(); if (bufferCreationInterval !== null && bufferCreationInterval >= 0) { var closeState = { subscriber: this, buffer: buffer }; var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: this, scheduler: scheduler }; this.add(scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); } else { var timeSpanOnlyState = { subscriber: this, buffer: buffer, bufferTimeSpan: bufferTimeSpan }; this.add(scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); } } BufferTimeSubscriber.prototype._next = function (value) { var buffers = this.buffers; var len = buffers.length; for (var i = 0; i < len; i++) { buffers[i].push(value); } }; BufferTimeSubscriber.prototype._error = function (err) { this.buffers.length = 0; this.destination.error(err); }; BufferTimeSubscriber.prototype._complete = function () { var buffers = this.buffers; while (buffers.length > 0) { this.destination.next(buffers.shift()); } this.destination.complete(); }; BufferTimeSubscriber.prototype.openBuffer = function () { var buffer = []; this.buffers.push(buffer); return buffer; }; BufferTimeSubscriber.prototype.closeBuffer = function (buffer) { this.destination.next(buffer); var buffers = this.buffers; buffers.splice(buffers.indexOf(buffer), 1); }; return BufferTimeSubscriber; })(Subscriber_1.Subscriber); function dispatchBufferTimeSpanOnly(state) { var subscriber = state.subscriber; var prevBuffer = state.buffer; if (prevBuffer) { subscriber.closeBuffer(prevBuffer); } state.buffer = subscriber.openBuffer(); if (!subscriber.isUnsubscribed) { this.schedule(state, state.bufferTimeSpan); } } function dispatchBufferCreation(state) { var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; var buffer = subscriber.openBuffer(); var action = this; if (!subscriber.isUnsubscribed) { action.add(scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, buffer: buffer })); action.schedule(state, bufferCreationInterval); } } function dispatchBufferClose(_a) { var subscriber = _a.subscriber, buffer = _a.buffer; subscriber.closeBuffer(buffer); } //# sourceMappingURL=bufferTime.js.map },{"../Subscriber":20,"../schedulers/nextTick":130}],42:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subscription_1 = require('../Subscription'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); /** * buffers values from the source by opening the buffer via signals from an observable provided to `openings`, and closing * and sending the buffers when an observable returned by the `closingSelector` emits. * @param {Observable} openings An observable of notifications to start new buffers * @param {Function} an function, that takes the value emitted by the `openings` observable and returns an Observable, which, * when it emits, signals that the associated buffer should be emitted and cleared. * @returns {Observable} an observable of arrays of buffered values. */ function bufferToggle(openings, closingSelector) { return this.lift(new BufferToggleOperator(openings, closingSelector)); } exports.bufferToggle = bufferToggle; var BufferToggleOperator = (function () { function BufferToggleOperator(openings, closingSelector) { this.openings = openings; this.closingSelector = closingSelector; } BufferToggleOperator.prototype.call = function (subscriber) { return new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector); }; return BufferToggleOperator; })(); var BufferToggleSubscriber = (function (_super) { __extends(BufferToggleSubscriber, _super); function BufferToggleSubscriber(destination, openings, closingSelector) { _super.call(this, destination); this.openings = openings; this.closingSelector = closingSelector; this.contexts = []; this.add(this.openings._subscribe(new BufferToggleOpeningsSubscriber(this))); } BufferToggleSubscriber.prototype._next = function (value) { var contexts = this.contexts; var len = contexts.length; for (var i = 0; i < len; i++) { contexts[i].buffer.push(value); } }; BufferToggleSubscriber.prototype._error = function (err) { this.contexts = null; this.destination.error(err); }; BufferToggleSubscriber.prototype._complete = function () { var contexts = this.contexts; while (contexts.length > 0) { var context = contexts.shift(); this.destination.next(context.buffer); context.subscription.unsubscribe(); context.buffer = null; } this.destination.complete(); }; BufferToggleSubscriber.prototype.openBuffer = function (value) { var closingSelector = this.closingSelector; var contexts = this.contexts; var closingNotifier = tryCatch_1.tryCatch(closingSelector)(value); if (closingNotifier === errorObject_1.errorObject) { var err = closingNotifier.e; this.contexts = null; this.destination.error(err); } else { var context = { buffer: [], subscription: new Subscription_1.Subscription() }; contexts.push(context); var subscriber = new BufferClosingNotifierSubscriber(this, context); var subscription = closingNotifier._subscribe(subscriber); this.add(context.subscription.add(subscription)); } }; BufferToggleSubscriber.prototype.closeBuffer = function (context) { var contexts = this.contexts; if (contexts === null) { return; } var buffer = context.buffer, subscription = context.subscription; this.destination.next(buffer); contexts.splice(contexts.indexOf(context), 1); this.remove(subscription); subscription.unsubscribe(); }; return BufferToggleSubscriber; })(Subscriber_1.Subscriber); var BufferClosingNotifierSubscriber = (function (_super) { __extends(BufferClosingNotifierSubscriber, _super); function BufferClosingNotifierSubscriber(parent, context) { _super.call(this, null); this.parent = parent; this.context = context; } BufferClosingNotifierSubscriber.prototype._next = function () { this.parent.closeBuffer(this.context); }; BufferClosingNotifierSubscriber.prototype._error = function (err) { this.parent.error(err); }; BufferClosingNotifierSubscriber.prototype._complete = function () { this.parent.closeBuffer(this.context); }; return BufferClosingNotifierSubscriber; })(Subscriber_1.Subscriber); var BufferToggleOpeningsSubscriber = (function (_super) { __extends(BufferToggleOpeningsSubscriber, _super); function BufferToggleOpeningsSubscriber(parent) { _super.call(this, null); this.parent = parent; } BufferToggleOpeningsSubscriber.prototype._next = function (value) { this.parent.openBuffer(value); }; BufferToggleOpeningsSubscriber.prototype._error = function (err) { this.parent.error(err); }; BufferToggleOpeningsSubscriber.prototype._complete = function () { // noop }; return BufferToggleOpeningsSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=bufferToggle.js.map },{"../Subscriber":20,"../Subscription":21,"../util/errorObject":143,"../util/tryCatch":152}],43:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); /** * Opens a buffer immediately, then closes the buffer when the observable returned by calling `closingSelector` emits a value. * It that immediately opens a new buffer and repeats the process * @param {function} a function that takes no arguments and returns an Observable that signals buffer closure * @returns {Observable} an observable of arrays of buffered values. */ function bufferWhen(closingSelector) { return this.lift(new BufferWhenOperator(closingSelector)); } exports.bufferWhen = bufferWhen; var BufferWhenOperator = (function () { function BufferWhenOperator(closingSelector) { this.closingSelector = closingSelector; } BufferWhenOperator.prototype.call = function (subscriber) { return new BufferWhenSubscriber(subscriber, this.closingSelector); }; return BufferWhenOperator; })(); var BufferWhenSubscriber = (function (_super) { __extends(BufferWhenSubscriber, _super); function BufferWhenSubscriber(destination, closingSelector) { _super.call(this, destination); this.closingSelector = closingSelector; this.openBuffer(); } BufferWhenSubscriber.prototype._next = function (value) { this.buffer.push(value); }; BufferWhenSubscriber.prototype._error = function (err) { this.buffer = null; this.destination.error(err); }; BufferWhenSubscriber.prototype._complete = function () { var buffer = this.buffer; this.destination.next(buffer); this.buffer = null; this.destination.complete(); }; BufferWhenSubscriber.prototype.openBuffer = function () { var prevClosingNotification = this.closingNotification; if (prevClosingNotification) { this.remove(prevClosingNotification); prevClosingNotification.unsubscribe(); } var buffer = this.buffer; if (buffer) { this.destination.next(buffer); } this.buffer = []; var closingNotifier = tryCatch_1.tryCatch(this.closingSelector)(); if (closingNotifier === errorObject_1.errorObject) { var err = closingNotifier.e; this.buffer = null; this.destination.error(err); } else { this.add(this.closingNotification = closingNotifier._subscribe(new BufferClosingNotifierSubscriber(this))); } }; return BufferWhenSubscriber; })(Subscriber_1.Subscriber); var BufferClosingNotifierSubscriber = (function (_super) { __extends(BufferClosingNotifierSubscriber, _super); function BufferClosingNotifierSubscriber(parent) { _super.call(this, null); this.parent = parent; } BufferClosingNotifierSubscriber.prototype._next = function () { this.parent.openBuffer(); }; BufferClosingNotifierSubscriber.prototype._error = function (err) { this.parent.error(err); }; BufferClosingNotifierSubscriber.prototype._complete = function () { this.parent.openBuffer(); }; return BufferClosingNotifierSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=bufferWhen.js.map },{"../Subscriber":20,"../util/errorObject":143,"../util/tryCatch":152}],44:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); /** * Catches errors on the observable to be handled by returning a new observable or throwing an error. * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which * is the source observable, in case you'd like to "retry" that observable by returning it again. Whatever observable * is returned by the `selector` will be used to continue the observable chain. * @return {Observable} an observable that originates from either the source or the observable returned by the * catch `selector` function. */ function _catch(selector) { var catchOperator = new CatchOperator(selector); var caught = this.lift(catchOperator); catchOperator.caught = caught; return caught; } exports._catch = _catch; var CatchOperator = (function () { function CatchOperator(selector) { this.selector = selector; } CatchOperator.prototype.call = function (subscriber) { return new CatchSubscriber(subscriber, this.selector, this.caught); }; return CatchOperator; })(); var CatchSubscriber = (function (_super) { __extends(CatchSubscriber, _super); function CatchSubscriber(destination, selector, caught) { _super.call(this, destination); this.selector = selector; this.caught = caught; } CatchSubscriber.prototype._error = function (err) { var result = tryCatch_1.tryCatch(this.selector)(err, this.caught); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else { this.add(result.subscribe(this.destination)); } }; return CatchSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=catch.js.map },{"../Subscriber":20,"../util/errorObject":143,"../util/tryCatch":152}],45:[function(require,module,exports){ var combineLatest_support_1 = require('./combineLatest-support'); /** * Takes an Observable of Observables, and collects all observables from it. Once the outer observable * completes, it subscribes to all collected observables and "combines" their values, such that: * - every time an observable emits, the returned observable emits * - when the returned observable emits, it emits all of the most recent values by: * - if a `project` function is provided, it is called with each recent value from each observable in whatever order they arrived, * and the result of the `project` function is what is emitted by the returned observable * - if there is no `project` function, an array of all of the most recent values is emitted by the returned observable. * @param {function} [project] an optional function to map the most recent values from each observable into a new result. Takes each of the * most recent values from each collected observable as arguments, in order. * @returns {Observable} an observable of projected results or arrays of recent values. */ function combineAll(project) { return this.lift(new combineLatest_support_1.CombineLatestOperator(project)); } exports.combineAll = combineAll; //# sourceMappingURL=combineAll.js.map },{"./combineLatest-support":47}],46:[function(require,module,exports){ var ArrayObservable_1 = require('../observables/ArrayObservable'); var combineLatest_support_1 = require('./combineLatest-support'); /** * Combines the values from observables passed as arguments. This is done by subscribing * to each observable, in order, and collecting an array of each of the most recent values any time any of the observables * emits, then either taking that array and passing it as arguments to an option `project` function and emitting the return * value of that, or just emitting the array of recent values directly if there is no `project` function. * @param {...Observable} observables the observables to combine * @param {function} [project] an optional function to project the values from the combined recent values into a new value for emission. * @returns {Observable} an observable of other projected values from the most recent values from each observable, or an array of each of * the most recent values from each observable. */ function combineLatest() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } var project, scheduler; if (typeof observables[observables.length - 1].schedule === 'function') { scheduler = observables.pop(); } if (typeof observables[observables.length - 1] === 'function') { project = observables.pop(); } return new ArrayObservable_1.ArrayObservable(observables, scheduler).lift(new combineLatest_support_1.CombineLatestOperator(project)); } exports.combineLatest = combineLatest; //# sourceMappingURL=combineLatest-static.js.map },{"../observables/ArrayObservable":22,"./combineLatest-support":47}],47:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); var CombineLatestOperator = (function () { function CombineLatestOperator(project) { this.project = project; } CombineLatestOperator.prototype.call = function (subscriber) { return new CombineLatestSubscriber(subscriber, this.project); }; return CombineLatestOperator; })(); exports.CombineLatestOperator = CombineLatestOperator; var CombineLatestSubscriber = (function (_super) { __extends(CombineLatestSubscriber, _super); function CombineLatestSubscriber(destination, project) { _super.call(this, destination); this.project = project; this.active = 0; this.values = []; this.observables = []; this.toRespond = []; } CombineLatestSubscriber.prototype._next = function (observable) { var toRespond = this.toRespond; toRespond.push(toRespond.length); this.observables.push(observable); }; CombineLatestSubscriber.prototype._complete = function () { var observables = this.observables; var len = observables.length; if (len === 0) { this.destination.complete(); } else { this.active = len; for (var i = 0; i < len; i++) { var observable = observables[i]; this.add(subscribeToResult_1.subscribeToResult(this, observable, observable, i)); } } }; CombineLatestSubscriber.prototype.notifyComplete = function (innerSubscriber) { if ((this.active -= 1) === 0) { this.destination.complete(); } }; CombineLatestSubscriber.prototype.notifyNext = function (observable, value, outerIndex, innerIndex) { var values = this.values; values[outerIndex] = value; var toRespond = this.toRespond; if (toRespond.length > 0) { var found = toRespond.indexOf(outerIndex); if (found !== -1) { toRespond.splice(found, 1); } } if (toRespond.length === 0) { var project = this.project; var destination = this.destination; if (project) { var result = tryCatch_1.tryCatch(project).apply(this, values); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); } else { destination.next(result); } } else { destination.next(values); } } }; return CombineLatestSubscriber; })(OuterSubscriber_1.OuterSubscriber); exports.CombineLatestSubscriber = CombineLatestSubscriber; //# sourceMappingURL=combineLatest-support.js.map },{"../OuterSubscriber":17,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],48:[function(require,module,exports){ var ArrayObservable_1 = require('../observables/ArrayObservable'); var combineLatest_support_1 = require('./combineLatest-support'); /** * Combines the values from this observable with values from observables passed as arguments. This is done by subscribing * to each observable, in order, and collecting an array of each of the most recent values any time any of the observables * emits, then either taking that array and passing it as arguments to an option `project` function and emitting the return * value of that, or just emitting the array of recent values directly if there is no `project` function. * @param {...Observable} observables the observables to combine the source with * @param {function} [project] an optional function to project the values from the combined recent values into a new value for emission. * @returns {Observable} an observable of other projected values from the most recent values from each observable, or an array of each of * the most recent values from each observable. */ function combineLatest() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } observables.unshift(this); var project; if (typeof observables[observables.length - 1] === 'function') { project = observables.pop(); } return new ArrayObservable_1.ArrayObservable(observables).lift(new combineLatest_support_1.CombineLatestOperator(project)); } exports.combineLatest = combineLatest; //# sourceMappingURL=combineLatest.js.map },{"../observables/ArrayObservable":22,"./combineLatest-support":47}],49:[function(require,module,exports){ var immediate_1 = require('../schedulers/immediate'); var mergeAll_support_1 = require('./mergeAll-support'); var ArrayObservable_1 = require('../observables/ArrayObservable'); /** * Joins multiple observables together by subscribing to them one at a time and merging their results * into the returned observable. Will wait for each observable to complete before moving on to the next. * @params {...Observable} the observables to concatenate * @params {Scheduler} [scheduler] an optional scheduler to schedule each observable subscription on. * @returns {Observable} All values of each passed observable merged into a single observable, in order, in serial fashion. */ function concat() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } var scheduler = immediate_1.immediate; var args = observables; if (typeof (args[observables.length - 1]).schedule === 'function') { scheduler = args.pop(); } return new ArrayObservable_1.ArrayObservable(observables, scheduler).lift(new mergeAll_support_1.MergeAllOperator(1)); } exports.concat = concat; //# sourceMappingURL=concat-static.js.map },{"../observables/ArrayObservable":22,"../schedulers/immediate":129,"./mergeAll-support":77}],50:[function(require,module,exports){ var Observable_1 = require('../Observable'); /** * Joins this observable with multiple other observables by subscribing to them one at a time, starting with the source, * and merging their results into the returned observable. Will wait for each observable to complete before moving * on to the next. * @params {...Observable} the observables to concatenate * @params {Scheduler} [scheduler] an optional scheduler to schedule each observable subscription on. * @returns {Observable} All values of each passed observable merged into a single observable, in order, in serial fashion. */ function concat() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } var args = observables; args.unshift(this); if (args.length > 1 && typeof args[args.length - 1].schedule === 'function') { args.splice(args.length - 2, 0, 1); } return Observable_1.Observable.fromArray(args).mergeAll(1); } exports.concat = concat; //# sourceMappingURL=concat.js.map },{"../Observable":16}],51:[function(require,module,exports){ var mergeAll_support_1 = require('./mergeAll-support'); /** * Joins every Observable emitted by the source (an Observable of Observables), in a serial * fashion. Subscribing to each one only when the previous one has completed, and merging * all of their values into the returned observable. * * __Warning:__ If the source Observable emits Observables quickly and endlessly, and the * Observables it emits generally complete slower than the source emits, you can run into * memory issues as the incoming observables collect in an unbounded buffer. * * @returns {Observable} an observable of values merged from the incoming observables. */ function concatAll() { return this.lift(new mergeAll_support_1.MergeAllOperator(1)); } exports.concatAll = concatAll; //# sourceMappingURL=concatAll.js.map },{"./mergeAll-support":77}],52:[function(require,module,exports){ var mergeMap_support_1 = require('./mergeMap-support'); /** * Maps values from the source observable into new Observables, then merges them in a serialized fashion, * waiting for each one to complete before merging the next. * * __Warning:__ if incoming values arrive endlessly and faster than the observables they're being mapped * to can complete, it will result in memory issues as created observables amass in an unbounded buffer * waiting for their turn to be subscribed to. * * @param {function} project a function to map incoming values into Observables to be concatenated. accepts * the `value` and the `index` as arguments. * @param {function} [projectResult] an optional result selector that is applied to values before they're * merged into the returned observable. The arguments passed to this function are: * - `outerValue`: the value that came from the source * - `innerValue`: the value that came from the projected Observable * - `outerIndex`: the "index" of the value that came from the source * - `innerIndex`: the "index" of the value from the projected Observable * @returns {Observable} an observable of values merged from the projected Observables as they were subscribed to, * one at a time. Optionally, these values may have been projected from a passed `projectResult` argument. */ function concatMap(project, projectResult) { return this.lift(new mergeMap_support_1.MergeMapOperator(project, projectResult, 1)); } exports.concatMap = concatMap; //# sourceMappingURL=concatMap.js.map },{"./mergeMap-support":79}],53:[function(require,module,exports){ var mergeMapTo_support_1 = require('./mergeMapTo-support'); /** * Maps values from the source to a specific observable, and merges them together in a serialized fashion. * * @param {Observable} observable the observable to map each source value to * @param {function} [projectResult] an optional result selector that is applied to values before they're * merged into the returned observable. The arguments passed to this function are: * - `outerValue`: the value that came from the source * - `innerValue`: the value that came from the projected Observable * - `outerIndex`: the "index" of the value that came from the source * - `innerIndex`: the "index" of the value from the projected Observable * @returns {Observable} an observable of values merged together by joining the passed observable * with itself, one after the other, for each value emitted from the source. */ function concatMapTo(observable, projectResult) { return this.lift(new mergeMapTo_support_1.MergeMapToOperator(observable, projectResult, 1)); } exports.concatMapTo = concatMapTo; //# sourceMappingURL=concatMapTo.js.map },{"./mergeMapTo-support":81}],54:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var bindCallback_1 = require('../util/bindCallback'); /** * Returns an observable of a single number that represents the number of items that either: * Match a provided predicate function, _or_ if a predicate is not provided, the number * represents the total count of all items in the source observable. The count is emitted * by the returned observable when the source observable completes. * @param {function} [predicate] a boolean function to select what values are to be counted. * it is provided with arguments of: * - `value`: the value from the source observable * - `index`: the "index" of the value from the source observable * - `source`: the source observable instance itself. * @param {any} [thisArg] the optional `this` context to use in the `predicate` function * @returns {Observable} an observable of one number that represents the count as described * above */ function count(predicate, thisArg) { return this.lift(new CountOperator(predicate, thisArg, this)); } exports.count = count; var CountOperator = (function () { function CountOperator(predicate, thisArg, source) { this.predicate = predicate; this.thisArg = thisArg; this.source = source; } CountOperator.prototype.call = function (subscriber) { return new CountSubscriber(subscriber, this.predicate, this.thisArg, this.source); }; return CountOperator; })(); var CountSubscriber = (function (_super) { __extends(CountSubscriber, _super); function CountSubscriber(destination, predicate, thisArg, source) { _super.call(this, destination); this.thisArg = thisArg; this.source = source; this.count = 0; this.index = 0; if (typeof predicate === 'function') { this.predicate = bindCallback_1.bindCallback(predicate, thisArg, 3); } } CountSubscriber.prototype._next = function (value) { var predicate = this.predicate; var passed = true; if (predicate) { passed = tryCatch_1.tryCatch(predicate)(value, this.index++, this.source); if (passed === errorObject_1.errorObject) { this.destination.error(passed.e); return; } } if (passed) { this.count += 1; } }; CountSubscriber.prototype._complete = function () { this.destination.next(this.count); this.destination.complete(); }; return CountSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=count.js.map },{"../Subscriber":20,"../util/bindCallback":142,"../util/errorObject":143,"../util/tryCatch":152}],55:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var PromiseObservable_1 = require('../observables/PromiseObservable'); var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var isPromise_1 = require('../util/isPromise'); var errorObject_1 = require('../util/errorObject'); function debounce(durationSelector) { return this.lift(new DebounceOperator(durationSelector)); } exports.debounce = debounce; var DebounceOperator = (function () { function DebounceOperator(durationSelector) { this.durationSelector = durationSelector; } DebounceOperator.prototype.call = function (observer) { return new DebounceSubscriber(observer, this.durationSelector); }; return DebounceOperator; })(); var DebounceSubscriber = (function (_super) { __extends(DebounceSubscriber, _super); function DebounceSubscriber(destination, durationSelector) { _super.call(this, destination); this.durationSelector = durationSelector; this.debouncedSubscription = null; this.lastValue = null; this._index = 0; } Object.defineProperty(DebounceSubscriber.prototype, "index", { get: function () { return this._index; }, enumerable: true, configurable: true }); DebounceSubscriber.prototype._next = function (value) { var destination = this.destination; var currentIndex = ++this._index; var debounce = tryCatch_1.tryCatch(this.durationSelector)(value); if (debounce === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); } else { if (isPromise_1.isPromise(debounce)) { debounce = PromiseObservable_1.PromiseObservable.create(debounce); } this.lastValue = value; this.add(this.debouncedSubscription = debounce._subscribe(new DurationSelectorSubscriber(this, currentIndex))); } }; DebounceSubscriber.prototype._complete = function () { this.debouncedNext(); this.destination.complete(); }; DebounceSubscriber.prototype.debouncedNext = function () { this.clearDebounce(); if (this.lastValue != null) { this.destination.next(this.lastValue); this.lastValue = null; } }; DebounceSubscriber.prototype.clearDebounce = function () { var debouncedSubscription = this.debouncedSubscription; if (debouncedSubscription !== null) { this.remove(debouncedSubscription); this.debouncedSubscription = null; } }; return DebounceSubscriber; })(Subscriber_1.Subscriber); var DurationSelectorSubscriber = (function (_super) { __extends(DurationSelectorSubscriber, _super); function DurationSelectorSubscriber(parent, currentIndex) { _super.call(this, null); this.parent = parent; this.currentIndex = currentIndex; } DurationSelectorSubscriber.prototype.debounceNext = function () { var parent = this.parent; if (this.currentIndex === parent.index) { parent.debouncedNext(); if (!this.isUnsubscribed) { this.unsubscribe(); } } }; DurationSelectorSubscriber.prototype._next = function (unused) { this.debounceNext(); }; DurationSelectorSubscriber.prototype._error = function (err) { this.parent.error(err); }; DurationSelectorSubscriber.prototype._complete = function () { this.debounceNext(); }; return DurationSelectorSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=debounce.js.map },{"../Subscriber":20,"../observables/PromiseObservable":34,"../util/errorObject":143,"../util/isPromise":146,"../util/tryCatch":152}],56:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var nextTick_1 = require('../schedulers/nextTick'); function debounceTime(dueTime, scheduler) { if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } return this.lift(new DebounceTimeOperator(dueTime, scheduler)); } exports.debounceTime = debounceTime; var DebounceTimeOperator = (function () { function DebounceTimeOperator(dueTime, scheduler) { this.dueTime = dueTime; this.scheduler = scheduler; } DebounceTimeOperator.prototype.call = function (subscriber) { return new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler); }; return DebounceTimeOperator; })(); var DebounceTimeSubscriber = (function (_super) { __extends(DebounceTimeSubscriber, _super); function DebounceTimeSubscriber(destination, dueTime, scheduler) { _super.call(this, destination); this.dueTime = dueTime; this.scheduler = scheduler; this.debouncedSubscription = null; this.lastValue = null; } DebounceTimeSubscriber.prototype._next = function (value) { this.clearDebounce(); this.lastValue = value; this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); }; DebounceTimeSubscriber.prototype._complete = function () { this.debouncedNext(); this.destination.complete(); }; DebounceTimeSubscriber.prototype.debouncedNext = function () { this.clearDebounce(); if (this.lastValue != null) { this.destination.next(this.lastValue); this.lastValue = null; } }; DebounceTimeSubscriber.prototype.clearDebounce = function () { var debouncedSubscription = this.debouncedSubscription; if (debouncedSubscription !== null) { this.remove(debouncedSubscription); debouncedSubscription.unsubscribe(); this.debouncedSubscription = null; } }; return DebounceTimeSubscriber; })(Subscriber_1.Subscriber); function dispatchNext(subscriber) { subscriber.debouncedNext(); } //# sourceMappingURL=debounceTime.js.map },{"../Subscriber":20,"../schedulers/nextTick":130}],57:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); function defaultIfEmpty(defaultValue) { if (defaultValue === void 0) { defaultValue = null; } return this.lift(new DefaultIfEmptyOperator(defaultValue)); } exports.defaultIfEmpty = defaultIfEmpty; var DefaultIfEmptyOperator = (function () { function DefaultIfEmptyOperator(defaultValue) { this.defaultValue = defaultValue; } DefaultIfEmptyOperator.prototype.call = function (subscriber) { return new DefaultIfEmptySubscriber(subscriber, this.defaultValue); }; return DefaultIfEmptyOperator; })(); var DefaultIfEmptySubscriber = (function (_super) { __extends(DefaultIfEmptySubscriber, _super); function DefaultIfEmptySubscriber(destination, defaultValue) { _super.call(this, destination); this.defaultValue = defaultValue; this.isEmpty = true; } DefaultIfEmptySubscriber.prototype._next = function (x) { this.isEmpty = false; this.destination.next(x); }; DefaultIfEmptySubscriber.prototype._complete = function () { if (this.isEmpty) { this.destination.next(this.defaultValue); } this.destination.complete(); }; return DefaultIfEmptySubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=defaultIfEmpty.js.map },{"../Subscriber":20}],58:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Notification_1 = require('../Notification'); var immediate_1 = require('../schedulers/immediate'); var isDate_1 = require('../util/isDate'); function delay(delay, scheduler) { if (scheduler === void 0) { scheduler = immediate_1.immediate; } var absoluteDelay = isDate_1.isDate(delay); var delayFor = absoluteDelay ? (+delay - scheduler.now()) : delay; return this.lift(new DelayOperator(delayFor, scheduler)); } exports.delay = delay; var DelayOperator = (function () { function DelayOperator(delay, scheduler) { this.delay = delay; this.scheduler = scheduler; } DelayOperator.prototype.call = function (subscriber) { return new DelaySubscriber(subscriber, this.delay, this.scheduler); }; return DelayOperator; })(); var DelaySubscriber = (function (_super) { __extends(DelaySubscriber, _super); function DelaySubscriber(destination, delay, scheduler) { _super.call(this, destination); this.delay = delay; this.scheduler = scheduler; this.queue = []; this.active = false; this.errored = false; } DelaySubscriber.dispatch = function (state) { var source = state.source; var queue = source.queue; var scheduler = state.scheduler; var destination = state.destination; while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { queue.shift().notification.observe(destination); } if (queue.length > 0) { var delay_1 = Math.max(0, queue[0].time - scheduler.now()); this.schedule(state, delay_1); } else { source.active = false; } }; DelaySubscriber.prototype._schedule = function (scheduler) { this.active = true; this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { source: this, destination: this.destination, scheduler: scheduler })); }; DelaySubscriber.prototype.scheduleNotification = function (notification) { if (this.errored === true) { return; } var scheduler = this.scheduler; var message = new DelayMessage(scheduler.now() + this.delay, notification); this.queue.push(message); if (this.active === false) { this._schedule(scheduler); } }; DelaySubscriber.prototype._next = function (value) { this.scheduleNotification(Notification_1.Notification.createNext(value)); }; DelaySubscriber.prototype._error = function (err) { this.errored = true; this.queue = []; this.destination.error(err); }; DelaySubscriber.prototype._complete = function () { this.scheduleNotification(Notification_1.Notification.createComplete()); }; return DelaySubscriber; })(Subscriber_1.Subscriber); var DelayMessage = (function () { function DelayMessage(time, notification) { this.time = time; this.notification = notification; } return DelayMessage; })(); //# sourceMappingURL=delay.js.map },{"../Notification":15,"../Subscriber":20,"../schedulers/immediate":129,"../util/isDate":144}],59:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); function dematerialize() { return this.lift(new DeMaterializeOperator()); } exports.dematerialize = dematerialize; var DeMaterializeOperator = (function () { function DeMaterializeOperator() { } DeMaterializeOperator.prototype.call = function (subscriber) { return new DeMaterializeSubscriber(subscriber); }; return DeMaterializeOperator; })(); var DeMaterializeSubscriber = (function (_super) { __extends(DeMaterializeSubscriber, _super); function DeMaterializeSubscriber(destination) { _super.call(this, destination); } DeMaterializeSubscriber.prototype._next = function (value) { value.observe(this.destination); }; return DeMaterializeSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=dematerialize.js.map },{"../Subscriber":20}],60:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var bindCallback_1 = require('../util/bindCallback'); function distinctUntilChanged(compare, thisArg) { return this.lift(new DistinctUntilChangedOperator(thisArg ? bindCallback_1.bindCallback(compare, thisArg, 2) : compare)); } exports.distinctUntilChanged = distinctUntilChanged; var DistinctUntilChangedOperator = (function () { function DistinctUntilChangedOperator(compare) { this.compare = compare; } DistinctUntilChangedOperator.prototype.call = function (subscriber) { return new DistinctUntilChangedSubscriber(subscriber, this.compare); }; return DistinctUntilChangedOperator; })(); var DistinctUntilChangedSubscriber = (function (_super) { __extends(DistinctUntilChangedSubscriber, _super); function DistinctUntilChangedSubscriber(destination, compare) { _super.call(this, destination); this.hasValue = false; if (typeof compare === 'function') { this.compare = compare; } } DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { return x === y; }; DistinctUntilChangedSubscriber.prototype._next = function (x) { var result = false; if (this.hasValue) { result = tryCatch_1.tryCatch(this.compare)(this.value, x); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); return; } } else { this.hasValue = true; } if (Boolean(result) === false) { this.value = x; this.destination.next(x); } }; return DistinctUntilChangedSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=distinctUntilChanged.js.map },{"../Subscriber":20,"../util/bindCallback":142,"../util/errorObject":143,"../util/tryCatch":152}],61:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var noop_1 = require('../util/noop'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); function _do(nextOrObserver, error, complete) { var next; if (nextOrObserver && typeof nextOrObserver === 'object') { next = nextOrObserver.next; error = nextOrObserver.error; complete = nextOrObserver.complete; } else { next = nextOrObserver; } return this.lift(new DoOperator(next || noop_1.noop, error || noop_1.noop, complete || noop_1.noop)); } exports._do = _do; var DoOperator = (function () { function DoOperator(next, error, complete) { this.next = next; this.error = error; this.complete = complete; } DoOperator.prototype.call = function (subscriber) { return new DoSubscriber(subscriber, this.next, this.error, this.complete); }; return DoOperator; })(); var DoSubscriber = (function (_super) { __extends(DoSubscriber, _super); function DoSubscriber(destination, next, error, complete) { _super.call(this, destination); this.__next = next; this.__error = error; this.__complete = complete; } DoSubscriber.prototype._next = function (x) { var result = tryCatch_1.tryCatch(this.__next)(x); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else { this.destination.next(x); } }; DoSubscriber.prototype._error = function (e) { var result = tryCatch_1.tryCatch(this.__error)(e); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else { this.destination.error(e); } }; DoSubscriber.prototype._complete = function () { var result = tryCatch_1.tryCatch(this.__complete)(); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else { this.destination.complete(); } }; return DoSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=do.js.map },{"../Subscriber":20,"../util/errorObject":143,"../util/noop":147,"../util/tryCatch":152}],62:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var ScalarObservable_1 = require('../observables/ScalarObservable'); var ArrayObservable_1 = require('../observables/ArrayObservable'); var ErrorObservable_1 = require('../observables/ErrorObservable'); var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var bindCallback_1 = require('../util/bindCallback'); function every(predicate, thisArg) { var source = this; var result; if (source._isScalar) { result = tryCatch_1.tryCatch(predicate)(source.value, 0, source); if (result === errorObject_1.errorObject) { return new ErrorObservable_1.ErrorObservable(errorObject_1.errorObject.e, source.scheduler); } else { return new ScalarObservable_1.ScalarObservable(result, source.scheduler); } } if (source instanceof ArrayObservable_1.ArrayObservable) { var array = source.array; var result_1 = tryCatch_1.tryCatch(function (array, predicate) { return array.every(predicate); })(array, predicate); if (result_1 === errorObject_1.errorObject) { return new ErrorObservable_1.ErrorObservable(errorObject_1.errorObject.e, source.scheduler); } else { return new ScalarObservable_1.ScalarObservable(result_1, source.scheduler); } } return source.lift(new EveryOperator(predicate, thisArg, source)); } exports.every = every; var EveryOperator = (function () { function EveryOperator(predicate, thisArg, source) { this.predicate = predicate; this.thisArg = thisArg; this.source = source; } EveryOperator.prototype.call = function (observer) { return new EverySubscriber(observer, this.predicate, this.thisArg, this.source); }; return EveryOperator; })(); var EverySubscriber = (function (_super) { __extends(EverySubscriber, _super); function EverySubscriber(destination, predicate, thisArg, source) { _super.call(this, destination); this.thisArg = thisArg; this.source = source; this.predicate = undefined; this.index = 0; if (typeof predicate === 'function') { this.predicate = bindCallback_1.bindCallback(predicate, thisArg, 3); } } EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { this.destination.next(everyValueMatch); this.destination.complete(); }; EverySubscriber.prototype._next = function (value) { var predicate = this.predicate; if (predicate === undefined) { this.destination.error(new TypeError('predicate must be a function')); } var result = tryCatch_1.tryCatch(predicate)(value, this.index++, this.source); if (result === errorObject_1.errorObject) { this.destination.error(result.e); } else if (!result) { this.notifyComplete(false); } }; EverySubscriber.prototype._complete = function () { this.notifyComplete(true); }; return EverySubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=every.js.map },{"../Subscriber":20,"../observables/ArrayObservable":22,"../observables/ErrorObservable":26,"../observables/ScalarObservable":36,"../util/bindCallback":142,"../util/errorObject":143,"../util/tryCatch":152}],63:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); var ExpandOperator = (function () { function ExpandOperator(project, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } this.project = project; this.concurrent = concurrent; } ExpandOperator.prototype.call = function (subscriber) { return new ExpandSubscriber(subscriber, this.project, this.concurrent); }; return ExpandOperator; })(); exports.ExpandOperator = ExpandOperator; var ExpandSubscriber = (function (_super) { __extends(ExpandSubscriber, _super); function ExpandSubscriber(destination, project, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } _super.call(this, destination); this.project = project; this.concurrent = concurrent; this.index = 0; this.active = 0; this.hasCompleted = false; if (concurrent < Number.POSITIVE_INFINITY) { this.buffer = []; } } ExpandSubscriber.prototype._next = function (value) { var index = this.index++; this.destination.next(value); if (this.active < this.concurrent) { var result = tryCatch_1.tryCatch(this.project)(value, index); if (result === errorObject_1.errorObject) { this.destination.error(result.e); } else { if (result._isScalar) { this._next(result.value); } else { this.active++; this.add(subscribeToResult_1.subscribeToResult(this, result, value, index)); } } } else { this.buffer.push(value); } }; ExpandSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.hasCompleted && this.active === 0) { this.destination.complete(); } }; ExpandSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; this.remove(innerSub); this.active--; if (buffer && buffer.length > 0) { this._next(buffer.shift()); } if (this.hasCompleted && this.active === 0) { this.destination.complete(); } }; ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { this._next(innerValue); }; return ExpandSubscriber; })(OuterSubscriber_1.OuterSubscriber); exports.ExpandSubscriber = ExpandSubscriber; //# sourceMappingURL=expand-support.js.map },{"../OuterSubscriber":17,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],64:[function(require,module,exports){ var expand_support_1 = require('./expand-support'); function expand(project, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } return this.lift(new expand_support_1.ExpandOperator(project, concurrent)); } exports.expand = expand; //# sourceMappingURL=expand.js.map },{"./expand-support":63}],65:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var bindCallback_1 = require('../util/bindCallback'); /** * Similar to the well-known `Array.prototype.filter` method, this operator filters values down to a set * allowed by a `select` function * * @param {Function} select a function that is used to select the resulting values * if it returns `true`, the value is emitted, if `false` the value is not passed to the resulting observable * @param {any} [thisArg] an optional argument to determine the value of `this` in the `select` function * @returns {Observable} an observable of values allowed by the select function */ function filter(select, thisArg) { return this.lift(new FilterOperator(select, thisArg)); } exports.filter = filter; var FilterOperator = (function () { function FilterOperator(select, thisArg) { this.select = bindCallback_1.bindCallback(select, thisArg, 2); } FilterOperator.prototype.call = function (subscriber) { return new FilterSubscriber(subscriber, this.select); }; return FilterOperator; })(); var FilterSubscriber = (function (_super) { __extends(FilterSubscriber, _super); function FilterSubscriber(destination, select) { _super.call(this, destination); this.count = 0; this.select = select; } FilterSubscriber.prototype._next = function (x) { var result = tryCatch_1.tryCatch(this.select)(x, this.count++); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else if (Boolean(result)) { this.destination.next(x); } }; return FilterSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=filter.js.map },{"../Subscriber":20,"../util/bindCallback":142,"../util/errorObject":143,"../util/tryCatch":152}],66:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subscription_1 = require('../Subscription'); var bindCallback_1 = require('../util/bindCallback'); function _finally(finallySelector, thisArg) { return this.lift(new FinallyOperator(thisArg ? bindCallback_1.bindCallback(finallySelector, thisArg, 2) : finallySelector)); } exports._finally = _finally; var FinallyOperator = (function () { function FinallyOperator(finallySelector) { this.finallySelector = finallySelector; } FinallyOperator.prototype.call = function (subscriber) { return new FinallySubscriber(subscriber, this.finallySelector); }; return FinallyOperator; })(); var FinallySubscriber = (function (_super) { __extends(FinallySubscriber, _super); function FinallySubscriber(destination, finallySelector) { _super.call(this, destination); this.add(new Subscription_1.Subscription(finallySelector)); } return FinallySubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=finally.js.map },{"../Subscriber":20,"../Subscription":21,"../util/bindCallback":142}],67:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var EmptyError_1 = require('../util/EmptyError'); function first(predicate, resultSelector, defaultValue) { return this.lift(new FirstOperator(predicate, resultSelector, defaultValue, this)); } exports.first = first; var FirstOperator = (function () { function FirstOperator(predicate, resultSelector, defaultValue, source) { this.predicate = predicate; this.resultSelector = resultSelector; this.defaultValue = defaultValue; this.source = source; } FirstOperator.prototype.call = function (observer) { return new FirstSubscriber(observer, this.predicate, this.resultSelector, this.defaultValue, this.source); }; return FirstOperator; })(); var FirstSubscriber = (function (_super) { __extends(FirstSubscriber, _super); function FirstSubscriber(destination, predicate, resultSelector, defaultValue, source) { _super.call(this, destination); this.predicate = predicate; this.resultSelector = resultSelector; this.defaultValue = defaultValue; this.source = source; this.index = 0; this.hasCompleted = false; } FirstSubscriber.prototype._next = function (value) { var _a = this, destination = _a.destination, predicate = _a.predicate, resultSelector = _a.resultSelector; var index = this.index++; var passed = true; if (predicate) { passed = tryCatch_1.tryCatch(predicate)(value, index, this.source); if (passed === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); return; } } if (passed) { if (resultSelector) { var result = tryCatch_1.tryCatch(resultSelector)(value, index); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); return; } destination.next(result); } else { destination.next(value); } destination.complete(); this.hasCompleted = true; } }; FirstSubscriber.prototype._complete = function () { var destination = this.destination; if (!this.hasCompleted && typeof this.defaultValue !== 'undefined') { destination.next(this.defaultValue); destination.complete(); } else if (!this.hasCompleted) { destination.error(new EmptyError_1.EmptyError); } }; return FirstSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=first.js.map },{"../Subscriber":20,"../util/EmptyError":135,"../util/errorObject":143,"../util/tryCatch":152}],68:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscription_1 = require('../Subscription'); var Observable_1 = require('../Observable'); var RefCountSubscription = (function (_super) { __extends(RefCountSubscription, _super); function RefCountSubscription() { _super.call(this); this.attemptedToUnsubscribePrimary = false; this.count = 0; } RefCountSubscription.prototype.setPrimary = function (subscription) { this.primary = subscription; }; RefCountSubscription.prototype.unsubscribe = function () { if (!this.isUnsubscribed && !this.attemptedToUnsubscribePrimary) { this.attemptedToUnsubscribePrimary = true; if (this.count === 0) { _super.prototype.unsubscribe.call(this); this.primary.unsubscribe(); } } }; return RefCountSubscription; })(Subscription_1.Subscription); exports.RefCountSubscription = RefCountSubscription; var GroupedObservable = (function (_super) { __extends(GroupedObservable, _super); function GroupedObservable(key, groupSubject, refCountSubscription) { _super.call(this); this.key = key; this.groupSubject = groupSubject; this.refCountSubscription = refCountSubscription; } GroupedObservable.prototype._subscribe = function (subscriber) { var subscription = new Subscription_1.Subscription(); if (this.refCountSubscription && !this.refCountSubscription.isUnsubscribed) { subscription.add(new InnerRefCountSubscription(this.refCountSubscription)); } subscription.add(this.groupSubject.subscribe(subscriber)); return subscription; }; return GroupedObservable; })(Observable_1.Observable); exports.GroupedObservable = GroupedObservable; var InnerRefCountSubscription = (function (_super) { __extends(InnerRefCountSubscription, _super); function InnerRefCountSubscription(parent) { _super.call(this); this.parent = parent; parent.count++; } InnerRefCountSubscription.prototype.unsubscribe = function () { if (!this.parent.isUnsubscribed && !this.isUnsubscribed) { _super.prototype.unsubscribe.call(this); this.parent.count--; if (this.parent.count === 0 && this.parent.attemptedToUnsubscribePrimary) { this.parent.unsubscribe(); this.parent.primary.unsubscribe(); } } }; return InnerRefCountSubscription; })(Subscription_1.Subscription); exports.InnerRefCountSubscription = InnerRefCountSubscription; //# sourceMappingURL=groupBy-support.js.map },{"../Observable":16,"../Subscription":21}],69:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Observable_1 = require('../Observable'); var Subject_1 = require('../Subject'); var Map_1 = require('../util/Map'); var FastMap_1 = require('../util/FastMap'); var groupBy_support_1 = require('./groupBy-support'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); function groupBy(keySelector, elementSelector, durationSelector) { return new GroupByObservable(this, keySelector, elementSelector, durationSelector); } exports.groupBy = groupBy; var GroupByObservable = (function (_super) { __extends(GroupByObservable, _super); function GroupByObservable(source, keySelector, elementSelector, durationSelector) { _super.call(this); this.source = source; this.keySelector = keySelector; this.elementSelector = elementSelector; this.durationSelector = durationSelector; } GroupByObservable.prototype._subscribe = function (subscriber) { var refCountSubscription = new groupBy_support_1.RefCountSubscription(); var groupBySubscriber = new GroupBySubscriber(subscriber, refCountSubscription, this.keySelector, this.elementSelector, this.durationSelector); refCountSubscription.setPrimary(this.source.subscribe(groupBySubscriber)); return refCountSubscription; }; return GroupByObservable; })(Observable_1.Observable); exports.GroupByObservable = GroupByObservable; var GroupBySubscriber = (function (_super) { __extends(GroupBySubscriber, _super); function GroupBySubscriber(destination, refCountSubscription, keySelector, elementSelector, durationSelector) { _super.call(this); this.refCountSubscription = refCountSubscription; this.keySelector = keySelector; this.elementSelector = elementSelector; this.durationSelector = durationSelector; this.groups = null; this.destination = destination; this.add(destination); } GroupBySubscriber.prototype._next = function (x) { var key = tryCatch_1.tryCatch(this.keySelector)(x); if (key === errorObject_1.errorObject) { this.error(key.e); } else { var groups = this.groups; var elementSelector = this.elementSelector; var durationSelector = this.durationSelector; if (!groups) { groups = this.groups = typeof key === 'string' ? new FastMap_1.FastMap() : new Map_1.Map(); } var group = groups.get(key); if (!group) { groups.set(key, group = new Subject_1.Subject()); var groupedObservable = new groupBy_support_1.GroupedObservable(key, group, this.refCountSubscription); if (durationSelector) { var duration = tryCatch_1.tryCatch(durationSelector)(new groupBy_support_1.GroupedObservable(key, group)); if (duration === errorObject_1.errorObject) { this.error(duration.e); } else { this.add(duration._subscribe(new GroupDurationSubscriber(key, group, this))); } } this.destination.next(groupedObservable); } if (elementSelector) { var value = tryCatch_1.tryCatch(elementSelector)(x); if (value === errorObject_1.errorObject) { this.error(value.e); } else { group.next(value); } } else { group.next(x); } } }; GroupBySubscriber.prototype._error = function (err) { var _this = this; var groups = this.groups; if (groups) { groups.forEach(function (group, key) { group.error(err); _this.removeGroup(key); }); } this.destination.error(err); }; GroupBySubscriber.prototype._complete = function () { var _this = this; var groups = this.groups; if (groups) { groups.forEach(function (group, key) { group.complete(); _this.removeGroup(group); }); } this.destination.complete(); }; GroupBySubscriber.prototype.removeGroup = function (key) { this.groups.delete(key); }; return GroupBySubscriber; })(Subscriber_1.Subscriber); var GroupDurationSubscriber = (function (_super) { __extends(GroupDurationSubscriber, _super); function GroupDurationSubscriber(key, group, parent) { _super.call(this, null); this.key = key; this.group = group; this.parent = parent; } GroupDurationSubscriber.prototype._next = function (value) { this.group.complete(); this.parent.removeGroup(this.key); }; GroupDurationSubscriber.prototype._error = function (err) { this.group.error(err); this.parent.removeGroup(this.key); }; GroupDurationSubscriber.prototype._complete = function () { this.group.complete(); this.parent.removeGroup(this.key); }; return GroupDurationSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=groupBy.js.map },{"../Observable":16,"../Subject":19,"../Subscriber":20,"../util/FastMap":136,"../util/Map":138,"../util/errorObject":143,"../util/tryCatch":152,"./groupBy-support":68}],70:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var noop_1 = require('../util/noop'); function ignoreElements() { return this.lift(new IgnoreElementsOperator()); } exports.ignoreElements = ignoreElements; ; var IgnoreElementsOperator = (function () { function IgnoreElementsOperator() { } IgnoreElementsOperator.prototype.call = function (subscriber) { return new IgnoreElementsSubscriber(subscriber); }; return IgnoreElementsOperator; })(); var IgnoreElementsSubscriber = (function (_super) { __extends(IgnoreElementsSubscriber, _super); function IgnoreElementsSubscriber() { _super.apply(this, arguments); } IgnoreElementsSubscriber.prototype._next = function (unused) { noop_1.noop(); }; return IgnoreElementsSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=ignoreElements.js.map },{"../Subscriber":20,"../util/noop":147}],71:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var EmptyError_1 = require('../util/EmptyError'); function last(predicate, resultSelector, defaultValue) { return this.lift(new LastOperator(predicate, resultSelector, defaultValue, this)); } exports.last = last; var LastOperator = (function () { function LastOperator(predicate, resultSelector, defaultValue, source) { this.predicate = predicate; this.resultSelector = resultSelector; this.defaultValue = defaultValue; this.source = source; } LastOperator.prototype.call = function (observer) { return new LastSubscriber(observer, this.predicate, this.resultSelector, this.defaultValue, this.source); }; return LastOperator; })(); var LastSubscriber = (function (_super) { __extends(LastSubscriber, _super); function LastSubscriber(destination, predicate, resultSelector, defaultValue, source) { _super.call(this, destination); this.predicate = predicate; this.resultSelector = resultSelector; this.defaultValue = defaultValue; this.source = source; this.hasValue = false; this.index = 0; if (typeof defaultValue !== 'undefined') { this.lastValue = defaultValue; this.hasValue = true; } } LastSubscriber.prototype._next = function (value) { var _a = this, predicate = _a.predicate, resultSelector = _a.resultSelector, destination = _a.destination; var index = this.index++; if (predicate) { var found = tryCatch_1.tryCatch(predicate)(value, index, this.source); if (found === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); return; } if (found) { if (resultSelector) { var result = tryCatch_1.tryCatch(resultSelector)(value, index); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); return; } this.lastValue = result; } else { this.lastValue = value; } this.hasValue = true; } } else { this.lastValue = value; this.hasValue = true; } }; LastSubscriber.prototype._complete = function () { var destination = this.destination; if (this.hasValue) { destination.next(this.lastValue); destination.complete(); } else { destination.error(new EmptyError_1.EmptyError); } }; return LastSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=last.js.map },{"../Subscriber":20,"../util/EmptyError":135,"../util/errorObject":143,"../util/tryCatch":152}],72:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var bindCallback_1 = require('../util/bindCallback'); /** * Similar to the well known `Array.prototype.map` function, this operator * applies a projection to each value and emits that projection in the returned observable * * @param {Function} project the function to create projection * @param {any} [thisArg] an optional argument to define what `this` is in the project function * @returns {Observable} a observable of projected values */ function map(project, thisArg) { return this.lift(new MapOperator(project, thisArg)); } exports.map = map; var MapOperator = (function () { function MapOperator(project, thisArg) { this.project = bindCallback_1.bindCallback(project, thisArg, 2); } MapOperator.prototype.call = function (subscriber) { return new MapSubscriber(subscriber, this.project); }; return MapOperator; })(); var MapSubscriber = (function (_super) { __extends(MapSubscriber, _super); function MapSubscriber(destination, project) { _super.call(this, destination); this.count = 0; this.project = project; } MapSubscriber.prototype._next = function (x) { var result = tryCatch_1.tryCatch(this.project)(x, this.count++); if (result === errorObject_1.errorObject) { this.error(errorObject_1.errorObject.e); } else { this.destination.next(result); } }; return MapSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=map.js.map },{"../Subscriber":20,"../util/bindCallback":142,"../util/errorObject":143,"../util/tryCatch":152}],73:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); /** * Maps every value to the same value every time. * @param {any} value the value to map each incoming value to * @returns {Observable} an observable of the passed value that emits everytime the source does */ function mapTo(value) { return this.lift(new MapToOperator(value)); } exports.mapTo = mapTo; var MapToOperator = (function () { function MapToOperator(value) { this.value = value; } MapToOperator.prototype.call = function (subscriber) { return new MapToSubscriber(subscriber, this.value); }; return MapToOperator; })(); var MapToSubscriber = (function (_super) { __extends(MapToSubscriber, _super); function MapToSubscriber(destination, value) { _super.call(this, destination); this.value = value; } MapToSubscriber.prototype._next = function (x) { this.destination.next(this.value); }; return MapToSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=mapTo.js.map },{"../Subscriber":20}],74:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Notification_1 = require('../Notification'); function materialize() { return this.lift(new MaterializeOperator()); } exports.materialize = materialize; var MaterializeOperator = (function () { function MaterializeOperator() { } MaterializeOperator.prototype.call = function (subscriber) { return new MaterializeSubscriber(subscriber); }; return MaterializeOperator; })(); var MaterializeSubscriber = (function (_super) { __extends(MaterializeSubscriber, _super); function MaterializeSubscriber(destination) { _super.call(this, destination); } MaterializeSubscriber.prototype._next = function (value) { this.destination.next(Notification_1.Notification.createNext(value)); }; MaterializeSubscriber.prototype._error = function (err) { var destination = this.destination; destination.next(Notification_1.Notification.createError(err)); destination.complete(); }; MaterializeSubscriber.prototype._complete = function () { var destination = this.destination; destination.next(Notification_1.Notification.createComplete()); destination.complete(); }; return MaterializeSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=materialize.js.map },{"../Notification":15,"../Subscriber":20}],75:[function(require,module,exports){ var ArrayObservable_1 = require('../observables/ArrayObservable'); var mergeAll_support_1 = require('./mergeAll-support'); var immediate_1 = require('../schedulers/immediate'); function merge() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } var concurrent = Number.POSITIVE_INFINITY; var scheduler = immediate_1.immediate; var last = observables[observables.length - 1]; if (typeof last.schedule === 'function') { scheduler = observables.pop(); if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { concurrent = observables.pop(); } } else if (typeof last === 'number') { concurrent = observables.pop(); } if (observables.length === 1) { return observables[0]; } return new ArrayObservable_1.ArrayObservable(observables, scheduler).lift(new mergeAll_support_1.MergeAllOperator(concurrent)); } exports.merge = merge; //# sourceMappingURL=merge-static.js.map },{"../observables/ArrayObservable":22,"../schedulers/immediate":129,"./mergeAll-support":77}],76:[function(require,module,exports){ var merge_static_1 = require('./merge-static'); function merge() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } observables.unshift(this); return merge_static_1.merge.apply(this, observables); } exports.merge = merge; //# sourceMappingURL=merge.js.map },{"./merge-static":75}],77:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); var MergeAllOperator = (function () { function MergeAllOperator(concurrent) { this.concurrent = concurrent; } MergeAllOperator.prototype.call = function (observer) { return new MergeAllSubscriber(observer, this.concurrent); }; return MergeAllOperator; })(); exports.MergeAllOperator = MergeAllOperator; var MergeAllSubscriber = (function (_super) { __extends(MergeAllSubscriber, _super); function MergeAllSubscriber(destination, concurrent) { _super.call(this, destination); this.concurrent = concurrent; this.hasCompleted = false; this.buffer = []; this.active = 0; } MergeAllSubscriber.prototype._next = function (observable) { if (this.active < this.concurrent) { if (observable._isScalar) { this.destination.next(observable.value); } else { this.active++; this.add(subscribeToResult_1.subscribeToResult(this, observable)); } } else { this.buffer.push(observable); } }; MergeAllSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } }; MergeAllSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; this.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); } else if (this.active === 0 && this.hasCompleted) { this.destination.complete(); } }; return MergeAllSubscriber; })(OuterSubscriber_1.OuterSubscriber); exports.MergeAllSubscriber = MergeAllSubscriber; //# sourceMappingURL=mergeAll-support.js.map },{"../OuterSubscriber":17,"../util/subscribeToResult":150}],78:[function(require,module,exports){ var mergeAll_support_1 = require('./mergeAll-support'); function mergeAll(concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } return this.lift(new mergeAll_support_1.MergeAllOperator(concurrent)); } exports.mergeAll = mergeAll; //# sourceMappingURL=mergeAll.js.map },{"./mergeAll-support":77}],79:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var subscribeToResult_1 = require('../util/subscribeToResult'); var OuterSubscriber_1 = require('../OuterSubscriber'); var MergeMapOperator = (function () { function MergeMapOperator(project, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } this.project = project; this.resultSelector = resultSelector; this.concurrent = concurrent; } MergeMapOperator.prototype.call = function (observer) { return new MergeMapSubscriber(observer, this.project, this.resultSelector, this.concurrent); }; return MergeMapOperator; })(); exports.MergeMapOperator = MergeMapOperator; var MergeMapSubscriber = (function (_super) { __extends(MergeMapSubscriber, _super); function MergeMapSubscriber(destination, project, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } _super.call(this, destination); this.project = project; this.resultSelector = resultSelector; this.concurrent = concurrent; this.hasCompleted = false; this.buffer = []; this.active = 0; this.index = 0; } MergeMapSubscriber.prototype._next = function (value) { if (this.active < this.concurrent) { var index = this.index++; var ish = tryCatch_1.tryCatch(this.project)(value, index); var destination = this.destination; if (ish === errorObject_1.errorObject) { destination.error(ish.e); } else { this.active++; this._innerSub(ish, value, index); } } else { this.buffer.push(value); } }; MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { this.add(subscribeToResult_1.subscribeToResult(this, ish, value, index)); }; MergeMapSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } }; MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { var _a = this, destination = _a.destination, resultSelector = _a.resultSelector; if (resultSelector) { var result = tryCatch_1.tryCatch(resultSelector)(outerValue, innerValue, outerIndex, innerIndex); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); } else { destination.next(result); } } else { destination.next(innerValue); } }; MergeMapSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; this.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); } else if (this.active === 0 && this.hasCompleted) { this.destination.complete(); } }; return MergeMapSubscriber; })(OuterSubscriber_1.OuterSubscriber); exports.MergeMapSubscriber = MergeMapSubscriber; //# sourceMappingURL=mergeMap-support.js.map },{"../OuterSubscriber":17,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],80:[function(require,module,exports){ var mergeMap_support_1 = require('./mergeMap-support'); function mergeMap(project, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } return this.lift(new mergeMap_support_1.MergeMapOperator(project, resultSelector, concurrent)); } exports.mergeMap = mergeMap; //# sourceMappingURL=mergeMap.js.map },{"./mergeMap-support":79}],81:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); var MergeMapToOperator = (function () { function MergeMapToOperator(ish, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } this.ish = ish; this.resultSelector = resultSelector; this.concurrent = concurrent; } MergeMapToOperator.prototype.call = function (observer) { return new MergeMapToSubscriber(observer, this.ish, this.resultSelector, this.concurrent); }; return MergeMapToOperator; })(); exports.MergeMapToOperator = MergeMapToOperator; var MergeMapToSubscriber = (function (_super) { __extends(MergeMapToSubscriber, _super); function MergeMapToSubscriber(destination, ish, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } _super.call(this, destination); this.ish = ish; this.resultSelector = resultSelector; this.concurrent = concurrent; this.hasCompleted = false; this.buffer = []; this.active = 0; this.index = 0; } MergeMapToSubscriber.prototype._next = function (value) { if (this.active < this.concurrent) { var resultSelector = this.resultSelector; var index = this.index++; var ish = this.ish; var destination = this.destination; if (ish === errorObject_1.errorObject) { destination.error(ish.e); } else { this.active++; this._innerSub(ish, destination, resultSelector, value, index); } } else { this.buffer.push(value); } }; MergeMapToSubscriber.prototype._innerSub = function (ish, destination, resultSelector, value, index) { this.add(subscribeToResult_1.subscribeToResult(this, ish, value, index)); }; MergeMapToSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } }; MergeMapToSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { var _a = this, resultSelector = _a.resultSelector, destination = _a.destination; if (resultSelector) { var result = tryCatch_1.tryCatch(resultSelector)(outerValue, innerValue, outerIndex, innerIndex); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); } else { destination.next(result); } } else { destination.next(innerValue); } }; MergeMapToSubscriber.prototype.notifyError = function (err) { this.destination.error(err); }; MergeMapToSubscriber.prototype.notifyComplete = function (innerSub) { var buffer = this.buffer; this.remove(innerSub); this.active--; if (buffer.length > 0) { this._next(buffer.shift()); } else if (this.active === 0 && this.hasCompleted) { this.destination.complete(); } }; return MergeMapToSubscriber; })(OuterSubscriber_1.OuterSubscriber); exports.MergeMapToSubscriber = MergeMapToSubscriber; //# sourceMappingURL=mergeMapTo-support.js.map },{"../OuterSubscriber":17,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],82:[function(require,module,exports){ var mergeMapTo_support_1 = require('./mergeMapTo-support'); function mergeMapTo(observable, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } return this.lift(new mergeMapTo_support_1.MergeMapToOperator(observable, resultSelector, concurrent)); } exports.mergeMapTo = mergeMapTo; //# sourceMappingURL=mergeMapTo.js.map },{"./mergeMapTo-support":81}],83:[function(require,module,exports){ var ConnectableObservable_1 = require('../observables/ConnectableObservable'); function multicast(subjectOrSubjectFactory) { var subjectFactory; if (typeof subjectOrSubjectFactory === 'function') { subjectFactory = subjectOrSubjectFactory; } else { subjectFactory = function subjectFactory() { return subjectOrSubjectFactory; }; } return new ConnectableObservable_1.ConnectableObservable(this, subjectFactory); } exports.multicast = multicast; //# sourceMappingURL=multicast.js.map },{"../observables/ConnectableObservable":23}],84:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Notification_1 = require('../Notification'); var ObserveOnOperator = (function () { function ObserveOnOperator(scheduler, delay) { if (delay === void 0) { delay = 0; } this.scheduler = scheduler; this.delay = delay; } ObserveOnOperator.prototype.call = function (subscriber) { return new ObserveOnSubscriber(subscriber, this.scheduler, this.delay); }; return ObserveOnOperator; })(); exports.ObserveOnOperator = ObserveOnOperator; var ObserveOnSubscriber = (function (_super) { __extends(ObserveOnSubscriber, _super); function ObserveOnSubscriber(destination, scheduler, delay) { if (delay === void 0) { delay = 0; } _super.call(this, destination); this.scheduler = scheduler; this.delay = delay; } ObserveOnSubscriber.dispatch = function (_a) { var notification = _a.notification, destination = _a.destination; notification.observe(destination); }; ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); }; ObserveOnSubscriber.prototype._next = function (value) { this.scheduleMessage(Notification_1.Notification.createNext(value)); }; ObserveOnSubscriber.prototype._error = function (err) { this.scheduleMessage(Notification_1.Notification.createError(err)); }; ObserveOnSubscriber.prototype._complete = function () { this.scheduleMessage(Notification_1.Notification.createComplete()); }; return ObserveOnSubscriber; })(Subscriber_1.Subscriber); exports.ObserveOnSubscriber = ObserveOnSubscriber; var ObserveOnMessage = (function () { function ObserveOnMessage(notification, destination) { this.notification = notification; this.destination = destination; } return ObserveOnMessage; })(); //# sourceMappingURL=observeOn-support.js.map },{"../Notification":15,"../Subscriber":20}],85:[function(require,module,exports){ var observeOn_support_1 = require('./observeOn-support'); function observeOn(scheduler, delay) { if (delay === void 0) { delay = 0; } return this.lift(new observeOn_support_1.ObserveOnOperator(scheduler, delay)); } exports.observeOn = observeOn; //# sourceMappingURL=observeOn.js.map },{"./observeOn-support":84}],86:[function(require,module,exports){ var not_1 = require('../util/not'); var filter_1 = require('./filter'); function partition(predicate, thisArg) { return [ filter_1.filter.call(this, predicate), filter_1.filter.call(this, not_1.not(predicate, thisArg)) ]; } exports.partition = partition; //# sourceMappingURL=partition.js.map },{"../util/not":148,"./filter":65}],87:[function(require,module,exports){ var Subject_1 = require('../Subject'); var multicast_1 = require('./multicast'); function publish() { return multicast_1.multicast.call(this, new Subject_1.Subject()); } exports.publish = publish; //# sourceMappingURL=publish.js.map },{"../Subject":19,"./multicast":83}],88:[function(require,module,exports){ var BehaviorSubject_1 = require('../subjects/BehaviorSubject'); var multicast_1 = require('./multicast'); function publishBehavior(value) { return multicast_1.multicast.call(this, new BehaviorSubject_1.BehaviorSubject(value)); } exports.publishBehavior = publishBehavior; //# sourceMappingURL=publishBehavior.js.map },{"../subjects/BehaviorSubject":131,"./multicast":83}],89:[function(require,module,exports){ var ReplaySubject_1 = require('../subjects/ReplaySubject'); var multicast_1 = require('./multicast'); function publishReplay(bufferSize, windowTime, scheduler) { if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; } if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; } return multicast_1.multicast.call(this, new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler)); } exports.publishReplay = publishReplay; //# sourceMappingURL=publishReplay.js.map },{"../subjects/ReplaySubject":132,"./multicast":83}],90:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var ReduceOperator = (function () { function ReduceOperator(project, seed) { this.project = project; this.seed = seed; } ReduceOperator.prototype.call = function (subscriber) { return new ReduceSubscriber(subscriber, this.project, this.seed); }; return ReduceOperator; })(); exports.ReduceOperator = ReduceOperator; var ReduceSubscriber = (function (_super) { __extends(ReduceSubscriber, _super); function ReduceSubscriber(destination, project, seed) { _super.call(this, destination); this.hasValue = false; this.acc = seed; this.project = project; this.hasSeed = typeof seed !== 'undefined'; } ReduceSubscriber.prototype._next = function (x) { if (this.hasValue || (this.hasValue = this.hasSeed)) { var result = tryCatch_1.tryCatch(this.project).call(this, this.acc, x); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else { this.acc = result; } } else { this.acc = x; this.hasValue = true; } }; ReduceSubscriber.prototype._complete = function () { if (this.hasValue || this.hasSeed) { this.destination.next(this.acc); } this.destination.complete(); }; return ReduceSubscriber; })(Subscriber_1.Subscriber); exports.ReduceSubscriber = ReduceSubscriber; //# sourceMappingURL=reduce-support.js.map },{"../Subscriber":20,"../util/errorObject":143,"../util/tryCatch":152}],91:[function(require,module,exports){ var reduce_support_1 = require('./reduce-support'); function reduce(project, seed) { return this.lift(new reduce_support_1.ReduceOperator(project, seed)); } exports.reduce = reduce; //# sourceMappingURL=reduce.js.map },{"./reduce-support":90}],92:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var EmptyObservable_1 = require('../observables/EmptyObservable'); function repeat(count) { if (count === void 0) { count = -1; } if (count === 0) { return new EmptyObservable_1.EmptyObservable(); } else { return this.lift(new RepeatOperator(count, this)); } } exports.repeat = repeat; var RepeatOperator = (function () { function RepeatOperator(count, source) { this.count = count; this.source = source; } RepeatOperator.prototype.call = function (subscriber) { return new FirstRepeatSubscriber(subscriber, this.count, this.source); }; return RepeatOperator; })(); var FirstRepeatSubscriber = (function (_super) { __extends(FirstRepeatSubscriber, _super); function FirstRepeatSubscriber(destination, count, source) { _super.call(this, null); this.destination = destination; this.count = count; this.source = source; if (count === 0) { this.destination.complete(); _super.prototype.unsubscribe.call(this); } this.lastSubscription = this; } FirstRepeatSubscriber.prototype._next = function (value) { this.destination.next(value); }; FirstRepeatSubscriber.prototype._error = function (err) { this.destination.error(err); }; FirstRepeatSubscriber.prototype.complete = function () { if (!this.isUnsubscribed) { this.resubscribe(this.count); } }; FirstRepeatSubscriber.prototype.unsubscribe = function () { var lastSubscription = this.lastSubscription; if (lastSubscription === this) { _super.prototype.unsubscribe.call(this); } else { lastSubscription.unsubscribe(); } }; FirstRepeatSubscriber.prototype.resubscribe = function (count) { this.lastSubscription.unsubscribe(); if (count - 1 === 0) { this.destination.complete(); } else { var nextSubscriber = new MoreRepeatSubscriber(this, count - 1); this.lastSubscription = this.source.subscribe(nextSubscriber); } }; return FirstRepeatSubscriber; })(Subscriber_1.Subscriber); var MoreRepeatSubscriber = (function (_super) { __extends(MoreRepeatSubscriber, _super); function MoreRepeatSubscriber(parent, count) { _super.call(this, null); this.parent = parent; this.count = count; } MoreRepeatSubscriber.prototype._next = function (value) { this.parent.destination.next(value); }; MoreRepeatSubscriber.prototype._error = function (err) { this.parent.destination.error(err); }; MoreRepeatSubscriber.prototype._complete = function () { var count = this.count; this.parent.resubscribe(count < 0 ? -1 : count); }; return MoreRepeatSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=repeat.js.map },{"../Subscriber":20,"../observables/EmptyObservable":25}],93:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); function retry(count) { if (count === void 0) { count = 0; } return this.lift(new RetryOperator(count, this)); } exports.retry = retry; var RetryOperator = (function () { function RetryOperator(count, source) { this.count = count; this.source = source; } RetryOperator.prototype.call = function (subscriber) { return new FirstRetrySubscriber(subscriber, this.count, this.source); }; return RetryOperator; })(); var FirstRetrySubscriber = (function (_super) { __extends(FirstRetrySubscriber, _super); function FirstRetrySubscriber(destination, count, source) { _super.call(this, null); this.destination = destination; this.count = count; this.source = source; this.lastSubscription = this; } FirstRetrySubscriber.prototype._next = function (value) { this.destination.next(value); }; FirstRetrySubscriber.prototype.error = function (error) { if (!this.isUnsubscribed) { _super.prototype.unsubscribe.call(this); this.resubscribe(); } }; FirstRetrySubscriber.prototype._complete = function () { _super.prototype.unsubscribe.call(this); this.destination.complete(); }; FirstRetrySubscriber.prototype.unsubscribe = function () { var lastSubscription = this.lastSubscription; if (lastSubscription === this) { _super.prototype.unsubscribe.call(this); } else { lastSubscription.unsubscribe(); } }; FirstRetrySubscriber.prototype.resubscribe = function (retried) { if (retried === void 0) { retried = 0; } this.lastSubscription.unsubscribe(); var nextSubscriber = new RetryMoreSubscriber(this, this.count, retried + 1); this.lastSubscription = this.source.subscribe(nextSubscriber); }; return FirstRetrySubscriber; })(Subscriber_1.Subscriber); var RetryMoreSubscriber = (function (_super) { __extends(RetryMoreSubscriber, _super); function RetryMoreSubscriber(parent, count, retried) { if (retried === void 0) { retried = 0; } _super.call(this, null); this.parent = parent; this.count = count; this.retried = retried; } RetryMoreSubscriber.prototype._next = function (value) { this.parent.destination.next(value); }; RetryMoreSubscriber.prototype._error = function (err) { var parent = this.parent; var retried = this.retried; var count = this.count; if (count && retried === count) { parent.destination.error(err); } else { parent.resubscribe(retried); } }; RetryMoreSubscriber.prototype._complete = function () { this.parent.destination.complete(); }; return RetryMoreSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=retry.js.map },{"../Subscriber":20}],94:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subject_1 = require('../Subject'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); function retryWhen(notifier) { return this.lift(new RetryWhenOperator(notifier, this)); } exports.retryWhen = retryWhen; var RetryWhenOperator = (function () { function RetryWhenOperator(notifier, source) { this.notifier = notifier; this.source = source; } RetryWhenOperator.prototype.call = function (subscriber) { return new FirstRetryWhenSubscriber(subscriber, this.notifier, this.source); }; return RetryWhenOperator; })(); var FirstRetryWhenSubscriber = (function (_super) { __extends(FirstRetryWhenSubscriber, _super); function FirstRetryWhenSubscriber(destination, notifier, source) { _super.call(this, null); this.destination = destination; this.notifier = notifier; this.source = source; this.lastSubscription = this; } FirstRetryWhenSubscriber.prototype._next = function (value) { this.destination.next(value); }; FirstRetryWhenSubscriber.prototype.error = function (err) { if (!this.isUnsubscribed) { _super.prototype.unsubscribe.call(this); if (!this.retryNotifications) { this.errors = new Subject_1.Subject(); var notifications = tryCatch_1.tryCatch(this.notifier).call(this, this.errors); if (notifications === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else { this.retryNotifications = notifications; var notificationSubscriber = new RetryNotificationSubscriber(this); this.notificationSubscription = notifications.subscribe(notificationSubscriber); } } this.errors.next(err); } }; FirstRetryWhenSubscriber.prototype.destinationError = function (err) { this.tearDown(); this.destination.error(err); }; FirstRetryWhenSubscriber.prototype._complete = function () { this.destinationComplete(); }; FirstRetryWhenSubscriber.prototype.destinationComplete = function () { this.tearDown(); this.destination.complete(); }; FirstRetryWhenSubscriber.prototype.unsubscribe = function () { var lastSubscription = this.lastSubscription; if (lastSubscription === this) { _super.prototype.unsubscribe.call(this); } else { this.tearDown(); } }; FirstRetryWhenSubscriber.prototype.tearDown = function () { _super.prototype.unsubscribe.call(this); this.lastSubscription.unsubscribe(); var notificationSubscription = this.notificationSubscription; if (notificationSubscription) { notificationSubscription.unsubscribe(); } }; FirstRetryWhenSubscriber.prototype.resubscribe = function () { this.lastSubscription.unsubscribe(); var nextSubscriber = new MoreRetryWhenSubscriber(this); this.lastSubscription = this.source.subscribe(nextSubscriber); }; return FirstRetryWhenSubscriber; })(Subscriber_1.Subscriber); var MoreRetryWhenSubscriber = (function (_super) { __extends(MoreRetryWhenSubscriber, _super); function MoreRetryWhenSubscriber(parent) { _super.call(this, null); this.parent = parent; } MoreRetryWhenSubscriber.prototype._next = function (value) { this.parent.destination.next(value); }; MoreRetryWhenSubscriber.prototype._error = function (err) { this.parent.errors.next(err); }; MoreRetryWhenSubscriber.prototype._complete = function () { this.parent.destinationComplete(); }; return MoreRetryWhenSubscriber; })(Subscriber_1.Subscriber); var RetryNotificationSubscriber = (function (_super) { __extends(RetryNotificationSubscriber, _super); function RetryNotificationSubscriber(parent) { _super.call(this, null); this.parent = parent; } RetryNotificationSubscriber.prototype._next = function (value) { this.parent.resubscribe(); }; RetryNotificationSubscriber.prototype._error = function (err) { this.parent.destinationError(err); }; RetryNotificationSubscriber.prototype._complete = function () { this.parent.destinationComplete(); }; return RetryNotificationSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=retryWhen.js.map },{"../Subject":19,"../Subscriber":20,"../util/errorObject":143,"../util/tryCatch":152}],95:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); function sample(notifier) { return this.lift(new SampleOperator(notifier)); } exports.sample = sample; var SampleOperator = (function () { function SampleOperator(notifier) { this.notifier = notifier; } SampleOperator.prototype.call = function (subscriber) { return new SampleSubscriber(subscriber, this.notifier); }; return SampleOperator; })(); var SampleSubscriber = (function (_super) { __extends(SampleSubscriber, _super); function SampleSubscriber(destination, notifier) { _super.call(this, destination); this.notifier = notifier; this.hasValue = false; this.add(notifier._subscribe(new SampleNoficationSubscriber(this))); } SampleSubscriber.prototype._next = function (value) { this.lastValue = value; this.hasValue = true; }; SampleSubscriber.prototype.notifyNext = function () { if (this.hasValue) { this.destination.next(this.lastValue); } }; return SampleSubscriber; })(Subscriber_1.Subscriber); var SampleNoficationSubscriber = (function (_super) { __extends(SampleNoficationSubscriber, _super); function SampleNoficationSubscriber(parent) { _super.call(this, null); this.parent = parent; } SampleNoficationSubscriber.prototype._next = function () { this.parent.notifyNext(); }; SampleNoficationSubscriber.prototype._error = function (err) { this.parent.error(err); }; SampleNoficationSubscriber.prototype._complete = function () { //noop }; return SampleNoficationSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=sample.js.map },{"../Subscriber":20}],96:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var nextTick_1 = require('../schedulers/nextTick'); function sampleTime(delay, scheduler) { if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } return this.lift(new SampleTimeOperator(delay, scheduler)); } exports.sampleTime = sampleTime; var SampleTimeOperator = (function () { function SampleTimeOperator(delay, scheduler) { this.delay = delay; this.scheduler = scheduler; } SampleTimeOperator.prototype.call = function (subscriber) { return new SampleTimeSubscriber(subscriber, this.delay, this.scheduler); }; return SampleTimeOperator; })(); var SampleTimeSubscriber = (function (_super) { __extends(SampleTimeSubscriber, _super); function SampleTimeSubscriber(destination, delay, scheduler) { _super.call(this, destination); this.delay = delay; this.scheduler = scheduler; this.hasValue = false; this.add(scheduler.schedule(dispatchNotification, delay, { subscriber: this, delay: delay })); } SampleTimeSubscriber.prototype._next = function (value) { this.lastValue = value; this.hasValue = true; }; SampleTimeSubscriber.prototype.notifyNext = function () { if (this.hasValue) { this.destination.next(this.lastValue); } }; return SampleTimeSubscriber; })(Subscriber_1.Subscriber); function dispatchNotification(state) { var subscriber = state.subscriber, delay = state.delay; subscriber.notifyNext(); this.schedule(state, delay); } //# sourceMappingURL=sampleTime.js.map },{"../Subscriber":20,"../schedulers/nextTick":130}],97:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); function scan(project, acc) { return this.lift(new ScanOperator(project, acc)); } exports.scan = scan; var ScanOperator = (function () { function ScanOperator(project, acc) { this.acc = acc; this.project = project; } ScanOperator.prototype.call = function (subscriber) { return new ScanSubscriber(subscriber, this.project, this.acc); }; return ScanOperator; })(); var ScanSubscriber = (function (_super) { __extends(ScanSubscriber, _super); function ScanSubscriber(destination, project, acc) { _super.call(this, destination); this.accumulatorSet = false; this.acc = acc; this.project = project; this.accumulatorSet = typeof acc !== 'undefined'; } Object.defineProperty(ScanSubscriber.prototype, "acc", { get: function () { return this._acc; }, set: function (value) { this.accumulatorSet = true; this._acc = value; }, enumerable: true, configurable: true }); ScanSubscriber.prototype._next = function (x) { if (!this.accumulatorSet) { this.acc = x; this.destination.next(x); } else { var result = tryCatch_1.tryCatch(this.project).call(this, this.acc, x); if (result === errorObject_1.errorObject) { this.destination.error(errorObject_1.errorObject.e); } else { this.acc = result; this.destination.next(this.acc); } } }; return ScanSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=scan.js.map },{"../Subscriber":20,"../util/errorObject":143,"../util/tryCatch":152}],98:[function(require,module,exports){ var multicast_1 = require('./multicast'); var Subject_1 = require('../Subject'); function shareSubjectFactory() { return new Subject_1.Subject(); } function share() { return multicast_1.multicast.call(this, shareSubjectFactory).refCount(); } exports.share = share; ; //# sourceMappingURL=share.js.map },{"../Subject":19,"./multicast":83}],99:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var bindCallback_1 = require('../util/bindCallback'); var EmptyError_1 = require('../util/EmptyError'); function single(predicate, thisArg) { return this.lift(new SingleOperator(predicate, thisArg, this)); } exports.single = single; var SingleOperator = (function () { function SingleOperator(predicate, thisArg, source) { this.predicate = predicate; this.thisArg = thisArg; this.source = source; } SingleOperator.prototype.call = function (subscriber) { return new SingleSubscriber(subscriber, this.predicate, this.thisArg, this.source); }; return SingleOperator; })(); var SingleSubscriber = (function (_super) { __extends(SingleSubscriber, _super); function SingleSubscriber(destination, predicate, thisArg, source) { _super.call(this, destination); this.thisArg = thisArg; this.source = source; this.seenValue = false; this.index = 0; if (typeof predicate === 'function') { this.predicate = bindCallback_1.bindCallback(predicate, thisArg, 3); } } SingleSubscriber.prototype.applySingleValue = function (value) { if (this.seenValue) { this.destination.error('Sequence contains more than one element'); } else { this.seenValue = true; this.singleValue = value; } }; SingleSubscriber.prototype._next = function (value) { var predicate = this.predicate; var currentIndex = this.index++; if (predicate) { var result = tryCatch_1.tryCatch(predicate)(value, currentIndex, this.source); if (result === errorObject_1.errorObject) { this.destination.error(result.e); } else if (result) { this.applySingleValue(value); } } else { this.applySingleValue(value); } }; SingleSubscriber.prototype._complete = function () { var destination = this.destination; if (this.index > 0) { destination.next(this.seenValue ? this.singleValue : undefined); destination.complete(); } else { destination.error(new EmptyError_1.EmptyError); } }; return SingleSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=single.js.map },{"../Subscriber":20,"../util/EmptyError":135,"../util/bindCallback":142,"../util/errorObject":143,"../util/tryCatch":152}],100:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); function skip(total) { return this.lift(new SkipOperator(total)); } exports.skip = skip; var SkipOperator = (function () { function SkipOperator(total) { this.total = total; } SkipOperator.prototype.call = function (subscriber) { return new SkipSubscriber(subscriber, this.total); }; return SkipOperator; })(); var SkipSubscriber = (function (_super) { __extends(SkipSubscriber, _super); function SkipSubscriber(destination, total) { _super.call(this, destination); this.total = total; this.count = 0; } SkipSubscriber.prototype._next = function (x) { if (++this.count > this.total) { this.destination.next(x); } }; return SkipSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=skip.js.map },{"../Subscriber":20}],101:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); function skipUntil(notifier) { return this.lift(new SkipUntilOperator(notifier)); } exports.skipUntil = skipUntil; var SkipUntilOperator = (function () { function SkipUntilOperator(notifier) { this.notifier = notifier; } SkipUntilOperator.prototype.call = function (subscriber) { return new SkipUntilSubscriber(subscriber, this.notifier); }; return SkipUntilOperator; })(); var SkipUntilSubscriber = (function (_super) { __extends(SkipUntilSubscriber, _super); function SkipUntilSubscriber(destination, notifier) { _super.call(this, destination); this.notifier = notifier; this.notificationSubscriber = null; this.notificationSubscriber = new NotificationSubscriber(this); this.add(this.notifier.subscribe(this.notificationSubscriber)); } SkipUntilSubscriber.prototype._next = function (value) { if (this.notificationSubscriber.hasValue) { this.destination.next(value); } }; SkipUntilSubscriber.prototype._error = function (err) { this.destination.error(err); }; SkipUntilSubscriber.prototype._complete = function () { if (this.notificationSubscriber.hasCompleted) { this.destination.complete(); } this.notificationSubscriber.unsubscribe(); }; SkipUntilSubscriber.prototype.unsubscribe = function () { if (this._isUnsubscribed) { return; } else if (this._subscription) { this._subscription.unsubscribe(); this._isUnsubscribed = true; } else { _super.prototype.unsubscribe.call(this); } }; return SkipUntilSubscriber; })(Subscriber_1.Subscriber); var NotificationSubscriber = (function (_super) { __extends(NotificationSubscriber, _super); function NotificationSubscriber(parent) { _super.call(this, null); this.parent = parent; this.hasValue = false; this.hasCompleted = false; } NotificationSubscriber.prototype._next = function (unused) { this.hasValue = true; }; NotificationSubscriber.prototype._error = function (err) { this.parent.error(err); this.hasValue = true; }; NotificationSubscriber.prototype._complete = function () { this.hasCompleted = true; }; return NotificationSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=skipUntil.js.map },{"../Subscriber":20}],102:[function(require,module,exports){ var ArrayObservable_1 = require('../observables/ArrayObservable'); var ScalarObservable_1 = require('../observables/ScalarObservable'); var EmptyObservable_1 = require('../observables/EmptyObservable'); var concat_static_1 = require('./concat-static'); function startWith() { var array = []; for (var _i = 0; _i < arguments.length; _i++) { array[_i - 0] = arguments[_i]; } var scheduler = array[array.length - 1]; if (scheduler && typeof scheduler.schedule === 'function') { array.pop(); } else { scheduler = void 0; } var len = array.length; if (len === 1) { return concat_static_1.concat(new ScalarObservable_1.ScalarObservable(array[0], scheduler), this); } else if (len > 1) { return concat_static_1.concat(new ArrayObservable_1.ArrayObservable(array, scheduler), this); } else { return concat_static_1.concat(new EmptyObservable_1.EmptyObservable(scheduler), this); } } exports.startWith = startWith; //# sourceMappingURL=startWith.js.map },{"../observables/ArrayObservable":22,"../observables/EmptyObservable":25,"../observables/ScalarObservable":36,"./concat-static":49}],103:[function(require,module,exports){ var SubscribeOnObservable_1 = require('../observables/SubscribeOnObservable'); function subscribeOn(scheduler, delay) { if (delay === void 0) { delay = 0; } return new SubscribeOnObservable_1.SubscribeOnObservable(this, delay, scheduler); } exports.subscribeOn = subscribeOn; //# sourceMappingURL=subscribeOn.js.map },{"../observables/SubscribeOnObservable":37}],104:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); function _switch() { return this.lift(new SwitchOperator()); } exports._switch = _switch; var SwitchOperator = (function () { function SwitchOperator() { } SwitchOperator.prototype.call = function (subscriber) { return new SwitchSubscriber(subscriber); }; return SwitchOperator; })(); var SwitchSubscriber = (function (_super) { __extends(SwitchSubscriber, _super); function SwitchSubscriber(destination) { _super.call(this, destination); this.active = 0; this.hasCompleted = false; } SwitchSubscriber.prototype._next = function (value) { this.unsubscribeInner(); this.active++; this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, value)); }; SwitchSubscriber.prototype._complete = function () { this.hasCompleted = true; if (this.active === 0) { this.destination.complete(); } }; SwitchSubscriber.prototype.unsubscribeInner = function () { this.active = this.active > 0 ? this.active - 1 : 0; var innerSubscription = this.innerSubscription; if (innerSubscription) { innerSubscription.unsubscribe(); this.remove(innerSubscription); } }; SwitchSubscriber.prototype.notifyNext = function (outerValue, innerValue) { this.destination.next(innerValue); }; SwitchSubscriber.prototype.notifyError = function (err) { this.destination.error(err); }; SwitchSubscriber.prototype.notifyComplete = function () { this.unsubscribeInner(); if (this.hasCompleted && this.active === 0) { this.destination.complete(); } }; return SwitchSubscriber; })(OuterSubscriber_1.OuterSubscriber); //# sourceMappingURL=switch.js.map },{"../OuterSubscriber":17,"../util/subscribeToResult":150}],105:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); function switchMap(project, resultSelector) { return this.lift(new SwitchMapOperator(project, resultSelector)); } exports.switchMap = switchMap; var SwitchMapOperator = (function () { function SwitchMapOperator(project, resultSelector) { this.project = project; this.resultSelector = resultSelector; } SwitchMapOperator.prototype.call = function (subscriber) { return new SwitchMapSubscriber(subscriber, this.project, this.resultSelector); }; return SwitchMapOperator; })(); var SwitchMapSubscriber = (function (_super) { __extends(SwitchMapSubscriber, _super); function SwitchMapSubscriber(destination, project, resultSelector) { _super.call(this, destination); this.project = project; this.resultSelector = resultSelector; this.hasCompleted = false; this.index = 0; } SwitchMapSubscriber.prototype._next = function (value) { var index = this.index++; var destination = this.destination; var result = tryCatch_1.tryCatch(this.project)(value, index); if (result === errorObject_1.errorObject) { destination.error(result.e); } else { var innerSubscription = this.innerSubscription; if (innerSubscription) { innerSubscription.unsubscribe(); } this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, value, index)); } }; SwitchMapSubscriber.prototype._complete = function () { var innerSubscription = this.innerSubscription; this.hasCompleted = true; if (!innerSubscription || innerSubscription.isUnsubscribed) { this.destination.complete(); } }; SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { this.remove(innerSub); var prevSubscription = this.innerSubscription; if (prevSubscription) { prevSubscription.unsubscribe(); } this.innerSubscription = null; if (this.hasCompleted) { this.destination.complete(); } }; SwitchMapSubscriber.prototype.notifyError = function (err) { this.destination.error(err); }; SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { var _a = this, resultSelector = _a.resultSelector, destination = _a.destination; if (resultSelector) { var result = tryCatch_1.tryCatch(resultSelector)(outerValue, innerValue, outerIndex, innerIndex); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); } else { destination.next(result); } } else { destination.next(innerValue); } }; return SwitchMapSubscriber; })(OuterSubscriber_1.OuterSubscriber); //# sourceMappingURL=switchMap.js.map },{"../OuterSubscriber":17,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],106:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); function switchMapTo(observable, projectResult) { return this.lift(new SwitchMapToOperator(observable, projectResult)); } exports.switchMapTo = switchMapTo; var SwitchMapToOperator = (function () { function SwitchMapToOperator(observable, resultSelector) { this.observable = observable; this.resultSelector = resultSelector; } SwitchMapToOperator.prototype.call = function (subscriber) { return new SwitchMapToSubscriber(subscriber, this.observable, this.resultSelector); }; return SwitchMapToOperator; })(); var SwitchMapToSubscriber = (function (_super) { __extends(SwitchMapToSubscriber, _super); function SwitchMapToSubscriber(destination, inner, resultSelector) { _super.call(this, destination); this.inner = inner; this.resultSelector = resultSelector; this.hasCompleted = false; this.index = 0; } SwitchMapToSubscriber.prototype._next = function (value) { var index = this.index++; var innerSubscription = this.innerSubscription; if (innerSubscription) { innerSubscription.unsubscribe(); } this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, this.inner, value, index)); }; SwitchMapToSubscriber.prototype._complete = function () { var innerSubscription = this.innerSubscription; this.hasCompleted = true; if (!innerSubscription || innerSubscription.isUnsubscribed) { this.destination.complete(); } }; SwitchMapToSubscriber.prototype.notifyComplete = function (innerSub) { this.remove(innerSub); var prevSubscription = this.innerSubscription; if (prevSubscription) { prevSubscription.unsubscribe(); } this.innerSubscription = null; if (this.hasCompleted) { this.destination.complete(); } }; SwitchMapToSubscriber.prototype.notifyError = function (err) { this.destination.error(err); }; SwitchMapToSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { var _a = this, resultSelector = _a.resultSelector, destination = _a.destination; if (resultSelector) { var result = tryCatch_1.tryCatch(resultSelector)(outerValue, innerValue, outerIndex, innerIndex); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); } else { destination.next(result); } } else { destination.next(innerValue); } }; return SwitchMapToSubscriber; })(OuterSubscriber_1.OuterSubscriber); //# sourceMappingURL=switchMapTo.js.map },{"../OuterSubscriber":17,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],107:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var ArgumentOutOfRangeError_1 = require('../util/ArgumentOutOfRangeError'); var EmptyObservable_1 = require('../observables/EmptyObservable'); function take(total) { if (total === 0) { return new EmptyObservable_1.EmptyObservable(); } else { return this.lift(new TakeOperator(total)); } } exports.take = take; var TakeOperator = (function () { function TakeOperator(total) { this.total = total; if (this.total < 0) { throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; } } TakeOperator.prototype.call = function (subscriber) { return new TakeSubscriber(subscriber, this.total); }; return TakeOperator; })(); var TakeSubscriber = (function (_super) { __extends(TakeSubscriber, _super); function TakeSubscriber(destination, total) { _super.call(this, destination); this.total = total; this.count = 0; } TakeSubscriber.prototype._next = function (value) { var total = this.total; if (++this.count <= total) { this.destination.next(value); if (this.count === total) { this.destination.complete(); } } }; return TakeSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=take.js.map },{"../Subscriber":20,"../observables/EmptyObservable":25,"../util/ArgumentOutOfRangeError":134}],108:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var noop_1 = require('../util/noop'); function takeUntil(notifier) { return this.lift(new TakeUntilOperator(notifier)); } exports.takeUntil = takeUntil; var TakeUntilOperator = (function () { function TakeUntilOperator(notifier) { this.notifier = notifier; } TakeUntilOperator.prototype.call = function (subscriber) { return new TakeUntilSubscriber(subscriber, this.notifier); }; return TakeUntilOperator; })(); var TakeUntilSubscriber = (function (_super) { __extends(TakeUntilSubscriber, _super); function TakeUntilSubscriber(destination, notifier) { _super.call(this, destination); this.notifier = notifier; this.notificationSubscriber = null; this.notificationSubscriber = new TakeUntilInnerSubscriber(destination); this.add(notifier.subscribe(this.notificationSubscriber)); } TakeUntilSubscriber.prototype._complete = function () { this.destination.complete(); this.notificationSubscriber.unsubscribe(); }; return TakeUntilSubscriber; })(Subscriber_1.Subscriber); var TakeUntilInnerSubscriber = (function (_super) { __extends(TakeUntilInnerSubscriber, _super); function TakeUntilInnerSubscriber(destination) { _super.call(this, null); this.destination = destination; } TakeUntilInnerSubscriber.prototype._next = function (unused) { this.destination.complete(); }; TakeUntilInnerSubscriber.prototype._error = function (err) { this.destination.error(err); }; TakeUntilInnerSubscriber.prototype._complete = function () { noop_1.noop(); }; return TakeUntilInnerSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=takeUntil.js.map },{"../Subscriber":20,"../util/noop":147}],109:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var nextTick_1 = require('../schedulers/nextTick'); function throttle(delay, scheduler) { if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } return this.lift(new ThrottleOperator(delay, scheduler)); } exports.throttle = throttle; var ThrottleOperator = (function () { function ThrottleOperator(delay, scheduler) { this.delay = delay; this.scheduler = scheduler; } ThrottleOperator.prototype.call = function (subscriber) { return new ThrottleSubscriber(subscriber, this.delay, this.scheduler); }; return ThrottleOperator; })(); var ThrottleSubscriber = (function (_super) { __extends(ThrottleSubscriber, _super); function ThrottleSubscriber(destination, delay, scheduler) { _super.call(this, destination); this.delay = delay; this.scheduler = scheduler; } ThrottleSubscriber.prototype._next = function (value) { if (!this.throttled) { this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.delay, { value: value, subscriber: this })); } }; ThrottleSubscriber.prototype.throttledNext = function (value) { this.clearThrottle(); this.destination.next(value); }; ThrottleSubscriber.prototype.clearThrottle = function () { var throttled = this.throttled; if (throttled) { throttled.unsubscribe(); this.remove(throttled); } }; return ThrottleSubscriber; })(Subscriber_1.Subscriber); function dispatchNext(_a) { var value = _a.value, subscriber = _a.subscriber; subscriber.throttledNext(value); } //# sourceMappingURL=throttle.js.map },{"../Subscriber":20,"../schedulers/nextTick":130}],110:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var immediate_1 = require('../schedulers/immediate'); var isDate_1 = require('../util/isDate'); function timeout(due, errorToSend, scheduler) { if (errorToSend === void 0) { errorToSend = null; } if (scheduler === void 0) { scheduler = immediate_1.immediate; } var absoluteTimeout = isDate_1.isDate(due); var waitFor = absoluteTimeout ? (+due - scheduler.now()) : due; return this.lift(new TimeoutOperator(waitFor, absoluteTimeout, errorToSend, scheduler)); } exports.timeout = timeout; var TimeoutOperator = (function () { function TimeoutOperator(waitFor, absoluteTimeout, errorToSend, scheduler) { this.waitFor = waitFor; this.absoluteTimeout = absoluteTimeout; this.errorToSend = errorToSend; this.scheduler = scheduler; } TimeoutOperator.prototype.call = function (subscriber) { return new TimeoutSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.errorToSend, this.scheduler); }; return TimeoutOperator; })(); var TimeoutSubscriber = (function (_super) { __extends(TimeoutSubscriber, _super); function TimeoutSubscriber(destination, absoluteTimeout, waitFor, errorToSend, scheduler) { _super.call(this, destination); this.absoluteTimeout = absoluteTimeout; this.waitFor = waitFor; this.errorToSend = errorToSend; this.scheduler = scheduler; this.index = 0; this._previousIndex = 0; this._hasCompleted = false; this.scheduleTimeout(); } Object.defineProperty(TimeoutSubscriber.prototype, "previousIndex", { get: function () { return this._previousIndex; }, enumerable: true, configurable: true }); Object.defineProperty(TimeoutSubscriber.prototype, "hasCompleted", { get: function () { return this._hasCompleted; }, enumerable: true, configurable: true }); TimeoutSubscriber.dispatchTimeout = function (state) { var source = state.subscriber; var currentIndex = state.index; if (!source.hasCompleted && source.previousIndex === currentIndex) { source.notifyTimeout(); } }; TimeoutSubscriber.prototype.scheduleTimeout = function () { var currentIndex = this.index; this.scheduler.schedule(TimeoutSubscriber.dispatchTimeout, this.waitFor, { subscriber: this, index: currentIndex }); this.index++; this._previousIndex = currentIndex; }; TimeoutSubscriber.prototype._next = function (value) { this.destination.next(value); if (!this.absoluteTimeout) { this.scheduleTimeout(); } }; TimeoutSubscriber.prototype._error = function (err) { this.destination.error(err); this._hasCompleted = true; }; TimeoutSubscriber.prototype._complete = function () { this.destination.complete(); this._hasCompleted = true; }; TimeoutSubscriber.prototype.notifyTimeout = function () { this.error(this.errorToSend || new Error('timeout')); }; return TimeoutSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=timeout.js.map },{"../Subscriber":20,"../schedulers/immediate":129,"../util/isDate":144}],111:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var immediate_1 = require('../schedulers/immediate'); var isDate_1 = require('../util/isDate'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); function timeoutWith(due, withObservable, scheduler) { if (scheduler === void 0) { scheduler = immediate_1.immediate; } var absoluteTimeout = isDate_1.isDate(due); var waitFor = absoluteTimeout ? (+due - scheduler.now()) : due; return this.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); } exports.timeoutWith = timeoutWith; var TimeoutWithOperator = (function () { function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { this.waitFor = waitFor; this.absoluteTimeout = absoluteTimeout; this.withObservable = withObservable; this.scheduler = scheduler; } TimeoutWithOperator.prototype.call = function (subscriber) { return new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler); }; return TimeoutWithOperator; })(); var TimeoutWithSubscriber = (function (_super) { __extends(TimeoutWithSubscriber, _super); function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { _super.call(this, destination); this.absoluteTimeout = absoluteTimeout; this.waitFor = waitFor; this.withObservable = withObservable; this.scheduler = scheduler; this.timeoutSubscription = undefined; this.timedOut = false; this.index = 0; this._previousIndex = 0; this._hasCompleted = false; this.scheduleTimeout(); } Object.defineProperty(TimeoutWithSubscriber.prototype, "previousIndex", { get: function () { return this._previousIndex; }, enumerable: true, configurable: true }); Object.defineProperty(TimeoutWithSubscriber.prototype, "hasCompleted", { get: function () { return this._hasCompleted; }, enumerable: true, configurable: true }); TimeoutWithSubscriber.dispatchTimeout = function (state) { var source = state.subscriber; var currentIndex = state.index; if (!source.hasCompleted && source.previousIndex === currentIndex) { source.handleTimeout(); } }; TimeoutWithSubscriber.prototype.scheduleTimeout = function () { var currentIndex = this.index; var timeoutState = { subscriber: this, index: currentIndex }; this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, timeoutState); this.index++; this._previousIndex = currentIndex; }; TimeoutWithSubscriber.prototype._next = function (value) { if (!this.timedOut) { this.destination.next(value); if (!this.absoluteTimeout) { this.scheduleTimeout(); } } }; TimeoutWithSubscriber.prototype._error = function (err) { if (!this.timedOut) { this.destination.error(err); this._hasCompleted = true; } }; TimeoutWithSubscriber.prototype._complete = function () { if (!this.timedOut) { this.destination.complete(); this._hasCompleted = true; } }; TimeoutWithSubscriber.prototype.handleTimeout = function () { var withObservable = this.withObservable; this.timedOut = true; this.add(this.timeoutSubscription = subscribeToResult_1.subscribeToResult(this, withObservable)); }; return TimeoutWithSubscriber; })(OuterSubscriber_1.OuterSubscriber); //# sourceMappingURL=timeoutWith.js.map },{"../OuterSubscriber":17,"../schedulers/immediate":129,"../util/isDate":144,"../util/subscribeToResult":150}],112:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); function toArray() { return this.lift(new ToArrayOperator()); } exports.toArray = toArray; var ToArrayOperator = (function () { function ToArrayOperator() { } ToArrayOperator.prototype.call = function (subscriber) { return new ToArraySubscriber(subscriber); }; return ToArrayOperator; })(); var ToArraySubscriber = (function (_super) { __extends(ToArraySubscriber, _super); function ToArraySubscriber(destination) { _super.call(this, destination); this.array = []; } ToArraySubscriber.prototype._next = function (x) { this.array.push(x); }; ToArraySubscriber.prototype._complete = function () { this.destination.next(this.array); this.destination.complete(); }; return ToArraySubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=toArray.js.map },{"../Subscriber":20}],113:[function(require,module,exports){ var root_1 = require('../util/root'); function toPromise(PromiseCtor) { var _this = this; if (!PromiseCtor) { if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) { PromiseCtor = root_1.root.Rx.config.Promise; } else if (root_1.root.Promise) { PromiseCtor = root_1.root.Promise; } } if (!PromiseCtor) { throw new Error('no Promise impl found'); } return new PromiseCtor(function (resolve, reject) { var value; _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); }); } exports.toPromise = toPromise; //# sourceMappingURL=toPromise.js.map },{"../util/root":149}],114:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subject_1 = require('../Subject'); function window(closingNotifier) { return this.lift(new WindowOperator(closingNotifier)); } exports.window = window; var WindowOperator = (function () { function WindowOperator(closingNotifier) { this.closingNotifier = closingNotifier; } WindowOperator.prototype.call = function (subscriber) { return new WindowSubscriber(subscriber, this.closingNotifier); }; return WindowOperator; })(); var WindowSubscriber = (function (_super) { __extends(WindowSubscriber, _super); function WindowSubscriber(destination, closingNotifier) { _super.call(this, destination); this.closingNotifier = closingNotifier; this.window = new Subject_1.Subject(); this.add(closingNotifier._subscribe(new WindowClosingNotifierSubscriber(this))); this.openWindow(); } WindowSubscriber.prototype._next = function (value) { this.window.next(value); }; WindowSubscriber.prototype._error = function (err) { this.window.error(err); this.destination.error(err); }; WindowSubscriber.prototype._complete = function () { this.window.complete(); this.destination.complete(); }; WindowSubscriber.prototype.openWindow = function () { var prevWindow = this.window; if (prevWindow) { prevWindow.complete(); } this.destination.next(this.window = new Subject_1.Subject()); }; return WindowSubscriber; })(Subscriber_1.Subscriber); var WindowClosingNotifierSubscriber = (function (_super) { __extends(WindowClosingNotifierSubscriber, _super); function WindowClosingNotifierSubscriber(parent) { _super.call(this, null); this.parent = parent; } WindowClosingNotifierSubscriber.prototype._next = function () { this.parent.openWindow(); }; WindowClosingNotifierSubscriber.prototype._error = function (err) { this.parent._error(err); }; WindowClosingNotifierSubscriber.prototype._complete = function () { this.parent._complete(); }; return WindowClosingNotifierSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=window.js.map },{"../Subject":19,"../Subscriber":20}],115:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subject_1 = require('../Subject'); function windowCount(windowSize, startWindowEvery) { if (startWindowEvery === void 0) { startWindowEvery = 0; } return this.lift(new WindowCountOperator(windowSize, startWindowEvery)); } exports.windowCount = windowCount; var WindowCountOperator = (function () { function WindowCountOperator(windowSize, startWindowEvery) { this.windowSize = windowSize; this.startWindowEvery = startWindowEvery; } WindowCountOperator.prototype.call = function (subscriber) { return new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery); }; return WindowCountOperator; })(); var WindowCountSubscriber = (function (_super) { __extends(WindowCountSubscriber, _super); function WindowCountSubscriber(destination, windowSize, startWindowEvery) { _super.call(this, destination); this.windowSize = windowSize; this.startWindowEvery = startWindowEvery; this.windows = [new Subject_1.Subject()]; this.count = 0; destination.next(this.windows[0]); } WindowCountSubscriber.prototype._next = function (value) { var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; var windowSize = this.windowSize; var windows = this.windows; var len = windows.length; for (var i = 0; i < len; i++) { windows[i].next(value); } var c = this.count - windowSize + 1; if (c >= 0 && c % startWindowEvery === 0) { windows.shift().complete(); } if (++this.count % startWindowEvery === 0) { var window_1 = new Subject_1.Subject(); windows.push(window_1); this.destination.next(window_1); } }; WindowCountSubscriber.prototype._error = function (err) { var windows = this.windows; while (windows.length > 0) { windows.shift().error(err); } this.destination.error(err); }; WindowCountSubscriber.prototype._complete = function () { var windows = this.windows; while (windows.length > 0) { windows.shift().complete(); } this.destination.complete(); }; return WindowCountSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=windowCount.js.map },{"../Subject":19,"../Subscriber":20}],116:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subject_1 = require('../Subject'); var nextTick_1 = require('../schedulers/nextTick'); function windowTime(windowTimeSpan, windowCreationInterval, scheduler) { if (windowCreationInterval === void 0) { windowCreationInterval = null; } if (scheduler === void 0) { scheduler = nextTick_1.nextTick; } return this.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, scheduler)); } exports.windowTime = windowTime; var WindowTimeOperator = (function () { function WindowTimeOperator(windowTimeSpan, windowCreationInterval, scheduler) { this.windowTimeSpan = windowTimeSpan; this.windowCreationInterval = windowCreationInterval; this.scheduler = scheduler; } WindowTimeOperator.prototype.call = function (subscriber) { return new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.scheduler); }; return WindowTimeOperator; })(); var WindowTimeSubscriber = (function (_super) { __extends(WindowTimeSubscriber, _super); function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, scheduler) { _super.call(this, destination); this.windowTimeSpan = windowTimeSpan; this.windowCreationInterval = windowCreationInterval; this.scheduler = scheduler; this.windows = []; if (windowCreationInterval !== null && windowCreationInterval >= 0) { var window_1 = this.openWindow(); var closeState = { subscriber: this, window: window_1, context: null }; var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: this, scheduler: scheduler }; this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); } else { var window_2 = this.openWindow(); var timeSpanOnlyState = { subscriber: this, window: window_2, windowTimeSpan: windowTimeSpan }; this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); } } WindowTimeSubscriber.prototype._next = function (value) { var windows = this.windows; var len = windows.length; for (var i = 0; i < len; i++) { windows[i].next(value); } }; WindowTimeSubscriber.prototype._error = function (err) { var windows = this.windows; while (windows.length > 0) { windows.shift().error(err); } this.destination.error(err); }; WindowTimeSubscriber.prototype._complete = function () { var windows = this.windows; while (windows.length > 0) { windows.shift().complete(); } this.destination.complete(); }; WindowTimeSubscriber.prototype.openWindow = function () { var window = new Subject_1.Subject(); this.windows.push(window); this.destination.next(window); return window; }; WindowTimeSubscriber.prototype.closeWindow = function (window) { window.complete(); var windows = this.windows; windows.splice(windows.indexOf(window), 1); }; return WindowTimeSubscriber; })(Subscriber_1.Subscriber); function dispatchWindowTimeSpanOnly(state) { var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; if (window) { window.complete(); } state.window = subscriber.openWindow(); this.schedule(state, windowTimeSpan); } function dispatchWindowCreation(state) { var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; var window = subscriber.openWindow(); var action = this; var context = { action: action, subscription: null }; var timeSpanState = { subscriber: subscriber, window: window, context: context }; context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); action.add(context.subscription); action.schedule(state, windowCreationInterval); } function dispatchWindowClose(_a) { var subscriber = _a.subscriber, window = _a.window, context = _a.context; if (context && context.action && context.subscription) { context.action.remove(context.subscription); } subscriber.closeWindow(window); } //# sourceMappingURL=windowTime.js.map },{"../Subject":19,"../Subscriber":20,"../schedulers/nextTick":130}],117:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subject_1 = require('../Subject'); var Subscription_1 = require('../Subscription'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); function windowToggle(openings, closingSelector) { return this.lift(new WindowToggleOperator(openings, closingSelector)); } exports.windowToggle = windowToggle; var WindowToggleOperator = (function () { function WindowToggleOperator(openings, closingSelector) { this.openings = openings; this.closingSelector = closingSelector; } WindowToggleOperator.prototype.call = function (subscriber) { return new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector); }; return WindowToggleOperator; })(); var WindowToggleSubscriber = (function (_super) { __extends(WindowToggleSubscriber, _super); function WindowToggleSubscriber(destination, openings, closingSelector) { _super.call(this, destination); this.openings = openings; this.closingSelector = closingSelector; this.contexts = []; this.add(this.openings._subscribe(new WindowToggleOpeningsSubscriber(this))); } WindowToggleSubscriber.prototype._next = function (value) { var contexts = this.contexts; var len = contexts.length; for (var i = 0; i < len; i++) { contexts[i].window.next(value); } }; WindowToggleSubscriber.prototype._error = function (err) { var contexts = this.contexts; while (contexts.length > 0) { contexts.shift().window.error(err); } this.destination.error(err); }; WindowToggleSubscriber.prototype._complete = function () { var contexts = this.contexts; while (contexts.length > 0) { var context = contexts.shift(); context.window.complete(); context.subscription.unsubscribe(); } this.destination.complete(); }; WindowToggleSubscriber.prototype.openWindow = function (value) { var closingSelector = this.closingSelector; var closingNotifier = tryCatch_1.tryCatch(closingSelector)(value); if (closingNotifier === errorObject_1.errorObject) { this.error(closingNotifier.e); } else { var context = { window: new Subject_1.Subject(), subscription: new Subscription_1.Subscription() }; this.contexts.push(context); this.destination.next(context.window); var subscriber = new WindowClosingNotifierSubscriber(this, context); var subscription = closingNotifier._subscribe(subscriber); this.add(context.subscription.add(subscription)); } }; WindowToggleSubscriber.prototype.closeWindow = function (context) { var window = context.window, subscription = context.subscription; var contexts = this.contexts; contexts.splice(contexts.indexOf(context), 1); window.complete(); this.remove(subscription); subscription.unsubscribe(); }; return WindowToggleSubscriber; })(Subscriber_1.Subscriber); var WindowClosingNotifierSubscriber = (function (_super) { __extends(WindowClosingNotifierSubscriber, _super); function WindowClosingNotifierSubscriber(parent, windowContext) { _super.call(this, null); this.parent = parent; this.windowContext = windowContext; } WindowClosingNotifierSubscriber.prototype._next = function () { this.parent.closeWindow(this.windowContext); }; WindowClosingNotifierSubscriber.prototype._error = function (err) { this.parent.error(err); }; WindowClosingNotifierSubscriber.prototype._complete = function () { this.parent.closeWindow(this.windowContext); }; return WindowClosingNotifierSubscriber; })(Subscriber_1.Subscriber); var WindowToggleOpeningsSubscriber = (function (_super) { __extends(WindowToggleOpeningsSubscriber, _super); function WindowToggleOpeningsSubscriber(parent) { _super.call(this); this.parent = parent; } WindowToggleOpeningsSubscriber.prototype._next = function (value) { this.parent.openWindow(value); }; WindowToggleOpeningsSubscriber.prototype._error = function (err) { this.parent.error(err); }; WindowToggleOpeningsSubscriber.prototype._complete = function () { // noop }; return WindowToggleOpeningsSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=windowToggle.js.map },{"../Subject":19,"../Subscriber":20,"../Subscription":21,"../util/errorObject":143,"../util/tryCatch":152}],118:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var Subject_1 = require('../Subject'); var Subscription_1 = require('../Subscription'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); function windowWhen(closingSelector) { return this.lift(new WindowOperator(closingSelector)); } exports.windowWhen = windowWhen; var WindowOperator = (function () { function WindowOperator(closingSelector) { this.closingSelector = closingSelector; } WindowOperator.prototype.call = function (subscriber) { return new WindowSubscriber(subscriber, this.closingSelector); }; return WindowOperator; })(); var WindowSubscriber = (function (_super) { __extends(WindowSubscriber, _super); function WindowSubscriber(destination, closingSelector) { _super.call(this, destination); this.closingSelector = closingSelector; this.window = new Subject_1.Subject(); this.openWindow(); } WindowSubscriber.prototype._next = function (value) { this.window.next(value); }; WindowSubscriber.prototype._error = function (err) { this.window.error(err); this.destination.error(err); this._unsubscribeClosingNotification(); }; WindowSubscriber.prototype._complete = function () { this.window.complete(); this.destination.complete(); this._unsubscribeClosingNotification(); }; WindowSubscriber.prototype.unsubscribe = function () { _super.prototype.unsubscribe.call(this); this._unsubscribeClosingNotification(); }; WindowSubscriber.prototype._unsubscribeClosingNotification = function () { var closingNotification = this.closingNotification; if (closingNotification) { closingNotification.unsubscribe(); } }; WindowSubscriber.prototype.openWindow = function () { var prevClosingNotification = this.closingNotification; if (prevClosingNotification) { this.remove(prevClosingNotification); prevClosingNotification.unsubscribe(); } var prevWindow = this.window; if (prevWindow) { prevWindow.complete(); } this.destination.next(this.window = new Subject_1.Subject()); var closingNotifier = tryCatch_1.tryCatch(this.closingSelector)(); if (closingNotifier === errorObject_1.errorObject) { var err = closingNotifier.e; this.destination.error(err); this.window.error(err); } else { var closingNotification = this.closingNotification = new Subscription_1.Subscription(); this.add(closingNotification.add(closingNotifier._subscribe(new WindowClosingNotifierSubscriber(this)))); } }; return WindowSubscriber; })(Subscriber_1.Subscriber); var WindowClosingNotifierSubscriber = (function (_super) { __extends(WindowClosingNotifierSubscriber, _super); function WindowClosingNotifierSubscriber(parent) { _super.call(this, null); this.parent = parent; } WindowClosingNotifierSubscriber.prototype._next = function () { this.parent.openWindow(); }; WindowClosingNotifierSubscriber.prototype._error = function (err) { this.parent.error(err); }; WindowClosingNotifierSubscriber.prototype._complete = function () { this.parent.openWindow(); }; return WindowClosingNotifierSubscriber; })(Subscriber_1.Subscriber); //# sourceMappingURL=windowWhen.js.map },{"../Subject":19,"../Subscriber":20,"../Subscription":21,"../util/errorObject":143,"../util/tryCatch":152}],119:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); /** * @param {Observable} observables the observables to get the latest values from. * @param {Function} [project] optional projection function for merging values together. Receives all values in order * of observables passed. (e.g. `a.withLatestFrom(b, c, (a1, b1, c1) => a1 + b1 + c1)`). If this is not passed, arrays * will be returned. * @description merges each value from an observable with the latest values from the other passed observables. * All observables must emit at least one value before the resulting observable will emit * * #### example * ``` * A.withLatestFrom(B, C) * * A: ----a-----------------b---------------c-----------| * B: ---d----------------e--------------f---------| * C: --x----------------y-------------z-------------| * result: ---([a,d,x])---------([b,e,y])--------([c,f,z])---| * ``` */ function withLatestFrom() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i - 0] = arguments[_i]; } var project; if (typeof args[args.length - 1] === 'function') { project = args.pop(); } var observables = args; return this.lift(new WithLatestFromOperator(observables, project)); } exports.withLatestFrom = withLatestFrom; var WithLatestFromOperator = (function () { function WithLatestFromOperator(observables, project) { this.observables = observables; this.project = project; } WithLatestFromOperator.prototype.call = function (subscriber) { return new WithLatestFromSubscriber(subscriber, this.observables, this.project); }; return WithLatestFromOperator; })(); var WithLatestFromSubscriber = (function (_super) { __extends(WithLatestFromSubscriber, _super); function WithLatestFromSubscriber(destination, observables, project) { _super.call(this, destination); this.observables = observables; this.project = project; this.toRespond = []; var len = observables.length; this.values = new Array(len); for (var i = 0; i < len; i++) { this.toRespond.push(i); } for (var i = 0; i < len; i++) { var observable = observables[i]; this.add(subscribeToResult_1.subscribeToResult(this, observable, observable, i)); } } WithLatestFromSubscriber.prototype.notifyNext = function (observable, value, observableIndex, index) { this.values[observableIndex] = value; var toRespond = this.toRespond; if (toRespond.length > 0) { var found = toRespond.indexOf(observableIndex); if (found !== -1) { toRespond.splice(found, 1); } } }; WithLatestFromSubscriber.prototype.notifyComplete = function () { // noop }; WithLatestFromSubscriber.prototype._next = function (value) { if (this.toRespond.length === 0) { var values = this.values; var destination = this.destination; var project = this.project; var args = [value].concat(values); if (project) { var result = tryCatch_1.tryCatch(this.project).apply(this, args); if (result === errorObject_1.errorObject) { destination.error(result.e); } else { destination.next(result); } } else { destination.next(args); } } }; return WithLatestFromSubscriber; })(OuterSubscriber_1.OuterSubscriber); //# sourceMappingURL=withLatestFrom.js.map },{"../OuterSubscriber":17,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],120:[function(require,module,exports){ var ArrayObservable_1 = require('../observables/ArrayObservable'); var zip_support_1 = require('./zip-support'); function zip() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } var project = observables[observables.length - 1]; if (typeof project === 'function') { observables.pop(); } return new ArrayObservable_1.ArrayObservable(observables).lift(new zip_support_1.ZipOperator(project)); } exports.zip = zip; //# sourceMappingURL=zip-static.js.map },{"../observables/ArrayObservable":22,"./zip-support":121}],121:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscriber_1 = require('../Subscriber'); var tryCatch_1 = require('../util/tryCatch'); var errorObject_1 = require('../util/errorObject'); var OuterSubscriber_1 = require('../OuterSubscriber'); var subscribeToResult_1 = require('../util/subscribeToResult'); var Symbol_iterator_1 = require('../util/Symbol_iterator'); var isArray = Array.isArray; var ZipOperator = (function () { function ZipOperator(project) { this.project = project; } ZipOperator.prototype.call = function (subscriber) { return new ZipSubscriber(subscriber, this.project); }; return ZipOperator; })(); exports.ZipOperator = ZipOperator; var ZipSubscriber = (function (_super) { __extends(ZipSubscriber, _super); function ZipSubscriber(destination, project, values) { if (values === void 0) { values = Object.create(null); } _super.call(this, destination); this.index = 0; this.iterators = []; this.active = 0; this.project = (typeof project === 'function') ? project : null; this.values = values; } ZipSubscriber.prototype._next = function (value) { var iterators = this.iterators; var index = this.index++; if (isArray(value)) { iterators.push(new StaticArrayIterator(value)); } else if (typeof value[Symbol_iterator_1.$$iterator] === 'function') { iterators.push(new StaticIterator(value[Symbol_iterator_1.$$iterator]())); } else { iterators.push(new ZipBufferIterator(this.destination, this, value, index)); } }; ZipSubscriber.prototype._complete = function () { var iterators = this.iterators; var len = iterators.length; this.active = len; for (var i = 0; i < len; i++) { var iterator = iterators[i]; if (iterator.stillUnsubscribed) { iterator.subscribe(iterator, i); } else { this.active--; // not an observable } } }; ZipSubscriber.prototype.notifyInactive = function () { this.active--; if (this.active === 0) { this.destination.complete(); } }; ZipSubscriber.prototype.checkIterators = function () { var iterators = this.iterators; var len = iterators.length; var destination = this.destination; // abort if not all of them have values for (var i = 0; i < len; i++) { var iterator = iterators[i]; if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { return; } } var shouldComplete = false; var args = []; for (var i = 0; i < len; i++) { var iterator = iterators[i]; var result = iterator.next(); // check to see if it's completed now that you've gotten // the next value. if (iterator.hasCompleted()) { shouldComplete = true; } if (result.done) { destination.complete(); return; } args.push(result.value); } var project = this.project; if (project) { var result = tryCatch_1.tryCatch(project).apply(this, args); if (result === errorObject_1.errorObject) { destination.error(errorObject_1.errorObject.e); } else { destination.next(result); } } else { destination.next(args); } if (shouldComplete) { destination.complete(); } }; return ZipSubscriber; })(Subscriber_1.Subscriber); exports.ZipSubscriber = ZipSubscriber; var StaticIterator = (function () { function StaticIterator(iterator) { this.iterator = iterator; this.nextResult = iterator.next(); } StaticIterator.prototype.hasValue = function () { return true; }; StaticIterator.prototype.next = function () { var result = this.nextResult; this.nextResult = this.iterator.next(); return result; }; StaticIterator.prototype.hasCompleted = function () { var nextResult = this.nextResult; return nextResult && nextResult.done; }; return StaticIterator; })(); var StaticArrayIterator = (function () { function StaticArrayIterator(array) { this.array = array; this.index = 0; this.length = 0; this.length = array.length; } StaticArrayIterator.prototype[Symbol_iterator_1.$$iterator] = function () { return this; }; StaticArrayIterator.prototype.next = function (value) { var i = this.index++; var array = this.array; return i < this.length ? { value: array[i], done: false } : { done: true }; }; StaticArrayIterator.prototype.hasValue = function () { return this.array.length > this.index; }; StaticArrayIterator.prototype.hasCompleted = function () { return this.array.length === this.index; }; return StaticArrayIterator; })(); var ZipBufferIterator = (function (_super) { __extends(ZipBufferIterator, _super); function ZipBufferIterator(destination, parent, observable, index) { _super.call(this, destination); this.parent = parent; this.observable = observable; this.index = index; this.stillUnsubscribed = true; this.buffer = []; this.isComplete = false; } ZipBufferIterator.prototype[Symbol_iterator_1.$$iterator] = function () { return this; }; // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next // this is legit because `next()` will never be called by a subscription in this case. ZipBufferIterator.prototype.next = function () { var buffer = this.buffer; if (buffer.length === 0 && this.isComplete) { return { done: true }; } else { return { value: buffer.shift(), done: false }; } }; ZipBufferIterator.prototype.hasValue = function () { return this.buffer.length > 0; }; ZipBufferIterator.prototype.hasCompleted = function () { return this.buffer.length === 0 && this.isComplete; }; ZipBufferIterator.prototype.notifyComplete = function () { if (this.buffer.length > 0) { this.isComplete = true; this.parent.notifyInactive(); } else { this.destination.complete(); } }; ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { this.buffer.push(innerValue); this.parent.checkIterators(); }; ZipBufferIterator.prototype.subscribe = function (value, index) { this.add(subscribeToResult_1.subscribeToResult(this, this.observable, this, index)); }; return ZipBufferIterator; })(OuterSubscriber_1.OuterSubscriber); //# sourceMappingURL=zip-support.js.map },{"../OuterSubscriber":17,"../Subscriber":20,"../util/Symbol_iterator":140,"../util/errorObject":143,"../util/subscribeToResult":150,"../util/tryCatch":152}],122:[function(require,module,exports){ var zip_static_1 = require('./zip-static'); function zipProto() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i - 0] = arguments[_i]; } observables.unshift(this); return zip_static_1.zip.apply(this, observables); } exports.zipProto = zipProto; //# sourceMappingURL=zip.js.map },{"./zip-static":120}],123:[function(require,module,exports){ var zip_support_1 = require('./zip-support'); function zipAll(project) { return this.lift(new zip_support_1.ZipOperator(project)); } exports.zipAll = zipAll; //# sourceMappingURL=zipAll.js.map },{"./zip-support":121}],124:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var ImmediateAction_1 = require('./ImmediateAction'); var FutureAction = (function (_super) { __extends(FutureAction, _super); function FutureAction(scheduler, work) { _super.call(this, scheduler, work); this.scheduler = scheduler; this.work = work; } FutureAction.prototype.schedule = function (state, delay) { var _this = this; if (delay === void 0) { delay = 0; } if (this.isUnsubscribed) { return this; } this.delay = delay; this.state = state; var id = this.id; if (id != null) { this.id = undefined; clearTimeout(id); } var scheduler = this.scheduler; this.id = setTimeout(function () { _this.id = void 0; scheduler.actions.push(_this); scheduler.flush(); }, this.delay); return this; }; FutureAction.prototype.unsubscribe = function () { var id = this.id; if (id != null) { this.id = void 0; clearTimeout(id); } _super.prototype.unsubscribe.call(this); }; return FutureAction; })(ImmediateAction_1.ImmediateAction); exports.FutureAction = FutureAction; //# sourceMappingURL=FutureAction.js.map },{"./ImmediateAction":125}],125:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscription_1 = require('../Subscription'); var ImmediateAction = (function (_super) { __extends(ImmediateAction, _super); function ImmediateAction(scheduler, work) { _super.call(this); this.scheduler = scheduler; this.work = work; } ImmediateAction.prototype.schedule = function (state) { if (this.isUnsubscribed) { return this; } this.state = state; var scheduler = this.scheduler; scheduler.actions.push(this); scheduler.flush(); return this; }; ImmediateAction.prototype.execute = function () { if (this.isUnsubscribed) { throw new Error('How did did we execute a canceled Action?'); } this.work(this.state); }; ImmediateAction.prototype.unsubscribe = function () { var scheduler = this.scheduler; var actions = scheduler.actions; var index = actions.indexOf(this); this.work = void 0; this.state = void 0; this.scheduler = void 0; if (index !== -1) { actions.splice(index, 1); } _super.prototype.unsubscribe.call(this); }; return ImmediateAction; })(Subscription_1.Subscription); exports.ImmediateAction = ImmediateAction; //# sourceMappingURL=ImmediateAction.js.map },{"../Subscription":21}],126:[function(require,module,exports){ var ImmediateAction_1 = require('./ImmediateAction'); var FutureAction_1 = require('./FutureAction'); var ImmediateScheduler = (function () { function ImmediateScheduler() { this.actions = []; this.active = false; this.scheduled = false; } ImmediateScheduler.prototype.now = function () { return Date.now(); }; ImmediateScheduler.prototype.flush = function () { if (this.active || this.scheduled) { return; } this.active = true; var actions = this.actions; for (var action = void 0; action = actions.shift();) { action.execute(); } this.active = false; }; ImmediateScheduler.prototype.schedule = function (work, delay, state) { if (delay === void 0) { delay = 0; } return (delay <= 0) ? this.scheduleNow(work, state) : this.scheduleLater(work, delay, state); }; ImmediateScheduler.prototype.scheduleNow = function (work, state) { return new ImmediateAction_1.ImmediateAction(this, work).schedule(state); }; ImmediateScheduler.prototype.scheduleLater = function (work, delay, state) { return new FutureAction_1.FutureAction(this, work).schedule(state, delay); }; return ImmediateScheduler; })(); exports.ImmediateScheduler = ImmediateScheduler; //# sourceMappingURL=ImmediateScheduler.js.map },{"./FutureAction":124,"./ImmediateAction":125}],127:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Immediate_1 = require('../util/Immediate'); var ImmediateAction_1 = require('./ImmediateAction'); var NextTickAction = (function (_super) { __extends(NextTickAction, _super); function NextTickAction() { _super.apply(this, arguments); } NextTickAction.prototype.schedule = function (state) { var _this = this; if (this.isUnsubscribed) { return this; } this.state = state; var scheduler = this.scheduler; scheduler.actions.push(this); if (!scheduler.scheduled) { scheduler.scheduled = true; this.id = Immediate_1.Immediate.setImmediate(function () { _this.id = null; _this.scheduler.scheduled = false; _this.scheduler.flush(); }); } return this; }; NextTickAction.prototype.unsubscribe = function () { var id = this.id; var scheduler = this.scheduler; _super.prototype.unsubscribe.call(this); if (scheduler.actions.length === 0) { scheduler.active = false; scheduler.scheduled = false; } if (id) { this.id = null; Immediate_1.Immediate.clearImmediate(id); } }; return NextTickAction; })(ImmediateAction_1.ImmediateAction); exports.NextTickAction = NextTickAction; //# sourceMappingURL=NextTickAction.js.map },{"../util/Immediate":137,"./ImmediateAction":125}],128:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var ImmediateScheduler_1 = require('./ImmediateScheduler'); var NextTickAction_1 = require('./NextTickAction'); var ImmediateAction_1 = require('./ImmediateAction'); var NextTickScheduler = (function (_super) { __extends(NextTickScheduler, _super); function NextTickScheduler() { _super.apply(this, arguments); } NextTickScheduler.prototype.scheduleNow = function (work, state) { return (this.scheduled ? new ImmediateAction_1.ImmediateAction(this, work) : new NextTickAction_1.NextTickAction(this, work)).schedule(state); }; return NextTickScheduler; })(ImmediateScheduler_1.ImmediateScheduler); exports.NextTickScheduler = NextTickScheduler; //# sourceMappingURL=NextTickScheduler.js.map },{"./ImmediateAction":125,"./ImmediateScheduler":126,"./NextTickAction":127}],129:[function(require,module,exports){ var ImmediateScheduler_1 = require('./ImmediateScheduler'); exports.immediate = new ImmediateScheduler_1.ImmediateScheduler(); //# sourceMappingURL=immediate.js.map },{"./ImmediateScheduler":126}],130:[function(require,module,exports){ var NextTickScheduler_1 = require('./NextTickScheduler'); exports.nextTick = new NextTickScheduler_1.NextTickScheduler(); //# sourceMappingURL=nextTick.js.map },{"./NextTickScheduler":128}],131:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subject_1 = require('../Subject'); var BehaviorSubject = (function (_super) { __extends(BehaviorSubject, _super); function BehaviorSubject(value) { _super.call(this); this.value = value; } BehaviorSubject.prototype._subscribe = function (subscriber) { var subscription = _super.prototype._subscribe.call(this, subscriber); if (!subscription) { return; } else if (!subscription.isUnsubscribed) { subscriber.next(this.value); } return subscription; }; BehaviorSubject.prototype._next = function (value) { _super.prototype._next.call(this, this.value = value); }; return BehaviorSubject; })(Subject_1.Subject); exports.BehaviorSubject = BehaviorSubject; //# sourceMappingURL=BehaviorSubject.js.map },{"../Subject":19}],132:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subject_1 = require('../Subject'); var immediate_1 = require('../schedulers/immediate'); var ReplaySubject = (function (_super) { __extends(ReplaySubject, _super); function ReplaySubject(bufferSize, windowTime, scheduler) { if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; } if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; } _super.call(this); this.events = []; this.bufferSize = bufferSize < 1 ? 1 : bufferSize; this._windowTime = windowTime < 1 ? 1 : windowTime; this.scheduler = scheduler; } ReplaySubject.prototype._next = function (value) { var now = this._getNow(); this.events.push(new ReplayEvent(now, value)); _super.prototype._next.call(this, value); }; ReplaySubject.prototype._subscribe = function (subscriber) { var events = this._getEvents(this._getNow()); var index = -1; var len = events.length; while (!subscriber.isUnsubscribed && ++index < len) { subscriber.next(events[index].value); } return _super.prototype._subscribe.call(this, subscriber); }; ReplaySubject.prototype._getNow = function () { return (this.scheduler || immediate_1.immediate).now(); }; ReplaySubject.prototype._getEvents = function (now) { var bufferSize = this.bufferSize; var _windowTime = this._windowTime; var events = this.events; var eventsCount = events.length; var spliceCount = 0; // Trim events that fall out of the time window. // Start at the front of the list. Break early once // we encounter an event that falls within the window. while (spliceCount < eventsCount) { if ((now - events[spliceCount].time) < _windowTime) { break; } spliceCount += 1; } if (eventsCount > bufferSize) { spliceCount = Math.max(spliceCount, eventsCount - bufferSize); } if (spliceCount > 0) { events.splice(0, spliceCount); } return events; }; return ReplaySubject; })(Subject_1.Subject); exports.ReplaySubject = ReplaySubject; var ReplayEvent = (function () { function ReplayEvent(time, value) { this.time = time; this.value = value; } return ReplayEvent; })(); //# sourceMappingURL=ReplaySubject.js.map },{"../Subject":19,"../schedulers/immediate":129}],133:[function(require,module,exports){ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; var Subscription_1 = require('../Subscription'); var Subscriber_1 = require('../Subscriber'); var SubjectSubscription = (function (_super) { __extends(SubjectSubscription, _super); function SubjectSubscription(subject, observer) { _super.call(this); this.subject = subject; this.observer = observer; this.isUnsubscribed = false; } SubjectSubscription.prototype.unsubscribe = function () { if (this.isUnsubscribed) { return; } this.isUnsubscribed = true; var subject = this.subject; var observers = subject.observers; this.subject = void 0; if (!observers || observers.length === 0 || subject.isUnsubscribed) { return; } if (this.observer instanceof Subscriber_1.Subscriber) { this.observer.unsubscribe(); } var subscriberIndex = observers.indexOf(this.observer); if (subscriberIndex !== -1) { observers.splice(subscriberIndex, 1); } }; return SubjectSubscription; })(Subscription_1.Subscription); exports.SubjectSubscription = SubjectSubscription; //# sourceMappingURL=SubjectSubscription.js.map },{"../Subscriber":20,"../Subscription":21}],134:[function(require,module,exports){ var ArgumentOutOfRangeError = (function () { function ArgumentOutOfRangeError() { this.name = 'ArgumentOutOfRangeError'; this.message = 'argument out of range'; } return ArgumentOutOfRangeError; })(); exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError; //# sourceMappingURL=ArgumentOutOfRangeError.js.map },{}],135:[function(require,module,exports){ var EmptyError = (function () { function EmptyError() { this.name = 'EmptyError'; this.message = 'no elements in sequence'; } return EmptyError; })(); exports.EmptyError = EmptyError; //# sourceMappingURL=EmptyError.js.map },{}],136:[function(require,module,exports){ var FastMap = (function () { function FastMap() { this.size = 0; this._values = {}; } FastMap.prototype.delete = function (key) { this._values[key] = null; return true; }; FastMap.prototype.set = function (key, value) { this._values[key] = value; return this; }; FastMap.prototype.get = function (key) { return this._values[key]; }; FastMap.prototype.forEach = function (cb, thisArg) { var values = this._values; for (var key in values) { if (values.hasOwnProperty(key) && values[key] !== null) { cb.call(thisArg, values[key], key); } } }; FastMap.prototype.clear = function () { this._values = {}; }; return FastMap; })(); exports.FastMap = FastMap; //# sourceMappingURL=FastMap.js.map },{}],137:[function(require,module,exports){ /** Some credit for this helper goes to http://github.com/YuzuJS/setImmediate */ var root_1 = require('./root'); var ImmediateDefinition = (function () { function ImmediateDefinition(root) { this.root = root; if (root.setImmediate) { this.setImmediate = root.setImmediate; this.clearImmediate = root.clearImmediate; } else { this.nextHandle = 1; this.tasksByHandle = {}; this.currentlyRunningATask = false; // Don't get fooled by e.g. browserify environments. if (this.canUseProcessNextTick()) { // For Node.js before 0.9 this.setImmediate = this.createProcessNextTickSetImmediate(); } else if (this.canUsePostMessage()) { // For non-IE10 modern browsers this.setImmediate = this.createPostMessageSetImmediate(); } else if (this.canUseMessageChannel()) { // For web workers, where supported this.setImmediate = this.createMessageChannelSetImmediate(); } else if (this.canUseReadyStateChange()) { // For IE 6–8 this.setImmediate = this.createReadyStateChangeSetImmediate(); } else { // For older browsers this.setImmediate = this.createSetTimeoutSetImmediate(); } var ci = function clearImmediate(handle) { delete clearImmediate.instance.tasksByHandle[handle]; }; ci.instance = this; this.clearImmediate = ci; } } ImmediateDefinition.prototype.identify = function (o) { return this.root.Object.prototype.toString.call(o); }; ImmediateDefinition.prototype.canUseProcessNextTick = function () { return this.identify(this.root.process) === '[object process]'; }; ImmediateDefinition.prototype.canUseMessageChannel = function () { return Boolean(this.root.MessageChannel); }; ImmediateDefinition.prototype.canUseReadyStateChange = function () { var document = this.root.document; return Boolean(document && 'onreadystatechange' in document.createElement('script')); }; ImmediateDefinition.prototype.canUsePostMessage = function () { var root = this.root; // The test against `importScripts` prevents this implementation from being installed inside a web worker, // where `root.postMessage` means something completely different and can't be used for this purpose. if (root.postMessage && !root.importScripts) { var postMessageIsAsynchronous = true; var oldOnMessage = root.onmessage; root.onmessage = function () { postMessageIsAsynchronous = false; }; root.postMessage('', '*'); root.onmessage = oldOnMessage; return postMessageIsAsynchronous; } return false; }; // This function accepts the same arguments as setImmediate, but // returns a function that requires no arguments. ImmediateDefinition.prototype.partiallyApplied = function (handler) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var fn = function result() { var _a = result, handler = _a.handler, args = _a.args; if (typeof handler === 'function') { handler.apply(undefined, args); } else { (new Function('' + handler))(); } }; fn.handler = handler; fn.args = args; return fn; }; ImmediateDefinition.prototype.addFromSetImmediateArguments = function (args) { this.tasksByHandle[this.nextHandle] = this.partiallyApplied.apply(undefined, args); return this.nextHandle++; }; ImmediateDefinition.prototype.createProcessNextTickSetImmediate = function () { var fn = function setImmediate() { var instance = setImmediate.instance; var handle = instance.addFromSetImmediateArguments(arguments); instance.root.process.nextTick(instance.partiallyApplied(instance.runIfPresent, handle)); return handle; }; fn.instance = this; return fn; }; ImmediateDefinition.prototype.createPostMessageSetImmediate = function () { // Installs an event handler on `global` for the `message` event: see // * https://developer.mozilla.org/en/DOM/window.postMessage // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages var root = this.root; var messagePrefix = 'setImmediate$' + root.Math.random() + '$'; var onGlobalMessage = function globalMessageHandler(event) { var instance = globalMessageHandler.instance; if (event.source === root && typeof event.data === 'string' && event.data.indexOf(messagePrefix) === 0) { instance.runIfPresent(+event.data.slice(messagePrefix.length)); } }; onGlobalMessage.instance = this; root.addEventListener('message', onGlobalMessage, false); var fn = function setImmediate() { var _a = setImmediate, messagePrefix = _a.messagePrefix, instance = _a.instance; var handle = instance.addFromSetImmediateArguments(arguments); instance.root.postMessage(messagePrefix + handle, '*'); return handle; }; fn.instance = this; fn.messagePrefix = messagePrefix; return fn; }; ImmediateDefinition.prototype.runIfPresent = function (handle) { // From the spec: 'Wait until any invocations of this algorithm started before this one have completed.' // So if we're currently running a task, we'll need to delay this invocation. if (this.currentlyRunningATask) { // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a // 'too much recursion' error. this.root.setTimeout(this.partiallyApplied(this.runIfPresent, handle), 0); } else { var task = this.tasksByHandle[handle]; if (task) { this.currentlyRunningATask = true; try { task(); } finally { this.clearImmediate(handle); this.currentlyRunningATask = false; } } } }; ImmediateDefinition.prototype.createMessageChannelSetImmediate = function () { var _this = this; var channel = new this.root.MessageChannel(); channel.port1.onmessage = function (event) { var handle = event.data; _this.runIfPresent(handle); }; var fn = function setImmediate() { var _a = setImmediate, channel = _a.channel, instance = _a.instance; var handle = instance.addFromSetImmediateArguments(arguments); channel.port2.postMessage(handle); return handle; }; fn.channel = channel; fn.instance = this; return fn; }; ImmediateDefinition.prototype.createReadyStateChangeSetImmediate = function () { var fn = function setImmediate() { var instance = setImmediate.instance; var root = instance.root; var doc = root.document; var html = doc.documentElement; var handle = instance.addFromSetImmediateArguments(arguments); // Create a