"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fromEventPattern = void 0; var Observable_1 = require("../Observable"); var isFunction_1 = require("../util/isFunction"); var mapOneOrManyArgs_1 = require("../util/mapOneOrManyArgs"); function fromEventPattern(addHandler, removeHandler, resultSelector) { if (resultSelector) { return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); } return new Observable_1.Observable(function (subscriber) { var handler = function () { var e = []; for (var _i = 0; _i < arguments.length; _i++) { e[_i] = arguments[_i]; } return subscriber.next(e.length === 1 ? e[0] : e); }; var retValue = addHandler(handler); return isFunction_1.isFunction(removeHandler) ? function () { return removeHandler(handler, retValue); } : undefined; }); } exports.fromEventPattern = fromEventPattern; //# sourceMappingURL=fromEventPattern.js.map