{"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 { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function audit(durationSelector) {\n  return function auditOperatorFunction(source) {\n    return source.lift(new AuditOperator(durationSelector));\n  };\n}\n\nvar AuditOperator = /*#__PURE__*/function () {\n  function AuditOperator(durationSelector) {\n    _classCallCheck(this, AuditOperator);\n\n    this.durationSelector = durationSelector;\n  }\n\n  _createClass(AuditOperator, [{\n    key: \"call\",\n    value: function call(subscriber, source) {\n      return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n    }\n  }]);\n\n  return AuditOperator;\n}();\n\nvar AuditSubscriber = /*#__PURE__*/function (_SimpleOuterSubscribe) {\n  _inherits(AuditSubscriber, _SimpleOuterSubscribe);\n\n  var _super = _createSuper(AuditSubscriber);\n\n  function AuditSubscriber(destination, durationSelector) {\n    var _this;\n\n    _classCallCheck(this, AuditSubscriber);\n\n    _this = _super.call(this, destination);\n    _this.durationSelector = durationSelector;\n    _this.hasValue = false;\n    return _this;\n  }\n\n  _createClass(AuditSubscriber, [{\n    key: \"_next\",\n    value: function _next(value) {\n      this.value = value;\n      this.hasValue = true;\n\n      if (!this.throttled) {\n        var duration;\n\n        try {\n          var durationSelector = this.durationSelector;\n          duration = durationSelector(value);\n        } catch (err) {\n          return this.destination.error(err);\n        }\n\n        var innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n\n        if (!innerSubscription || innerSubscription.closed) {\n          this.clearThrottle();\n        } else {\n          this.add(this.throttled = innerSubscription);\n        }\n      }\n    }\n  }, {\n    key: \"clearThrottle\",\n    value: function clearThrottle() {\n      var value = this.value,\n          hasValue = this.hasValue,\n          throttled = this.throttled;\n\n      if (throttled) {\n        this.remove(throttled);\n        this.throttled = undefined;\n        throttled.unsubscribe();\n      }\n\n      if (hasValue) {\n        this.value = undefined;\n        this.hasValue = false;\n        this.destination.next(value);\n      }\n    }\n  }, {\n    key: \"notifyNext\",\n    value: function notifyNext() {\n      this.clearThrottle();\n    }\n  }, {\n    key: \"notifyComplete\",\n    value: function notifyComplete() {\n      this.clearThrottle();\n    }\n  }]);\n\n  return AuditSubscriber;\n}(SimpleOuterSubscriber); //# sourceMappingURL=audit.js.map","map":null,"metadata":{},"sourceType":"module"}