{"ast":null,"code":"import _inherits from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function zip() {\n  for (var _len = arguments.length, observables = new Array(_len), _key = 0; _key < _len; _key++) {\n    observables[_key] = arguments[_key];\n  }\n\n  var resultSelector = observables[observables.length - 1];\n\n  if (typeof resultSelector === 'function') {\n    observables.pop();\n  }\n\n  return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nexport var ZipOperator = /*#__PURE__*/function () {\n  function ZipOperator(resultSelector) {\n    _classCallCheck(this, ZipOperator);\n\n    this.resultSelector = resultSelector;\n  }\n\n  _createClass(ZipOperator, [{\n    key: \"call\",\n    value: function call(subscriber, source) {\n      return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n    }\n  }]);\n\n  return ZipOperator;\n}();\nexport var ZipSubscriber = /*#__PURE__*/function (_Subscriber) {\n  _inherits(ZipSubscriber, _Subscriber);\n\n  var _super = _createSuper(ZipSubscriber);\n\n  function ZipSubscriber(destination, resultSelector) {\n    var _this;\n\n    var values = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Object.create(null);\n\n    _classCallCheck(this, ZipSubscriber);\n\n    _this = _super.call(this, destination);\n    _this.resultSelector = resultSelector;\n    _this.iterators = [];\n    _this.active = 0;\n    _this.resultSelector = typeof resultSelector === 'function' ? resultSelector : undefined;\n    return _this;\n  }\n\n  _createClass(ZipSubscriber, [{\n    key: \"_next\",\n    value: function _next(value) {\n      var iterators = this.iterators;\n\n      if (isArray(value)) {\n        iterators.push(new StaticArrayIterator(value));\n      } else if (typeof value[Symbol_iterator] === 'function') {\n        iterators.push(new StaticIterator(value[Symbol_iterator]()));\n      } else {\n        iterators.push(new ZipBufferIterator(this.destination, this, value));\n      }\n    }\n  }, {\n    key: \"_complete\",\n    value: function _complete() {\n      var iterators = this.iterators;\n      var len = iterators.length;\n      this.unsubscribe();\n\n      if (len === 0) {\n        this.destination.complete();\n        return;\n      }\n\n      this.active = len;\n\n      for (var i = 0; i < len; i++) {\n        var iterator = iterators[i];\n\n        if (iterator.stillUnsubscribed) {\n          var destination = this.destination;\n          destination.add(iterator.subscribe());\n        } else {\n          this.active--;\n        }\n      }\n    }\n  }, {\n    key: \"notifyInactive\",\n    value: function notifyInactive() {\n      this.active--;\n\n      if (this.active === 0) {\n        this.destination.complete();\n      }\n    }\n  }, {\n    key: \"checkIterators\",\n    value: function checkIterators() {\n      var iterators = this.iterators;\n      var len = iterators.length;\n      var destination = this.destination;\n\n      for (var i = 0; i < len; i++) {\n        var iterator = iterators[i];\n\n        if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n          return;\n        }\n      }\n\n      var shouldComplete = false;\n      var args = [];\n\n      for (var _i = 0; _i < len; _i++) {\n        var _iterator = iterators[_i];\n\n        var result = _iterator.next();\n\n        if (_iterator.hasCompleted()) {\n          shouldComplete = true;\n        }\n\n        if (result.done) {\n          destination.complete();\n          return;\n        }\n\n        args.push(result.value);\n      }\n\n      if (this.resultSelector) {\n        this._tryresultSelector(args);\n      } else {\n        destination.next(args);\n      }\n\n      if (shouldComplete) {\n        destination.complete();\n      }\n    }\n  }, {\n    key: \"_tryresultSelector\",\n    value: function _tryresultSelector(args) {\n      var result;\n\n      try {\n        result = this.resultSelector.apply(this, args);\n      } catch (err) {\n        this.destination.error(err);\n        return;\n      }\n\n      this.destination.next(result);\n    }\n  }]);\n\n  return ZipSubscriber;\n}(Subscriber);\n\nvar StaticIterator = /*#__PURE__*/function () {\n  function StaticIterator(iterator) {\n    _classCallCheck(this, StaticIterator);\n\n    this.iterator = iterator;\n    this.nextResult = iterator.next();\n  }\n\n  _createClass(StaticIterator, [{\n    key: \"hasValue\",\n    value: function hasValue() {\n      return true;\n    }\n  }, {\n    key: \"next\",\n    value: function next() {\n      var result = this.nextResult;\n      this.nextResult = this.iterator.next();\n      return result;\n    }\n  }, {\n    key: \"hasCompleted\",\n    value: function hasCompleted() {\n      var nextResult = this.nextResult;\n      return Boolean(nextResult && nextResult.done);\n    }\n  }]);\n\n  return StaticIterator;\n}();\n\nvar StaticArrayIterator = /*#__PURE__*/function () {\n  function StaticArrayIterator(array) {\n    _classCallCheck(this, StaticArrayIterator);\n\n    this.array = array;\n    this.index = 0;\n    this.length = 0;\n    this.length = array.length;\n  }\n\n  _createClass(StaticArrayIterator, [{\n    key: Symbol_iterator,\n    value: function value() {\n      return this;\n    }\n  }, {\n    key: \"next\",\n    value: function next(value) {\n      var i = this.index++;\n      var array = this.array;\n      return i < this.length ? {\n        value: array[i],\n        done: false\n      } : {\n        value: null,\n        done: true\n      };\n    }\n  }, {\n    key: \"hasValue\",\n    value: function hasValue() {\n      return this.array.length > this.index;\n    }\n  }, {\n    key: \"hasCompleted\",\n    value: function hasCompleted() {\n      return this.array.length === this.index;\n    }\n  }]);\n\n  return StaticArrayIterator;\n}();\n\nvar ZipBufferIterator = /*#__PURE__*/function (_SimpleOuterSubscribe) {\n  _inherits(ZipBufferIterator, _SimpleOuterSubscribe);\n\n  var _super2 = _createSuper(ZipBufferIterator);\n\n  function ZipBufferIterator(destination, parent, observable) {\n    var _this2;\n\n    _classCallCheck(this, ZipBufferIterator);\n\n    _this2 = _super2.call(this, destination);\n    _this2.parent = parent;\n    _this2.observable = observable;\n    _this2.stillUnsubscribed = true;\n    _this2.buffer = [];\n    _this2.isComplete = false;\n    return _this2;\n  }\n\n  _createClass(ZipBufferIterator, [{\n    key: Symbol_iterator,\n    value: function value() {\n      return this;\n    }\n  }, {\n    key: \"next\",\n    value: function next() {\n      var buffer = this.buffer;\n\n      if (buffer.length === 0 && this.isComplete) {\n        return {\n          value: null,\n          done: true\n        };\n      } else {\n        return {\n          value: buffer.shift(),\n          done: false\n        };\n      }\n    }\n  }, {\n    key: \"hasValue\",\n    value: function hasValue() {\n      return this.buffer.length > 0;\n    }\n  }, {\n    key: \"hasCompleted\",\n    value: function hasCompleted() {\n      return this.buffer.length === 0 && this.isComplete;\n    }\n  }, {\n    key: \"notifyComplete\",\n    value: function notifyComplete() {\n      if (this.buffer.length > 0) {\n        this.isComplete = true;\n        this.parent.notifyInactive();\n      } else {\n        this.destination.complete();\n      }\n    }\n  }, {\n    key: \"notifyNext\",\n    value: function notifyNext(innerValue) {\n      this.buffer.push(innerValue);\n      this.parent.checkIterators();\n    }\n  }, {\n    key: \"subscribe\",\n    value: function subscribe() {\n      return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n    }\n  }]);\n\n  return ZipBufferIterator;\n}(SimpleOuterSubscriber); //# sourceMappingURL=zip.js.map","map":null,"metadata":{},"sourceType":"module"}