{"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 { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\n\nvar toString = /*@__PURE__*/function () {\n  return Object.prototype.toString;\n}();\n\nexport function fromEvent(target, eventName, options, resultSelector) {\n  if (isFunction(options)) {\n    resultSelector = options;\n    options = undefined;\n  }\n\n  if (resultSelector) {\n    return fromEvent(target, eventName, options).pipe(map(function (args) {\n      return isArray(args) ? resultSelector.apply(void 0, _toConsumableArray(args)) : resultSelector(args);\n    }));\n  }\n\n  return new Observable(function (subscriber) {\n    function handler(e) {\n      if (arguments.length > 1) {\n        subscriber.next(Array.prototype.slice.call(arguments));\n      } else {\n        subscriber.next(e);\n      }\n    }\n\n    setupSubscription(target, eventName, handler, subscriber, options);\n  });\n}\n\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n  var unsubscribe;\n\n  if (isEventTarget(sourceObj)) {\n    var source = sourceObj;\n    sourceObj.addEventListener(eventName, handler, options);\n\n    unsubscribe = function unsubscribe() {\n      return source.removeEventListener(eventName, handler, options);\n    };\n  } else if (isJQueryStyleEventEmitter(sourceObj)) {\n    var _source = sourceObj;\n    sourceObj.on(eventName, handler);\n\n    unsubscribe = function unsubscribe() {\n      return _source.off(eventName, handler);\n    };\n  } else if (isNodeStyleEventEmitter(sourceObj)) {\n    var _source2 = sourceObj;\n    sourceObj.addListener(eventName, handler);\n\n    unsubscribe = function unsubscribe() {\n      return _source2.removeListener(eventName, handler);\n    };\n  } else if (sourceObj && sourceObj.length) {\n    for (var i = 0, len = sourceObj.length; i < len; i++) {\n      setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n    }\n  } else {\n    throw new TypeError('Invalid event target');\n  }\n\n  subscriber.add(unsubscribe);\n}\n\nfunction isNodeStyleEventEmitter(sourceObj) {\n  return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\n\nfunction isJQueryStyleEventEmitter(sourceObj) {\n  return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\n\nfunction isEventTarget(sourceObj) {\n  return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n} //# sourceMappingURL=fromEvent.js.map","map":null,"metadata":{},"sourceType":"module"}