docs: function(module, exports, __webpack_require__) {
  
  	"use strict";
  	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 = __webpack_require__(4);
  	var tryCatch_1 = __webpack_require__(13);
  	var errorObject_1 = __webpack_require__(14);
  	var OuterSubscriber_1 = __webpack_require__(309);
  	var subscribeToResult_1 = __webpack_require__(310);
  	/**
  	 * Returns an Observable that emits the same values as the source observable with the exception of a `complete`.
  	 * A `complete` will cause the emission of the Throwable that cause the complete to the Observable returned from
  	 * notificationHandler. If that Observable calls onComplete or `complete` then retry will call `complete` or `error`
  	 * on the child subscription. Otherwise, this Observable will resubscribe to the source observable, on a particular
  	 * Scheduler.
  	 *
  	 * <img src="./img/repeatWhen.png" width="100%">
  	 *
  	 * @param {notificationHandler} receives an Observable of notifications with which a user can `complete` or `error`,
  	 * aborting the retry.
  	 * @param {scheduler} the Scheduler on which to subscribe to the source Observable.
  	 * @return {Observable} the source Observable modified with retry logic.
  	 * @method repeatWhen
  	 * @owner Observable
  	 */
  	function repeatWhen(notifier) {
  	    return this.lift(new RepeatWhenOperator(notifier, this));
  	}
  	exports.repeatWhen = repeatWhen;
  	var RepeatWhenOperator = (function () {
  	    function RepeatWhenOperator(notifier, source) {
  	        this.notifier = notifier;
  	        this.source = source;
  	    }
  	    RepeatWhenOperator.prototype.call = function (subscriber, source) {
  	        return source._subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, this.source));
  	    };
  	    return RepeatWhenOperator;
  	}());
  	/**
  	 * We need this JSDoc comment for affecting ESDoc.
  	 * @ignore
  	 * @extends {Ignored}
  	 */
  	var RepeatWhenSubscriber = (function (_super) {
  	    __extends(RepeatWhenSubscriber, _super);
  	    function RepeatWhenSubscriber(destination, notifier, source) {
  	        _super.call(this, destination);
  	        this.notifier = notifier;
  	        this.source = source;
  	    }
  	    RepeatWhenSubscriber.prototype.complete = function () {
  	        if (!this.isStopped) {
  	            var notifications = this.notifications;
  	            var retries = this.retries;
  	            var retriesSubscription = this.retriesSubscription;
  	            if (!retries) {
  	                notifications = new Subject_1.Subject();
  	                retries = tryCatch_1.tryCatch(this.notifier)(notifications);
  	                if (retries === errorObject_1.errorObject) {
  	                    return _super.prototype.complete.call(this);
  	                }
  	                retriesSubscription = subscribeToResult_1.subscribeToResult(this, retries);
  	            }
  	            else {
  	                this.notifications = null;
  	                this.retriesSubscription = null;
  	            }
  	            this.unsubscribe();
  	            this.closed = false;
  	            this.notifications = notifications;
  	            this.retries = retries;
  	            this.retriesSubscription = retriesSubscription;
  	            notifications.next();
  	        }
  	    };
  	    RepeatWhenSubscriber.prototype._unsubscribe = function () {
  	        var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;
  	        if (notifications) {
  	            notifications.unsubscribe();
  	            this.notifications = null;
  	        }
  	        if (retriesSubscription) {
  	            retriesSubscription.unsubscribe();
  	            this.retriesSubscription = null;
  	        }
  	        this.retries = null;
  	    };
  	    RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
  	        var _a = this, notifications = _a.notifications, retries = _a.retries, retriesSubscription = _a.retriesSubscription;
  	        this.notifications = null;
  	        this.retries = null;
  	        this.retriesSubscription = null;
  	        this.unsubscribe();
  	        this.isStopped = false;
  	        this.closed = false;
  	        this.notifications = notifications;
  	        this.retries = retries;
  	        this.retriesSubscription = retriesSubscription;
  	        this.source.subscribe(this);
  	    };
  	    return RepeatWhenSubscriber;
  	}(OuterSubscriber_1.OuterSubscriber));
  	//# sourceMappingURL=repeatWhen.js.map
  
  /***/ }