| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });var Observable_1 = require("../Observable");var isArray_1 = require("../util/isArray");var isFunction_1 = require("../util/isFunction");var map_1 = require("../operators/map");var toString = (function () { return Object.prototype.toString; })();function fromEvent(target, eventName, options, resultSelector) {    if (isFunction_1.isFunction(options)) {        resultSelector = options;        options = undefined;    }    if (resultSelector) {        return fromEvent(target, eventName, options).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));    }    return new Observable_1.Observable(function (subscriber) {        function handler(e) {            if (arguments.length > 1) {                subscriber.next(Array.prototype.slice.call(arguments));            }            else {                subscriber.next(e);            }        }        setupSubscription(target, eventName, handler, subscriber, options);    });}exports.fromEvent = fromEvent;function setupSubscription(sourceObj, eventName, handler, subscriber, options) {    var unsubscribe;    if (isEventTarget(sourceObj)) {        var source_1 = sourceObj;        sourceObj.addEventListener(eventName, handler, options);        unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };    }    else if (isJQueryStyleEventEmitter(sourceObj)) {        var source_2 = sourceObj;        sourceObj.on(eventName, handler);        unsubscribe = function () { return source_2.off(eventName, handler); };    }    else if (isNodeStyleEventEmitter(sourceObj)) {        var source_3 = sourceObj;        sourceObj.addListener(eventName, handler);        unsubscribe = function () { return source_3.removeListener(eventName, handler); };    }    else if (sourceObj && sourceObj.length) {        for (var i = 0, len = sourceObj.length; i < len; i++) {            setupSubscription(sourceObj[i], eventName, handler, subscriber, options);        }    }    else {        throw new TypeError('Invalid event target');    }    subscriber.add(unsubscribe);}function isNodeStyleEventEmitter(sourceObj) {    return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';}function isJQueryStyleEventEmitter(sourceObj) {    return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';}function isEventTarget(sourceObj) {    return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';}//# sourceMappingURL=fromEvent.js.map
 |