{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useButton } from \"./useButton\";\nimport { chain } from '@react-aria/utils';\nimport { mergeProps } from '@react-aria/utils';\nexport function useToggleButton(props, state) {\n  var isSelected = state.isSelected;\n\n  var _useButton = useButton(_objectSpread(_objectSpread({}, props), {}, {\n    onPress: chain(state.toggle, props.onPress)\n  })),\n      isPressed = _useButton.isPressed,\n      buttonProps = _useButton.buttonProps;\n\n  return {\n    isPressed: isPressed,\n    buttonProps: mergeProps(buttonProps, {\n      'aria-pressed': isSelected,\n      'accessibilityPressed': isSelected\n    })\n  };\n}","map":{"version":3,"sources":["useToggleButton.web.ts"],"names":["isSelected","buttonProps","useButton","onPress","chain","state","props","isPressed","mergeProps"],"mappings":";;;;;;AAcA,SAAA,SAAA;AACA,SAAA,KAAA,QAAA,mBAAA;AACA,SAAA,UAAA,QAAA,mBAAA;AAOA,OAAO,SAAA,eAAA,CAAA,KAAA,EAAA,KAAA,EAGA;AAAA,MAEGA,UAFH,GAEL,KAFK,CAEGA,UAFH;;AAAA,mBAG8BE,SAAS,iCAAC,KAAD;AAE1CC,IAAAA,OAAO,EAAEC,KAAK,CAACC,KAAK,CAAN,MAAA,EAAeC,KAAK,CAApB,OAAA;AAF4B,KAHvC;AAAA,MAGC,SAHD,cAGC,SAHD;AAAA,MAGcL,WAHd,cAGcA,WAHd;;AAQL,SAAO;AACLM,IAAAA,SADK,EACLA,SADK;AAELN,IAAAA,WAAW,EAAEO,UAAU,CAAA,WAAA,EAAc;AAEnC,sBAFmC,UAAA;AAKnC,8BAAwBR;AALW,KAAd;AAFlB,GAAP;AAUD","sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { ElementType } from 'react';\nimport { AriaToggleButtonProps } from '@react-types/button';\nimport { useButton } from './useButton';\nimport { chain } from '@react-aria/utils';\nimport { mergeProps } from '@react-aria/utils';\nimport { ToggleState } from '@react-stately/toggle';\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.\n */\nexport function useToggleButton(\n  props: AriaToggleButtonProps<ElementType>,\n  state: ToggleState\n): any {\n  /* eslint-enable no-redeclare */\n  const { isSelected } = state;\n  const { isPressed, buttonProps } = useButton({\n    ...props,\n    onPress: chain(state.toggle, props.onPress),\n  });\n\n  return {\n    isPressed,\n    buttonProps: mergeProps(buttonProps, {\n      // For v0.14+\n      'aria-pressed': isSelected,\n\n      // For v0.15+\n      'accessibilityPressed': isSelected,\n    }),\n  };\n}\n"]},"metadata":{},"sourceType":"module"}