Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / _esm2015 / internal / observable / fromEvent.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js
new file mode 100644 (file)
index 0000000..141acce
--- /dev/null
@@ -0,0 +1,62 @@
+import { Observable } from '../Observable';
+import { isArray } from '../util/isArray';
+import { isFunction } from '../util/isFunction';
+import { map } from '../operators/map';
+const toString = (() => Object.prototype.toString)();
+export function fromEvent(target, eventName, options, resultSelector) {
+    if (isFunction(options)) {
+        resultSelector = options;
+        options = undefined;
+    }
+    if (resultSelector) {
+        return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));
+    }
+    return new Observable(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);
+    });
+}
+function setupSubscription(sourceObj, eventName, handler, subscriber, options) {
+    let unsubscribe;
+    if (isEventTarget(sourceObj)) {
+        const source = sourceObj;
+        sourceObj.addEventListener(eventName, handler, options);
+        unsubscribe = () => source.removeEventListener(eventName, handler, options);
+    }
+    else if (isJQueryStyleEventEmitter(sourceObj)) {
+        const source = sourceObj;
+        sourceObj.on(eventName, handler);
+        unsubscribe = () => source.off(eventName, handler);
+    }
+    else if (isNodeStyleEventEmitter(sourceObj)) {
+        const source = sourceObj;
+        sourceObj.addListener(eventName, handler);
+        unsubscribe = () => source.removeListener(eventName, handler);
+    }
+    else if (sourceObj && sourceObj.length) {
+        for (let 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
\ No newline at end of file