{"ast":null,"code":"import _assertThisInitialized from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _get from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/get\";\nimport _getPrototypeOf from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _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 { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n  return function (source) {\n    return source.lift(new WindowToggleOperator(openings, closingSelector));\n  };\n}\n\nvar WindowToggleOperator = /*#__PURE__*/function () {\n  function WindowToggleOperator(openings, closingSelector) {\n    _classCallCheck(this, WindowToggleOperator);\n\n    this.openings = openings;\n    this.closingSelector = closingSelector;\n  }\n\n  _createClass(WindowToggleOperator, [{\n    key: \"call\",\n    value: function call(subscriber, source) {\n      return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n    }\n  }]);\n\n  return WindowToggleOperator;\n}();\n\nvar WindowToggleSubscriber = /*#__PURE__*/function (_OuterSubscriber) {\n  _inherits(WindowToggleSubscriber, _OuterSubscriber);\n\n  var _super = _createSuper(WindowToggleSubscriber);\n\n  function WindowToggleSubscriber(destination, openings, closingSelector) {\n    var _this;\n\n    _classCallCheck(this, WindowToggleSubscriber);\n\n    _this = _super.call(this, destination);\n    _this.openings = openings;\n    _this.closingSelector = closingSelector;\n    _this.contexts = [];\n\n    _this.add(_this.openSubscription = subscribeToResult(_assertThisInitialized(_this), openings, openings));\n\n    return _this;\n  }\n\n  _createClass(WindowToggleSubscriber, [{\n    key: \"_next\",\n    value: function _next(value) {\n      var contexts = this.contexts;\n\n      if (contexts) {\n        var len = contexts.length;\n\n        for (var i = 0; i < len; i++) {\n          contexts[i].window.next(value);\n        }\n      }\n    }\n  }, {\n    key: \"_error\",\n    value: function _error(err) {\n      var contexts = this.contexts;\n      this.contexts = null;\n\n      if (contexts) {\n        var len = contexts.length;\n        var index = -1;\n\n        while (++index < len) {\n          var context = contexts[index];\n          context.window.error(err);\n          context.subscription.unsubscribe();\n        }\n      }\n\n      _get(_getPrototypeOf(WindowToggleSubscriber.prototype), \"_error\", this).call(this, err);\n    }\n  }, {\n    key: \"_complete\",\n    value: function _complete() {\n      var contexts = this.contexts;\n      this.contexts = null;\n\n      if (contexts) {\n        var len = contexts.length;\n        var index = -1;\n\n        while (++index < len) {\n          var context = contexts[index];\n          context.window.complete();\n          context.subscription.unsubscribe();\n        }\n      }\n\n      _get(_getPrototypeOf(WindowToggleSubscriber.prototype), \"_complete\", this).call(this);\n    }\n  }, {\n    key: \"_unsubscribe\",\n    value: function _unsubscribe() {\n      var contexts = this.contexts;\n      this.contexts = null;\n\n      if (contexts) {\n        var len = contexts.length;\n        var index = -1;\n\n        while (++index < len) {\n          var context = contexts[index];\n          context.window.unsubscribe();\n          context.subscription.unsubscribe();\n        }\n      }\n    }\n  }, {\n    key: \"notifyNext\",\n    value: function notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n      if (outerValue === this.openings) {\n        var closingNotifier;\n\n        try {\n          var closingSelector = this.closingSelector;\n          closingNotifier = closingSelector(innerValue);\n        } catch (e) {\n          return this.error(e);\n        }\n\n        var window = new Subject();\n        var subscription = new Subscription();\n        var context = {\n          window: window,\n          subscription: subscription\n        };\n        this.contexts.push(context);\n        var innerSubscription = subscribeToResult(this, closingNotifier, context);\n\n        if (innerSubscription.closed) {\n          this.closeWindow(this.contexts.length - 1);\n        } else {\n          innerSubscription.context = context;\n          subscription.add(innerSubscription);\n        }\n\n        this.destination.next(window);\n      } else {\n        this.closeWindow(this.contexts.indexOf(outerValue));\n      }\n    }\n  }, {\n    key: \"notifyError\",\n    value: function notifyError(err) {\n      this.error(err);\n    }\n  }, {\n    key: \"notifyComplete\",\n    value: function notifyComplete(inner) {\n      if (inner !== this.openSubscription) {\n        this.closeWindow(this.contexts.indexOf(inner.context));\n      }\n    }\n  }, {\n    key: \"closeWindow\",\n    value: function closeWindow(index) {\n      if (index === -1) {\n        return;\n      }\n\n      var contexts = this.contexts;\n      var context = contexts[index];\n      var window = context.window,\n          subscription = context.subscription;\n      contexts.splice(index, 1);\n      window.complete();\n      subscription.unsubscribe();\n    }\n  }]);\n\n  return WindowToggleSubscriber;\n}(OuterSubscriber); //# sourceMappingURL=windowToggle.js.map","map":null,"metadata":{},"sourceType":"module"}