dist/bundles/ng-user-admin.umd.js
function delayWhen$2(delayDurationSelector, subscriptionDelay) {
    if (subscriptionDelay) {
        return new SubscriptionDelayObservable(this, subscriptionDelay)
            .lift(new DelayWhenOperator(delayDurationSelector));
    }
    return this.lift(new DelayWhenOperator(delayDurationSelector));
}
function delayWhen$2(delayDurationSelector, subscriptionDelay) {
    if (subscriptionDelay) {
        return new SubscriptionDelayObservable(this, subscriptionDelay)
            .lift(new DelayWhenOperator(delayDurationSelector));
    }
    return this.lift(new DelayWhenOperator(delayDurationSelector));
}
function delayWhen$2 ( delayDurationSelector , subscriptionDelay ) { if ( subscriptionDelay ) { return new SubscriptionDelayObservable ( this , subscriptionDelay ) . lift ( new DelayWhenOperator ( delayDurationSelector ) ) ; } return this . lift ( new DelayWhenOperator ( delayDurationSelector ) ) ; }
Delays the emission of items from the source Observable by a given time span
determined by the emissions of another Observable.

<span class="informal">It's like {@link delay}, but the time span of the
delay duration is determined by a second Observable.</span>

<img src="./img/delayWhen.png" width="100%">

`delayWhen` time shifts each emitted value from the source Observable by a
time span determined by another Observable. When the source emits a value,
the `delayDurationSelector` function is called with the source value as
argument, and should return an Observable, called the "duration" Observable.
The source value is emitted on the output Observable only when the duration
Observable emits a value or completes.

Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which
is an Observable. When `subscriptionDelay` emits its first value or
completes, the source Observable is subscribed to and starts behaving like
described in the previous paragraph. If `subscriptionDelay` is not provided,
`delayWhen` will subscribe to the source Observable as soon as the output
Observable is subscribed.

@example <caption>Delay each click by a random amount of time, between 0 and 5 seconds</caption>
var clicks = Rx.Observable.fromEvent(document, 'click');
var delayedClicks = clicks.delayWhen(event =>
Rx.Observable.interval(Math.random() * 5000)
);
delayedClicks.subscribe(x => console.log(x));

@see {@link debounce}
@see {@link delay}

@param {function(value: T): Observable} delayDurationSelector A function that
returns an Observable for each value emitted by the source Observable, which
is then used to delay the emission of that item on the output Observable
until the Observable returned from this function emits a value.
@param {Observable} subscriptionDelay An Observable that triggers the
subscription to the source Observable once it emits any value.
@return {Observable} An Observable that delays the emissions of the source
Observable by an amount of time specified by the Observable returned by
`delayDurationSelector`.
@method delayWhen
@owner Observable
Delays the emission of items from the source Observable by a given time span determined by the emissions of another Observable .