| /** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */ | 
| import * as tslib_1 from "tslib"; | 
| import { Subject } from '../Subject'; | 
| import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; | 
| export function repeatWhen(notifier) { | 
|     return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; | 
| } | 
| var RepeatWhenOperator = /*@__PURE__*/ (function () { | 
|     function RepeatWhenOperator(notifier) { | 
|         this.notifier = notifier; | 
|     } | 
|     RepeatWhenOperator.prototype.call = function (subscriber, source) { | 
|         return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); | 
|     }; | 
|     return RepeatWhenOperator; | 
| }()); | 
| var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { | 
|     tslib_1.__extends(RepeatWhenSubscriber, _super); | 
|     function RepeatWhenSubscriber(destination, notifier, source) { | 
|         var _this = _super.call(this, destination) || this; | 
|         _this.notifier = notifier; | 
|         _this.source = source; | 
|         _this.sourceIsBeingSubscribedTo = true; | 
|         return _this; | 
|     } | 
|     RepeatWhenSubscriber.prototype.notifyNext = function () { | 
|         this.sourceIsBeingSubscribedTo = true; | 
|         this.source.subscribe(this); | 
|     }; | 
|     RepeatWhenSubscriber.prototype.notifyComplete = function () { | 
|         if (this.sourceIsBeingSubscribedTo === false) { | 
|             return _super.prototype.complete.call(this); | 
|         } | 
|     }; | 
|     RepeatWhenSubscriber.prototype.complete = function () { | 
|         this.sourceIsBeingSubscribedTo = false; | 
|         if (!this.isStopped) { | 
|             if (!this.retries) { | 
|                 this.subscribeToRetries(); | 
|             } | 
|             if (!this.retriesSubscription || this.retriesSubscription.closed) { | 
|                 return _super.prototype.complete.call(this); | 
|             } | 
|             this._unsubscribeAndRecycle(); | 
|             this.notifications.next(undefined); | 
|         } | 
|     }; | 
|     RepeatWhenSubscriber.prototype._unsubscribe = function () { | 
|         var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; | 
|         if (notifications) { | 
|             notifications.unsubscribe(); | 
|             this.notifications = undefined; | 
|         } | 
|         if (retriesSubscription) { | 
|             retriesSubscription.unsubscribe(); | 
|             this.retriesSubscription = undefined; | 
|         } | 
|         this.retries = undefined; | 
|     }; | 
|     RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { | 
|         var _unsubscribe = this._unsubscribe; | 
|         this._unsubscribe = null; | 
|         _super.prototype._unsubscribeAndRecycle.call(this); | 
|         this._unsubscribe = _unsubscribe; | 
|         return this; | 
|     }; | 
|     RepeatWhenSubscriber.prototype.subscribeToRetries = function () { | 
|         this.notifications = new Subject(); | 
|         var retries; | 
|         try { | 
|             var notifier = this.notifier; | 
|             retries = notifier(this.notifications); | 
|         } | 
|         catch (e) { | 
|             return _super.prototype.complete.call(this); | 
|         } | 
|         this.retries = retries; | 
|         this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); | 
|     }; | 
|     return RepeatWhenSubscriber; | 
| }(SimpleOuterSubscriber)); | 
| //# sourceMappingURL=repeatWhen.js.map |