| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | "use strict";var __extends = (this && this.__extends) || (function () {    var extendStatics = function (d, b) {        extendStatics = Object.setPrototypeOf ||            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };        return extendStatics(d, b);    }    return function (d, b) {        extendStatics(d, b);        function __() { this.constructor = d; }        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());    };})();Object.defineProperty(exports, "__esModule", { value: true });var Subject_1 = require("../Subject");var innerSubscribe_1 = require("../innerSubscribe");function repeatWhen(notifier) {    return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };}exports.repeatWhen = repeatWhen;var RepeatWhenOperator = (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 = (function (_super) {    __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_1.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_1.innerSubscribe(retries, new innerSubscribe_1.SimpleInnerSubscriber(this));    };    return RepeatWhenSubscriber;}(innerSubscribe_1.SimpleOuterSubscriber));//# sourceMappingURL=repeatWhen.js.map
 |