Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / _esm2015 / internal / operators / delayWhen.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
new file mode 100644 (file)
index 0000000..3b8d6c0
--- /dev/null
@@ -0,0 +1,118 @@
+import { Subscriber } from '../Subscriber';
+import { Observable } from '../Observable';
+import { OuterSubscriber } from '../OuterSubscriber';
+import { subscribeToResult } from '../util/subscribeToResult';
+export function delayWhen(delayDurationSelector, subscriptionDelay) {
+    if (subscriptionDelay) {
+        return (source) => new SubscriptionDelayObservable(source, subscriptionDelay)
+            .lift(new DelayWhenOperator(delayDurationSelector));
+    }
+    return (source) => source.lift(new DelayWhenOperator(delayDurationSelector));
+}
+class DelayWhenOperator {
+    constructor(delayDurationSelector) {
+        this.delayDurationSelector = delayDurationSelector;
+    }
+    call(subscriber, source) {
+        return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
+    }
+}
+class DelayWhenSubscriber extends OuterSubscriber {
+    constructor(destination, delayDurationSelector) {
+        super(destination);
+        this.delayDurationSelector = delayDurationSelector;
+        this.completed = false;
+        this.delayNotifierSubscriptions = [];
+        this.index = 0;
+    }
+    notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
+        this.destination.next(outerValue);
+        this.removeSubscription(innerSub);
+        this.tryComplete();
+    }
+    notifyError(error, innerSub) {
+        this._error(error);
+    }
+    notifyComplete(innerSub) {
+        const value = this.removeSubscription(innerSub);
+        if (value) {
+            this.destination.next(value);
+        }
+        this.tryComplete();
+    }
+    _next(value) {
+        const index = this.index++;
+        try {
+            const delayNotifier = this.delayDurationSelector(value, index);
+            if (delayNotifier) {
+                this.tryDelay(delayNotifier, value);
+            }
+        }
+        catch (err) {
+            this.destination.error(err);
+        }
+    }
+    _complete() {
+        this.completed = true;
+        this.tryComplete();
+        this.unsubscribe();
+    }
+    removeSubscription(subscription) {
+        subscription.unsubscribe();
+        const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
+        if (subscriptionIdx !== -1) {
+            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
+        }
+        return subscription.outerValue;
+    }
+    tryDelay(delayNotifier, value) {
+        const notifierSubscription = subscribeToResult(this, delayNotifier, value);
+        if (notifierSubscription && !notifierSubscription.closed) {
+            const destination = this.destination;
+            destination.add(notifierSubscription);
+            this.delayNotifierSubscriptions.push(notifierSubscription);
+        }
+    }
+    tryComplete() {
+        if (this.completed && this.delayNotifierSubscriptions.length === 0) {
+            this.destination.complete();
+        }
+    }
+}
+class SubscriptionDelayObservable extends Observable {
+    constructor(source, subscriptionDelay) {
+        super();
+        this.source = source;
+        this.subscriptionDelay = subscriptionDelay;
+    }
+    _subscribe(subscriber) {
+        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
+    }
+}
+class SubscriptionDelaySubscriber extends Subscriber {
+    constructor(parent, source) {
+        super();
+        this.parent = parent;
+        this.source = source;
+        this.sourceSubscribed = false;
+    }
+    _next(unused) {
+        this.subscribeToSource();
+    }
+    _error(err) {
+        this.unsubscribe();
+        this.parent.error(err);
+    }
+    _complete() {
+        this.unsubscribe();
+        this.subscribeToSource();
+    }
+    subscribeToSource() {
+        if (!this.sourceSubscribed) {
+            this.sourceSubscribed = true;
+            this.unsubscribe();
+            this.source.subscribe(this.parent);
+        }
+    }
+}
+//# sourceMappingURL=delayWhen.js.map
\ No newline at end of file