| /** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */ | 
| import * as tslib_1 from "tslib"; | 
| import { map } from './map'; | 
| import { from } from '../observable/from'; | 
| import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; | 
| export function switchMap(project, resultSelector) { | 
|     if (typeof resultSelector === 'function') { | 
|         return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; | 
|     } | 
|     return function (source) { return source.lift(new SwitchMapOperator(project)); }; | 
| } | 
| var SwitchMapOperator = /*@__PURE__*/ (function () { | 
|     function SwitchMapOperator(project) { | 
|         this.project = project; | 
|     } | 
|     SwitchMapOperator.prototype.call = function (subscriber, source) { | 
|         return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); | 
|     }; | 
|     return SwitchMapOperator; | 
| }()); | 
| var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { | 
|     tslib_1.__extends(SwitchMapSubscriber, _super); | 
|     function SwitchMapSubscriber(destination, project) { | 
|         var _this = _super.call(this, destination) || this; | 
|         _this.project = project; | 
|         _this.index = 0; | 
|         return _this; | 
|     } | 
|     SwitchMapSubscriber.prototype._next = function (value) { | 
|         var result; | 
|         var index = this.index++; | 
|         try { | 
|             result = this.project(value, index); | 
|         } | 
|         catch (error) { | 
|             this.destination.error(error); | 
|             return; | 
|         } | 
|         this._innerSub(result); | 
|     }; | 
|     SwitchMapSubscriber.prototype._innerSub = function (result) { | 
|         var innerSubscription = this.innerSubscription; | 
|         if (innerSubscription) { | 
|             innerSubscription.unsubscribe(); | 
|         } | 
|         var innerSubscriber = new SimpleInnerSubscriber(this); | 
|         var destination = this.destination; | 
|         destination.add(innerSubscriber); | 
|         this.innerSubscription = innerSubscribe(result, innerSubscriber); | 
|         if (this.innerSubscription !== innerSubscriber) { | 
|             destination.add(this.innerSubscription); | 
|         } | 
|     }; | 
|     SwitchMapSubscriber.prototype._complete = function () { | 
|         var innerSubscription = this.innerSubscription; | 
|         if (!innerSubscription || innerSubscription.closed) { | 
|             _super.prototype._complete.call(this); | 
|         } | 
|         this.unsubscribe(); | 
|     }; | 
|     SwitchMapSubscriber.prototype._unsubscribe = function () { | 
|         this.innerSubscription = undefined; | 
|     }; | 
|     SwitchMapSubscriber.prototype.notifyComplete = function () { | 
|         this.innerSubscription = undefined; | 
|         if (this.isStopped) { | 
|             _super.prototype._complete.call(this); | 
|         } | 
|     }; | 
|     SwitchMapSubscriber.prototype.notifyNext = function (innerValue) { | 
|         this.destination.next(innerValue); | 
|     }; | 
|     return SwitchMapSubscriber; | 
| }(SimpleOuterSubscriber)); | 
| //# sourceMappingURL=switchMap.js.map |