{"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 { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n  return function windowWhenOperatorFunction(source) {\n    return source.lift(new WindowOperator(closingSelector));\n  };\n}\n\nvar WindowOperator = /*#__PURE__*/function () {\n  function WindowOperator(closingSelector) {\n    _classCallCheck(this, WindowOperator);\n\n    this.closingSelector = closingSelector;\n  }\n\n  _createClass(WindowOperator, [{\n    key: \"call\",\n    value: function call(subscriber, source) {\n      return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n    }\n  }]);\n\n  return WindowOperator;\n}();\n\nvar WindowSubscriber = /*#__PURE__*/function (_OuterSubscriber) {\n  _inherits(WindowSubscriber, _OuterSubscriber);\n\n  var _super = _createSuper(WindowSubscriber);\n\n  function WindowSubscriber(destination, closingSelector) {\n    var _this;\n\n    _classCallCheck(this, WindowSubscriber);\n\n    _this = _super.call(this, destination);\n    _this.destination = destination;\n    _this.closingSelector = closingSelector;\n\n    _this.openWindow();\n\n    return _this;\n  }\n\n  _createClass(WindowSubscriber, [{\n    key: \"notifyNext\",\n    value: function notifyNext(_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {\n      this.openWindow(innerSub);\n    }\n  }, {\n    key: \"notifyError\",\n    value: function notifyError(error) {\n      this._error(error);\n    }\n  }, {\n    key: \"notifyComplete\",\n    value: function notifyComplete(innerSub) {\n      this.openWindow(innerSub);\n    }\n  }, {\n    key: \"_next\",\n    value: function _next(value) {\n      this.window.next(value);\n    }\n  }, {\n    key: \"_error\",\n    value: function _error(err) {\n      this.window.error(err);\n      this.destination.error(err);\n      this.unsubscribeClosingNotification();\n    }\n  }, {\n    key: \"_complete\",\n    value: function _complete() {\n      this.window.complete();\n      this.destination.complete();\n      this.unsubscribeClosingNotification();\n    }\n  }, {\n    key: \"unsubscribeClosingNotification\",\n    value: function unsubscribeClosingNotification() {\n      if (this.closingNotification) {\n        this.closingNotification.unsubscribe();\n      }\n    }\n  }, {\n    key: \"openWindow\",\n    value: function openWindow() {\n      var innerSub = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n      if (innerSub) {\n        this.remove(innerSub);\n        innerSub.unsubscribe();\n      }\n\n      var prevWindow = this.window;\n\n      if (prevWindow) {\n        prevWindow.complete();\n      }\n\n      var window = this.window = new Subject();\n      this.destination.next(window);\n      var closingNotifier;\n\n      try {\n        var closingSelector = this.closingSelector;\n        closingNotifier = closingSelector();\n      } catch (e) {\n        this.destination.error(e);\n        this.window.error(e);\n        return;\n      }\n\n      this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n    }\n  }]);\n\n  return WindowSubscriber;\n}(OuterSubscriber); //# sourceMappingURL=windowWhen.js.map","map":null,"metadata":{},"sourceType":"module"}