"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.delayWhen = void 0; var concat_1 = require("../observable/concat"); var take_1 = require("./take"); var ignoreElements_1 = require("./ignoreElements"); var mapTo_1 = require("./mapTo"); var mergeMap_1 = require("./mergeMap"); var innerFrom_1 = require("../observable/innerFrom"); function delayWhen(delayDurationSelector, subscriptionDelay) { if (subscriptionDelay) { return function (source) { return concat_1.concat(subscriptionDelay.pipe(take_1.take(1), ignoreElements_1.ignoreElements()), source.pipe(delayWhen(delayDurationSelector))); }; } return mergeMap_1.mergeMap(function (value, index) { return innerFrom_1.innerFrom(delayDurationSelector(value, index)).pipe(take_1.take(1), mapTo_1.mapTo(value)); }); } exports.delayWhen = delayWhen; //# sourceMappingURL=delayWhen.js.map