{"version":3,"sources":["../node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js","../node_modules/@material-ui/core/esm/AppBar/AppBar.js","../node_modules/@material-ui/core/esm/Toolbar/Toolbar.js","../node_modules/@material-ui/core/esm/InputAdornment/InputAdornment.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/@material-ui/icons/esm/Search.js","../node_modules/@material-ui/lab/esm/Skeleton/Skeleton.js","../node_modules/@material-ui/core/esm/List/List.js","../node_modules/@material-ui/core/esm/ListItem/ListItem.js","../node_modules/@material-ui/icons/esm/Menu.js","../node_modules/@material-ui/core/esm/MenuItem/MenuItem.js","../node_modules/@material-ui/icons/esm/Person.js","../node_modules/@material-ui/core/esm/Divider/Divider.js","../node_modules/@material-ui/system/esm/css.js","../node_modules/@material-ui/system/esm/compose.js","../node_modules/@material-ui/system/esm/style.js","../node_modules/@material-ui/system/esm/borders.js","../node_modules/@material-ui/system/esm/display.js","../node_modules/@material-ui/system/esm/flexbox.js","../node_modules/@material-ui/system/esm/grid.js","../node_modules/@material-ui/system/esm/positions.js","../node_modules/@material-ui/system/esm/palette.js","../node_modules/@material-ui/system/esm/shadows.js","../node_modules/@material-ui/system/esm/sizing.js","../node_modules/@material-ui/system/esm/typography.js","../node_modules/@material-ui/styles/esm/styled/styled.js","../node_modules/@material-ui/core/esm/styles/styled.js","../node_modules/@material-ui/core/esm/Box/Box.js","../node_modules/@material-ui/core/esm/withWidth/withWidth.js","../node_modules/@material-ui/core/esm/Hidden/HiddenJs.js","../node_modules/@material-ui/core/esm/Hidden/HiddenCss.js","../node_modules/@material-ui/core/esm/Hidden/Hidden.js","../node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js","../node_modules/@material-ui/core/esm/InputBase/InputBase.js","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/@material-ui/core/esm/Popover/Popover.js","../node_modules/@material-ui/utils/esm/chainPropTypes.js","../node_modules/@material-ui/utils/esm/elementAcceptingRef.js","../node_modules/@material-ui/utils/esm/elementTypeAcceptingRef.js","../node_modules/@material-ui/utils/esm/exactProp.js","../node_modules/@material-ui/utils/esm/getDisplayName.js","../node_modules/@material-ui/utils/esm/HTMLElementType.js","../node_modules/@material-ui/utils/esm/ponyfillGlobal.js","../node_modules/@material-ui/utils/esm/refType.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/FormControl/FormControlContext.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@material-ui/core/esm/FormControl/formControlState.js","../node_modules/@material-ui/core/esm/List/ListContext.js","../node_modules/@material-ui/core/node_modules/react-is/index.js","../node_modules/lodash/flatten.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseMap.js","../node_modules/@material-ui/core/esm/InputBase/utils.js","../node_modules/lodash/_baseEach.js","../node_modules/@material-ui/core/styles/colorManipulator.js","../node_modules/@material-ui/utils/node_modules/react-is/index.js","../node_modules/@material-ui/utils/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/map.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/@material-ui/core/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/dequal/lite/index.mjs","../node_modules/swr/esm/libs/hash.js","../node_modules/swr/esm/libs/web-preset.js","../node_modules/swr/esm/config.js","../node_modules/swr/esm/cache.js","../node_modules/swr/esm/swr-config-context.js","../node_modules/swr/esm/use-swr.js","../node_modules/swr/esm/use-swr-infinite.js","../node_modules/swr/esm/index.js","../node_modules/@material-ui/core/esm/MenuList/MenuList.js","../node_modules/@material-ui/core/esm/Menu/Menu.js"],"names":["useMediaQuery","queryInput","options","arguments","length","undefined","theme","useTheme","props","getThemeProps","name","query","replace","supportMatchMedia","window","matchMedia","_props$options","_extends","_props$options$defaul","defaultMatches","_props$options$matchM","_props$options$noSsr","noSsr","_props$options$ssrMat","ssrMatchMedia","_React$useState","React","matches","match","setMatch","active","queryList","updateMatch","addListener","removeListener","AppBar","ref","classes","className","_props$color","color","_props$position","position","other","_objectWithoutProperties","Paper","square","component","elevation","clsx","root","concat","capitalize","withStyles","backgroundColorDefault","palette","type","grey","display","flexDirection","width","boxSizing","zIndex","appBar","flexShrink","positionFixed","top","left","right","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","backgroundColor","getContrastText","colorPrimary","primary","main","contrastText","colorSecondary","secondary","colorInherit","colorTransparent","Toolbar","_props$component","Component","_props$disableGutters","disableGutters","_props$variant","variant","gutters","alignItems","_defineProperty","paddingLeft","spacing","paddingRight","breakpoints","up","regular","mixins","toolbar","dense","minHeight","InputAdornment","children","_props$disablePointer","disablePointerEvents","_props$disableTypogra","disableTypography","variantProp","muiFormControl","useFormControl","FormControlContext","Provider","value","hiddenLabel","filled","positionStart","positionEnd","margin","marginDense","Typography","height","maxHeight","whiteSpace","marginTop","marginRight","marginLeft","pointerEvents","IconButton","_props$edge","edge","_props$disabled","disabled","_props$disableFocusRi","disableFocusRipple","_props$size","size","ButtonBase","edgeStart","edgeEnd","centerRipple","focusRipple","label","textAlign","flex","fontSize","typography","pxToRem","padding","borderRadius","overflow","action","transition","transitions","create","duration","shortest","fade","hoverOpacity","sizeSmall","justifyContent","createSvgIcon","d","Skeleton","_props$animation","animation","hasChildren","Boolean","withChildren","fitContent","heightAuto","style","text","marginBottom","transformOrigin","transform","shape","content","rect","circle","pulse","opacity","wave","background","hover","bottom","visibility","maxWidth","List","_props$dense","_props$disablePadding","disablePadding","subheader","context","ListContext","listStyle","paddingTop","paddingBottom","useEnhancedEffect","ListItem","_props$alignItems","_props$autoFocus","autoFocus","_props$button","button","childrenProp","componentProp","_props$ContainerCompo","ContainerComponent","_props$ContainerProps","ContainerProps","ContainerClassName","_props$divider","divider","focusVisibleClassName","_props$selected","selected","childContext","listItemRef","current","focus","toArray","hasSecondaryAction","isMuiElement","handleOwnRef","instance","ReactDOM","handleRef","useForkRef","componentProps","alignItemsFlexStart","secondaryAction","focusVisible","container","pop","textDecoration","borderBottom","backgroundClip","MenuItem","tabIndex","ListItemClasses","_props$role","role","tabIndexProp","body1","body2","Divider","_props$absolute","absolute","_props$flexItem","flexItem","_props$light","light","_props$orientation","orientation","vertical","border","inset","middle","alignSelf","css","styleFunction","newStyleFunction","output","merge","input","fields","Object","keys","forEach","prop","indexOf","omit","filterProps","propTypes","_toConsumableArray","compose","_len","styles","Array","_key","fn","reduce","acc","getPath","obj","path","split","item","_options$cssProperty","cssProperty","themeKey","propValue","themeMapping","handleBreakpoints","propValueFinal","isArray","getBorder","borders","flexbox","grid","boxShadow","minWidth","sizing","styled","componentCreator","stylesOptions","classNamePrefix","stylesOrCreator","useStyles","makeStyles","displayName","StyledComponent","forwardRef","classNameProp","clone","ComponentProp","spread","cloneElement","FinalComponent","createElement","hoistNonReactStatics","styledWithoutDefault","defaultTheme","positions","shadows","Box","isWidthUp","breakpoint","inclusive","breakpointKeys","isWidthDown","withWidth","_options$withTheme","withTheme","withThemeOption","_options$noSSR","noSSR","initialWidthOption","initialWidth","WithWidth","contextTheme","_getThemeProps","mountedState","setMountedState","widthComputed","slice","reverse","key","more","HiddenJs","only","visible","i","_i","_breakpoint","breakpointUp","breakpointDown","PropTypes","node","string","implementation","oneOf","lgDown","bool","lgUp","mdDown","mdUp","oneOfType","arrayOf","smDown","smUp","isRequired","xlDown","xlUp","xsDown","xsUp","hidden","down","push","join","Hidden","_props$implementation","_props$lgDown","_props$lgUp","_props$mdDown","_props$mdUp","_props$smDown","_props$smUp","_props$xlDown","_props$xlUp","_props$xsDown","_props$xsUp","HiddenCss","getStyleValue","computedStyle","property","parseInt","TextareaAutosize","onChange","rows","rowsMax","_props$rowsMin","rowsMin","rowsMinProp","isControlled","inputRef","shadowRef","renders","state","setState","syncHeight","getComputedStyle","inputShallow","placeholder","innerHeight","scrollHeight","singleRowHeight","outerHeight","Math","max","Number","min","outerHeightStyle","abs","prevState","handleResize","debounce","addEventListener","clear","removeEventListener","event","readOnly","InputBase","ariaDescribedby","autoComplete","defaultValue","endAdornment","_props$fullWidth","error","fullWidth","id","_props$inputComponent","inputComponent","_props$inputProps","inputProps","inputPropsProp","inputRefProp","_props$multiline","multiline","onBlur","onClick","onFocus","onKeyDown","onKeyUp","renderSuffix","startAdornment","_props$type","valueProp","handleInputRefWarning","process","handleInputPropsRefProp","handleInputRefProp","handleInputRef","focused","setFocused","fcs","formControlState","states","onFilled","onEmpty","checkDirty","isFilled","InputComponent","setAdornedStart","formControl","adornedStart","adornedEnd","currentTarget","target","onAnimationStart","animationName","required","inputMultiline","inputHiddenLabel","inputAdornedStart","inputAdornedEnd","inputTypeSearch","inputMarginDense","element","Error","_formatMuiErrorMessage","args","apply","stopPropagation","shorter","placeholderHidden","placeholderVisible","lineHeight","cursor","font","letterSpacing","WebkitTapHighlightColor","animationDuration","outline","resize","getScale","pow","entering","entered","Grow","_props$disableStrictM","disableStrictModeCompat","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","_props$timeout","timeout","_props$TransitionComp","TransitionComponent","Transition","timer","autoTimeout","enableStrictModeCompat","unstable_strictMode","nodeRef","foreignRef","normalizedTransitionCallback","callback","nodeOrAppearing","maybeAppearing","_ref","_ref2","_slicedToArray","isAppearing","handleEntering","handleEnter","reflow","_getTransitionProps","getTransitionProps","mode","transitionDuration","delay","getAutoHeightDuration","clientHeight","handleEntered","handleExiting","handleExit","_getTransitionProps2","handleExited","clearTimeout","appear","addEndListener","nodeOrNext","maybeNext","next","setTimeout","childProps","muiSupportAuto","getOffsetTop","offset","getOffsetLeft","horizontal","getTransformOriginValue","map","n","getAnchorEl","anchorEl","Popover","_props$anchorOrigin","anchorOrigin","anchorPosition","_props$anchorReferenc","anchorReference","containerProp","_props$elevation","getContentAnchorEl","_props$marginThreshol","marginThreshold","open","_props$PaperProps","PaperProps","_props$transformOrigi","_props$transitionDura","transitionDurationProp","_props$TransitionProp","TransitionProps","paperRef","getAnchorOffset","contentAnchorOffset","resolvedAnchorEl","anchorRect","nodeType","ownerDocument","body","getBoundingClientRect","anchorVertical","getContentAnchorOffset","contentAnchorEl","contains","scrollTop","parent","child","parentElement","getScrollParent","offsetTop","getTransformOrigin","elemRect","getPositioningStyle","offsetWidth","offsetHeight","elemTransformOrigin","anchorOffset","containerWindow","ownerWindow","heightThreshold","widthThreshold","innerWidth","diff","_diff","_diff2","_diff3","round","setPositioningStyles","positioning","handlePaperRef","updatePosition","Modal","BackdropProps","invisible","createChainedFunction","paper","overflowY","overflowX","chainPropTypes","propType1","propType2","elementAcceptingRef","exactProp","fnNameMatchRegex","getFunctionName","getFunctionComponentName","fallback","getWrappedName","outerType","innerType","wrapperName","functionName","getDisplayName","_typeof","$$typeof","ForwardRef","render","Memo","HTMLElementType","propName","componentName","location","propFullName","self","Function","refType","func","object","SvgIcon","muiName","memo","muiNames","module","exports","require","baseFlatten","array","arrayPush","isFlattenable","depth","predicate","isStrict","result","index","baseEach","isArrayLike","collection","iteratee","hasValue","SSR","isAdornedStart","baseForOwn","createBaseEach","defineProperty","hexToRgb","rgbToHex","values","decomposeColor","int","hex","toString","intToHex","hslToRgb","recomposeColor","getContrastRatio","foreground","lumA","getLuminance","lumB","emphasize","coefficient","darken","lighten","clamp","_utils","substr","re","RegExp","colors","h","s","l","a","f","k","rgb","charAt","marker","substring","formatMuiErrorMessage","parseFloat","val","toFixed","b","c","e","g","m","p","q","r","u","v","w","Symbol","for","x","y","t","z","A","B","C","D","E","F","G","H","I","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isArguments","spreadableSymbol","isConcatSpreadable","arrayMap","baseIteratee","baseMap","baseFor","createBaseFor","fromRight","keysFunc","iterable","eachFunc","has","prototype","hasOwnProperty","table","WeakMap","counter","isOnline","navigator","onLine","isDocumentVisible","document","visibilityState","fetcher","url","fetch","then","res","json","cache","Cache","initialData","this","__cache","Map","entries","__listeners","get","serializeKey","set","notify","from","delete","err","_hash","String","hash","subscribe","listener","_this","isSubscribed","_a","slowConnection","effectiveType","defaultConfig","onLoadingSlow","onSuccess","onError","onErrorRetry","_","__","config","revalidate","opts","errorRetryCount","retryCount","count","random","errorRetryInterval","focusThrottleInterval","dedupingInterval","loadingTimeout","refreshInterval","revalidateOnFocus","revalidateOnReconnect","refreshWhenHidden","refreshWhenOffline","shouldRetryOnError","suspense","compare","dequal","foo","bar","ctor","len","constructor","Date","getTime","call","webPreset","SWRConfigContext","createContext","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","done","__generator","sent","trys","ops","verb","iterator","op","TypeError","IS_SERVER","Deno","version","deno","rAF","useIsomorphicLayoutEffect","useEffect","useLayoutEffect","CONCURRENT_PROMISES","CONCURRENT_PROMISES_TS","FOCUS_REVALIDATORS","RECONNECT_REVALIDATORS","CACHE_REVALIDATORS","MUTATION_TS","MUTATION_END_TS","now","ts","revalidate_1","revalidators","trigger","shouldRevalidate","keyErr","keyValidating","updaters","currentData","currentError","currentIsValidating","promises","all","broadcastState","data","isValidating","mutate","_data","beforeMutationTs","beforeConcurrentPromisesTs","isAsyncMutation","err_1","shouldAbort","_b","useSWR","fnArgs","assign","useContext","configRef","useRef","resolveData","cachedData","initialError","initialIsValidating","stateDependencies","stateRef","useDebugValue","rerender","useState","dispatch","useCallback","payload","shouldUpdateState","unmountedRef","initialMountedRef","keyRef","eventsRef","emit","params","boundMutate","addRevalidator","removeRevalidator","revlidators","revalidateOpts","loading","shouldDeduping","newData","startAt","newState","err_2","dedupe","currentHookData","latestKeyedData","softRevalidate","revalidateOnMount","pending","onReconnect","onUpdate","updatedData","updatedError","updatedIsValidating","needUpdate","tick","memoizedState","useMemo","defineProperties","enumerable","latestData","latestError","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","useSWRInfinite","getKey","initialSize","revalidateAll","_c","persistSize","defaultFetcher","extraConfig","firstPageKey","contextCacheKey","cachedPageSize","pageCountCacheKey","pageCountRef","didMountRef","swr","originalData","force","previousPageData","pageKey","pageArgs","pageData","dataRef","setSize","arg","nextItem","list","disableListWrap","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","innerText","textContent","trim","toLowerCase","repeating","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","getAttribute","hasAttribute","MenuList","actions","_props$autoFocusItem","autoFocusItem","_props$disabledItemsF","_props$disableListWra","listRef","textCriteriaRef","previousKeyMatched","lastTime","adjustStyleForScrollbar","containerElement","noExplicitWidth","scrollbarSize","getScrollbarSize","direction","activeItemIndex","items","newChildProps","activeElement","preventDefault","criteria","lowerKey","currTime","performance","keepFocusOnCurrent","RTL_ORIGIN","LTR_ORIGIN","Menu","_props$disableAutoFoc","disableAutoFocusItem","_props$MenuListProps","MenuListProps","onClose","PopoverClasses","menuListActionsRef","contentAnchorRef","setRef","WebkitOverflowScrolling"],"mappings":"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","file":"static/js/7.a62b65ad.chunk.js","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { getThemeProps, useTheme } from '@material-ui/styles';\nexport default function useMediaQuery(queryInput) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var theme = useTheme();\n var props = getThemeProps({\n theme: theme,\n name: 'MuiUseMediaQuery',\n props: {}\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['Material-UI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n var query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // Wait for jsdom to support the match media feature.\n // All the browsers Material-UI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n var supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n\n var _props$options = _extends({}, props, options),\n _props$options$defaul = _props$options.defaultMatches,\n defaultMatches = _props$options$defaul === void 0 ? false : _props$options$defaul,\n _props$options$matchM = _props$options.matchMedia,\n matchMedia = _props$options$matchM === void 0 ? supportMatchMedia ? window.matchMedia : null : _props$options$matchM,\n _props$options$noSsr = _props$options.noSsr,\n noSsr = _props$options$noSsr === void 0 ? false : _props$options$noSsr,\n _props$options$ssrMat = _props$options.ssrMatchMedia,\n ssrMatchMedia = _props$options$ssrMat === void 0 ? null : _props$options$ssrMat;\n\n var _React$useState = React.useState(function () {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n\n return defaultMatches;\n }),\n match = _React$useState[0],\n setMatch = _React$useState[1];\n\n React.useEffect(function () {\n var active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n var queryList = matchMedia(query);\n\n var updateMatch = function updateMatch() {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui-org/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch();\n queryList.addListener(updateMatch);\n return function () {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query: query,\n match: match\n });\n }\n\n return match;\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 },\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 = /*#__PURE__*/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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n },\n\n /* Styles applied to the root element if `disableGutters={false}`. */\n gutters: _defineProperty({\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n }, theme.breakpoints.up('sm'), {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }),\n\n /* Styles applied to the root element if `variant=\"regular\"`. */\n regular: theme.mixins.toolbar,\n\n /* Styles applied to the root element if `variant=\"dense\"`. */\n dense: {\n minHeight: 48\n }\n };\n};\nvar Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disableGutters = props.disableGutters,\n disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'regular' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"disableGutters\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, classes[variant], className, !disableGutters && classes.gutters),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.propTypes = {\n /**\n * Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, disables gutter padding.\n */\n disableGutters: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['regular', 'dense'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiToolbar'\n})(Toolbar);","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 Typography from '../Typography';\nimport withStyles from '../styles/withStyles';\nimport FormControlContext, { useFormControl } from '../FormControl/FormControlContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n height: '0.01em',\n // Fix IE 11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap'\n },\n\n /* Styles applied to the root element if `variant=\"filled\"`. */\n filled: {\n '&$positionStart:not($hiddenLabel)': {\n marginTop: 16\n }\n },\n\n /* Styles applied to the root element if `position=\"start\"`. */\n positionStart: {\n marginRight: 8\n },\n\n /* Styles applied to the root element if `position=\"end\"`. */\n positionEnd: {\n marginLeft: 8\n },\n\n /* Styles applied to the root element if `disablePointerEvents=true`. */\n disablePointerEvents: {\n pointerEvents: 'none'\n },\n\n /* Styles applied if the adornment is used inside . */\n hiddenLabel: {},\n\n /* Styles applied if the adornment is used inside . */\n marginDense: {}\n};\nvar InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disablePointer = props.disablePointerEvents,\n disablePointerEvents = _props$disablePointer === void 0 ? false : _props$disablePointer,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n position = props.position,\n variantProp = props.variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"]);\n\n var muiFormControl = useFormControl() || {};\n var variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('Material-UI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n return /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, disablePointerEvents && classes.disablePointerEvents, muiFormControl.hiddenLabel && classes.hiddenLabel, variant === 'filled' && classes.filled, {\n 'start': classes.positionStart,\n 'end': classes.positionEnd\n }[position], muiFormControl.margin === 'dense' && classes.marginDense),\n ref: ref\n }, other), typeof children === 'string' && !disableTypography ? /*#__PURE__*/React.createElement(Typography, {\n color: \"textSecondary\"\n }, children) : children));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes = {\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node.isRequired,\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 component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the input on click.\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n */\n disableTypography: PropTypes.bool,\n\n /**\n * @ignore\n */\n muiFormControl: PropTypes.object,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['start', 'end']),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['standard', 'outlined', 'filled'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiInputAdornment'\n})(InputAdornment);","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 { 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 = /*#__PURE__*/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 /*#__PURE__*/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 */\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 * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n}), 'Search');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { fade, withStyles } from '@material-ui/core/styles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n // Create a \"on paper\" color with sufficient contrast retaining the color\n backgroundColor: fade(theme.palette.text.primary, theme.palette.type === 'light' ? 0.11 : 0.13),\n height: '1.2em'\n },\n\n /* Styles applied to the root element if `variant=\"text\"`. */\n text: {\n marginTop: 0,\n marginBottom: 0,\n height: 'auto',\n transformOrigin: '0 60%',\n transform: 'scale(1, 0.60)',\n borderRadius: theme.shape.borderRadius,\n '&:empty:before': {\n content: '\"\\\\00a0\"'\n }\n },\n\n /* Styles applied to the root element if `variant=\"rect\"`. */\n rect: {},\n\n /* Styles applied to the root element if `variant=\"circle\"`. */\n circle: {\n borderRadius: '50%'\n },\n\n /* Styles applied to the root element if `animation=\"pulse\"`. */\n pulse: {\n animation: '$pulse 1.5s ease-in-out 0.5s infinite'\n },\n '@keyframes pulse': {\n '0%': {\n opacity: 1\n },\n '50%': {\n opacity: 0.4\n },\n '100%': {\n opacity: 1\n }\n },\n\n /* Styles applied to the root element if `animation=\"wave\"`. */\n wave: {\n position: 'relative',\n overflow: 'hidden',\n '&::after': {\n animation: '$wave 1.6s linear 0.5s infinite',\n background: \"linear-gradient(90deg, transparent, \".concat(theme.palette.action.hover, \", transparent)\"),\n content: '\"\"',\n position: 'absolute',\n transform: 'translateX(-100%)',\n // Avoid flash during server-side hydration\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n }\n },\n '@keyframes wave': {\n '0%': {\n transform: 'translateX(-100%)'\n },\n '60%': {\n // +0.5s of delay between each loop\n transform: 'translateX(100%)'\n },\n '100%': {\n transform: 'translateX(100%)'\n }\n },\n\n /* Styles applied when the component is passed children. */\n withChildren: {\n '& > *': {\n visibility: 'hidden'\n }\n },\n\n /* Styles applied when the component is passed children and no width. */\n fitContent: {\n maxWidth: 'fit-content'\n },\n\n /* Styles applied when the component is passed children and no height. */\n heightAuto: {\n height: 'auto'\n }\n };\n};\nvar Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {\n var _props$animation = props.animation,\n animation = _props$animation === void 0 ? 'pulse' : _props$animation,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'span' : _props$component,\n height = props.height,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'text' : _props$variant,\n width = props.width,\n other = _objectWithoutProperties(props, [\"animation\", \"classes\", \"className\", \"component\", \"height\", \"variant\", \"width\"]);\n\n var hasChildren = Boolean(other.children);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, classes[variant], className, hasChildren && [classes.withChildren, !width && classes.fitContent, !height && classes.heightAuto], animation !== false && classes[animation])\n }, other, {\n style: _extends({\n width: width,\n height: height\n }, other.style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes = {\n /**\n * The animation.\n * If `false` the animation effect is disabled.\n */\n animation: PropTypes.oneOf(['pulse', 'wave', false]),\n\n /**\n * Optional children to infer width and height from.\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Height of the skeleton.\n * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The type of content that will be rendered.\n */\n variant: PropTypes.oneOf(['text', 'rect', 'circle']),\n\n /**\n * Width of the skeleton.\n * Useful when the skeleton is inside an inline element with no width of its own.\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiSkeleton'\n})(Skeleton);","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 ListContext from './ListContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n },\n\n /* Styles applied to the root element if `disablePadding={false}`. */\n padding: {\n paddingTop: 8,\n paddingBottom: 8\n },\n\n /* Styles applied to the root element if dense. */\n dense: {},\n\n /* Styles applied to the root element if a `subheader` is provided. */\n subheader: {\n paddingTop: 0\n }\n};\nvar List = /*#__PURE__*/React.forwardRef(function List(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'ul' : _props$component,\n _props$dense = props.dense,\n dense = _props$dense === void 0 ? false : _props$dense,\n _props$disablePadding = props.disablePadding,\n disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding,\n subheader = props.subheader,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"]);\n\n var context = React.useMemo(function () {\n return {\n dense: dense\n };\n }, [dense]);\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, dense && classes.dense, !disablePadding && classes.padding, subheader && classes.subheader),\n ref: ref\n }, other), subheader, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes = {\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input will be used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, vertical padding will be removed from the list.\n */\n disablePadding: PropTypes.bool,\n\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiList'\n})(List);","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 { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport ButtonBase from '../ButtonBase';\nimport isMuiElement from '../utils/isMuiElement';\nimport useForkRef from '../utils/useForkRef';\nimport ListContext from '../List/ListContext';\nimport * as ReactDOM from 'react-dom';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the (normally root) `component` element. May be wrapped by a `container`. */\n root: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n width: '100%',\n boxSizing: 'border-box',\n textAlign: 'left',\n paddingTop: 8,\n paddingBottom: 8,\n '&$focusVisible': {\n backgroundColor: theme.palette.action.selected\n },\n '&$selected, &$selected:hover': {\n backgroundColor: theme.palette.action.selected\n },\n '&$disabled': {\n opacity: 0.5\n }\n },\n\n /* Styles applied to the `container` element if `children` includes `ListItemSecondaryAction`. */\n container: {\n position: 'relative'\n },\n\n /* Pseudo-class applied to the `component`'s `focusVisibleClassName` prop if `button={true}`. */\n focusVisible: {},\n\n /* Styles applied to the `component` element if dense. */\n dense: {\n paddingTop: 4,\n paddingBottom: 4\n },\n\n /* Styles applied to the `component` element if `alignItems=\"flex-start\"`. */\n alignItemsFlexStart: {\n alignItems: 'flex-start'\n },\n\n /* Pseudo-class applied to the inner `component` element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the inner `component` element if `divider={true}`. */\n divider: {\n borderBottom: \"1px solid \".concat(theme.palette.divider),\n backgroundClip: 'padding-box'\n },\n\n /* Styles applied to the inner `component` element if `disableGutters={false}`. */\n gutters: {\n paddingLeft: 16,\n paddingRight: 16\n },\n\n /* Styles applied to the inner `component` element if `button={true}`. */\n button: {\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: theme.palette.action.hover,\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 `component` element if `children` includes `ListItemSecondaryAction`. */\n secondaryAction: {\n // Add some space to avoid collision as `ListItemSecondaryAction`\n // is absolutely positioned.\n paddingRight: 48\n },\n\n /* Pseudo-class applied to the root element if `selected={true}`. */\n selected: {}\n };\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\n\nvar ListItem = /*#__PURE__*/React.forwardRef(function ListItem(props, ref) {\n var _props$alignItems = props.alignItems,\n alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n _props$button = props.button,\n button = _props$button === void 0 ? false : _props$button,\n childrenProp = props.children,\n classes = props.classes,\n className = props.className,\n componentProp = props.component,\n _props$ContainerCompo = props.ContainerComponent,\n ContainerComponent = _props$ContainerCompo === void 0 ? 'li' : _props$ContainerCompo,\n _props$ContainerProps = props.ContainerProps;\n _props$ContainerProps = _props$ContainerProps === void 0 ? {} : _props$ContainerProps;\n\n var ContainerClassName = _props$ContainerProps.className,\n ContainerProps = _objectWithoutProperties(_props$ContainerProps, [\"className\"]),\n _props$dense = props.dense,\n dense = _props$dense === void 0 ? false : _props$dense,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableGutters = props.disableGutters,\n disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n _props$divider = props.divider,\n divider = _props$divider === void 0 ? false : _props$divider,\n focusVisibleClassName = props.focusVisibleClassName,\n _props$selected = props.selected,\n selected = _props$selected === void 0 ? false : _props$selected,\n other = _objectWithoutProperties(props, [\"alignItems\", \"autoFocus\", \"button\", \"children\", \"classes\", \"className\", \"component\", \"ContainerComponent\", \"ContainerProps\", \"dense\", \"disabled\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"]);\n\n var context = React.useContext(ListContext);\n var childContext = {\n dense: dense || context.dense || false,\n alignItems: alignItems\n };\n var listItemRef = React.useRef(null);\n useEnhancedEffect(function () {\n if (autoFocus) {\n if (listItemRef.current) {\n listItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Material-UI: Unable to set focus to a ListItem whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n var children = React.Children.toArray(childrenProp);\n var hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n listItemRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(handleOwnRef, ref);\n\n var componentProps = _extends({\n className: clsx(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems !== \"center\" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),\n disabled: disabled\n }, other);\n\n var Component = componentProp || 'li';\n\n if (button) {\n componentProps.component = componentProp || 'div';\n componentProps.focusVisibleClassName = clsx(classes.focusVisible, focusVisibleClassName);\n Component = ButtonBase;\n }\n\n if (hasSecondaryAction) {\n // Use div by default.\n Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.\n\n if (ContainerComponent === 'li') {\n if (Component === 'li') {\n Component = 'div';\n } else if (componentProps.component === 'li') {\n componentProps.component = 'div';\n }\n }\n\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(ContainerComponent, _extends({\n className: clsx(classes.container, ContainerClassName),\n ref: handleRef\n }, ContainerProps), /*#__PURE__*/React.createElement(Component, componentProps, children), children.pop()));\n }\n\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: childContext\n }, /*#__PURE__*/React.createElement(Component, _extends({\n ref: handleRef\n }, componentProps), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.propTypes = {\n /**\n * Defines the `align-items` style property.\n */\n alignItems: PropTypes.oneOf(['flex-start', 'center']),\n\n /**\n * If `true`, the list item will be focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, the list item will be a button (using `ButtonBase`). Props intended\n * for `ButtonBase` can then be applied to `ListItem`.\n */\n button: PropTypes.bool,\n\n /**\n * The content of the component. If a `ListItemSecondaryAction` is used it must\n * be the last child.\n */\n children: chainPropTypes(PropTypes.node, function (props) {\n var children = React.Children.toArray(props.children); // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n\n var secondaryActionIndex = -1;\n\n for (var i = children.length - 1; i >= 0; i -= 1) {\n var child = children[i];\n\n if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n secondaryActionIndex = i;\n break;\n }\n } // is ListItemSecondaryAction the last child of ListItem\n\n\n if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n return new Error('Material-UI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\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 component used for the root node.\n * Either a string to use a HTML element or a component.\n * By default, it's a `li` when `button` is `false` and a `div` when `button` is `true`.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The container component used when a `ListItemSecondaryAction` is the last child.\n */\n ContainerComponent: PropTypes.elementType,\n\n /**\n * Props applied to the container component if used.\n */\n ContainerProps: PropTypes.object,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, the list item will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, a 1px light border is added to the bottom of the list item.\n */\n divider: PropTypes.bool,\n\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n\n /**\n * Use to apply selected styling.\n */\n selected: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiListItem'\n})(ListItem);","import * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n}), 'Menu');","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ListItem from '../ListItem';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body1, _defineProperty({\n minHeight: 48,\n paddingTop: 6,\n paddingBottom: 6,\n boxSizing: 'border-box',\n width: 'auto',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }, theme.breakpoints.up('sm'), {\n minHeight: 'auto'\n })),\n // TODO v5: remove\n\n /* Styles applied to the root element if `disableGutters={false}`. */\n gutters: {},\n\n /* Styles applied to the root element if `selected={true}`. */\n selected: {},\n\n /* Styles applied to the root element if dense. */\n dense: _extends({}, theme.typography.body2, {\n minHeight: 'auto'\n })\n };\n};\nvar MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'li' : _props$component,\n _props$disableGutters = props.disableGutters,\n disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n ListItemClasses = props.ListItemClasses,\n _props$role = props.role,\n role = _props$role === void 0 ? 'menuitem' : _props$role,\n selected = props.selected,\n tabIndexProp = props.tabIndex,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"disableGutters\", \"ListItemClasses\", \"role\", \"selected\", \"tabIndex\"]);\n\n var tabIndex;\n\n if (!props.disabled) {\n tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;\n }\n\n return /*#__PURE__*/React.createElement(ListItem, _extends({\n button: true,\n role: role,\n tabIndex: tabIndex,\n component: component,\n selected: selected,\n disableGutters: disableGutters,\n classes: _extends({\n dense: classes.dense\n }, ListItemClasses),\n className: clsx(classes.root, className, selected && classes.selected, !disableGutters && classes.gutters),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuItem.propTypes = {\n /**\n * Menu item contents.\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n */\n dense: PropTypes.bool,\n\n /**\n * @ignore\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the left and right padding is removed.\n */\n disableGutters: PropTypes.bool,\n\n /**\n * `classes` prop applied to the [`ListItem`](/api/list-item/) element.\n */\n ListItemClasses: PropTypes.object,\n\n /**\n * @ignore\n */\n role: PropTypes.string,\n\n /**\n * @ignore\n */\n selected: PropTypes.bool,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.number\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiMenuItem'\n})(MenuItem);","import * as React from 'react';\nimport createSvgIcon from './utils/createSvgIcon';\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","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 { fade } from '../styles/colorManipulator';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n height: 1,\n margin: 0,\n // Reset browser default style.\n border: 'none',\n flexShrink: 0,\n backgroundColor: theme.palette.divider\n },\n\n /* Styles applied to the root element if `absolute={true}`. */\n absolute: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%'\n },\n\n /* Styles applied to the root element if `variant=\"inset\"`. */\n inset: {\n marginLeft: 72\n },\n\n /* Styles applied to the root element if `light={true}`. */\n light: {\n backgroundColor: fade(theme.palette.divider, 0.08)\n },\n\n /* Styles applied to the root element if `variant=\"middle\"`. */\n middle: {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n },\n\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {\n height: '100%',\n width: 1\n },\n\n /* Styles applied to the root element if `flexItem={true}`. */\n flexItem: {\n alignSelf: 'stretch',\n height: 'auto'\n }\n };\n};\nvar Divider = /*#__PURE__*/React.forwardRef(function Divider(props, ref) {\n var _props$absolute = props.absolute,\n absolute = _props$absolute === void 0 ? false : _props$absolute,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'hr' : _props$component,\n _props$flexItem = props.flexItem,\n flexItem = _props$flexItem === void 0 ? false : _props$flexItem,\n _props$light = props.light,\n light = _props$light === void 0 ? false : _props$light,\n _props$orientation = props.orientation,\n orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n _props$role = props.role,\n role = _props$role === void 0 ? Component !== 'hr' ? 'separator' : undefined : _props$role,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'fullWidth' : _props$variant,\n other = _objectWithoutProperties(props, [\"absolute\", \"classes\", \"className\", \"component\", \"flexItem\", \"light\", \"orientation\", \"role\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant !== 'fullWidth' && classes[variant], absolute && classes.absolute, flexItem && classes.flexItem, light && classes.light, orientation === 'vertical' && classes.vertical),\n role: role,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Divider.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 * Absolutely position the element.\n */\n absolute: PropTypes.bool,\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, a vertical divider will have the correct height when used in flex container.\n * (By default, a vertical divider will have a calculated height of `0px` if it is the child of a flex container.)\n */\n flexItem: PropTypes.bool,\n\n /**\n * If `true`, the divider will have a lighter color.\n */\n light: PropTypes.bool,\n\n /**\n * The divider orientation.\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * @ignore\n */\n role: PropTypes.string,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['fullWidth', 'inset', 'middle'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDivider'\n})(Divider);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport merge from './merge';\n\nfunction omit(input, fields) {\n var output = {};\n Object.keys(input).forEach(function (prop) {\n if (fields.indexOf(prop) === -1) {\n output[prop] = input[prop];\n }\n });\n return output;\n}\n\nfunction css(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var output = styleFunction(props);\n\n if (props.css) {\n return _extends({}, merge(output, styleFunction(_extends({\n theme: props.theme\n }, props.css))), omit(props.css, [styleFunction.filterProps]));\n }\n\n return output;\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n css: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['css'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default css;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport merge from './merge';\n\nfunction compose() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n\n var fn = function fn(props) {\n return styles.reduce(function (acc, style) {\n var output = style(props);\n\n if (output) {\n return merge(acc, output);\n }\n\n return acc;\n }, {});\n }; // Alternative approach that doesn't yield any performance gain.\n // const handlers = styles.reduce((acc, style) => {\n // style.filterProps.forEach(prop => {\n // acc[prop] = style;\n // });\n // return acc;\n // }, {});\n // const fn = props => {\n // return Object.keys(props).reduce((acc, prop) => {\n // if (handlers[prop]) {\n // return merge(acc, handlers[prop](props));\n // }\n // return acc;\n // }, {});\n // };\n\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce(function (acc, style) {\n return _extends(acc, style.propTypes);\n }, {}) : {};\n fn.filterProps = styles.reduce(function (acc, style) {\n return acc.concat(style.filterProps);\n }, []);\n return fn;\n}\n\nexport default compose;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\n\nfunction getPath(obj, path) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n return path.split('.').reduce(function (acc, item) {\n return acc && acc[item] ? acc[item] : null;\n }, obj);\n}\n\nfunction style(options) {\n var prop = options.prop,\n _options$cssProperty = options.cssProperty,\n cssProperty = _options$cssProperty === void 0 ? options.prop : _options$cssProperty,\n themeKey = options.themeKey,\n transform = options.transform;\n\n var fn = function fn(props) {\n if (props[prop] == null) {\n return null;\n }\n\n var propValue = props[prop];\n var theme = props.theme;\n var themeMapping = getPath(theme, themeKey) || {};\n\n var styleFromPropValue = function styleFromPropValue(propValueFinal) {\n var value;\n\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || propValueFinal;\n } else {\n value = getPath(themeMapping, propValueFinal) || propValueFinal;\n\n if (transform) {\n value = transform(value);\n }\n }\n\n if (cssProperty === false) {\n return value;\n }\n\n return _defineProperty({}, cssProperty, value);\n };\n\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? _defineProperty({}, prop, responsivePropType) : {};\n fn.filterProps = [prop];\n return fn;\n}\n\nexport default style;","import style from './style';\nimport compose from './compose';\n\nfunction getBorder(value) {\n if (typeof value !== 'number') {\n return value;\n }\n\n return \"\".concat(value, \"px solid\");\n}\n\nexport var border = style({\n prop: 'border',\n themeKey: 'borders',\n transform: getBorder\n});\nexport var borderTop = style({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: getBorder\n});\nexport var borderRight = style({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: getBorder\n});\nexport var borderBottom = style({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: getBorder\n});\nexport var borderLeft = style({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: getBorder\n});\nexport var borderColor = style({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexport var borderRadius = style({\n prop: 'borderRadius',\n themeKey: 'shape'\n});\nvar borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderRadius);\nexport default borders;","import style from './style';\nimport compose from './compose';\nexport var displayPrint = style({\n prop: 'displayPrint',\n cssProperty: false,\n transform: function transform(value) {\n return {\n '@media print': {\n display: value\n }\n };\n }\n});\nexport var displayRaw = style({\n prop: 'display'\n});\nexport var overflow = style({\n prop: 'overflow'\n});\nexport var textOverflow = style({\n prop: 'textOverflow'\n});\nexport var visibility = style({\n prop: 'visibility'\n});\nexport var whiteSpace = style({\n prop: 'whiteSpace'\n});\nexport default compose(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);","import style from './style';\nimport compose from './compose';\nexport var flexBasis = style({\n prop: 'flexBasis'\n});\nexport var flexDirection = style({\n prop: 'flexDirection'\n});\nexport var flexWrap = style({\n prop: 'flexWrap'\n});\nexport var justifyContent = style({\n prop: 'justifyContent'\n});\nexport var alignItems = style({\n prop: 'alignItems'\n});\nexport var alignContent = style({\n prop: 'alignContent'\n});\nexport var order = style({\n prop: 'order'\n});\nexport var flex = style({\n prop: 'flex'\n});\nexport var flexGrow = style({\n prop: 'flexGrow'\n});\nexport var flexShrink = style({\n prop: 'flexShrink'\n});\nexport var alignSelf = style({\n prop: 'alignSelf'\n});\nexport var justifyItems = style({\n prop: 'justifyItems'\n});\nexport var justifySelf = style({\n prop: 'justifySelf'\n});\nvar flexbox = compose(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);\nexport default flexbox;","import style from './style';\nimport compose from './compose';\nexport var gridGap = style({\n prop: 'gridGap'\n});\nexport var gridColumnGap = style({\n prop: 'gridColumnGap'\n});\nexport var gridRowGap = style({\n prop: 'gridRowGap'\n});\nexport var gridColumn = style({\n prop: 'gridColumn'\n});\nexport var gridRow = style({\n prop: 'gridRow'\n});\nexport var gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport var gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport var gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport var gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport var gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport var gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport var gridArea = style({\n prop: 'gridArea'\n});\nvar grid = compose(gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport var position = style({\n prop: 'position'\n});\nexport var zIndex = style({\n prop: 'zIndex',\n themeKey: 'zIndex'\n});\nexport var top = style({\n prop: 'top'\n});\nexport var right = style({\n prop: 'right'\n});\nexport var bottom = style({\n prop: 'bottom'\n});\nexport var left = style({\n prop: 'left'\n});\nexport default compose(position, zIndex, top, right, bottom, left);","import style from './style';\nimport compose from './compose';\nexport var color = style({\n prop: 'color',\n themeKey: 'palette'\n});\nexport var bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette'\n});\nvar palette = compose(color, bgcolor);\nexport default palette;","import style from './style';\nvar boxShadow = style({\n prop: 'boxShadow',\n themeKey: 'shadows'\n});\nexport default boxShadow;","import style from './style';\nimport compose from './compose';\n\nfunction transform(value) {\n return value <= 1 ? \"\".concat(value * 100, \"%\") : value;\n}\n\nexport var width = style({\n prop: 'width',\n transform: transform\n});\nexport var maxWidth = style({\n prop: 'maxWidth',\n transform: transform\n});\nexport var minWidth = style({\n prop: 'minWidth',\n transform: transform\n});\nexport var height = style({\n prop: 'height',\n transform: transform\n});\nexport var maxHeight = style({\n prop: 'maxHeight',\n transform: transform\n});\nexport var minHeight = style({\n prop: 'minHeight',\n transform: transform\n});\nexport var sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: transform\n});\nexport var sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: transform\n});\nexport var boxSizing = style({\n prop: 'boxSizing'\n});\nvar sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import style from './style';\nimport compose from './compose';\nexport var fontFamily = style({\n prop: 'fontFamily',\n themeKey: 'typography'\n});\nexport var fontSize = style({\n prop: 'fontSize',\n themeKey: 'typography'\n});\nexport var fontStyle = style({\n prop: 'fontStyle',\n themeKey: 'typography'\n});\nexport var fontWeight = style({\n prop: 'fontWeight',\n themeKey: 'typography'\n});\nexport var letterSpacing = style({\n prop: 'letterSpacing'\n});\nexport var lineHeight = style({\n prop: 'lineHeight'\n});\nexport var textAlign = style({\n prop: 'textAlign'\n});\nvar typography = compose(fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign);\nexport default typography;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport makeStyles from '../makeStyles';\n\nfunction omit(input, fields) {\n var output = {};\n Object.keys(input).forEach(function (prop) {\n if (fields.indexOf(prop) === -1) {\n output[prop] = input[prop];\n }\n });\n return output;\n} // styled-components's API removes the mapping between components and styles.\n// Using components as a low-level styling construct can be simpler.\n\n\nexport default function styled(Component) {\n var componentCreator = function componentCreator(style) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"name\"]);\n\n if (process.env.NODE_ENV !== 'production' && Component === undefined) {\n throw new Error(['You are calling styled(Component)(style) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var stylesOrCreator = typeof style === 'function' ? function (theme) {\n return {\n root: function root(props) {\n return style(_extends({\n theme: theme\n }, props));\n }\n };\n } : {\n root: style\n };\n var useStyles = makeStyles(stylesOrCreator, _extends({\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var filterProps;\n var propTypes = {};\n\n if (style.filterProps) {\n filterProps = style.filterProps;\n delete style.filterProps;\n }\n /* eslint-disable react/forbid-foreign-prop-types */\n\n\n if (style.propTypes) {\n propTypes = style.propTypes;\n delete style.propTypes;\n }\n /* eslint-enable react/forbid-foreign-prop-types */\n\n\n var StyledComponent = /*#__PURE__*/React.forwardRef(function StyledComponent(props, ref) {\n var children = props.children,\n classNameProp = props.className,\n clone = props.clone,\n ComponentProp = props.component,\n other = _objectWithoutProperties(props, [\"children\", \"className\", \"clone\", \"component\"]);\n\n var classes = useStyles(props);\n var className = clsx(classes.root, classNameProp);\n var spread = other;\n\n if (filterProps) {\n spread = omit(spread, filterProps);\n }\n\n if (clone) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n className: clsx(children.props.className, className)\n }, spread));\n }\n\n if (typeof children === 'function') {\n return children(_extends({\n className: className\n }, spread));\n }\n\n var FinalComponent = ComponentProp || Component;\n return /*#__PURE__*/React.createElement(FinalComponent, _extends({\n ref: ref,\n className: className\n }, spread), children);\n });\n process.env.NODE_ENV !== \"production\" ? StyledComponent.propTypes = _extends({\n /**\n * A render function or node.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the component will recycle it's children HTML element.\n * It's using `React.cloneElement` internally.\n *\n * This prop will be deprecated and removed in v5\n */\n clone: chainPropTypes(PropTypes.bool, function (props) {\n if (props.clone && props.component) {\n return new Error('You can not use the clone and component prop at the same time.');\n }\n\n return null;\n }),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType\n }, propTypes) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n StyledComponent.displayName = \"Styled(\".concat(classNamePrefix, \")\");\n }\n\n hoistNonReactStatics(StyledComponent, Component);\n return StyledComponent;\n };\n\n return componentCreator;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { styled as styledWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nvar styled = function styled(Component) {\n var componentCreator = styledWithoutDefault(Component);\n return function (style, options) {\n return componentCreator(style, _extends({\n defaultTheme: defaultTheme\n }, options));\n };\n};\n\nexport default styled;","import { borders, compose, display, flexbox, grid, palette, positions, shadows, sizing, spacing, typography, css } from '@material-ui/system';\nimport styled from '../styles/styled';\nexport var styleFunction = css(compose(borders, display, flexbox, grid, positions, palette, shadows, sizing, spacing, typography));\n/**\n * @ignore - do not document.\n */\n\nvar Box = styled('div')(styleFunction, {\n name: 'MuiBox'\n});\nexport default Box;","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 { getDisplayName } from '@material-ui/utils';\nimport { getThemeProps } from '@material-ui/styles';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport useTheme from '../styles/useTheme';\nimport { keys as breakpointKeys } from '../styles/createBreakpoints';\nimport useMediaQuery from '../useMediaQuery'; // By default, returns true if screen width is the same or greater than the given breakpoint.\n\nexport var isWidthUp = function isWidthUp(breakpoint, width) {\n var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (inclusive) {\n return breakpointKeys.indexOf(breakpoint) <= breakpointKeys.indexOf(width);\n }\n\n return breakpointKeys.indexOf(breakpoint) < breakpointKeys.indexOf(width);\n}; // By default, returns true if screen width is the same or less than the given breakpoint.\n\nexport var isWidthDown = function isWidthDown(breakpoint, width) {\n var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (inclusive) {\n return breakpointKeys.indexOf(width) <= breakpointKeys.indexOf(breakpoint);\n }\n\n return breakpointKeys.indexOf(width) < breakpointKeys.indexOf(breakpoint);\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n\nvar withWidth = function withWidth() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function (Component) {\n var _options$withTheme = options.withTheme,\n withThemeOption = _options$withTheme === void 0 ? false : _options$withTheme,\n _options$noSSR = options.noSSR,\n noSSR = _options$noSSR === void 0 ? false : _options$noSSR,\n initialWidthOption = options.initialWidth;\n\n function WithWidth(props) {\n var contextTheme = useTheme();\n var theme = props.theme || contextTheme;\n\n var _getThemeProps = getThemeProps({\n theme: theme,\n name: 'MuiWithWidth',\n props: _extends({}, props)\n }),\n initialWidth = _getThemeProps.initialWidth,\n width = _getThemeProps.width,\n other = _objectWithoutProperties(_getThemeProps, [\"initialWidth\", \"width\"]);\n\n var _React$useState = React.useState(false),\n mountedState = _React$useState[0],\n setMountedState = _React$useState[1];\n\n useEnhancedEffect(function () {\n setMountedState(true);\n }, []);\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n var keys = theme.breakpoints.keys.slice().reverse();\n var widthComputed = keys.reduce(function (output, key) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var matches = useMediaQuery(theme.breakpoints.up(key));\n return !output && matches ? key : output;\n }, null);\n\n var more = _extends({\n width: width || (mountedState || noSSR ? widthComputed : undefined) || initialWidth || initialWidthOption\n }, withThemeOption ? {\n theme: theme\n } : {}, other); // When rendering the component on the server,\n // we have no idea about the client browser screen width.\n // In order to prevent blinks and help the reconciliation of the React tree\n // we are not rendering the child component.\n //\n // An alternative is to use the `initialWidth` property.\n\n\n if (more.width === undefined) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Component, more);\n }\n\n process.env.NODE_ENV !== \"production\" ? WithWidth.propTypes = {\n /**\n * As `window.innerWidth` is unavailable on the server,\n * we default to rendering an empty component during the first mount.\n * You might want to use an heuristic to approximate\n * the screen width of the client browser screen width.\n *\n * For instance, you could be using the user-agent or the client-hints.\n * https://caniuse.com/#search=client%20hint\n */\n initialWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n /**\n * @ignore\n */\n theme: PropTypes.object,\n\n /**\n * Bypass the width calculation logic.\n */\n width: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl'])\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithWidth.displayName = \"WithWidth(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithWidth, Component);\n return WithWidth;\n };\n};\n\nexport default withWidth;","import PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport withWidth, { isWidthDown, isWidthUp } from '../withWidth';\nimport useTheme from '../styles/useTheme';\n/**\n * @ignore - internal component.\n */\n\nfunction HiddenJs(props) {\n var children = props.children,\n only = props.only,\n width = props.width;\n var theme = useTheme();\n var visible = true; // `only` check is faster to get out sooner if used.\n\n if (only) {\n if (Array.isArray(only)) {\n for (var i = 0; i < only.length; i += 1) {\n var breakpoint = only[i];\n\n if (width === breakpoint) {\n visible = false;\n break;\n }\n }\n } else if (only && width === only) {\n visible = false;\n }\n } // Allow `only` to be combined with other props. If already hidden, no need to check others.\n\n\n if (visible) {\n // determine visibility based on the smallest size up\n for (var _i = 0; _i < theme.breakpoints.keys.length; _i += 1) {\n var _breakpoint = theme.breakpoints.keys[_i];\n var breakpointUp = props[\"\".concat(_breakpoint, \"Up\")];\n var breakpointDown = props[\"\".concat(_breakpoint, \"Down\")];\n\n if (breakpointUp && isWidthUp(_breakpoint, width) || breakpointDown && isWidthDown(_breakpoint, width)) {\n visible = false;\n break;\n }\n }\n }\n\n if (!visible) {\n return null;\n }\n\n return children;\n}\n\nHiddenJs.propTypes = {\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Specify which implementation to use. 'js' is the default, 'css' works better for\n * server-side rendering.\n */\n implementation: PropTypes.oneOf(['js', 'css']),\n\n /**\n * You can use this prop when choosing the `js` implementation with server-side rendering.\n *\n * As `window.innerWidth` is unavailable on the server,\n * we default to rendering an empty component during the first mount.\n * You might want to use an heuristic to approximate\n * the screen width of the client browser screen width.\n *\n * For instance, you could be using the user-agent or the client-hints.\n * https://caniuse.com/#search=client%20hint\n */\n initialWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n lgDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n lgUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n mdDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n mdUp: PropTypes.bool,\n\n /**\n * Hide the given breakpoint(s).\n */\n only: PropTypes.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), PropTypes.arrayOf(PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n smDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n smUp: PropTypes.bool,\n\n /**\n * @ignore\n * width prop provided by withWidth decorator.\n */\n width: PropTypes.string.isRequired,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xlDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xlUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xsDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xsUp: PropTypes.bool\n};\n\nif (process.env.NODE_ENV !== 'production') {\n HiddenJs.propTypes = exactProp(HiddenJs.propTypes);\n}\n\nexport default withWidth()(HiddenJs);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport capitalize from '../utils/capitalize';\nimport withStyles from '../styles/withStyles';\nimport useTheme from '../styles/useTheme';\n\nvar styles = function styles(theme) {\n var hidden = {\n display: 'none'\n };\n return theme.breakpoints.keys.reduce(function (acc, key) {\n acc[\"only\".concat(capitalize(key))] = _defineProperty({}, theme.breakpoints.only(key), hidden);\n acc[\"\".concat(key, \"Up\")] = _defineProperty({}, theme.breakpoints.up(key), hidden);\n acc[\"\".concat(key, \"Down\")] = _defineProperty({}, theme.breakpoints.down(key), hidden);\n return acc;\n }, {});\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction HiddenCss(props) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n only = props.only,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"only\"]);\n\n var theme = useTheme();\n\n if (process.env.NODE_ENV !== 'production') {\n var unknownProps = Object.keys(other).filter(function (propName) {\n var isUndeclaredBreakpoint = !theme.breakpoints.keys.some(function (breakpoint) {\n return \"\".concat(breakpoint, \"Up\") === propName || \"\".concat(breakpoint, \"Down\") === propName;\n });\n return isUndeclaredBreakpoint;\n });\n\n if (unknownProps.length > 0) {\n console.error(\"Material-UI: Unsupported props received by ``: \".concat(unknownProps.join(', '), \". Did you forget to wrap this component in a ThemeProvider declaring these breakpoints?\"));\n }\n }\n\n var clsx = [];\n\n if (className) {\n clsx.push(className);\n }\n\n for (var i = 0; i < theme.breakpoints.keys.length; i += 1) {\n var breakpoint = theme.breakpoints.keys[i];\n var breakpointUp = props[\"\".concat(breakpoint, \"Up\")];\n var breakpointDown = props[\"\".concat(breakpoint, \"Down\")];\n\n if (breakpointUp) {\n clsx.push(classes[\"\".concat(breakpoint, \"Up\")]);\n }\n\n if (breakpointDown) {\n clsx.push(classes[\"\".concat(breakpoint, \"Down\")]);\n }\n }\n\n if (only) {\n var onlyBreakpoints = Array.isArray(only) ? only : [only];\n onlyBreakpoints.forEach(function (breakpoint) {\n clsx.push(classes[\"only\".concat(capitalize(breakpoint))]);\n });\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: clsx.join(' ')\n }, children);\n}\n\nprocess.env.NODE_ENV !== \"production\" ? HiddenCss.propTypes = {\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.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Specify which implementation to use. 'js' is the default, 'css' works better for\n * server-side rendering.\n */\n implementation: PropTypes.oneOf(['js', 'css']),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n lgDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n lgUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n mdDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n mdUp: PropTypes.bool,\n\n /**\n * Hide the given breakpoint(s).\n */\n only: PropTypes.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), PropTypes.arrayOf(PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n smDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n smUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xlDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xlUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xsDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xsUp: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'PrivateHiddenCss'\n})(HiddenCss);","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 HiddenJs from './HiddenJs';\nimport HiddenCss from './HiddenCss';\n/**\n * Responsively hides children based on the selected implementation.\n */\n\nfunction Hidden(props) {\n var _props$implementation = props.implementation,\n implementation = _props$implementation === void 0 ? 'js' : _props$implementation,\n _props$lgDown = props.lgDown,\n lgDown = _props$lgDown === void 0 ? false : _props$lgDown,\n _props$lgUp = props.lgUp,\n lgUp = _props$lgUp === void 0 ? false : _props$lgUp,\n _props$mdDown = props.mdDown,\n mdDown = _props$mdDown === void 0 ? false : _props$mdDown,\n _props$mdUp = props.mdUp,\n mdUp = _props$mdUp === void 0 ? false : _props$mdUp,\n _props$smDown = props.smDown,\n smDown = _props$smDown === void 0 ? false : _props$smDown,\n _props$smUp = props.smUp,\n smUp = _props$smUp === void 0 ? false : _props$smUp,\n _props$xlDown = props.xlDown,\n xlDown = _props$xlDown === void 0 ? false : _props$xlDown,\n _props$xlUp = props.xlUp,\n xlUp = _props$xlUp === void 0 ? false : _props$xlUp,\n _props$xsDown = props.xsDown,\n xsDown = _props$xsDown === void 0 ? false : _props$xsDown,\n _props$xsUp = props.xsUp,\n xsUp = _props$xsUp === void 0 ? false : _props$xsUp,\n other = _objectWithoutProperties(props, [\"implementation\", \"lgDown\", \"lgUp\", \"mdDown\", \"mdUp\", \"smDown\", \"smUp\", \"xlDown\", \"xlUp\", \"xsDown\", \"xsUp\"]);\n\n if (implementation === 'js') {\n return /*#__PURE__*/React.createElement(HiddenJs, _extends({\n lgDown: lgDown,\n lgUp: lgUp,\n mdDown: mdDown,\n mdUp: mdUp,\n smDown: smDown,\n smUp: smUp,\n xlDown: xlDown,\n xlUp: xlUp,\n xsDown: xsDown,\n xsUp: xsUp\n }, other));\n }\n\n return /*#__PURE__*/React.createElement(HiddenCss, _extends({\n lgDown: lgDown,\n lgUp: lgUp,\n mdDown: mdDown,\n mdUp: mdUp,\n smDown: smDown,\n smUp: smUp,\n xlDown: xlDown,\n xlUp: xlUp,\n xsDown: xsDown,\n xsUp: xsUp\n }, other));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Hidden.propTypes = {\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Specify which implementation to use. 'js' is the default, 'css' works better for\n * server-side rendering.\n */\n implementation: PropTypes.oneOf(['js', 'css']),\n\n /**\n * You can use this prop when choosing the `js` implementation with server-side rendering.\n *\n * As `window.innerWidth` is unavailable on the server,\n * we default to rendering an empty component during the first mount.\n * You might want to use an heuristic to approximate\n * the screen width of the client browser screen width.\n *\n * For instance, you could be using the user-agent or the client-hints.\n * https://caniuse.com/#search=client%20hint\n */\n initialWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n lgDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n lgUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n mdDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n mdUp: PropTypes.bool,\n\n /**\n * Hide the given breakpoint(s).\n */\n only: PropTypes.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), PropTypes.arrayOf(PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n smDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n smUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xlDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xlUp: PropTypes.bool,\n\n /**\n * If `true`, screens this size and down will be hidden.\n */\n xsDown: PropTypes.bool,\n\n /**\n * If `true`, screens this size and up will be hidden.\n */\n xsUp: PropTypes.bool\n} : void 0;\nexport default Hidden;","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 debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getStyleValue(computedStyle, property) {\n return parseInt(computedStyle[property], 10) || 0;\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar styles = {\n /* Styles applied to the shadow textarea element. */\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nvar TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, ref) {\n var onChange = props.onChange,\n rows = props.rows,\n rowsMax = props.rowsMax,\n _props$rowsMin = props.rowsMin,\n rowsMinProp = _props$rowsMin === void 0 ? 1 : _props$rowsMin,\n style = props.style,\n value = props.value,\n other = _objectWithoutProperties(props, [\"onChange\", \"rows\", \"rowsMax\", \"rowsMin\", \"style\", \"value\"]);\n\n var rowsMin = rows || rowsMinProp;\n\n var _React$useRef = React.useRef(value != null),\n isControlled = _React$useRef.current;\n\n var inputRef = React.useRef(null);\n var handleRef = useForkRef(ref, inputRef);\n var shadowRef = React.useRef(null);\n var renders = React.useRef(0);\n\n var _React$useState = React.useState({}),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var syncHeight = React.useCallback(function () {\n var input = inputRef.current;\n var computedStyle = window.getComputedStyle(input);\n var inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n\n var boxSizing = computedStyle['box-sizing'];\n var padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');\n var border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content\n\n var innerHeight = inputShallow.scrollHeight - padding; // Measure height of a textarea with a single row\n\n inputShallow.value = 'x';\n var singleRowHeight = inputShallow.scrollHeight - padding; // The height of the outer content\n\n var outerHeight = innerHeight;\n\n if (rowsMin) {\n outerHeight = Math.max(Number(rowsMin) * singleRowHeight, outerHeight);\n }\n\n if (rowsMax) {\n outerHeight = Math.min(Number(rowsMax) * singleRowHeight, outerHeight);\n }\n\n outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.\n\n var outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n var overflow = Math.abs(outerHeight - innerHeight) <= 1;\n setState(function (prevState) {\n // Need a large enough difference to update the height.\n // This prevents infinite rendering loop.\n if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n renders.current += 1;\n return {\n overflow: overflow,\n outerHeightStyle: outerHeightStyle\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (renders.current === 20) {\n console.error(['Material-UI: Too many re-renders. The layout is unstable.', 'TextareaAutosize limits the number of renders to prevent an infinite loop.'].join('\\n'));\n }\n }\n\n return prevState;\n });\n }, [rowsMax, rowsMin, props.placeholder]);\n React.useEffect(function () {\n var handleResize = debounce(function () {\n renders.current = 0;\n syncHeight();\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [syncHeight]);\n useEnhancedEffect(function () {\n syncHeight();\n });\n React.useEffect(function () {\n renders.current = 0;\n }, [value]);\n\n var handleChange = function handleChange(event) {\n renders.current = 0;\n\n if (!isControlled) {\n syncHeight();\n }\n\n if (onChange) {\n onChange(event);\n }\n };\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: rowsMin,\n style: _extends({\n height: state.outerHeightStyle,\n // Need a large enough difference to allow scrolling.\n // This prevents infinite rendering loop.\n overflow: state.overflow ? 'hidden' : null\n }, style)\n }, other)), /*#__PURE__*/React.createElement(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.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 * @ignore\n */\n className: PropTypes.string,\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n\n /**\n * Use `rowsMin` instead. The prop will be removed in v5.\n *\n * @deprecated\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Maximum number of rows to display.\n */\n rowsMax: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display.\n */\n rowsMin: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport default TextareaAutosize;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport formControlState from '../FormControl/formControlState';\nimport FormControlContext, { useFormControl } from '../FormControl/FormControlContext';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport TextareaAutosize from '../TextareaAutosize';\nimport { isFilled } from './utils';\nexport var styles = function styles(theme) {\n var light = theme.palette.type === 'light';\n var placeholder = {\n color: 'currentColor',\n opacity: light ? 0.42 : 0.5,\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.shorter\n })\n };\n var placeholderHidden = {\n opacity: '0 !important'\n };\n var placeholderVisible = {\n opacity: light ? 0.42 : 0.5\n };\n return {\n '@global': {\n '@keyframes mui-auto-fill': {},\n '@keyframes mui-auto-fill-cancel': {}\n },\n\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body1, {\n color: theme.palette.text.primary,\n lineHeight: '1.1876em',\n // Reset (19px), match the native input line-height\n boxSizing: 'border-box',\n // Prevent padding issue with fullWidth.\n position: 'relative',\n cursor: 'text',\n display: 'inline-flex',\n alignItems: 'center',\n '&$disabled': {\n color: theme.palette.text.disabled,\n cursor: 'default'\n }\n }),\n\n /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n formControl: {},\n\n /* Styles applied to the root element if the component is focused. */\n focused: {},\n\n /* Styles applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `startAdornment` is provided. */\n adornedStart: {},\n\n /* Styles applied to the root element if `endAdornment` is provided. */\n adornedEnd: {},\n\n /* Pseudo-class applied to the root element if `error={true}`. */\n error: {},\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n marginDense: {},\n\n /* Styles applied to the root element if `multiline={true}`. */\n multiline: {\n padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\"),\n '&$marginDense': {\n paddingTop: 4 - 1\n }\n },\n\n /* Styles applied to the root element if the color is secondary. */\n colorSecondary: {},\n\n /* Styles applied to the root element if `fullWidth={true}`. */\n fullWidth: {\n width: '100%'\n },\n\n /* Styles applied to the `input` element. */\n input: {\n font: 'inherit',\n letterSpacing: 'inherit',\n color: 'currentColor',\n padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\"),\n border: 0,\n boxSizing: 'content-box',\n background: 'none',\n height: '1.1876em',\n // Reset (19px), match the native input line-height\n margin: 0,\n // Reset for Safari\n WebkitTapHighlightColor: 'transparent',\n display: 'block',\n // Make the flex item shrink with Firefox\n minWidth: 0,\n width: '100%',\n // Fix IE 11 width issue\n animationName: 'mui-auto-fill-cancel',\n animationDuration: '10ms',\n '&::-webkit-input-placeholder': placeholder,\n '&::-moz-placeholder': placeholder,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholder,\n // IE 11\n '&::-ms-input-placeholder': placeholder,\n // Edge\n '&:focus': {\n outline: 0\n },\n // Reset Firefox invalid required input style\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::-webkit-search-decoration': {\n // Remove the padding when type=search.\n '-webkit-appearance': 'none'\n },\n // Show and hide the placeholder logic\n 'label[data-shrink=false] + $formControl &': {\n '&::-webkit-input-placeholder': placeholderHidden,\n '&::-moz-placeholder': placeholderHidden,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholderHidden,\n // IE 11\n '&::-ms-input-placeholder': placeholderHidden,\n // Edge\n '&:focus::-webkit-input-placeholder': placeholderVisible,\n '&:focus::-moz-placeholder': placeholderVisible,\n // Firefox 19+\n '&:focus:-ms-input-placeholder': placeholderVisible,\n // IE 11\n '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n\n },\n '&$disabled': {\n opacity: 1 // Reset iOS opacity\n\n },\n '&:-webkit-autofill': {\n animationDuration: '5000s',\n animationName: 'mui-auto-fill'\n }\n },\n\n /* Styles applied to the `input` element if `margin=\"dense\"`. */\n inputMarginDense: {\n paddingTop: 4 - 1\n },\n\n /* Styles applied to the `input` element if `multiline={true}`. */\n inputMultiline: {\n height: 'auto',\n resize: 'none',\n padding: 0\n },\n\n /* Styles applied to the `input` element if `type=\"search\"`. */\n inputTypeSearch: {\n // Improve type search style.\n '-moz-appearance': 'textfield',\n '-webkit-appearance': 'textfield'\n },\n\n /* Styles applied to the `input` element if `startAdornment` is provided. */\n inputAdornedStart: {},\n\n /* Styles applied to the `input` element if `endAdornment` is provided. */\n inputAdornedEnd: {},\n\n /* Styles applied to the `input` element if `hiddenLabel={true}`. */\n inputHiddenLabel: {}\n };\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\n\nvar InputBase = /*#__PURE__*/React.forwardRef(function InputBase(props, ref) {\n var ariaDescribedby = props['aria-describedby'],\n autoComplete = props.autoComplete,\n autoFocus = props.autoFocus,\n classes = props.classes,\n className = props.className,\n color = props.color,\n defaultValue = props.defaultValue,\n disabled = props.disabled,\n endAdornment = props.endAdornment,\n error = props.error,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n id = props.id,\n _props$inputComponent = props.inputComponent,\n inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n _props$inputProps = props.inputProps,\n inputPropsProp = _props$inputProps === void 0 ? {} : _props$inputProps,\n inputRefProp = props.inputRef,\n margin = props.margin,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n name = props.name,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n placeholder = props.placeholder,\n readOnly = props.readOnly,\n renderSuffix = props.renderSuffix,\n rows = props.rows,\n rowsMax = props.rowsMax,\n rowsMin = props.rowsMin,\n startAdornment = props.startAdornment,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n valueProp = props.value,\n other = _objectWithoutProperties(props, [\"aria-describedby\", \"autoComplete\", \"autoFocus\", \"classes\", \"className\", \"color\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderSuffix\", \"rows\", \"rowsMax\", \"rowsMin\", \"startAdornment\", \"type\", \"value\"]);\n\n var value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n\n var _React$useRef = React.useRef(value != null),\n isControlled = _React$useRef.current;\n\n var inputRef = React.useRef();\n var handleInputRefWarning = React.useCallback(function (instance) {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['Material-UI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `inputRef` prop.', 'Make sure the `inputRef` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n var handleInputPropsRefProp = useForkRef(inputPropsProp.ref, handleInputRefWarning);\n var handleInputRefProp = useForkRef(inputRefProp, handleInputPropsRefProp);\n var handleInputRef = useForkRef(inputRef, handleInputRefProp);\n\n var _React$useState = React.useState(false),\n focused = _React$useState[0],\n setFocused = _React$useState[1];\n\n var muiFormControl = useFormControl();\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(function () {\n if (muiFormControl) {\n return muiFormControl.registerEffect();\n }\n\n return undefined;\n }, [muiFormControl]);\n }\n\n var fcs = formControlState({\n props: props,\n muiFormControl: muiFormControl,\n states: ['color', 'disabled', 'error', 'hiddenLabel', 'margin', 'required', 'filled']\n });\n fcs.focused = muiFormControl ? muiFormControl.focused : focused; // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n\n React.useEffect(function () {\n if (!muiFormControl && disabled && focused) {\n setFocused(false);\n\n if (onBlur) {\n onBlur();\n }\n }\n }, [muiFormControl, disabled, focused, onBlur]);\n var onFilled = muiFormControl && muiFormControl.onFilled;\n var onEmpty = muiFormControl && muiFormControl.onEmpty;\n var checkDirty = React.useCallback(function (obj) {\n if (isFilled(obj)) {\n if (onFilled) {\n onFilled();\n }\n } else if (onEmpty) {\n onEmpty();\n }\n }, [onFilled, onEmpty]);\n useEnhancedEffect(function () {\n if (isControlled) {\n checkDirty({\n value: value\n });\n }\n }, [value, checkDirty, isControlled]);\n\n var handleFocus = function handleFocus(event) {\n // Fix a bug with IE 11 where the focus/blur events are triggered\n // while the input is disabled.\n if (fcs.disabled) {\n event.stopPropagation();\n return;\n }\n\n if (onFocus) {\n onFocus(event);\n }\n\n if (inputPropsProp.onFocus) {\n inputPropsProp.onFocus(event);\n }\n\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n } else {\n setFocused(true);\n }\n };\n\n var handleBlur = function handleBlur(event) {\n if (onBlur) {\n onBlur(event);\n }\n\n if (inputPropsProp.onBlur) {\n inputPropsProp.onBlur(event);\n }\n\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n } else {\n setFocused(false);\n }\n };\n\n var handleChange = function handleChange(event) {\n if (!isControlled) {\n var element = event.target || inputRef.current;\n\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://material-ui.com/r/input-component-ref-interface for more info.\" : _formatMuiErrorMessage(1));\n }\n\n checkDirty({\n value: element.value\n });\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (inputPropsProp.onChange) {\n inputPropsProp.onChange.apply(inputPropsProp, [event].concat(args));\n } // Perform in the willUpdate\n\n\n if (onChange) {\n onChange.apply(void 0, [event].concat(args));\n }\n }; // Check the input state on mount, in case it was filled by the user\n // or auto filled by the browser before the hydration (for SSR).\n\n\n React.useEffect(function () {\n checkDirty(inputRef.current);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n var handleClick = function handleClick(event) {\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n var InputComponent = inputComponent;\n\n var inputProps = _extends({}, inputPropsProp, {\n ref: handleInputRef\n });\n\n if (typeof InputComponent !== 'string') {\n inputProps = _extends({\n // Rename ref to inputRef as we don't know the\n // provided `inputComponent` structure.\n inputRef: handleInputRef,\n type: type\n }, inputProps, {\n ref: null\n });\n } else if (multiline) {\n if (rows && !rowsMax && !rowsMin) {\n InputComponent = 'textarea';\n } else {\n inputProps = _extends({\n rows: rows,\n rowsMax: rowsMax\n }, inputProps);\n InputComponent = TextareaAutosize;\n }\n } else {\n inputProps = _extends({\n type: type\n }, inputProps);\n }\n\n var handleAutoFill = function handleAutoFill(event) {\n // Provide a fake value as Chrome might not let you access it for security reasons.\n checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n value: 'x'\n });\n };\n\n React.useEffect(function () {\n if (muiFormControl) {\n muiFormControl.setAdornedStart(Boolean(startAdornment));\n }\n }, [muiFormControl, startAdornment]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, classes[\"color\".concat(capitalize(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fullWidth && classes.fullWidth, fcs.focused && classes.focused, muiFormControl && classes.formControl, multiline && classes.multiline, startAdornment && classes.adornedStart, endAdornment && classes.adornedEnd, fcs.margin === 'dense' && classes.marginDense),\n onClick: handleClick,\n ref: ref\n }, other), startAdornment, /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(InputComponent, _extends({\n \"aria-invalid\": fcs.error,\n \"aria-describedby\": ariaDescribedby,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n disabled: fcs.disabled,\n id: id,\n onAnimationStart: handleAutoFill,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: fcs.required,\n rows: rows,\n value: value,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n }, inputProps, {\n className: clsx(classes.input, inputPropsProp.className, fcs.disabled && classes.disabled, multiline && classes.inputMultiline, fcs.hiddenLabel && classes.inputHiddenLabel, startAdornment && classes.inputAdornedStart, endAdornment && classes.inputAdornedEnd, type === 'search' && classes.inputTypeSearch, fcs.margin === 'dense' && classes.inputMarginDense),\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus\n }))), endAdornment, renderSuffix ? renderSuffix(_extends({}, fcs, {\n startAdornment: startAdornment\n })) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? InputBase.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 * @ignore\n */\n 'aria-describedby': PropTypes.string,\n\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n\n /**\n * If `true`, the `input` element will be focused during the first mount.\n */\n autoFocus: 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,\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(['primary', 'secondary']),\n\n /**\n * The default `input` element value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n\n /**\n * If `true`, the `input` element will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n\n /**\n * If `true`, the input will indicate an error. This is normally obtained via context from\n * FormControl.\n */\n error: PropTypes.bool,\n\n /**\n * If `true`, the input will take up the full width of its container.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n */\n inputComponent: PropTypes.elementType,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n\n /**\n * If `true`, a textarea element will be rendered.\n */\n multiline: PropTypes.bool,\n\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n\n /**\n * Callback fired when the input is blurred.\n *\n * Notice that the first argument (event) might be undefined.\n */\n onBlur: PropTypes.func,\n\n /**\n * Callback fired when the value is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n\n /**\n * The short hint displayed in the input before the user enters a value.\n */\n placeholder: PropTypes.string,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * @ignore\n */\n renderSuffix: PropTypes.func,\n\n /**\n * If `true`, the `input` element will be required.\n */\n required: PropTypes.bool,\n\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n rowsMax: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n rowsMin: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n */\n type: PropTypes.string,\n\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiInputBase'\n})(InputBase);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getScale(value) {\n return \"scale(\".concat(value, \", \").concat(Math.pow(value, 2), \")\");\n}\n\nvar styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n/**\n * The Grow transition is used by the [Tooltip](/components/tooltips/) and\n * [Popover](/components/popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var timer = React.useRef();\n var autoTimeout = React.useRef();\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var _getTransitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration,\n delay = _getTransitionProps.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay\n })].join(',');\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var _getTransitionProps2 = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration,\n delay = _getTransitionProps2.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay || duration * 0.333\n })].join(',');\n node.style.opacity = '0';\n node.style.transform = getScale(0.75);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n\n var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n };\n\n React.useEffect(function () {\n return function () {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: addEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A single child content element.\n */\n children: PropTypes.element,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the child component.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, show the component; triggers the enter or exit animation.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","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 { chainPropTypes, elementTypeAcceptingRef, refType, HTMLElementType } from '@material-ui/utils';\nimport debounce from '../utils/debounce';\nimport clsx from 'clsx';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport withStyles from '../styles/withStyles';\nimport Modal from '../Modal';\nimport Grow from '../Grow';\nimport Paper from '../Paper';\nexport function getOffsetTop(rect, vertical) {\n var offset = 0;\n\n if (typeof vertical === 'number') {\n offset = vertical;\n } else if (vertical === 'center') {\n offset = rect.height / 2;\n } else if (vertical === 'bottom') {\n offset = rect.height;\n }\n\n return offset;\n}\nexport function getOffsetLeft(rect, horizontal) {\n var offset = 0;\n\n if (typeof horizontal === 'number') {\n offset = horizontal;\n } else if (horizontal === 'center') {\n offset = rect.width / 2;\n } else if (horizontal === 'right') {\n offset = rect.width;\n }\n\n return offset;\n}\n\nfunction getTransformOriginValue(transformOrigin) {\n return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) {\n return typeof n === 'number' ? \"\".concat(n, \"px\") : n;\n }).join(' ');\n} // Sum the scrollTop between two elements.\n\n\nfunction getScrollParent(parent, child) {\n var element = child;\n var scrollTop = 0;\n\n while (element && element !== parent) {\n element = element.parentElement;\n scrollTop += element.scrollTop;\n }\n\n return scrollTop;\n}\n\nfunction getAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nexport var styles = {\n /* Styles applied to the root element. */\n root: {},\n\n /* Styles applied to the `Paper` component. */\n paper: {\n position: 'absolute',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n // It's most likely on issue on userland.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n }\n};\nvar Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {\n var action = props.action,\n anchorEl = props.anchorEl,\n _props$anchorOrigin = props.anchorOrigin,\n anchorOrigin = _props$anchorOrigin === void 0 ? {\n vertical: 'top',\n horizontal: 'left'\n } : _props$anchorOrigin,\n anchorPosition = props.anchorPosition,\n _props$anchorReferenc = props.anchorReference,\n anchorReference = _props$anchorReferenc === void 0 ? 'anchorEl' : _props$anchorReferenc,\n children = props.children,\n classes = props.classes,\n className = props.className,\n containerProp = props.container,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 8 : _props$elevation,\n getContentAnchorEl = props.getContentAnchorEl,\n _props$marginThreshol = props.marginThreshold,\n marginThreshold = _props$marginThreshol === void 0 ? 16 : _props$marginThreshol,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n open = props.open,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n _props$transformOrigi = props.transformOrigin,\n transformOrigin = _props$transformOrigi === void 0 ? {\n vertical: 'top',\n horizontal: 'left'\n } : _props$transformOrigi,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Grow : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDurationProp = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n _props$TransitionProp = props.TransitionProps,\n TransitionProps = _props$TransitionProp === void 0 ? {} : _props$TransitionProp,\n other = _objectWithoutProperties(props, [\"action\", \"anchorEl\", \"anchorOrigin\", \"anchorPosition\", \"anchorReference\", \"children\", \"classes\", \"className\", \"container\", \"elevation\", \"getContentAnchorEl\", \"marginThreshold\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperProps\", \"transformOrigin\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n\n var paperRef = React.useRef(); // Returns the top/left offset of the position\n // to attach to on the anchor element (or body if none is provided)\n\n var getAnchorOffset = React.useCallback(function (contentAnchorOffset) {\n if (anchorReference === 'anchorPosition') {\n if (process.env.NODE_ENV !== 'production') {\n if (!anchorPosition) {\n console.error('Material-UI: You need to provide a `anchorPosition` prop when using ' + '.');\n }\n }\n\n return anchorPosition;\n }\n\n var resolvedAnchorEl = getAnchorEl(anchorEl); // If an anchor element wasn't provided, just use the parent body element of this Popover\n\n var anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : ownerDocument(paperRef.current).body;\n var anchorRect = anchorElement.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'production') {\n var box = anchorElement.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n\n var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center';\n return {\n top: anchorRect.top + getOffsetTop(anchorRect, anchorVertical),\n left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)\n };\n }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]); // Returns the vertical offset of inner content to anchor the transform on if provided\n\n var getContentAnchorOffset = React.useCallback(function (element) {\n var contentAnchorOffset = 0;\n\n if (getContentAnchorEl && anchorReference === 'anchorEl') {\n var contentAnchorEl = getContentAnchorEl(element);\n\n if (contentAnchorEl && element.contains(contentAnchorEl)) {\n var scrollTop = getScrollParent(element, contentAnchorEl);\n contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;\n } // != the default value\n\n\n if (process.env.NODE_ENV !== 'production') {\n if (anchorOrigin.vertical !== 'top') {\n console.error(['Material-UI: You can not change the default `anchorOrigin.vertical` value ', 'when also providing the `getContentAnchorEl` prop to the popover component.', 'Only use one of the two props.', 'Set `getContentAnchorEl` to `null | undefined`' + ' or leave `anchorOrigin.vertical` unchanged.'].join('\\n'));\n }\n }\n }\n\n return contentAnchorOffset;\n }, [anchorOrigin.vertical, anchorReference, getContentAnchorEl]); // Return the base transform origin using the element\n // and taking the content anchor offset into account if in use\n\n var getTransformOrigin = React.useCallback(function (elemRect) {\n var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return {\n vertical: getOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset,\n horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)\n };\n }, [transformOrigin.horizontal, transformOrigin.vertical]);\n var getPositioningStyle = React.useCallback(function (element) {\n // Check if the parent has requested anchoring on an inner content node\n var contentAnchorOffset = getContentAnchorOffset(element);\n var elemRect = {\n width: element.offsetWidth,\n height: element.offsetHeight\n }; // Get the transform origin point on the element itself\n\n var elemTransformOrigin = getTransformOrigin(elemRect, contentAnchorOffset);\n\n if (anchorReference === 'none') {\n return {\n top: null,\n left: null,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n } // Get the offset of of the anchoring element\n\n\n var anchorOffset = getAnchorOffset(contentAnchorOffset); // Calculate element positioning\n\n var top = anchorOffset.top - elemTransformOrigin.vertical;\n var left = anchorOffset.left - elemTransformOrigin.horizontal;\n var bottom = top + elemRect.height;\n var right = left + elemRect.width; // Use the parent window of the anchorEl if provided\n\n var containerWindow = ownerWindow(getAnchorEl(anchorEl)); // Window thresholds taking required margin into account\n\n var heightThreshold = containerWindow.innerHeight - marginThreshold;\n var widthThreshold = containerWindow.innerWidth - marginThreshold; // Check if the vertical axis needs shifting\n\n if (top < marginThreshold) {\n var diff = top - marginThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n } else if (bottom > heightThreshold) {\n var _diff = bottom - heightThreshold;\n\n top -= _diff;\n elemTransformOrigin.vertical += _diff;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) {\n console.error(['Material-UI: The popover component is too tall.', \"Some part of it can not be seen on the screen (\".concat(elemRect.height - heightThreshold, \"px).\"), 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n'));\n }\n } // Check if the horizontal axis needs shifting\n\n\n if (left < marginThreshold) {\n var _diff2 = left - marginThreshold;\n\n left -= _diff2;\n elemTransformOrigin.horizontal += _diff2;\n } else if (right > widthThreshold) {\n var _diff3 = right - widthThreshold;\n\n left -= _diff3;\n elemTransformOrigin.horizontal += _diff3;\n }\n\n return {\n top: \"\".concat(Math.round(top), \"px\"),\n left: \"\".concat(Math.round(left), \"px\"),\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }, [anchorEl, anchorReference, getAnchorOffset, getContentAnchorOffset, getTransformOrigin, marginThreshold]);\n var setPositioningStyles = React.useCallback(function () {\n var element = paperRef.current;\n\n if (!element) {\n return;\n }\n\n var positioning = getPositioningStyle(element);\n\n if (positioning.top !== null) {\n element.style.top = positioning.top;\n }\n\n if (positioning.left !== null) {\n element.style.left = positioning.left;\n }\n\n element.style.transformOrigin = positioning.transformOrigin;\n }, [getPositioningStyle]);\n\n var handleEntering = function handleEntering(element, isAppearing) {\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n\n setPositioningStyles();\n };\n\n var handlePaperRef = React.useCallback(function (instance) {\n // #StrictMode ready\n paperRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n React.useEffect(function () {\n if (open) {\n setPositioningStyles();\n }\n });\n React.useImperativeHandle(action, function () {\n return open ? {\n updatePosition: function updatePosition() {\n setPositioningStyles();\n }\n } : null;\n }, [open, setPositioningStyles]);\n React.useEffect(function () {\n if (!open) {\n return undefined;\n }\n\n var handleResize = debounce(function () {\n setPositioningStyles();\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [open, setPositioningStyles]);\n var transitionDuration = transitionDurationProp;\n\n if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n transitionDuration = undefined;\n } // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n\n\n var container = containerProp || (anchorEl ? ownerDocument(getAnchorEl(anchorEl)).body : undefined);\n return /*#__PURE__*/React.createElement(Modal, _extends({\n container: container,\n open: open,\n ref: ref,\n BackdropProps: {\n invisible: true\n },\n className: clsx(classes.root, className)\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n onEnter: onEnter,\n onEntered: onEntered,\n onExit: onExit,\n onExited: onExited,\n onExiting: onExiting,\n timeout: transitionDuration\n }, TransitionProps, {\n onEntering: createChainedFunction(handleEntering, TransitionProps.onEntering)\n }), /*#__PURE__*/React.createElement(Paper, _extends({\n elevation: elevation,\n ref: handlePaperRef\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className)\n }), children)));\n});\nprocess.env.NODE_ENV !== \"production\" ? Popover.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A ref for imperative actions.\n * It currently only supports updatePosition() action.\n */\n action: refType,\n\n /**\n * A HTML element, or a function that returns it.\n * It's used to set the position of the popover.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), function (props) {\n if (props.open && (!props.anchorReference || props.anchorReference === 'anchorEl')) {\n var resolvedAnchorEl = getAnchorEl(props.anchorEl);\n\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n var box = resolvedAnchorEl.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else {\n return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', \"It should be an Element instance but it's `\".concat(resolvedAnchorEl, \"` instead.\")].join('\\n'));\n }\n }\n\n return null;\n }),\n\n /**\n * This is the point on the anchor where the popover's\n * `anchorEl` will attach to. This is not used when the\n * anchorReference is 'anchorPosition'.\n *\n * Options:\n * vertical: [top, center, bottom];\n * horizontal: [left, center, right].\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n\n /**\n * This is the position that may be used\n * to set the position of the popover.\n * The coordinates are relative to\n * the application's client area.\n */\n anchorPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired\n }),\n\n /**\n * This determines which anchor prop to refer to to set\n * the position of the popover.\n */\n anchorReference: PropTypes.oneOf(['anchorEl', 'anchorPosition', 'none']),\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 * A HTML element, component instance, or function that returns either.\n * The `container` will passed to the Modal component.\n *\n * By default, it uses the body of the anchorEl's top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.instanceOf(React.Component), PropTypes.func]),\n\n /**\n * The elevation of the popover.\n */\n elevation: PropTypes.number,\n\n /**\n * This function is called in order to retrieve the content anchor element.\n * It's the opposite of the `anchorEl` prop.\n * The content anchor element should be an element inside the popover.\n * It's used to correctly scroll and set the position of the popover.\n * The positioning strategy tries to make the content anchor element just above the\n * anchor element.\n */\n getContentAnchorEl: PropTypes.func,\n\n /**\n * Specifies how close to the edge of the window the popover can appear.\n */\n marginThreshold: PropTypes.number,\n\n /**\n * Callback fired when the component requests to be closed.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the component is entering.\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired when the component has entered.\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired when the component is entering.\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired before the component is exiting.\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired when the component has exited.\n */\n onExited: PropTypes.func,\n\n /**\n * Callback fired when the component is exiting.\n */\n onExiting: PropTypes.func,\n\n /**\n * If `true`, the popover is visible.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n */\n PaperProps: PropTypes\n /* @typescript-to-proptypes-ignore */\n .shape({\n component: elementTypeAcceptingRef\n }),\n\n /**\n * This is the point on the popover which\n * will attach to the anchor's origin.\n *\n * Options:\n * vertical: [top, center, bottom, x(px)];\n * horizontal: [left, center, right, x(px)].\n */\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiPopover'\n})(Popover);","export default function chainPropTypes(propType1, propType2) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function validate() {\n return propType1.apply(void 0, arguments) || propType2.apply(void 0, arguments);\n };\n}","import PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\n\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n var _elementType$prototyp = elementType.prototype,\n prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n return Boolean(prototype.isReactComponent);\n}\n\nfunction acceptingRef(props, propName, componentName, location, propFullName) {\n var element = props[propName];\n var safePropName = propFullName || propName;\n\n if (element == null) {\n return null;\n }\n\n var warningHint;\n var elementType = element.type;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n\n if (typeof elementType === 'function' && !isClassComponent(elementType)) {\n warningHint = 'Did you accidentally use a plain function component for an element instead?';\n }\n\n if (warningHint !== undefined) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://material-ui.com/r/caveat-with-refs-guide');\n }\n\n return null;\n}\n\nvar elementAcceptingRef = chainPropTypes(PropTypes.element, acceptingRef);\nelementAcceptingRef.isRequired = chainPropTypes(PropTypes.element.isRequired, acceptingRef);\nexport default elementAcceptingRef;","import * as PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\n\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n var _elementType$prototyp = elementType.prototype,\n prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n return Boolean(prototype.isReactComponent);\n}\n\nfunction elementTypeAcceptingRef(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var safePropName = propFullName || propName;\n\n if (propValue == null) {\n return null;\n }\n\n var warningHint;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n\n if (typeof propValue === 'function' && !isClassComponent(propValue)) {\n warningHint = 'Did you accidentally provide a plain function component instead?';\n }\n\n if (warningHint !== undefined) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element type that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://material-ui.com/r/caveat-with-refs-guide');\n }\n\n return null;\n}\n\nexport default chainPropTypes(PropTypes.elementType, elementTypeAcceptingRef);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// This module is based on https://github.com/airbnb/prop-types-exact repository.\n// However, in order to reduce the number of dependencies and to remove some extra safe checks\n// the module was forked.\n// Only exported for test purposes.\nexport var specialProperty = \"exact-prop: \\u200B\";\nexport default function exactProp(propTypes) {\n if (process.env.NODE_ENV === 'production') {\n return propTypes;\n }\n\n return _extends({}, propTypes, _defineProperty({}, specialProperty, function (props) {\n var unsupportedProps = Object.keys(props).filter(function (prop) {\n return !propTypes.hasOwnProperty(prop);\n });\n\n if (unsupportedProps.length > 0) {\n return new Error(\"The following props are not supported: \".concat(unsupportedProps.map(function (prop) {\n return \"`\".concat(prop, \"`\");\n }).join(', '), \". Please remove them.\"));\n }\n\n return null;\n }));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { ForwardRef, Memo } from 'react-is'; // Simplified polyfill for IE 11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\n\nvar fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n var match = \"\".concat(fn).match(fnNameMatchRegex);\n var name = match && match[1];\n return name || '';\n}\n/**\n * @param {function} Component\n * @param {string} fallback\n * @returns {string | undefined}\n */\n\nfunction getFunctionComponentName(Component) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? \"\".concat(wrapperName, \"(\").concat(functionName, \")\") : wrapperName);\n}\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE 11 support\n *\n * @param {React.ReactType} Component\n * @returns {string | undefined}\n */\n\n\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n if (_typeof(Component) === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n\n default:\n return undefined;\n }\n }\n\n return undefined;\n}","export default function HTMLElementType(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n var propValue = props[propName];\n var safePropName = propFullName || propName;\n\n if (propValue == null) {\n return null;\n }\n\n if (propValue && propValue.nodeType !== 1) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an HTMLElement.\");\n }\n\n return null;\n}","/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nexport default typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();","import PropTypes from 'prop-types';\nvar refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function createSvgIcon(path, displayName) {\n var Component = function Component(props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcon, _extends({\n ref: ref\n }, props), path);\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar FormControlContext = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\n\nexport function useFormControl() {\n return React.useContext(FormControlContext);\n}\nexport default FormControlContext;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","export default function formControlState(_ref) {\n var props = _ref.props,\n states = _ref.states,\n muiFormControl = _ref.muiFormControl;\n return states.reduce(function (acc, state) {\n acc[state] = props[state];\n\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n\n return acc;\n }, {});\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar ListContext = React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\n\nexport default ListContext;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nexport function hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n} // Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\n\nexport function isFilled(obj) {\n var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n} // Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n// True when adorned at the start.\n\nexport function isAdornedStart(obj) {\n return obj.startAdornment;\n}","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hexToRgb = hexToRgb;\nexports.rgbToHex = rgbToHex;\nexports.hslToRgb = hslToRgb;\nexports.decomposeColor = decomposeColor;\nexports.recomposeColor = recomposeColor;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.emphasize = emphasize;\nexports.fade = fade;\nexports.darken = darken;\nexports.lighten = lighten;\n\nvar _utils = require(\"@material-ui/utils\");\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nfunction hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\n\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\n\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : (0, _utils.formatMuiErrorMessage)(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\n\nfunction recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\n\nfunction getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\n\nfunction getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction fade(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/** @license React v17.0.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","var has = Object.prototype.hasOwnProperty;\n\nexport function dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nvar table = new WeakMap();\n// counter of the key\nvar counter = 0;\n// hashes an array of objects and returns a string\nexport default function hash(args) {\n if (!args.length)\n return '';\n var key = 'arg';\n for (var i = 0; i < args.length; ++i) {\n if (args[i] === null) {\n key += '@null';\n continue;\n }\n var _hash = void 0;\n if (typeof args[i] !== 'object' && typeof args[i] !== 'function') {\n // need to consider the case that args[i] is a string:\n // args[i] _hash\n // \"undefined\" -> '\"undefined\"'\n // undefined -> 'undefined'\n // 123 -> '123'\n // \"null\" -> '\"null\"'\n if (typeof args[i] === 'string') {\n _hash = '\"' + args[i] + '\"';\n }\n else {\n _hash = String(args[i]);\n }\n }\n else {\n if (!table.has(args[i])) {\n _hash = counter;\n table.set(args[i], counter++);\n }\n else {\n _hash = table.get(args[i]);\n }\n }\n key += '@' + _hash;\n }\n return key;\n}\n","function isOnline() {\n if (typeof navigator.onLine !== 'undefined') {\n return navigator.onLine;\n }\n // always assume it's online\n return true;\n}\nfunction isDocumentVisible() {\n if (typeof document !== 'undefined' &&\n typeof document.visibilityState !== 'undefined') {\n return document.visibilityState !== 'hidden';\n }\n // always assume it's visible\n return true;\n}\nvar fetcher = function (url) { return fetch(url).then(function (res) { return res.json(); }); };\nexport default {\n isOnline: isOnline,\n isDocumentVisible: isDocumentVisible,\n fetcher: fetcher\n};\n","import { dequal } from 'dequal/lite';\nimport Cache from './cache';\nimport webPreset from './libs/web-preset';\n// cache\nvar cache = new Cache();\n// error retry\nfunction onErrorRetry(_, __, config, revalidate, opts) {\n if (!config.isDocumentVisible()) {\n // if it's hidden, stop\n // it will auto revalidate when focus\n return;\n }\n if (typeof config.errorRetryCount === 'number' &&\n opts.retryCount > config.errorRetryCount) {\n return;\n }\n // exponential backoff\n var count = Math.min(opts.retryCount || 0, 8);\n var timeout = ~~((Math.random() + 0.5) * (1 << count)) * config.errorRetryInterval;\n setTimeout(revalidate, timeout, opts);\n}\n// client side: need to adjust the config\n// based on the browser status\n// slow connection (<= 70Kbps)\nvar slowConnection = typeof window !== 'undefined' &&\n navigator['connection'] &&\n ['slow-2g', '2g'].indexOf(navigator['connection'].effectiveType) !== -1;\n// config\nvar defaultConfig = {\n // events\n onLoadingSlow: function () { },\n onSuccess: function () { },\n onError: function () { },\n onErrorRetry: onErrorRetry,\n errorRetryInterval: (slowConnection ? 10 : 5) * 1000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: (slowConnection ? 5 : 3) * 1000,\n refreshInterval: 0,\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n refreshWhenHidden: false,\n refreshWhenOffline: false,\n shouldRetryOnError: true,\n suspense: false,\n compare: dequal,\n fetcher: webPreset.fetcher,\n isOnline: webPreset.isOnline,\n isDocumentVisible: webPreset.isDocumentVisible\n};\nexport { cache };\nexport default defaultConfig;\n","import hash from './libs/hash';\nvar Cache = /** @class */ (function () {\n function Cache(initialData) {\n if (initialData === void 0) { initialData = {}; }\n this.__cache = new Map(Object.entries(initialData));\n this.__listeners = [];\n }\n Cache.prototype.get = function (key) {\n var _key = this.serializeKey(key)[0];\n return this.__cache.get(_key);\n };\n Cache.prototype.set = function (key, value) {\n var _key = this.serializeKey(key)[0];\n this.__cache.set(_key, value);\n this.notify();\n };\n Cache.prototype.keys = function () {\n return Array.from(this.__cache.keys());\n };\n Cache.prototype.has = function (key) {\n var _key = this.serializeKey(key)[0];\n return this.__cache.has(_key);\n };\n Cache.prototype.clear = function () {\n this.__cache.clear();\n this.notify();\n };\n Cache.prototype.delete = function (key) {\n var _key = this.serializeKey(key)[0];\n this.__cache.delete(_key);\n this.notify();\n };\n // TODO: introduce namespace for the cache\n Cache.prototype.serializeKey = function (key) {\n var args = null;\n if (typeof key === 'function') {\n try {\n key = key();\n }\n catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n if (Array.isArray(key)) {\n // args array\n args = key;\n key = hash(key);\n }\n else {\n // convert null to ''\n key = String(key || '');\n }\n var errorKey = key ? 'err@' + key : '';\n var isValidatingKey = key ? 'validating@' + key : '';\n return [key, args, errorKey, isValidatingKey];\n };\n Cache.prototype.subscribe = function (listener) {\n var _this = this;\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n var isSubscribed = true;\n this.__listeners.push(listener);\n return function () {\n if (!isSubscribed)\n return;\n isSubscribed = false;\n var index = _this.__listeners.indexOf(listener);\n if (index > -1) {\n _this.__listeners[index] = _this.__listeners[_this.__listeners.length - 1];\n _this.__listeners.length--;\n }\n };\n };\n // Notify Cache subscribers about a change in the cache\n Cache.prototype.notify = function () {\n for (var _i = 0, _a = this.__listeners; _i < _a.length; _i++) {\n var listener = _a[_i];\n listener();\n }\n };\n return Cache;\n}());\nexport default Cache;\n","import { createContext } from 'react';\nvar SWRConfigContext = createContext({});\nSWRConfigContext.displayName = 'SWRConfigContext';\nexport default SWRConfigContext;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { useCallback, useContext, useEffect, useLayoutEffect, useState, useRef, useMemo, useDebugValue } from 'react';\nimport defaultConfig, { cache } from './config';\nimport SWRConfigContext from './swr-config-context';\nvar IS_SERVER = typeof window === 'undefined' ||\n // @ts-ignore\n !!(typeof Deno !== 'undefined' && Deno && Deno.version && Deno.version.deno);\n// polyfill for requestAnimationFrame\nvar rAF = IS_SERVER\n ? null\n : window['requestAnimationFrame'] || (function (f) { return setTimeout(f, 1); });\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nvar useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// global state managers\nvar CONCURRENT_PROMISES = {};\nvar CONCURRENT_PROMISES_TS = {};\nvar FOCUS_REVALIDATORS = {};\nvar RECONNECT_REVALIDATORS = {};\nvar CACHE_REVALIDATORS = {};\nvar MUTATION_TS = {};\nvar MUTATION_END_TS = {};\n// generate strictly increasing timestamps\nvar now = (function () {\n var ts = 0;\n return function () { return ++ts; };\n})();\n// setup DOM events listeners for `focus` and `reconnect` actions\nif (!IS_SERVER && window.addEventListener) {\n var revalidate_1 = function (revalidators) {\n if (!defaultConfig.isDocumentVisible() || !defaultConfig.isOnline())\n return;\n for (var key in revalidators) {\n if (revalidators[key][0])\n revalidators[key][0]();\n }\n };\n // focus revalidate\n window.addEventListener('visibilitychange', function () { return revalidate_1(FOCUS_REVALIDATORS); }, false);\n window.addEventListener('focus', function () { return revalidate_1(FOCUS_REVALIDATORS); }, false);\n // reconnect revalidate\n window.addEventListener('online', function () { return revalidate_1(RECONNECT_REVALIDATORS); }, false);\n}\nvar trigger = function (_key, shouldRevalidate) {\n if (shouldRevalidate === void 0) { shouldRevalidate = true; }\n // we are ignoring the second argument which correspond to the arguments\n // the fetcher will receive when key is an array\n var _a = cache.serializeKey(_key), key = _a[0], keyErr = _a[2], keyValidating = _a[3];\n if (!key)\n return Promise.resolve();\n var updaters = CACHE_REVALIDATORS[key];\n if (key && updaters) {\n var currentData = cache.get(key);\n var currentError = cache.get(keyErr);\n var currentIsValidating = cache.get(keyValidating);\n var promises = [];\n for (var i = 0; i < updaters.length; ++i) {\n promises.push(updaters[i](shouldRevalidate, currentData, currentError, currentIsValidating, i > 0));\n }\n // return new updated value\n return Promise.all(promises).then(function () { return cache.get(key); });\n }\n return Promise.resolve(cache.get(key));\n};\nvar broadcastState = function (key, data, error, isValidating) {\n var updaters = CACHE_REVALIDATORS[key];\n if (key && updaters) {\n for (var i = 0; i < updaters.length; ++i) {\n updaters[i](false, data, error, isValidating);\n }\n }\n};\nvar mutate = function (_key, _data, shouldRevalidate) {\n if (shouldRevalidate === void 0) { shouldRevalidate = true; }\n return __awaiter(void 0, void 0, void 0, function () {\n var _a, key, keyErr, beforeMutationTs, beforeConcurrentPromisesTs, data, error, isAsyncMutation, err_1, shouldAbort, updaters, promises, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = cache.serializeKey(_key), key = _a[0], keyErr = _a[2];\n if (!key)\n return [2 /*return*/];\n // if there is no new data to update, let's just revalidate the key\n if (typeof _data === 'undefined')\n return [2 /*return*/, trigger(_key, shouldRevalidate)\n // update global timestamps\n ];\n // update global timestamps\n MUTATION_TS[key] = now() - 1;\n MUTATION_END_TS[key] = 0;\n beforeMutationTs = MUTATION_TS[key];\n beforeConcurrentPromisesTs = CONCURRENT_PROMISES_TS[key];\n isAsyncMutation = false;\n if (_data && typeof _data === 'function') {\n // `_data` is a function, call it passing current cache value\n try {\n _data = _data(cache.get(key));\n }\n catch (err) {\n error = err;\n }\n }\n if (!(_data && typeof _data.then === 'function')) return [3 /*break*/, 5];\n // `_data` is a promise\n isAsyncMutation = true;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, _data];\n case 2:\n data = _b.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _b.sent();\n error = err_1;\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n data = _data;\n _b.label = 6;\n case 6:\n shouldAbort = function () {\n // check if other mutations have occurred since we've started this mutation\n if (beforeMutationTs !== MUTATION_TS[key] ||\n beforeConcurrentPromisesTs !== CONCURRENT_PROMISES_TS[key]) {\n if (error)\n throw error;\n return true;\n }\n };\n // if there's a race we don't update cache or broadcast change, just return the data\n if (shouldAbort())\n return [2 /*return*/, data];\n if (typeof data !== 'undefined') {\n // update cached data\n cache.set(key, data);\n }\n // always update or reset the error\n cache.set(keyErr, error);\n // reset the timestamp to mark the mutation has ended\n MUTATION_END_TS[key] = now() - 1;\n if (!!isAsyncMutation) return [3 /*break*/, 8];\n // let's always broadcast in the next tick\n // to dedupe synchronous mutation calls\n // check out https://github.com/vercel/swr/pull/735 for more details\n return [4 /*yield*/, 0\n // we skip broadcasting if there's another mutation happened synchronously\n ];\n case 7:\n // let's always broadcast in the next tick\n // to dedupe synchronous mutation calls\n // check out https://github.com/vercel/swr/pull/735 for more details\n _b.sent();\n // we skip broadcasting if there's another mutation happened synchronously\n if (shouldAbort())\n return [2 /*return*/, data];\n _b.label = 8;\n case 8:\n updaters = CACHE_REVALIDATORS[key];\n if (updaters) {\n promises = [];\n for (i = 0; i < updaters.length; ++i) {\n promises.push(updaters[i](!!shouldRevalidate, data, error, undefined, i > 0));\n }\n // return new updated value\n return [2 /*return*/, Promise.all(promises).then(function () {\n if (error)\n throw error;\n return cache.get(key);\n })];\n }\n // throw error or return data to be used by caller of mutate\n if (error)\n throw error;\n return [2 /*return*/, data];\n }\n });\n });\n};\nfunction useSWR() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _key, fn, config = {};\n if (args.length >= 1) {\n _key = args[0];\n }\n if (args.length > 2) {\n fn = args[1];\n config = args[2];\n }\n else {\n if (typeof args[1] === 'function') {\n fn = args[1];\n }\n else if (typeof args[1] === 'object') {\n config = args[1];\n }\n }\n // we assume `key` as the identifier of the request\n // `key` can change but `fn` shouldn't\n // (because `revalidate` only depends on `key`)\n // `keyErr` is the cache key for error objects\n var _a = cache.serializeKey(_key), key = _a[0], fnArgs = _a[1], keyErr = _a[2], keyValidating = _a[3];\n config = Object.assign({}, defaultConfig, useContext(SWRConfigContext), config);\n var configRef = useRef(config);\n useIsomorphicLayoutEffect(function () {\n configRef.current = config;\n });\n if (typeof fn === 'undefined') {\n // use the global fetcher\n fn = config.fetcher;\n }\n var resolveData = function () {\n var cachedData = cache.get(key);\n return typeof cachedData === 'undefined' ? config.initialData : cachedData;\n };\n var initialData = resolveData();\n var initialError = cache.get(keyErr);\n var initialIsValidating = !!cache.get(keyValidating);\n // if a state is accessed (data, error or isValidating),\n // we add the state to dependencies so if the state is\n // updated in the future, we can trigger a rerender\n var stateDependencies = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n var stateRef = useRef({\n data: initialData,\n error: initialError,\n isValidating: initialIsValidating\n });\n // display the data label in the React DevTools next to SWR hooks\n useDebugValue(stateRef.current.data);\n var rerender = useState(null)[1];\n var dispatch = useCallback(function (payload) {\n var shouldUpdateState = false;\n for (var k in payload) {\n if (stateRef.current[k] === payload[k]) {\n continue;\n }\n stateRef.current[k] = payload[k];\n if (stateDependencies.current[k]) {\n shouldUpdateState = true;\n }\n }\n if (shouldUpdateState || config.suspense) {\n // if component is unmounted, should skip rerender\n // if component is not mounted, should skip rerender\n if (unmountedRef.current || !initialMountedRef.current)\n return;\n rerender({});\n }\n }, []);\n // error ref inside revalidate (is last request errored?)\n var unmountedRef = useRef(false);\n var keyRef = useRef(key);\n // check if component is mounted in suspense mode\n var initialMountedRef = useRef(false);\n // do unmount check for callbacks\n var eventsRef = useRef({\n emit: function (event) {\n var _a;\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n if (unmountedRef.current)\n return;\n if (!initialMountedRef.current)\n return;\n (_a = configRef.current)[event].apply(_a, params);\n }\n });\n var boundMutate = useCallback(function (data, shouldRevalidate) {\n return mutate(keyRef.current, data, shouldRevalidate);\n }, []);\n var addRevalidator = function (revalidators, callback) {\n if (!callback)\n return;\n if (!revalidators[key]) {\n revalidators[key] = [callback];\n }\n else {\n revalidators[key].push(callback);\n }\n };\n var removeRevalidator = function (revlidators, callback) {\n if (revlidators[key]) {\n var revalidators = revlidators[key];\n var index = revalidators.indexOf(callback);\n if (index >= 0) {\n // 10x faster than splice\n // https://jsperf.com/array-remove-by-index\n revalidators[index] = revalidators[revalidators.length - 1];\n revalidators.pop();\n }\n }\n };\n // start a revalidation\n var revalidate = useCallback(function (revalidateOpts) {\n if (revalidateOpts === void 0) { revalidateOpts = {}; }\n return __awaiter(_this, void 0, void 0, function () {\n var loading, shouldDeduping, newData, startAt, shouldIgnoreRequest, newState, err_2, retryCount;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!key || !fn)\n return [2 /*return*/, false];\n if (unmountedRef.current)\n return [2 /*return*/, false];\n revalidateOpts = Object.assign({ dedupe: false }, revalidateOpts);\n loading = true;\n shouldDeduping = typeof CONCURRENT_PROMISES[key] !== 'undefined' && revalidateOpts.dedupe;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 6, , 7]);\n dispatch({\n isValidating: true\n });\n cache.set(keyValidating, true);\n if (!shouldDeduping) {\n // also update other hooks\n broadcastState(key, stateRef.current.data, stateRef.current.error, true);\n }\n newData = void 0;\n startAt = void 0;\n if (!shouldDeduping) return [3 /*break*/, 3];\n // there's already an ongoing request,\n // this one needs to be deduplicated.\n startAt = CONCURRENT_PROMISES_TS[key];\n return [4 /*yield*/, CONCURRENT_PROMISES[key]];\n case 2:\n newData = _a.sent();\n return [3 /*break*/, 5];\n case 3:\n // if no cache being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && !cache.get(key)) {\n setTimeout(function () {\n if (loading)\n eventsRef.current.emit('onLoadingSlow', key, config);\n }, config.loadingTimeout);\n }\n if (fnArgs !== null) {\n CONCURRENT_PROMISES[key] = fn.apply(void 0, fnArgs);\n }\n else {\n CONCURRENT_PROMISES[key] = fn(key);\n }\n CONCURRENT_PROMISES_TS[key] = startAt = now();\n return [4 /*yield*/, CONCURRENT_PROMISES[key]];\n case 4:\n newData = _a.sent();\n setTimeout(function () {\n delete CONCURRENT_PROMISES[key];\n delete CONCURRENT_PROMISES_TS[key];\n }, config.dedupingInterval);\n // trigger the success event,\n // only do this for the original request.\n eventsRef.current.emit('onSuccess', newData, key, config);\n _a.label = 5;\n case 5:\n shouldIgnoreRequest = \n // if there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n CONCURRENT_PROMISES_TS[key] > startAt ||\n // if there're other mutations(s), overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n (MUTATION_TS[key] &&\n // case 1\n (startAt <= MUTATION_TS[key] ||\n // case 2\n startAt <= MUTATION_END_TS[key] ||\n // case 3\n MUTATION_END_TS[key] === 0));\n if (shouldIgnoreRequest) {\n dispatch({ isValidating: false });\n return [2 /*return*/, false];\n }\n cache.set(key, newData);\n cache.set(keyErr, undefined);\n cache.set(keyValidating, false);\n newState = {\n isValidating: false\n };\n if (typeof stateRef.current.error !== 'undefined') {\n // we don't have an error\n newState.error = undefined;\n }\n if (!config.compare(stateRef.current.data, newData)) {\n // deep compare to avoid extra re-render\n // data changed\n newState.data = newData;\n }\n // merge the new state\n dispatch(newState);\n if (!shouldDeduping) {\n // also update other hooks\n broadcastState(key, newData, newState.error, false);\n }\n return [3 /*break*/, 7];\n case 6:\n err_2 = _a.sent();\n delete CONCURRENT_PROMISES[key];\n delete CONCURRENT_PROMISES_TS[key];\n cache.set(keyErr, err_2);\n // get a new error\n // don't use deep equal for errors\n if (stateRef.current.error !== err_2) {\n // we keep the stale data\n dispatch({\n isValidating: false,\n error: err_2\n });\n if (!shouldDeduping) {\n // also broadcast to update other hooks\n broadcastState(key, undefined, err_2, false);\n }\n }\n // events and retry\n eventsRef.current.emit('onError', err_2, key, config);\n if (config.shouldRetryOnError) {\n retryCount = (revalidateOpts.retryCount || 0) + 1;\n eventsRef.current.emit('onErrorRetry', err_2, key, config, revalidate, Object.assign({ dedupe: true }, revalidateOpts, { retryCount: retryCount }));\n }\n return [3 /*break*/, 7];\n case 7:\n loading = false;\n return [2 /*return*/, true];\n }\n });\n });\n }, [key]);\n // mounted (client side rendering)\n useIsomorphicLayoutEffect(function () {\n if (!key)\n return undefined;\n // after `key` updates, we need to mark it as mounted\n unmountedRef.current = false;\n initialMountedRef.current = true;\n // after the component is mounted (hydrated),\n // we need to update the data from the cache\n // and trigger a revalidation\n var currentHookData = stateRef.current.data;\n var latestKeyedData = resolveData();\n // update the state if the key changed (not the inital render) or cache updated\n if (keyRef.current !== key) {\n keyRef.current = key;\n }\n if (!config.compare(currentHookData, latestKeyedData)) {\n dispatch({ data: latestKeyedData });\n }\n // revalidate with deduping\n var softRevalidate = function () { return revalidate({ dedupe: true }); };\n // trigger a revalidation\n if (config.revalidateOnMount ||\n (!config.initialData && config.revalidateOnMount === undefined)) {\n if (typeof latestKeyedData !== 'undefined') {\n // delay revalidate if there's cache\n // to not block the rendering\n rAF(softRevalidate);\n }\n else {\n softRevalidate();\n }\n }\n var pending = false;\n var onFocus = function () {\n if (pending || !configRef.current.revalidateOnFocus)\n return;\n pending = true;\n softRevalidate();\n setTimeout(function () { return (pending = false); }, configRef.current.focusThrottleInterval);\n };\n var onReconnect = function () {\n if (configRef.current.revalidateOnReconnect) {\n softRevalidate();\n }\n };\n // register global cache update listener\n var onUpdate = function (shouldRevalidate, updatedData, updatedError, updatedIsValidating, dedupe) {\n if (shouldRevalidate === void 0) { shouldRevalidate = true; }\n if (dedupe === void 0) { dedupe = true; }\n // update hook state\n var newState = {};\n var needUpdate = false;\n if (typeof updatedData !== 'undefined' &&\n !config.compare(stateRef.current.data, updatedData)) {\n newState.data = updatedData;\n needUpdate = true;\n }\n // always update error\n // because it can be `undefined`\n if (stateRef.current.error !== updatedError) {\n newState.error = updatedError;\n needUpdate = true;\n }\n if (typeof updatedIsValidating !== 'undefined' &&\n stateRef.current.isValidating !== updatedIsValidating) {\n newState.isValidating = updatedIsValidating;\n needUpdate = true;\n }\n if (needUpdate) {\n dispatch(newState);\n }\n if (shouldRevalidate) {\n if (dedupe) {\n return softRevalidate();\n }\n else {\n return revalidate();\n }\n }\n return false;\n };\n addRevalidator(FOCUS_REVALIDATORS, onFocus);\n addRevalidator(RECONNECT_REVALIDATORS, onReconnect);\n addRevalidator(CACHE_REVALIDATORS, onUpdate);\n return function () {\n // cleanup\n dispatch = function () { return null; };\n // mark it as unmounted\n unmountedRef.current = true;\n removeRevalidator(FOCUS_REVALIDATORS, onFocus);\n removeRevalidator(RECONNECT_REVALIDATORS, onReconnect);\n removeRevalidator(CACHE_REVALIDATORS, onUpdate);\n };\n }, [key, revalidate]);\n useIsomorphicLayoutEffect(function () {\n var timer = null;\n var tick = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!stateRef.current.error &&\n (configRef.current.refreshWhenHidden ||\n configRef.current.isDocumentVisible()) &&\n (configRef.current.refreshWhenOffline || configRef.current.isOnline()))) return [3 /*break*/, 2];\n // only revalidate when the page is visible\n // if API request errored, we stop polling in this round\n // and let the error retry function handle it\n return [4 /*yield*/, revalidate({ dedupe: true })];\n case 1:\n // only revalidate when the page is visible\n // if API request errored, we stop polling in this round\n // and let the error retry function handle it\n _a.sent();\n _a.label = 2;\n case 2:\n // Read the latest refreshInterval\n if (configRef.current.refreshInterval) {\n timer = setTimeout(tick, configRef.current.refreshInterval);\n }\n return [2 /*return*/];\n }\n });\n }); };\n if (configRef.current.refreshInterval) {\n timer = setTimeout(tick, configRef.current.refreshInterval);\n }\n return function () {\n if (timer)\n clearTimeout(timer);\n };\n }, [\n config.refreshInterval,\n config.refreshWhenHidden,\n config.refreshWhenOffline,\n revalidate\n ]);\n // define returned state\n // can be memorized since the state is a ref\n var memoizedState = useMemo(function () {\n var state = { revalidate: revalidate, mutate: boundMutate };\n Object.defineProperties(state, {\n error: {\n // `key` might be changed in the upcoming hook re-render,\n // but the previous state will stay\n // so we need to match the latest key and data (fallback to `initialData`)\n get: function () {\n stateDependencies.current.error = true;\n return keyRef.current === key ? stateRef.current.error : initialError;\n },\n enumerable: true\n },\n data: {\n get: function () {\n stateDependencies.current.data = true;\n return keyRef.current === key ? stateRef.current.data : initialData;\n },\n enumerable: true\n },\n isValidating: {\n get: function () {\n stateDependencies.current.isValidating = true;\n return key ? stateRef.current.isValidating : false;\n },\n enumerable: true\n }\n });\n return state;\n }, [revalidate]);\n // suspense\n if (config.suspense) {\n // in suspense mode, we can't return empty state\n // (it should be suspended)\n // try to get data and error from cache\n var latestData = cache.get(key);\n var latestError = cache.get(keyErr);\n if (typeof latestData === 'undefined') {\n latestData = initialData;\n }\n if (typeof latestError === 'undefined') {\n latestError = initialError;\n }\n if (typeof latestData === 'undefined' &&\n typeof latestError === 'undefined') {\n // need to start the request if it hasn't\n if (!CONCURRENT_PROMISES[key]) {\n // trigger revalidate immediately\n // to get the promise\n // in this revalidate, should not rerender\n revalidate();\n }\n if (CONCURRENT_PROMISES[key] &&\n typeof CONCURRENT_PROMISES[key].then === 'function') {\n // if it is a promise\n throw CONCURRENT_PROMISES[key];\n }\n // it's a value, return it directly (override)\n latestData = CONCURRENT_PROMISES[key];\n }\n if (typeof latestData === 'undefined' && latestError) {\n // in suspense mode, throw error if there's no content\n throw latestError;\n }\n // return the latest data / error from cache\n // in case `key` has changed\n return {\n error: latestError,\n data: latestData,\n revalidate: revalidate,\n mutate: boundMutate,\n isValidating: stateRef.current.isValidating\n };\n }\n return memoizedState;\n}\nvar SWRConfig = SWRConfigContext.Provider;\nexport { trigger, mutate, SWRConfig };\nexport default useSWR;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useContext, useRef, useState, useEffect, useCallback } from 'react';\nimport defaultConfig, { cache } from './config';\nimport SWRConfigContext from './swr-config-context';\nimport useSWR from './use-swr';\nfunction useSWRInfinite() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var getKey, fn, config = {};\n if (args.length >= 1) {\n getKey = args[0];\n }\n if (args.length > 2) {\n fn = args[1];\n config = args[2];\n }\n else {\n if (typeof args[1] === 'function') {\n fn = args[1];\n }\n else if (typeof args[1] === 'object') {\n config = args[1];\n }\n }\n config = Object.assign({}, defaultConfig, useContext(SWRConfigContext), config);\n var _a = config.initialSize, initialSize = _a === void 0 ? 1 : _a, _b = config.revalidateAll, revalidateAll = _b === void 0 ? false : _b, _c = config.persistSize, persistSize = _c === void 0 ? false : _c, defaultFetcher = config.fetcher, extraConfig = __rest(config, [\"initialSize\", \"revalidateAll\", \"persistSize\", \"fetcher\"]);\n if (typeof fn === 'undefined') {\n // use the global fetcher\n // we have to convert the type here\n fn = defaultFetcher;\n }\n // get the serialized key of the first page\n var firstPageKey = null;\n try {\n ;\n firstPageKey = cache.serializeKey(getKey(0, null))[0];\n }\n catch (err) {\n // not ready\n }\n var rerender = useState(false)[1];\n // we use cache to pass extra info (context) to fetcher so it can be globally shared\n // here we get the key of the fetcher context cache\n var contextCacheKey = null;\n if (firstPageKey) {\n contextCacheKey = 'context@' + firstPageKey;\n }\n // page count is cached as well, so when navigating the list can be restored\n var pageCountCacheKey = null;\n var cachedPageSize;\n if (firstPageKey) {\n pageCountCacheKey = 'size@' + firstPageKey;\n cachedPageSize = cache.get(pageCountCacheKey);\n }\n var pageCountRef = useRef(cachedPageSize || initialSize);\n var didMountRef = useRef(false);\n // every time the key changes, we reset the page size if it's not persisted\n useEffect(function () {\n if (didMountRef.current) {\n if (!persistSize) {\n pageCountRef.current = initialSize;\n }\n }\n else {\n didMountRef.current = true;\n }\n }, [firstPageKey]);\n // actual swr of all pages\n var swr = useSWR(firstPageKey ? ['many', firstPageKey] : null, function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, originalData, force, data, previousPageData, i, _b, pageKey, pageArgs, pageData, shouldRevalidatePage;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = cache.get(contextCacheKey) || {}, originalData = _a.originalData, force = _a.force;\n data = [];\n previousPageData = null;\n i = 0;\n _c.label = 1;\n case 1:\n if (!(i < pageCountRef.current)) return [3 /*break*/, 8];\n _b = cache.serializeKey(getKey(i, previousPageData)), pageKey = _b[0], pageArgs = _b[1];\n if (!pageKey) {\n // pageKey is falsy, stop fetching next pages\n return [3 /*break*/, 8];\n }\n pageData = cache.get(pageKey);\n shouldRevalidatePage = revalidateAll ||\n force ||\n (typeof force === 'undefined' && i === 0) ||\n (originalData && !config.compare(originalData[i], pageData)) ||\n typeof pageData === 'undefined';\n if (!shouldRevalidatePage) return [3 /*break*/, 6];\n if (!(pageArgs !== null)) return [3 /*break*/, 3];\n return [4 /*yield*/, fn.apply(void 0, pageArgs)];\n case 2:\n pageData = _c.sent();\n return [3 /*break*/, 5];\n case 3: return [4 /*yield*/, fn(pageKey)];\n case 4:\n pageData = _c.sent();\n _c.label = 5;\n case 5:\n cache.set(pageKey, pageData);\n _c.label = 6;\n case 6:\n data.push(pageData);\n previousPageData = pageData;\n _c.label = 7;\n case 7:\n ++i;\n return [3 /*break*/, 1];\n case 8:\n // once we executed the data fetching based on the context, clear the context\n cache.delete(contextCacheKey);\n // return the data\n return [2 /*return*/, data];\n }\n });\n }); }, extraConfig);\n // keep the data inside a ref\n var dataRef = useRef(swr.data);\n useEffect(function () {\n dataRef.current = swr.data;\n }, [swr.data]);\n var mutate = useCallback(function (data, shouldRevalidate) {\n if (shouldRevalidate === void 0) { shouldRevalidate = true; }\n if (shouldRevalidate && typeof data !== 'undefined') {\n // we only revalidate the pages that are changed\n var originalData = dataRef.current;\n cache.set(contextCacheKey, { originalData: originalData, force: false });\n }\n else if (shouldRevalidate) {\n // calling `mutate()`, we revalidate all pages\n cache.set(contextCacheKey, { force: true });\n }\n return swr.mutate(data, shouldRevalidate);\n }, [swr.mutate, contextCacheKey]);\n // extend the SWR API\n var size = pageCountRef.current;\n var setSize = useCallback(function (arg) {\n if (typeof arg === 'function') {\n pageCountRef.current = arg(pageCountRef.current);\n }\n else if (typeof arg === 'number') {\n pageCountRef.current = arg;\n }\n cache.set(pageCountCacheKey, pageCountRef.current);\n rerender(function (v) { return !v; });\n return mutate(function (v) { return v; });\n }, [mutate, pageCountCacheKey]);\n return __assign(__assign({}, swr), { mutate: mutate,\n size: size,\n setSize: setSize });\n}\nexport { useSWRInfinite };\n","export * from './use-swr';\nimport { default as useSWR } from './use-swr';\nexport { useSWRInfinite } from './use-swr-infinite';\nexport { cache } from './config';\nexport default useSWR;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\n\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n\n return disableListWrap ? null : list.firstChild;\n}\n\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n\n return disableListWrap ? null : list.lastChild;\n}\n\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n\n var text = nextFocus.innerText;\n\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n\n text = text.trim().toLowerCase();\n\n if (text.length === 0) {\n return false;\n }\n\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\n\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n var wrappedOnce = false;\n var nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n\n wrappedOnce = true;\n } // Same logic as useAutocomplete.js\n\n\n var nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return;\n }\n }\n}\n\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.\n * It's exposed to help customization of the [`Menu`](/api/menu/) component. If you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\n\nvar MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n var actions = props.actions,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n _props$autoFocusItem = props.autoFocusItem,\n autoFocusItem = _props$autoFocusItem === void 0 ? false : _props$autoFocusItem,\n children = props.children,\n className = props.className,\n _props$disabledItemsF = props.disabledItemsFocusable,\n disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,\n _props$disableListWra = props.disableListWrap,\n disableListWrap = _props$disableListWra === void 0 ? false : _props$disableListWra,\n onKeyDown = props.onKeyDown,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n other = _objectWithoutProperties(props, [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"]);\n\n var listRef = React.useRef(null);\n var textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(function () {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, function () {\n return {\n adjustStyleForScrollbar: function adjustStyleForScrollbar(containerElement, theme) {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n var noExplicitWidth = !listRef.current.style.width;\n\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n var scrollbarSize = \"\".concat(getScrollbarSize(true), \"px\");\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = \"calc(100% + \".concat(scrollbarSize, \")\");\n }\n\n return listRef.current;\n }\n };\n }, []);\n\n var handleKeyDown = function handleKeyDown(event) {\n var list = listRef.current;\n var key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n\n var currentFocus = ownerDocument(list).activeElement;\n\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n var criteria = textCriteriaRef.current;\n var lowerKey = key.toLowerCase();\n var currTime = performance.now();\n\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n var keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n listRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(handleOwnRef, ref);\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n\n var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n\n React.Children.forEach(children, function (child, index) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n var items = React.Children.map(children, function (child, index) {\n if (index === activeItemIndex) {\n var newChildProps = {};\n\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n\n return child;\n });\n return /*#__PURE__*/React.createElement(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other), items);\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.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 * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n */\n autoFocusItem: PropTypes.bool,\n\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, will allow focus on disabled items.\n */\n disabledItemsFocusable: PropTypes.bool,\n\n /**\n * If `true`, the menu items will not wrap focus.\n */\n disableListWrap: PropTypes.bool,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { HTMLElementType } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport Popover from '../Popover';\nimport MenuList from '../MenuList';\nimport * as ReactDOM from 'react-dom';\nimport setRef from '../utils/setRef';\nimport useTheme from '../styles/useTheme';\nvar RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nvar LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nexport var styles = {\n /* Styles applied to the `Paper` component. */\n paper: {\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tapable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling.\n WebkitOverflowScrolling: 'touch'\n },\n\n /* Styles applied to the `List` component via `MenuList`. */\n list: {\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n }\n};\nvar Menu = /*#__PURE__*/React.forwardRef(function Menu(props, ref) {\n var _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n children = props.children,\n classes = props.classes,\n _props$disableAutoFoc = props.disableAutoFocusItem,\n disableAutoFocusItem = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$MenuListProps = props.MenuListProps,\n MenuListProps = _props$MenuListProps === void 0 ? {} : _props$MenuListProps,\n onClose = props.onClose,\n onEntering = props.onEntering,\n open = props.open,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n PopoverClasses = props.PopoverClasses,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n other = _objectWithoutProperties(props, [\"autoFocus\", \"children\", \"classes\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"onEntering\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"variant\"]);\n\n var theme = useTheme();\n var autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n var menuListActionsRef = React.useRef(null);\n var contentAnchorRef = React.useRef(null);\n\n var getContentAnchorEl = function getContentAnchorEl() {\n return contentAnchorRef.current;\n };\n\n var handleEntering = function handleEntering(element, isAppearing) {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, theme);\n }\n\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n\n var handleListKeyDown = function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n\n\n var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n\n React.Children.map(children, function (child, index) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n if (!child.props.disabled) {\n if (variant !== \"menu\" && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n var items = React.Children.map(children, function (child, index) {\n if (index === activeItemIndex) {\n return /*#__PURE__*/React.cloneElement(child, {\n ref: function ref(instance) {\n // #StrictMode ready\n contentAnchorRef.current = ReactDOM.findDOMNode(instance);\n setRef(child.ref, instance);\n }\n });\n }\n\n return child;\n });\n return /*#__PURE__*/React.createElement(Popover, _extends({\n getContentAnchorEl: getContentAnchorEl,\n classes: PopoverClasses,\n onClose: onClose,\n onEntering: handleEntering,\n anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n PaperProps: _extends({}, PaperProps, {\n classes: _extends({}, PaperProps.classes, {\n root: classes.paper\n })\n }),\n open: open,\n ref: ref,\n transitionDuration: transitionDuration\n }, other), /*#__PURE__*/React.createElement(MenuList, _extends({\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant\n }, MenuListProps, {\n className: clsx(classes.list, MenuListProps.className)\n }), items));\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A HTML element, or a function that returns it.\n * It's used to set the position of the menu.\n */\n anchorEl: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.func]),\n\n /**\n * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n * children are not focusable. If you set this prop to `false` focus will be placed\n * on the parent modal container. This has severe accessibility implications\n * and should only be considered if you manage focus otherwise.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Menu contents, normally `MenuItem`s.\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 * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n * unless `autoFocus` is also set to `false`. Not using the default means not\n * following WAI-ARIA authoring practices. Please be considerate about possible\n * accessibility implications.\n */\n disableAutoFocusItem: PropTypes.bool,\n\n /**\n * Props applied to the [`MenuList`](/api/menu-list/) element.\n */\n MenuListProps: PropTypes.object,\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the Menu enters.\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired when the Menu has entered.\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired when the Menu is entering.\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired before the Menu exits.\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired when the Menu has exited.\n */\n onExited: PropTypes.func,\n\n /**\n * Callback fired when the Menu is exiting.\n */\n onExiting: PropTypes.func,\n\n /**\n * If `true`, the menu is visible.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * @ignore\n */\n PaperProps: PropTypes.object,\n\n /**\n * `classes` prop applied to the [`Popover`](/api/popover/) element.\n */\n PopoverClasses: PropTypes.object,\n\n /**\n * The length of the transition in `ms`, or 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiMenu'\n})(Menu);"],"sourceRoot":""}