{"ast":null,"code":"'use strict';\n\nimport AnimatedValue from \"./nodes/AnimatedValue\";\nimport NativeAnimatedHelper from \"./NativeAnimatedHelper\";\nimport findNodeHandle from \"../../../exports/findNodeHandle\";\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from \"./NativeAnimatedHelper\";\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n  var eventMappings = [];\n\n  var traverse = function traverse(value, path) {\n    if (value instanceof AnimatedValue) {\n      value.__makeNative();\n\n      eventMappings.push({\n        nativeEventPath: path,\n        animatedValueTag: value.__getNativeTag()\n      });\n    } else if (typeof value === 'object') {\n      for (var _key in value) {\n        traverse(value[_key], path.concat(_key));\n      }\n    }\n  };\n\n  invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.');\n  traverse(argMapping[0].nativeEvent, []);\n  var viewTag = findNodeHandle(viewRef);\n\n  if (viewTag != null) {\n    eventMappings.forEach(function (mapping) {\n      NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n    });\n  }\n\n  return {\n    detach: function detach() {\n      if (viewTag != null) {\n        eventMappings.forEach(function (mapping) {\n          NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, mapping.animatedValueTag);\n        });\n      }\n    }\n  };\n}\n\nfunction validateMapping(argMapping, args) {\n  var validate = function validate(recMapping, recEvt, key) {\n    if (recMapping instanceof AnimatedValue) {\n      invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n      return;\n    }\n\n    if (typeof recEvt === 'number') {\n      invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n      return;\n    }\n\n    invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n    invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n\n    for (var mappingKey in recMapping) {\n      validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n    }\n  };\n\n  invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n  argMapping.forEach(function (mapping, idx) {\n    validate(mapping, args[idx], 'arg' + idx);\n  });\n}\n\nexport var AnimatedEvent = function () {\n  function AnimatedEvent(argMapping, config) {\n    this._listeners = [];\n    this._argMapping = argMapping;\n\n    if (config == null) {\n      console.warn('Animated.event now requires a second argument for options');\n      config = {\n        useNativeDriver: false\n      };\n    }\n\n    if (config.listener) {\n      this.__addListener(config.listener);\n    }\n\n    this._callListeners = this._callListeners.bind(this);\n    this._attachedEvent = null;\n    this.__isNative = shouldUseNativeDriver(config);\n  }\n\n  var _proto = AnimatedEvent.prototype;\n\n  _proto.__addListener = function __addListener(callback) {\n    this._listeners.push(callback);\n  };\n\n  _proto.__removeListener = function __removeListener(callback) {\n    this._listeners = this._listeners.filter(function (listener) {\n      return listener !== callback;\n    });\n  };\n\n  _proto.__attach = function __attach(viewRef, eventName) {\n    invariant(this.__isNative, 'Only native driven events need to be attached.');\n    this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n  };\n\n  _proto.__detach = function __detach(viewTag, eventName) {\n    invariant(this.__isNative, 'Only native driven events need to be detached.');\n    this._attachedEvent && this._attachedEvent.detach();\n  };\n\n  _proto.__getHandler = function __getHandler() {\n    var _this = this;\n\n    if (this.__isNative) {\n      if (__DEV__) {\n        var _validatedMapping = false;\n        return function () {\n          for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n            args[_key2] = arguments[_key2];\n          }\n\n          if (!_validatedMapping) {\n            validateMapping(_this._argMapping, args);\n            _validatedMapping = true;\n          }\n\n          _this._callListeners.apply(_this, args);\n        };\n      } else {\n        return this._callListeners;\n      }\n    }\n\n    var validatedMapping = false;\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      if (__DEV__ && !validatedMapping) {\n        validateMapping(_this._argMapping, args);\n        validatedMapping = true;\n      }\n\n      var traverse = function traverse(recMapping, recEvt, key) {\n        if (recMapping instanceof AnimatedValue) {\n          if (typeof recEvt === 'number') {\n            recMapping.setValue(recEvt);\n          }\n        } else if (typeof recMapping === 'object') {\n          for (var mappingKey in recMapping) {\n            traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n          }\n        }\n      };\n\n      _this._argMapping.forEach(function (mapping, idx) {\n        traverse(mapping, args[idx], 'arg' + idx);\n      });\n\n      _this._callListeners.apply(_this, args);\n    };\n  };\n\n  _proto._callListeners = function _callListeners() {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n\n    this._listeners.forEach(function (listener) {\n      return listener.apply(void 0, args);\n    });\n  };\n\n  return AnimatedEvent;\n}();","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js"],"names":["AnimatedValue","NativeAnimatedHelper","findNodeHandle","invariant","shouldUseNativeDriver","__DEV__","process","env","NODE_ENV","attachNativeEvent","viewRef","eventName","argMapping","eventMappings","traverse","value","path","__makeNative","push","nativeEventPath","animatedValueTag","__getNativeTag","_key","concat","nativeEvent","viewTag","forEach","mapping","API","addAnimatedEventToView","detach","removeAnimatedEventFromView","validateMapping","args","validate","recMapping","recEvt","key","mappingKey","length","idx","AnimatedEvent","config","_listeners","_argMapping","console","warn","useNativeDriver","listener","__addListener","_callListeners","bind","_attachedEvent","__isNative","_proto","prototype","callback","__removeListener","filter","__attach","__detach","__getHandler","_this","_validatedMapping","_len","arguments","Array","_key2","apply","validatedMapping","_len2","_key3","setValue","_len3","_key4"],"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 * \n * @format\n */\n'use strict';\n\nimport AnimatedValue from './nodes/AnimatedValue';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from './NativeAnimatedHelper';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n  // Find animated values in `argMapping` and create an array representing their\n  // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n  var eventMappings = [];\n\n  var traverse = function traverse(value, path) {\n    if (value instanceof AnimatedValue) {\n      value.__makeNative();\n\n      eventMappings.push({\n        nativeEventPath: path,\n        animatedValueTag: value.__getNativeTag()\n      });\n    } else if (typeof value === 'object') {\n      for (var _key in value) {\n        traverse(value[_key], path.concat(_key));\n      }\n    }\n  };\n\n  invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.'); // Assume that the event containing `nativeEvent` is always the first argument.\n\n  traverse(argMapping[0].nativeEvent, []);\n  var viewTag = findNodeHandle(viewRef);\n\n  if (viewTag != null) {\n    eventMappings.forEach(function (mapping) {\n      NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n    });\n  }\n\n  return {\n    detach: function detach() {\n      if (viewTag != null) {\n        eventMappings.forEach(function (mapping) {\n          NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, // $FlowFixMe[incompatible-call]\n          mapping.animatedValueTag);\n        });\n      }\n    }\n  };\n}\n\nfunction validateMapping(argMapping, args) {\n  var validate = function validate(recMapping, recEvt, key) {\n    if (recMapping instanceof AnimatedValue) {\n      invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n      return;\n    }\n\n    if (typeof recEvt === 'number') {\n      invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n      return;\n    }\n\n    invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n    invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n\n    for (var mappingKey in recMapping) {\n      validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n    }\n  };\n\n  invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n  argMapping.forEach(function (mapping, idx) {\n    validate(mapping, args[idx], 'arg' + idx);\n  });\n}\n\nexport var AnimatedEvent = /*#__PURE__*/function () {\n  function AnimatedEvent(argMapping, config) {\n    this._listeners = [];\n    this._argMapping = argMapping;\n\n    if (config == null) {\n      console.warn('Animated.event now requires a second argument for options');\n      config = {\n        useNativeDriver: false\n      };\n    }\n\n    if (config.listener) {\n      this.__addListener(config.listener);\n    }\n\n    this._callListeners = this._callListeners.bind(this);\n    this._attachedEvent = null;\n    this.__isNative = shouldUseNativeDriver(config);\n  }\n\n  var _proto = AnimatedEvent.prototype;\n\n  _proto.__addListener = function __addListener(callback) {\n    this._listeners.push(callback);\n  };\n\n  _proto.__removeListener = function __removeListener(callback) {\n    this._listeners = this._listeners.filter(function (listener) {\n      return listener !== callback;\n    });\n  };\n\n  _proto.__attach = function __attach(viewRef, eventName) {\n    invariant(this.__isNative, 'Only native driven events need to be attached.');\n    this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n  };\n\n  _proto.__detach = function __detach(viewTag, eventName) {\n    invariant(this.__isNative, 'Only native driven events need to be detached.');\n    this._attachedEvent && this._attachedEvent.detach();\n  };\n\n  _proto.__getHandler = function __getHandler() {\n    var _this = this;\n\n    if (this.__isNative) {\n      if (__DEV__) {\n        var _validatedMapping = false;\n        return function () {\n          for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n            args[_key2] = arguments[_key2];\n          }\n\n          if (!_validatedMapping) {\n            validateMapping(_this._argMapping, args);\n            _validatedMapping = true;\n          }\n\n          _this._callListeners.apply(_this, args);\n        };\n      } else {\n        return this._callListeners;\n      }\n    }\n\n    var validatedMapping = false;\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      if (__DEV__ && !validatedMapping) {\n        validateMapping(_this._argMapping, args);\n        validatedMapping = true;\n      }\n\n      var traverse = function traverse(recMapping, recEvt, key) {\n        if (recMapping instanceof AnimatedValue) {\n          if (typeof recEvt === 'number') {\n            recMapping.setValue(recEvt);\n          }\n        } else if (typeof recMapping === 'object') {\n          for (var mappingKey in recMapping) {\n            /* $FlowFixMe(>=0.120.0) This comment suppresses an error found\n             * when Flow v0.120 was deployed. To see the error, delete this\n             * comment and run Flow. */\n            traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n          }\n        }\n      };\n\n      _this._argMapping.forEach(function (mapping, idx) {\n        traverse(mapping, args[idx], 'arg' + idx);\n      });\n\n      _this._callListeners.apply(_this, args);\n    };\n  };\n\n  _proto._callListeners = function _callListeners() {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n\n    this._listeners.forEach(function (listener) {\n      return listener.apply(void 0, args);\n    });\n  };\n\n  return AnimatedEvent;\n}();"]},"metadata":{},"sourceType":"module"}