{"ast":null,"code":"import _toConsumableArray from \"C:/Users/kgamal/Downloads/HijriGregorianDatepicker-master/HijriGregorianDatepicker-master/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n  if (resultSelector) {\n    if (isScheduler(resultSelector)) {\n      scheduler = resultSelector;\n    } else {\n      return function () {\n        return bindCallback(callbackFunc, scheduler).apply(void 0, arguments).pipe(map(function (args) {\n          return isArray(args) ? resultSelector.apply(void 0, _toConsumableArray(args)) : resultSelector(args);\n        }));\n      };\n    }\n  }\n\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var context = this;\n    var subject;\n    var params = {\n      context: context,\n      subject: subject,\n      callbackFunc: callbackFunc,\n      scheduler: scheduler\n    };\n    return new Observable(function (subscriber) {\n      if (!scheduler) {\n        if (!subject) {\n          subject = new AsyncSubject();\n\n          var handler = function handler() {\n            for (var _len2 = arguments.length, innerArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n              innerArgs[_key2] = arguments[_key2];\n            }\n\n            subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n            subject.complete();\n          };\n\n          try {\n            callbackFunc.apply(context, [].concat(args, [handler]));\n          } catch (err) {\n            if (canReportError(subject)) {\n              subject.error(err);\n            } else {\n              console.warn(err);\n            }\n          }\n        }\n\n        return subject.subscribe(subscriber);\n      } else {\n        var state = {\n          args: args,\n          subscriber: subscriber,\n          params: params\n        };\n        return scheduler.schedule(dispatch, 0, state);\n      }\n    });\n  };\n}\n\nfunction dispatch(state) {\n  var _this = this;\n\n  var self = this;\n  var args = state.args,\n      subscriber = state.subscriber,\n      params = state.params;\n  var callbackFunc = params.callbackFunc,\n      context = params.context,\n      scheduler = params.scheduler;\n  var subject = params.subject;\n\n  if (!subject) {\n    subject = params.subject = new AsyncSubject();\n\n    var handler = function handler() {\n      for (var _len3 = arguments.length, innerArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        innerArgs[_key3] = arguments[_key3];\n      }\n\n      var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n\n      _this.add(scheduler.schedule(dispatchNext, 0, {\n        value: value,\n        subject: subject\n      }));\n    };\n\n    try {\n      callbackFunc.apply(context, [].concat(_toConsumableArray(args), [handler]));\n    } catch (err) {\n      subject.error(err);\n    }\n  }\n\n  this.add(subject.subscribe(subscriber));\n}\n\nfunction dispatchNext(state) {\n  var value = state.value,\n      subject = state.subject;\n  subject.next(value);\n  subject.complete();\n}\n\nfunction dispatchError(state) {\n  var err = state.err,\n      subject = state.subject;\n  subject.error(err);\n} //# sourceMappingURL=bindCallback.js.map","map":null,"metadata":{},"sourceType":"module"}