{"version":3,"sources":["webpack:///./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack:///./node_modules/@material-ui/icons/utils/createSvgIcon.js","webpack:///./node_modules/@material-ui/core/esm/AppBar/AppBar.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","webpack:///./node_modules/@material-ui/core/esm/utils/setRef.js","webpack:///./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","webpack:///./node_modules/@material-ui/core/esm/utils/capitalize.js","webpack:///./node_modules/@material-ui/core/esm/utils/useEventCallback.js","webpack:///./node_modules/@material-ui/core/esm/IconButton/IconButton.js","webpack:///./src/store/context.js","webpack:///./node_modules/@material-ui/core/esm/SvgIcon/index.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/utils/useForkRef.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/@material-ui/core/esm/Paper/Paper.js","webpack:///./node_modules/@material-ui/core/esm/Toolbar/Toolbar.js","webpack:///./node_modules/@material-ui/core/esm/Typography/Typography.js","webpack:///./node_modules/@material-ui/core/esm/Grid/Grid.js","webpack:///./node_modules/@material-ui/icons/Menu.js","webpack:///./src/components/seo.js"],"names":["createContext","_interopRequireDefault","Object","defineProperty","exports","value","path","displayName","Component","_react","memo","forwardRef","props","ref","createElement","_SvgIcon","_extends2","muiName","classes","className","_props$color","color","_props$position","position","other","Paper","square","component","elevation","root","concat","capitalize","withStyles","theme","backgroundColorDefault","palette","type","grey","display","flexDirection","width","boxSizing","zIndex","appBar","flexShrink","positionFixed","top","left","right","positionAbsolute","positionSticky","positionStatic","transform","positionRelative","colorDefault","backgroundColor","getContrastText","colorPrimary","primary","main","contrastText","colorSecondary","secondary","colorInherit","colorTransparent","name","siteTitle","dispatch","useContextProvider","variant","disableGutters","container","direction","justify","alignItems","onClick","openMenu","children","data","title","style","margin","padding","marginTop","Date","href","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","tagName","target","matches","error","readOnly","isContentEditable","handleBlurVisible","window","clearTimeout","setTimeout","useIsFocusVisible","onBlurVisible","instance","doc","ownerDocument","addEventListener","setRef","current","SvgIcon","_props$component","_props$fontSize","fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","focusable","undefined","role","userSelect","height","fill","typography","pxToRem","transition","transitions","create","duration","shorter","colorAction","action","active","colorError","colorDisabled","disabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","string","charAt","toUpperCase","slice","useEnhancedEffect","useEventCallback","fn","apply","arguments","IconButton","_props$edge","edge","_props$disabled","_props$disableFocusRi","disableFocusRipple","_props$size","size","edgeStart","edgeEnd","centerRipple","focusRipple","label","textAlign","flex","borderRadius","overflow","shortest","hoverOpacity","marginLeft","marginRight","sizeSmall","justifyContent","closeMenu","reducer","_","Context","ContextProvider","useReducer","state","useContext","useMemo","getChildMapping","mapFn","result","map","c","forEach","child","key","mapper","getProp","prop","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","prev","next","getValueForKey","i","nextKeysPending","pendingKeys","prevKey","length","push","childMapping","nextKey","pendingNextKey","mergeChildMappings","keys","hasPrev","hasNext","prevChild","isLeaving","bind","exit","enter","values","obj","k","_React$Component","TransitionGroup","context","_this","handleExited","call","contextValue","isMounting","firstRender","_proto","prototype","componentDidMount","mounted","setState","componentWillUnmount","getDerivedStateFromProps","_ref","appear","currentChildMapping","render","_this$props","childFactory","TransitionGroupContext","Provider","propTypes","defaultProps","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","inProp","_props$onExited","timeout","_React$useState","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","_props$center","center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","params","cb","oldRipples","start","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","pointerEvents","bottom","opacity","animation","easing","easeInOut","animationDuration","flip","buttonRefProp","buttonRef","_props$centerRipple","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","focusVisibleClassName","onBlur","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","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","buttonProps","handleUserRef","useForkRef","handleOwnRef","handleRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","WebkitTapHighlightColor","outline","border","cursor","verticalAlign","textDecoration","borderStyle","refA","refB","refValue","$export","$values","S","it","_props$square","_props$elevation","_props$variant","outlined","rounded","elevations","shadows","shadow","index","boxShadow","background","paper","shape","divider","Toolbar","_props$disableGutters","gutters","paddingLeft","spacing","paddingRight","breakpoints","up","regular","mixins","toolbar","dense","minHeight","defaultVariantMapping","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","Typography","_props$align","align","_props$display","_props$gutterBottom","gutterBottom","_props$noWrap","noWrap","_props$paragraph","paragraph","_props$variantMapping","variantMapping","caption","overline","srOnly","alignLeft","alignCenter","alignRight","alignJustify","textOverflow","whiteSpace","marginBottom","colorTextPrimary","colorTextSecondary","displayInline","displayBlock","SPACINGS","GRID_SIZES","getOffset","val","div","parse","parseFloat","String","replace","Grid","_props$alignContent","alignContent","_props$alignItems","classNameProp","_props$container","_props$direction","_props$item","item","_props$justify","_props$lg","lg","_props$md","md","_props$sm","sm","_props$spacing","_props$wrap","wrap","_props$xl","xl","_props$xs","xs","_props$zeroMinWidth","zeroMinWidth","StyledGrid","flexWrap","minWidth","breakpoint","styles","themeSpacing","generateGutter","reduce","accumulator","globalStyles","flexBasis","flexGrow","maxWidth","generateGrid","_default","d","SEO","description","lang","meta","site","metaDescription","htmlAttributes","titleTemplate","content","property","author"],"mappings":"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","file":"25cbcb82e3184b41bf95c2ae492458aab959e235-4646631f39676adf8ca3.js","sourcesContent":["import React from 'react';\nexport default React.createContext(null);","\"use strict\";\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createSvgIcon;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Component = _react[\"default\"].memo(_react[\"default\"].forwardRef(function (props, ref) {\n return _react[\"default\"].createElement(_SvgIcon[\"default\"], (0, _extends2[\"default\"])({\n ref: ref\n }, props), path);\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = _SvgIcon[\"default\"].muiName;\n return Component;\n}","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 clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n boxSizing: 'border-box',\n // Prevent padding issue with the Modal and fixed positioned AppBar.\n zIndex: theme.zIndex.appBar,\n flexShrink: 0\n },\n\n /* Styles applied to the root element if `position=\"fixed\"`. */\n positionFixed: {\n position: 'fixed',\n top: 0,\n left: 'auto',\n right: 0,\n '@media print': {\n // Prevent the app bar to be visible on each printed page.\n position: 'absolute'\n }\n },\n\n /* Styles applied to the root element if `position=\"absolute\"`. */\n positionAbsolute: {\n position: 'absolute',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"sticky\"`. */\n positionSticky: {\n // ⚠️ sticky is not supported by IE 11.\n position: 'sticky',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"static\"`. */\n positionStatic: {\n position: 'static',\n transform: 'translateZ(0)' // Make sure we can see the elevation.\n\n },\n\n /* Styles applied to the root element if `position=\"relative\"`. */\n positionRelative: {\n position: 'relative'\n },\n\n /* Styles applied to the root element if `color=\"default\"`. */\n colorDefault: {\n backgroundColor: backgroundColorDefault,\n color: theme.palette.getContrastText(backgroundColorDefault)\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"transparent\"`. */\n colorTransparent: {\n backgroundColor: 'transparent',\n color: 'inherit'\n }\n };\n};\nvar AppBar = React.forwardRef(function AppBar(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$position = props.position,\n position = _props$position === void 0 ? 'fixed' : _props$position,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"color\", \"position\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n square: true,\n component: \"header\",\n elevation: 4,\n className: clsx(classes.root, classes[\"position\".concat(capitalize(position))], classes[\"color\".concat(capitalize(color))], className, position === 'fixed' && 'mui-fixed'),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AppBar.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 * 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 color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent']),\n\n /**\n * The positioning type. The behavior of the different options is described\n * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n */\n position: PropTypes.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAppBar'\n})(AppBar);","import React from \"react\"\nimport { Grid } from \"@material-ui/core\"\nimport { useContextProvider, openMenu } from \"../store/context\"\nimport { AppBar, Toolbar, Typography, IconButton } from \"@material-ui/core\"\nimport MenuIcon from \"@material-ui/icons/Menu\"\n\nconst Header = ({ siteTitle }) => {\n const [, dispatch] = useContextProvider()\n return (\n \n \n \n dispatch(openMenu())} color=\"secondary\">\n \n \n \n {siteTitle}\n \n \n \n \n )\n}\nexport default Header\n","/**\n * Layout component that queries for data\n * with Gatsby's useStaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { useStaticQuery, graphql } from 'gatsby'\nimport Header from './header'\nimport { ContextProvider } from '../store/context'\nimport './layout.css'\n\nconst Layout = ({ children }) => {\n const data = useStaticQuery(graphql`\n query SiteTitleQuery {\n site {\n siteMetadata {\n title\n }\n }\n }\n `)\n\n return (\n \n
\n \n
{children}
\n
\n © {new Date().getFullYear()}, Built by{' '}\n AV for McGill University\n
\n \n \n )\n}\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n}\n\nexport default Layout\n","// 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\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\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\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\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\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\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}\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}\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}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\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\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\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}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\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\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","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 clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'default' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : 'true',\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.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 * Node passed into the SVG element.\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 color of the component. It supports those theme colors that make sense for this component.\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a DOM element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: PropTypes.oneOf(['default', 'inherit', 'large', 'small']),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this property.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);","// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof string !== 'string') {\n throw new Error('Material-UI: capitalize(string) expects a string argument.');\n }\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","import \"core-js/modules/es6.array.some\";\nimport _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 clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport { fade } from '../styles/colorManipulator';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n textAlign: 'center',\n flex: '0 0 auto',\n fontSize: theme.typography.pxToRem(24),\n padding: 12,\n borderRadius: '50%',\n overflow: 'visible',\n // Explicitly set the default value to solve a bug on IE 11.\n color: theme.palette.action.active,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n backgroundColor: fade(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n backgroundColor: 'transparent',\n color: theme.palette.action.disabled\n }\n },\n\n /* Styles applied to the root element if `edge=\"start\"`. */\n edgeStart: {\n marginLeft: -12,\n '$sizeSmall&': {\n marginLeft: -3\n }\n },\n\n /* Styles applied to the root element if `edge=\"end\"`. */\n edgeEnd: {\n marginRight: -12,\n '$sizeSmall&': {\n marginRight: -3\n }\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {\n padding: 3,\n fontSize: theme.typography.pxToRem(18)\n },\n\n /* Styles applied to the children container element. */\n label: {\n width: '100%',\n display: 'flex',\n alignItems: 'inherit',\n justifyContent: 'inherit'\n }\n };\n};\n/**\n * Refer to the [Icons](/components/icons/) section of the documentation\n * regarding the available icon options.\n */\n\nvar IconButton = React.forwardRef(function IconButton(props, ref) {\n var _props$edge = props.edge,\n edge = _props$edge === void 0 ? false : _props$edge,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'default' : _props$color,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n other = _objectWithoutProperties(props, [\"edge\", \"children\", \"classes\", \"className\", \"color\", \"disabled\", \"disableFocusRipple\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n className: clsx(classes.root, className, color !== 'default' && classes[\"color\".concat(capitalize(color))], disabled && classes.disabled, size === \"small\" && classes[\"size\".concat(capitalize(size))], {\n 'start': classes.edgeStart,\n 'end': classes.edgeEnd\n }[edge]),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.label\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? IconButton.propTypes = {\n /**\n * The icon element.\n */\n children: chainPropTypes(PropTypes.node, function (props) {\n var found = React.Children.toArray(props.children).some(function (child) {\n return React.isValidElement(child) && child.props.onClick;\n });\n\n if (found) {\n return new Error(['Material-UI: you are providing an onClick event listener ' + 'to a child of a button element.', 'Firefox will never trigger the event.', 'You should move the onClick listener to the parent button element.', 'https://github.com/mui-org/material-ui/issues/13957'].join('\\n'));\n }\n\n return null;\n }),\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n /**\n * If `true`, the button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n * `disableRipple` must also be true.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n */\n edge: PropTypes.oneOf(['start', 'end', false]),\n\n /**\n * The size of the button.\n * `small` is equivalent to the dense button styling.\n */\n size: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiIconButton'\n})(IconButton);","import React, { createContext, useReducer, useContext, useMemo } from \"react\"\n\nexport const INITIAL_STATE = false\n\nexport const openMenu = () => ({\n type: \"OPEN_MENU\",\n})\n\nexport const closeMenu = () => ({\n type: \"CLOSE_MENU\",\n})\n\nexport const reducer = (_, action) => {\n switch (action.type) {\n case \"OPEN_MENU\": {\n return true\n }\n case \"CLOSE_MENU\": {\n return false\n }\n default:\n throw new Error()\n }\n}\n\nexport const Context = createContext(undefined)\n\nexport const ContextProvider = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, INITIAL_STATE)\n\n return (\n {children}\n )\n}\n\nexport const useContextProvider = () => {\n const [state, dispatch] = useContext(Context)\n\n return useMemo(() => [state, dispatch], [state, dispatch])\n}\n","export { default } from './SvgIcon';","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.function.bind\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.object.create\";\nimport { 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\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\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\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\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\n var i;\n var childMapping = {};\n\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\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\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 \"core-js/modules/es6.function.bind\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es7.object.values\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\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\n};\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\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 };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\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\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\n if (Component === null) {\n return React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import * as React from 'react';\nimport PropTypes from 'prop-types';\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\n var _React$useState = React.useState(false),\n leaving = _React$useState[0],\n setLeaving = _React$useState[1];\n\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\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}\n\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\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.isRequired,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n \"in\": PropTypes.bool,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : 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 PropTypes from 'prop-types';\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\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\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\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\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\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\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 = 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\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n\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\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\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\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 clientX = event.clientX ? event.clientX : event.touches[0].clientX;\n var clientY = event.clientY ? event.clientY : event.touches[0].clientY;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\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\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\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\n startTimerCommit.current = null;\n setRipples(function (oldRipples) {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\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\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})(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 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 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 },\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 = 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