{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport React from 'react';\nimport { mergeProps } from '@react-aria/utils';\nexport function usePress(_ref) {\n  var isDisabled = _ref.isDisabled,\n      _onPress = _ref.onPress,\n      onPressStart = _ref.onPressStart,\n      onPressEnd = _ref.onPressEnd,\n      onPressUp = _ref.onPressUp,\n      onPressChange = _ref.onPressChange,\n      isPressedProp = _ref.isPressed,\n      restProps = _objectWithoutProperties(_ref, [\"isDisabled\", \"onPress\", \"onPressStart\", \"onPressEnd\", \"onPressUp\", \"onPressChange\", \"isPressed\"]);\n\n  var _React$useState = React.useState(false),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      isPressed = _React$useState2[0],\n      setPressed = _React$useState2[1];\n\n  var pressProps = {\n    onPress: function onPress(e) {\n      if (isDisabled) return;\n      _onPress && _onPress(e);\n    },\n    onPressIn: function onPressIn(e) {\n      if (isDisabled) return;\n      onPressStart && onPressStart(e);\n      setPressed(true);\n      onPressChange && onPressChange(true);\n    },\n    onPressOut: function onPressOut(e) {\n      if (isDisabled) return;\n      onPressEnd && onPressEnd(e);\n      setPressed(false);\n      onPressChange && onPressChange(false);\n      onPressUp && onPressUp(e);\n    }\n  };\n  pressProps = mergeProps(pressProps, restProps);\n  return {\n    isPressed: isPressedProp || isPressed,\n    pressProps: pressProps\n  };\n}","map":{"version":3,"sources":["usePress.ts"],"names":["isPressed","restProps","React","pressProps","onPress","e","onPressIn","onPressStart","setPressed","onPressChange","onPressOut","onPressEnd","onPressUp","mergeProps","isPressedProp"],"mappings":";;AAAA,OAAA,KAAA,MAAA,OAAA;AACA,SAAA,UAAA,QAAA,mBAAA;AA0CA,OAAO,SAAA,QAAA,OASyB;AAAA,MATP,UASO,QATP,UASO;AAAA,MATP,QASO,QATP,OASO;AAAA,MATP,YASO,QATP,YASO;AAAA,MATP,UASO,QATP,UASO;AAAA,MATP,SASO,QATP,SASO;AAAA,MATP,aASO,QATP,aASO;AAAA,MATP,aASO,QAF9BA,SAE8B;AAAA,MAD3BC,SAC2B;;AAAA,wBACAC,KAAK,CAALA,QAAAA,CAA9B,KAA8BA,CADA;AAAA;AAAA,MAC1B,SAD0B;AAAA,MAC1B,UAD0B;;AAG9B,MAAIC,UAAU,GAAG;AACfC,IAAAA,OAAO,EAAGC,iBAAAA,CAAD,EAAY;AACnB,UAAA,UAAA,EAAgB;AAChBD,MAAAA,QAAO,IAAIA,QAAO,CAAlBA,CAAkB,CAAlBA;AAHa,KAAA;AAKfE,IAAAA,SAAS,EAAGD,mBAAAA,CAAD,EAAY;AACrB,UAAA,UAAA,EAAgB;AAChBE,MAAAA,YAAY,IAAIA,YAAY,CAA5BA,CAA4B,CAA5BA;AACAC,MAAAA,UAAU,CAAVA,IAAU,CAAVA;AACAC,MAAAA,aAAa,IAAIA,aAAa,CAA9BA,IAA8B,CAA9BA;AATa,KAAA;AAWfC,IAAAA,UAAU,EAAGL,oBAAAA,CAAD,EAAY;AACtB,UAAA,UAAA,EAAgB;AAChBM,MAAAA,UAAU,IAAIA,UAAU,CAAxBA,CAAwB,CAAxBA;AACAH,MAAAA,UAAU,CAAVA,KAAU,CAAVA;AACAC,MAAAA,aAAa,IAAIA,aAAa,CAA9BA,KAA8B,CAA9BA;AACAG,MAAAA,SAAS,IAAIA,SAAS,CAAtBA,CAAsB,CAAtBA;AACD;AAjBc,GAAjB;AAoBAT,EAAAA,UAAU,GAAGU,UAAU,CAAA,UAAA,EAAvBV,SAAuB,CAAvBA;AAEA,SAAO;AACLH,IAAAA,SAAS,EAAEc,aAAa,IADnB,SAAA;AAELX,IAAAA,UAAAA,EAAAA;AAFK,GAAP;AAID","sourcesContent":["import React, { RefObject } from 'react';\nimport { mergeProps } from '@react-aria/utils';\n\nexport interface PressEvents {\n  /** Handler that is called when the press is released over the target. */\n  onPress?: (e: any) => void;\n  /** Handler that is called when a press interaction starts. */\n  onPressStart?: (e: any) => void;\n  /**\n   * Handler that is called when a press interaction ends, either\n   * over the target or when the pointer leaves the target.\n   */\n  onPressEnd?: (e: any) => void;\n  /** Handler that is called when the press state changes. */\n  onPressChange?: (isPressed: boolean) => void;\n  /**\n   * Handler that is called when a press is released over the target, regardless of\n   * whether it started on the target or not.\n   */\n  onPressUp?: (e: any) => void;\n}\n\nexport interface PressProps extends PressEvents {\n  /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n  isPressed?: boolean;\n  /** Whether the press events should be disabled. */\n  isDisabled?: boolean;\n  /** Whether the target should not receive focus on press. */\n  preventFocusOnPress?: boolean;\n}\n\nexport interface PressHookProps extends PressProps {\n  /** A ref to the target element. */\n  ref?: RefObject<any>;\n}\n\nexport type PressResult = {\n  /** Whether the target is currently pressed. */\n  isPressed: boolean;\n  /** Props to spread on the target element. */\n  pressProps: any;\n};\n\nexport function usePress({\n  isDisabled,\n  onPress,\n  onPressStart,\n  onPressEnd,\n  onPressUp, // No onPressUp on RN.\n  onPressChange,\n  isPressed: isPressedProp,\n  ...restProps\n}: PressHookProps): PressResult {\n  let [isPressed, setPressed] = React.useState(false);\n\n  let pressProps = {\n    onPress: (e: any) => {\n      if (isDisabled) return;\n      onPress && onPress(e);\n    },\n    onPressIn: (e: any) => {\n      if (isDisabled) return;\n      onPressStart && onPressStart(e);\n      setPressed(true);\n      onPressChange && onPressChange(true);\n    },\n    onPressOut: (e: any) => {\n      if (isDisabled) return;\n      onPressEnd && onPressEnd(e);\n      setPressed(false);\n      onPressChange && onPressChange(false);\n      onPressUp && onPressUp(e);\n    },\n  };\n\n  pressProps = mergeProps(pressProps, restProps);\n\n  return {\n    isPressed: isPressedProp || isPressed,\n    pressProps,\n  };\n}\n"]},"metadata":{},"sourceType":"module"}