mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-28 19:35:15 +00:00
1 line
45 KiB
JSON
1 line
45 KiB
JSON
{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@material-ui/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport withStyles from '../styles/withStyles';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native <a /> element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if keyboard focused. */\n focusVisible: {}\n};\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nvar ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n var action = props.action,\n buttonRefProp = props.buttonRef,\n _props$centerRipple = props.centerRipple,\n centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableRipple = props.disableRipple,\n disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n _props$disableTouchRi = props.disableTouchRipple,\n disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n _props$focusRipple = props.focusRipple,\n focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n focusVisibleClassName = props.focusVisibleClassName,\n onBlur = props.onBlur,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onFocusVisible = props.onFocusVisible,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onMouseDown = props.onMouseDown,\n onMouseLeave = props.onMouseLeave,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onDragLeave = props.onDragLeave,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n TouchRippleProps = props.TouchRippleProps,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n other = _objectWithoutProperties(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n\n var buttonRef = React.useRef(null);\n\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n\n var rippleRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n React.useImperativeHandle(action, function () {\n return {\n focusVisible: function focusVisible() {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n };\n }, []);\n React.useEffect(function () {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\n\n function useRippleHandler(rippleAction, eventCallback) {\n var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n return useEventCallback(function (event) {\n if (eventCallback) {\n eventCallback(event);\n }\n\n var ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n var handleMouseDown = useRippleHandler('start', onMouseDown);\n var handleDragLeave = useRippleHandler('stop', onDragLeave);\n var handleMouseUp = useRippleHandler('stop', onMouseUp);\n var handleMouseLeave = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n var handleTouchStart = useRippleHandler('start', onTouchStart);\n var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n var handleTouchMove = useRippleHandler('stop', onTouchMove);\n var handleBlur = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n onBlurVisible(event);\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n var handleFocus = useEventCallback(function (event) {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n var isNonNativeButton = function isNonNativeButton() {\n var button = getButtonNode();\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n var keydownRef = React.useRef(false);\n var handleKeyDown = useEventCallback(function (event) {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n var handleKeyUp = useEventCallback(function (event) {\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/s/button-keyup-preventdefault-dn7f0\n if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {\n keydownRef.current = false;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.pulsate(event);\n });\n }\n\n if (onKeyUp) {\n onKeyUp(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {\n onClick(event);\n }\n });\n var ComponentProp = component;\n\n if (ComponentProp === 'button' && other.href) {\n ComponentProp = 'a';\n }\n\n var buttonProps = {};\n\n if (ComponentProp === 'button') {\n buttonProps.type = type;\n buttonProps.disabled = disabled;\n } else {\n if (ComponentProp !== 'a' || !other.href) {\n buttonProps.role = 'button';\n }\n\n buttonProps['aria-disabled'] = disabled;\n }\n\n var handleUserRef = useForkRef(buttonRefProp, ref);\n var handleOwnRef = useForkRef(focusVisibleRef, buttonRef);\n var handleRef = useForkRef(handleUserRef, handleOwnRef);\n\n var _React$useState2 = React.useState(false),\n mountedState = _React$useState2[0],\n setMountedState = _React$useState2[1];\n\n React.useEffect(function () {\n setMountedState(true);\n }, []);\n var enableTouchRipple = mountedState && !disableRipple && !disabled;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(function () {\n if (enableTouchRipple && !rippleRef.current) {\n console.error(['Material-UI: The `component` prop provided to ButtonBase is invalid.', 'Please make sure the children prop is rendered in this custom component.'].join('\\n'));\n }\n }, [enableTouchRipple]);\n }\n\n return /*#__PURE__*/React.createElement(ComponentProp, _extends({\n className: clsx(classes.root, className, focusVisible && [classes.focusVisible, focusVisibleClassName], disabled && classes.disabled),\n onBlur: handleBlur,\n onClick: onClick,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n onMouseDown: handleMouseDown,\n onMouseLeave: handleMouseLeave,\n onMouseUp: handleMouseUp,\n onDragLeave: handleDragLeave,\n onTouchEnd: handleTouchEnd,\n onTouchMove: handleTouchMove,\n onTouchStart: handleTouchStart,\n ref: handleRef,\n tabIndex: disabled ? -1 : tabIndex\n }, buttonProps, other), children, enableTouchRipple ?\n /*#__PURE__*/\n\n /* TouchRipple is only needed client-side, x2 boost on the server. */\n React.createElement(TouchRipple, _extends({\n ref: rippleRef,\n center: centerRipple\n }, TouchRippleProps)) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? ButtonBase.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A ref for imperative actions.\n * It currently only supports `focusVisible()` action.\n */\n action: refType,\n\n /**\n * @ignore\n *\n * Use that prop to pass a ref to the native button component.\n * @deprecated Use `ref` instead.\n */\n buttonRef: deprecatedPropType(refType, 'Use `ref` instead.'),\n\n /**\n * If `true`, the ripples will be centered.\n * They won't start at the cursor interaction position.\n */\n centerRipple: PropTypes.bool,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * If `true`, the base button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `focusVisibleClassName`.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * If `true`, the touch ripple effect will be disabled.\n */\n disableTouchRipple: PropTypes.bool,\n\n /**\n * If `true`, the base button will have a keyboard focus ripple.\n */\n focusRipple: PropTypes.bool,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/master/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * @ignore\n */\n href: PropTypes.string,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onDragLeave: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseUp: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchEnd: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchMove: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchStart: PropTypes.func,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Props applied to the `TouchRipple` element.\n */\n TouchRippleProps: PropTypes.object,\n\n /**\n * @ignore\n */\n type: PropTypes.oneOfType([PropTypes.oneOf(['button', 'reset', 'submit']), PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiButtonBase'\n})(ButtonBase);","map":{"version":3,"sources":["/app/node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js"],"names":["_extends","_objectWithoutProperties","React","PropTypes","ReactDOM","clsx","elementTypeAcceptingRef","refType","useForkRef","useEventCallback","deprecatedPropType","withStyles","useIsFocusVisible","TouchRipple","styles","root","display","alignItems","justifyContent","position","WebkitTapHighlightColor","backgroundColor","outline","border","margin","borderRadius","padding","cursor","userSelect","verticalAlign","textDecoration","color","borderStyle","pointerEvents","colorAdjust","disabled","focusVisible","ButtonBase","forwardRef","props","ref","action","buttonRefProp","buttonRef","_props$centerRipple","centerRipple","children","classes","className","_props$component","component","_props$disabled","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","_props$tabIndex","tabIndex","TouchRippleProps","_props$type","type","other","useRef","getButtonNode","findDOMNode","current","rippleRef","_React$useState","useState","setFocusVisible","_useIsFocusVisible","isFocusVisible","onBlurVisible","focusVisibleRef","useImperativeHandle","focus","useEffect","pulsate","useRippleHandler","rippleAction","eventCallback","skipRippleAction","arguments","length","undefined","event","ignore","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","preventDefault","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","currentTarget","isNonNativeButton","button","tagName","href","keydownRef","handleKeyDown","key","persist","stop","start","target","handleKeyUp","defaultPrevented","ComponentProp","buttonProps","role","handleUserRef","handleOwnRef","handleRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","process","env","NODE_ENV","console","error","join","createElement","center","propTypes","bool","node","object","string","func","oneOfType","number","oneOf","name"],"mappings":"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","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@material-ui/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport withStyles from '../styles/withStyles';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native <a /> element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if keyboard focused. */\n focusVisible: {}\n};\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nvar ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n var action = props.action,\n buttonRefProp = props.buttonRef,\n _props$centerRipple = props.centerRipple,\n centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableRipple = props.disableRipple,\n disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n _props$disableTouchRi = props.disableTouchRipple,\n disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n _props$focusRipple = props.focusRipple,\n focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n focusVisibleClassName = props.focusVisibleClassName,\n onBlur = props.onBlur,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onFocusVisible = props.onFocusVisible,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onMouseDown = props.onMouseDown,\n onMouseLeave = props.onMouseLeave,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onDragLeave = props.onDragLeave,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n TouchRippleProps = props.TouchRippleProps,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n other = _objectWithoutProperties(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n\n var buttonRef = React.useRef(null);\n\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n\n var rippleRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n React.useImperativeHandle(action, function () {\n return {\n focusVisible: function focusVisible() {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n };\n }, []);\n React.useEffect(function () {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\n\n function useRippleHandler(rippleAction, eventCallback) {\n var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n return useEventCallback(function (event) {\n if (eventCallback) {\n eventCallback(event);\n }\n\n var ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n var handleMouseDown = useRippleHandler('start', onMouseDown);\n var handleDragLeave = useRippleHandler('stop', onDragLeave);\n var handleMouseUp = useRippleHandler('stop', onMouseUp);\n var handleMouseLeave = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n var handleTouchStart = useRippleHandler('start', onTouchStart);\n var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n var handleTouchMove = useRippleHandler('stop', onTouchMove);\n var handleBlur = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n onBlurVisible(event);\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n var handleFocus = useEventCallback(function (event) {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n var isNonNativeButton = function isNonNativeButton() {\n var button = getButtonNode();\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n var keydownRef = React.useRef(false);\n var handleKeyDown = useEventCallback(function (event) {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n var handleKeyUp = useEventCallback(function (event) {\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/s/button-keyup-preventdefault-dn7f0\n if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {\n keydownRef.current = false;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.pulsate(event);\n });\n }\n\n if (onKeyUp) {\n onKeyUp(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {\n onClick(event);\n }\n });\n var ComponentProp = component;\n\n if (ComponentProp === 'button' && other.href) {\n ComponentProp = 'a';\n }\n\n var buttonProps = {};\n\n if (ComponentProp === 'button') {\n buttonProps.type = type;\n buttonProps.disabled = disabled;\n } else {\n if (ComponentProp !== 'a' || !other.href) {\n buttonProps.role = 'button';\n }\n\n buttonProps['aria-disabled'] = disabled;\n }\n\n var handleUserRef = useForkRef(buttonRefProp, ref);\n var handleOwnRef = useForkRef(focusVisibleRef, buttonRef);\n var handleRef = useForkRef(handleUserRef, handleOwnRef);\n\n var _React$useState2 = React.useState(false),\n mountedState = _React$useState2[0],\n setMountedState = _React$useState2[1];\n\n React.useEffect(function () {\n setMountedState(true);\n }, []);\n var enableTouchRipple = mountedState && !disableRipple && !disabled;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(function () {\n if (enableTouchRipple && !rippleRef.current) {\n console.error(['Material-UI: The `component` prop provided to ButtonBase is invalid.', 'Please make sure the children prop is rendered in this custom component.'].join('\\n'));\n }\n }, [enableTouchRipple]);\n }\n\n return /*#__PURE__*/React.createElement(ComponentProp, _extends({\n className: clsx(classes.root, className, focusVisible && [classes.focusVisible, focusVisibleClassName], disabled && classes.disabled),\n onBlur: handleBlur,\n onClick: onClick,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n onMouseDown: handleMouseDown,\n onMouseLeave: handleMouseLeave,\n onMouseUp: handleMouseUp,\n onDragLeave: handleDragLeave,\n onTouchEnd: handleTouchEnd,\n onTouchMove: handleTouchMove,\n onTouchStart: handleTouchStart,\n ref: handleRef,\n tabIndex: disabled ? -1 : tabIndex\n }, buttonProps, other), children, enableTouchRipple ?\n /*#__PURE__*/\n\n /* TouchRipple is only needed client-side, x2 boost on the server. */\n React.createElement(TouchRipple, _extends({\n ref: rippleRef,\n center: centerRipple\n }, TouchRippleProps)) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? ButtonBase.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A ref for imperative actions.\n * It currently only supports `focusVisible()` action.\n */\n action: refType,\n\n /**\n * @ignore\n *\n * Use that prop to pass a ref to the native button component.\n * @deprecated Use `ref` instead.\n */\n buttonRef: deprecatedPropType(refType, 'Use `ref` instead.'),\n\n /**\n * If `true`, the ripples will be centered.\n * They won't start at the cursor interaction position.\n */\n centerRipple: PropTypes.bool,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * If `true`, the base button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `focusVisibleClassName`.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * If `true`, the touch ripple effect will be disabled.\n */\n disableTouchRipple: PropTypes.bool,\n\n /**\n * If `true`, the base button will have a keyboard focus ripple.\n */\n focusRipple: PropTypes.bool,\n\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/master/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * @ignore\n */\n href: PropTypes.string,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onDragLeave: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseUp: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchEnd: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchMove: PropTypes.func,\n\n /**\n * @ignore\n */\n onTouchStart: PropTypes.func,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Props applied to the `TouchRipple` element.\n */\n TouchRippleProps: PropTypes.object,\n\n /**\n * @ignore\n */\n type: PropTypes.oneOfType([PropTypes.oneOf(['button', 'reset', 'submit']), PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiButtonBase'\n})(ButtonBase);"]},"metadata":{},"sourceType":"module"} |