{"ast":null,"code":"import _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 _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 { Action } from './Action';\nexport var AsyncAction = /*#__PURE__*/function (_Action) {\n  _inherits(AsyncAction, _Action);\n\n  var _super = _createSuper(AsyncAction);\n\n  function AsyncAction(scheduler, work) {\n    var _this;\n\n    _classCallCheck(this, AsyncAction);\n\n    _this = _super.call(this, scheduler, work);\n    _this.scheduler = scheduler;\n    _this.work = work;\n    _this.pending = false;\n    return _this;\n  }\n\n  _createClass(AsyncAction, [{\n    key: \"schedule\",\n    value: function schedule(state) {\n      var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n      if (this.closed) {\n        return this;\n      }\n\n      this.state = state;\n      var id = this.id;\n      var scheduler = this.scheduler;\n\n      if (id != null) {\n        this.id = this.recycleAsyncId(scheduler, id, delay);\n      }\n\n      this.pending = true;\n      this.delay = delay;\n      this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n      return this;\n    }\n  }, {\n    key: \"requestAsyncId\",\n    value: function requestAsyncId(scheduler, id) {\n      var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n      return setInterval(scheduler.flush.bind(scheduler, this), delay);\n    }\n  }, {\n    key: \"recycleAsyncId\",\n    value: function recycleAsyncId(scheduler, id) {\n      var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n      if (delay !== null && this.delay === delay && this.pending === false) {\n        return id;\n      }\n\n      clearInterval(id);\n      return undefined;\n    }\n  }, {\n    key: \"execute\",\n    value: function execute(state, delay) {\n      if (this.closed) {\n        return new Error('executing a cancelled action');\n      }\n\n      this.pending = false;\n\n      var error = this._execute(state, delay);\n\n      if (error) {\n        return error;\n      } else if (this.pending === false && this.id != null) {\n        this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n      }\n    }\n  }, {\n    key: \"_execute\",\n    value: function _execute(state, delay) {\n      var errored = false;\n      var errorValue = undefined;\n\n      try {\n        this.work(state);\n      } catch (e) {\n        errored = true;\n        errorValue = !!e && e || new Error(e);\n      }\n\n      if (errored) {\n        this.unsubscribe();\n        return errorValue;\n      }\n    }\n  }, {\n    key: \"_unsubscribe\",\n    value: function _unsubscribe() {\n      var id = this.id;\n      var scheduler = this.scheduler;\n      var actions = scheduler.actions;\n      var index = actions.indexOf(this);\n      this.work = null;\n      this.state = null;\n      this.pending = false;\n      this.scheduler = null;\n\n      if (index !== -1) {\n        actions.splice(index, 1);\n      }\n\n      if (id != null) {\n        this.id = this.recycleAsyncId(scheduler, id, null);\n      }\n\n      this.delay = null;\n    }\n  }]);\n\n  return AsyncAction;\n}(Action); //# sourceMappingURL=AsyncAction.js.map","map":null,"metadata":{},"sourceType":"module"}