| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- import { Observable } from '../Observable';
 
- import { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';
 
- import { innerFrom } from './innerFrom';
 
- import { popResultSelector } from '../util/args';
 
- import { createOperatorSubscriber } from '../operators/OperatorSubscriber';
 
- import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';
 
- import { createObject } from '../util/createObject';
 
- export function forkJoin() {
 
-     var args = [];
 
-     for (var _i = 0; _i < arguments.length; _i++) {
 
-         args[_i] = arguments[_i];
 
-     }
 
-     var resultSelector = popResultSelector(args);
 
-     var _a = argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys;
 
-     var result = new Observable(function (subscriber) {
 
-         var length = sources.length;
 
-         if (!length) {
 
-             subscriber.complete();
 
-             return;
 
-         }
 
-         var values = new Array(length);
 
-         var remainingCompletions = length;
 
-         var remainingEmissions = length;
 
-         var _loop_1 = function (sourceIndex) {
 
-             var hasValue = false;
 
-             innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {
 
-                 if (!hasValue) {
 
-                     hasValue = true;
 
-                     remainingEmissions--;
 
-                 }
 
-                 values[sourceIndex] = value;
 
-             }, function () { return remainingCompletions--; }, undefined, function () {
 
-                 if (!remainingCompletions || !hasValue) {
 
-                     if (!remainingEmissions) {
 
-                         subscriber.next(keys ? createObject(keys, values) : values);
 
-                     }
 
-                     subscriber.complete();
 
-                 }
 
-             }));
 
-         };
 
-         for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) {
 
-             _loop_1(sourceIndex);
 
-         }
 
-     });
 
-     return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;
 
- }
 
- //# sourceMappingURL=forkJoin.js.map
 
 
  |