{"ast":null,"code":"import invariant from 'fbjs/lib/invariant';\nimport EmitterSubscription from \"./_EmitterSubscription\";\nimport EventSubscriptionVendor from \"./_EventSubscriptionVendor\";\n\nvar sparseFilterPredicate = function sparseFilterPredicate() {\n  return true;\n};\n\nvar EventEmitter = function () {\n  function EventEmitter(subscriber) {\n    this._subscriber = subscriber || new EventSubscriptionVendor();\n  }\n\n  var _proto = EventEmitter.prototype;\n\n  _proto.addListener = function addListener(eventType, listener, context) {\n    return this._subscriber.addSubscription(eventType, new EmitterSubscription(this, this._subscriber, listener, context));\n  };\n\n  _proto.removeAllListeners = function removeAllListeners(eventType) {\n    this._subscriber.removeAllSubscriptions(eventType);\n  };\n\n  _proto.removeSubscription = function removeSubscription(subscription) {\n    invariant(subscription.emitter === this, 'Subscription does not belong to this emitter.');\n\n    this._subscriber.removeSubscription(subscription);\n  };\n\n  _proto.listenerCount = function listenerCount(eventType) {\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n    return subscriptions ? subscriptions.filter(sparseFilterPredicate).length : 0;\n  };\n\n  _proto.emit = function emit(eventType) {\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n    if (subscriptions) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      for (var i = 0, l = subscriptions.length; i < l; i++) {\n        var subscription = subscriptions[i];\n\n        if (subscription && subscription.listener) {\n          subscription.listener.apply(subscription.context, args);\n        }\n      }\n    }\n  };\n\n  _proto.removeListener = function removeListener(eventType, listener) {\n    console.error(\"EventEmitter.removeListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `EventEmitter.addListener`.');\n\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n    if (subscriptions) {\n      for (var i = 0, l = subscriptions.length; i < l; i++) {\n        var subscription = subscriptions[i];\n\n        if (subscription && subscription.listener === listener) {\n          subscription.remove();\n        }\n      }\n    }\n  };\n\n  return EventEmitter;\n}();\n\nexport default EventEmitter;","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/vendor/react-native/emitter/_EventEmitter.js"],"names":["invariant","EmitterSubscription","EventSubscriptionVendor","sparseFilterPredicate","EventEmitter","subscriber","_subscriber","_proto","prototype","addListener","eventType","listener","context","addSubscription","removeAllListeners","removeAllSubscriptions","removeSubscription","subscription","emitter","listenerCount","subscriptions","getSubscriptionsForType","filter","length","emit","_len","arguments","args","Array","_key","i","l","apply","removeListener","console","error","remove"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @typecheck\n */\nimport invariant from 'fbjs/lib/invariant';\nimport EmitterSubscription from './_EmitterSubscription';\nimport EventSubscriptionVendor from './_EventSubscriptionVendor';\n\nvar sparseFilterPredicate = function sparseFilterPredicate() {\n  return true;\n};\n\n/**\n * @class EventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\nvar EventEmitter = /*#__PURE__*/function () {\n  /**\n   * @constructor\n   *\n   * @param {EventSubscriptionVendor} subscriber - Optional subscriber instance\n   *   to use. If omitted, a new subscriber will be created for the emitter.\n   */\n  function EventEmitter(subscriber) {\n    this._subscriber = subscriber || new EventSubscriptionVendor();\n  }\n  /**\n   * Adds a listener to be invoked when events of the specified type are\n   * emitted. An optional calling context may be provided. The data arguments\n   * emitted will be passed to the listener function.\n   *\n   * TODO: Annotate the listener arg's type. This is tricky because listeners\n   *       can be invoked with varargs.\n   *\n   * @param {string} eventType - Name of the event to listen to\n   * @param {function} listener - Function to invoke when the specified event is\n   *   emitted\n   * @param {*} context - Optional context object to use when invoking the\n   *   listener\n   */\n\n\n  var _proto = EventEmitter.prototype;\n\n  _proto.addListener = function addListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n  listener, context) {\n    return this._subscriber.addSubscription(eventType, new EmitterSubscription(this, this._subscriber, listener, context));\n  }\n  /**\n   * Removes all of the registered listeners, including those registered as\n   * listener maps.\n   *\n   * @param {?string} eventType - Optional name of the event whose registered\n   *   listeners to remove\n   */\n  ;\n\n  _proto.removeAllListeners = function removeAllListeners(eventType) {\n    this._subscriber.removeAllSubscriptions(eventType);\n  }\n  /**\n   * @deprecated Use `remove` on the EventSubscription from `addListener`.\n   */\n  ;\n\n  _proto.removeSubscription = function removeSubscription(subscription) {\n    invariant(subscription.emitter === this, 'Subscription does not belong to this emitter.');\n\n    this._subscriber.removeSubscription(subscription);\n  }\n  /**\n   * Returns the number of listeners that are currently registered for the given\n   * event.\n   *\n   * @param {string} eventType - Name of the event to query\n   * @returns {number}\n   */\n  ;\n\n  _proto.listenerCount = function listenerCount(eventType) {\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n    return subscriptions ? // We filter out missing entries because the array is sparse.\n    // \"callbackfn is called only for elements of the array which actually\n    // exist; it is not called for missing elements of the array.\"\n    // https://www.ecma-international.org/ecma-262/9.0/index.html#sec-array.prototype.filter\n    subscriptions.filter(sparseFilterPredicate).length : 0;\n  }\n  /**\n   * Emits an event of the given type with the given data. All handlers of that\n   * particular type will be notified.\n   *\n   * @param {string} eventType - Name of the event to emit\n   * @param {...*} Arbitrary arguments to be passed to each registered listener\n   *\n   * @example\n   *   emitter.addListener('someEvent', function(message) {\n   *     console.log(message);\n   *   });\n   *\n   *   emitter.emit('someEvent', 'abc'); // logs 'abc'\n   */\n  ;\n\n  _proto.emit = function emit(eventType) {\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n    if (subscriptions) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      for (var i = 0, l = subscriptions.length; i < l; i++) {\n        var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n\n        if (subscription && subscription.listener) {\n          subscription.listener.apply(subscription.context, args);\n        }\n      }\n    }\n  }\n  /**\n   * @deprecated Use `remove` on the EventSubscription from `addListener`.\n   */\n  ;\n\n  _proto.removeListener = function removeListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n  listener) {\n    console.error(\"EventEmitter.removeListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `EventEmitter.addListener`.');\n\n    var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n    if (subscriptions) {\n      for (var i = 0, l = subscriptions.length; i < l; i++) {\n        var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n        // its listener matches the listener in method parameters\n\n        if (subscription && subscription.listener === listener) {\n          subscription.remove();\n        }\n      }\n    }\n  };\n\n  return EventEmitter;\n}();\n\nexport default EventEmitter;"]},"metadata":{},"sourceType":"module"}