{"version":3,"sources":["webpack:///./node_modules/@material-ui/icons/utils/createSvgIcon.js","webpack:///./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","webpack:///./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack:///./node_modules/react-transition-group/esm/TransitionGroup.js","webpack:///./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","webpack:///./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","webpack:///./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","webpack:///./node_modules/@material-ui/core/esm/IconButton/IconButton.js","webpack:///./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","webpack:///./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","webpack:///./node_modules/@material-ui/core/esm/utils/createSvgIcon.js","webpack:///./node_modules/@material-ui/core/esm/utils/debounce.js","webpack:///./node_modules/@material-ui/core/esm/utils/isMuiElement.js","webpack:///./node_modules/@material-ui/core/esm/utils/requirePropFactory.js","webpack:///./node_modules/@material-ui/core/esm/utils/unsupportedProp.js","webpack:///./node_modules/@material-ui/core/esm/utils/useControlled.js","webpack:///./node_modules/@material-ui/core/esm/utils/unstable_useId.js"],"names":["Object","defineProperty","exports","value","enumerable","get","_utils","createSvgIcon","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","text","search","url","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","this","visibilityState","isFocusVisible","node","type","tagName","target","matches","error","readOnly","isContentEditable","handleBlurVisible","window","clearTimeout","setTimeout","useIsFocusVisible","onBlurVisible","ref","instance","doc","ownerDocument","addEventListener","getChildMapping","children","mapFn","result","create","map","c","forEach","child","key","mapper","getProp","prop","props","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","prev","next","getValueForKey","i","nextKeysPending","pendingKeys","prevKey","length","push","childMapping","nextKey","pendingNextKey","mergeChildMappings","keys","hasPrev","hasNext","prevChild","isLeaving","in","bind","exit","enter","values","obj","k","_React$Component","TransitionGroup","context","_this","handleExited","call","state","contextValue","isMounting","firstRender","_proto","prototype","componentDidMount","mounted","setState","componentWillUnmount","getDerivedStateFromProps","_ref","appear","currentChildMapping","render","_this$props","Component","component","childFactory","createElement","TransitionGroupContext","Provider","defaultProps","useEnhancedEffect","classes","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","inProp","_props$onExited","timeout","_React$useState","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","width","height","top","left","childClassName","childLeaving","childPulsate","useEventCallback","timeoutId","className","style","_props$center","center","centerProp","other","ripples","setRipples","rippleCallback","current","ignoringMouseDown","startTimer","startTimerCommit","container","startCommit","params","cb","oldRipples","concat","start","arguments","undefined","options","_options$pulsate","_options$center","_options$fakeElement","fakeElement","element","rect","getBoundingClientRect","clientX","clientY","touches","Math","round","sqrt","pow","sizeX","max","abs","clientWidth","sizeY","clientHeight","stop","persist","slice","root","withStyles","theme","overflow","pointerEvents","position","zIndex","right","bottom","borderRadius","opacity","transform","animation","transitions","easing","easeInOut","animationDuration","duration","shorter","display","backgroundColor","flip","name","action","buttonRefProp","buttonRef","_props$centerRipple","centerRipple","_props$component","_props$disabled","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","rippleRef","focusVisible","setFocusVisible","_useIsFocusVisible","focusVisibleRef","useRippleHandler","rippleAction","eventCallback","skipRippleAction","focus","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","preventDefault","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","currentTarget","isNonNativeButton","button","href","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","buttonProps","role","handleUserRef","useForkRef","handleOwnRef","handleRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","alignItems","justifyContent","WebkitTapHighlightColor","outline","border","margin","padding","cursor","userSelect","verticalAlign","textDecoration","color","borderStyle","colorAdjust","_props$edge","edge","_props$color","_props$disableFocusRi","disableFocusRipple","_props$size","size","capitalize","edgeStart","edgeEnd","label","textAlign","flex","fontSize","typography","pxToRem","palette","active","transition","shortest","hoverOpacity","marginLeft","marginRight","colorInherit","colorPrimary","primary","main","colorSecondary","secondary","sizeSmall","deprecatedPropType","validator","reason","_props$fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","focusable","muiName","fill","flexShrink","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","path","displayName","memo","forwardRef","debounce","func","wait","debounced","_len","args","Array","_key","that","later","apply","clear","isMuiElement","muiNames","indexOf","requirePropFactory","componentNameInError","unsupportedProp","propName","componentName","location","propFullName","useControlled","controlled","defaultProp","default","isControlled","valueState","setValue","newValue","useId","idOverride","defaultId","setDefaultId","id","random"],"mappings":"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","file":"d5e12f5a56288ec8ad58d56bd5a0fd5fa3825e24-d0382c5003c233efa408.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@material-ui/core/utils\");","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n var target = event.target;\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n var i;\n var childMapping = {};\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n return childMapping;\n}\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n function TransitionGroup(props, context) {\n var _this;\n _this = _React$Component.call(this, props, context) || this;\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n var _proto = TransitionGroup.prototype;\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n return TransitionGroup;\n}(React.Component);\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import * as React from 'react';\nimport clsx from 'clsx';\nimport useEventCallback from '../utils/useEventCallback';\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * @ignore - internal component.\n */\n\nfunction Ripple(props) {\n var classes = props.classes,\n _props$pulsate = props.pulsate,\n pulsate = _props$pulsate === void 0 ? false : _props$pulsate,\n rippleX = props.rippleX,\n rippleY = props.rippleY,\n rippleSize = props.rippleSize,\n inProp = props.in,\n _props$onExited = props.onExited,\n onExited = _props$onExited === void 0 ? function () {} : _props$onExited,\n timeout = props.timeout;\n var _React$useState = React.useState(false),\n leaving = _React$useState[0],\n setLeaving = _React$useState[1];\n var rippleClassName = clsx(classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n var rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n var childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n var handleExited = useEventCallback(onExited); // Ripple is used for user feedback (e.g. click or press) so we want to apply styles with the highest priority\n\n useEnhancedEffect(function () {\n if (!inProp) {\n // react-transition-group#onExit\n setLeaving(true); // react-transition-group#onExited\n\n var timeoutId = setTimeout(handleExited, timeout);\n return function () {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [handleExited, inProp, timeout]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: rippleClassName,\n style: rippleStyles\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: childClassName\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default Ripple;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Ripple from './Ripple';\nvar DURATION = 550;\nexport var DELAY_RIPPLE = 80;\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n },\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\n /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n /* Styles applied to the internal `Ripple` components `child` class. */\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n childLeaving: {\n opacity: 0,\n animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {\n var _props$center = props.center,\n centerProp = _props$center === void 0 ? false : _props$center,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"center\", \"classes\", \"className\"]);\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n var nextKey = React.useRef(0);\n var rippleCallback = React.useRef(null);\n React.useEffect(function () {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n var startTimerCommit = React.useRef(null);\n var container = React.useRef(null);\n React.useEffect(function () {\n return function () {\n clearTimeout(startTimer.current);\n };\n }, []);\n var startCommit = React.useCallback(function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n setRipples(function (oldRipples) {\n return [].concat(_toConsumableArray(oldRipples), [/*#__PURE__*/React.createElement(Ripple, {\n key: nextKey.current,\n classes: classes,\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n });\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n var start = React.useCallback(function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n var element = fakeElement ? null : container.current;\n var rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n var rippleX;\n var rippleY;\n var rippleSize;\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n } // Touche devices\n\n if (event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = function () {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Delay the execution of the ripple effect.\n\n startTimer.current = setTimeout(function () {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, [centerProp, startCommit]);\n var pulsate = React.useCallback(function () {\n start({}, {\n pulsate: true\n });\n }, [start]);\n var stop = React.useCallback(function (event, cb) {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && startTimerCommit.current) {\n event.persist();\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(function () {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(function (oldRipples) {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, function () {\n return {\n pulsate: pulsate,\n start: start,\n stop: stop\n };\n }, [pulsate, start, stop]);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n className: clsx(classes.root, className),\n ref: container\n }, other), /*#__PURE__*/React.createElement(TransitionGroup, {\n component: null,\n exit: true\n }, ripples));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})( /*#__PURE__*/React.memo(TouchRipple));","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\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 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 /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\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 var buttonRef = React.useRef(null);\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n var rippleRef = React.useRef(null);\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\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 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 var ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\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 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 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 if (isFocusVisible(event)) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\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 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 if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n var handleKeyUp = useEventCallback(function (event) {\n // calling preventDefault in keyUp on a