{"ast":null,"code":"import _toConsumableArray from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n  for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n    sources[_key] = arguments[_key];\n  }\n\n  if (sources.length === 1) {\n    var first = sources[0];\n\n    if (isArray(first)) {\n      return forkJoinInternal(first, null);\n    }\n\n    if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n      var keys = Object.keys(first);\n      return forkJoinInternal(keys.map(function (key) {\n        return first[key];\n      }), keys);\n    }\n  }\n\n  if (typeof sources[sources.length - 1] === 'function') {\n    var resultSelector = sources.pop();\n    sources = sources.length === 1 && isArray(sources[0]) ? sources[0] : sources;\n    return forkJoinInternal(sources, null).pipe(map(function (args) {\n      return resultSelector.apply(void 0, _toConsumableArray(args));\n    }));\n  }\n\n  return forkJoinInternal(sources, null);\n}\n\nfunction forkJoinInternal(sources, keys) {\n  return new Observable(function (subscriber) {\n    var len = sources.length;\n\n    if (len === 0) {\n      subscriber.complete();\n      return;\n    }\n\n    var values = new Array(len);\n    var completed = 0;\n    var emitted = 0;\n\n    var _loop = function _loop(i) {\n      var source = from(sources[i]);\n      var hasValue = false;\n      subscriber.add(source.subscribe({\n        next: function next(value) {\n          if (!hasValue) {\n            hasValue = true;\n            emitted++;\n          }\n\n          values[i] = value;\n        },\n        error: function error(err) {\n          return subscriber.error(err);\n        },\n        complete: function complete() {\n          completed++;\n\n          if (completed === len || !hasValue) {\n            if (emitted === len) {\n              subscriber.next(keys ? keys.reduce(function (result, key, i) {\n                return result[key] = values[i], result;\n              }, {}) : values);\n            }\n\n            subscriber.complete();\n          }\n        }\n      }));\n    };\n\n    for (var i = 0; i < len; i++) {\n      _loop(i);\n    }\n  });\n} //# sourceMappingURL=forkJoin.js.map","map":null,"metadata":{},"sourceType":"module"}