{"version":3,"sources":["../node_modules/@material-ui/lab/esm/internal/svg-icons/SuccessOutlined.js","../node_modules/@material-ui/lab/esm/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@material-ui/lab/esm/internal/svg-icons/ErrorOutline.js","../node_modules/@material-ui/lab/esm/internal/svg-icons/InfoOutlined.js","../node_modules/@material-ui/lab/esm/Alert/Alert.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@material-ui/lab/esm/internal/svg-icons/Close.js","../node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js","../node_modules/@material-ui/core/esm/Snackbar/Snackbar.js","../node_modules/@material-ui/core/esm/SnackbarContent/SnackbarContent.js","../ReactNotifications/webpack/bootstrap","../webpack:/ReactNotifications/external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","../ReactNotifications/node_modules/prop-types/index.js","../ReactNotifications/node_modules/prop-types/factoryWithThrowingShims.js","../ReactNotifications/node_modules/prop-types/lib/ReactPropTypesSecret.js","../ReactNotifications/src/constants.js","../ReactNotifications/src/utils.js","../ReactNotifications/src/validators.js","../ReactNotifications/src/helpers.js","../ReactNotifications/src/react-notification.js","../ReactNotifications/src/react-notification-component.js"],"names":["createSvgIcon","React","d","defaultIconMapping","success","SuccessOutlinedIcon","fontSize","warning","ReportProblemOutlinedIcon","error","ErrorOutlineIcon","info","InfoOutlinedIcon","_ref","CloseIcon","Alert","props","ref","action","children","classes","className","_props$closeText","closeText","color","icon","_props$iconMapping","iconMapping","onClose","_props$role","role","_props$severity","severity","_props$variant","variant","other","_objectWithoutProperties","Paper","_extends","square","elevation","clsx","root","concat","capitalize","message","IconButton","size","title","onClick","withStyles","theme","getColor","palette","type","darken","lighten","getBackgroundColor","typography","body2","borderRadius","shape","backgroundColor","display","padding","standardSuccess","main","standardInfo","standardWarning","standardError","outlinedSuccess","border","outlinedInfo","outlinedWarning","outlinedError","filledSuccess","fontWeight","fontWeightMedium","filledInfo","filledWarning","filledError","marginRight","opacity","alignItems","marginLeft","paddingLeft","name","useTheme","useThemeWithoutDefault","defaultTheme","reflow","node","scrollTop","getTransitionProps","options","timeout","_props$style","style","duration","transitionDuration","mode","delay","transitionDelay","_props$component","component","Component","_props$square","_props$elevation","outlined","rounded","elevations","shadows","forEach","shadow","index","boxShadow","background","paper","text","primary","transition","transitions","create","divider","_props$edge","edge","_props$color","_props$disabled","disabled","_props$disableFocusRi","disableFocusRipple","_props$size","ButtonBase","edgeStart","edgeEnd","centerRipple","focusRipple","label","textAlign","flex","pxToRem","overflow","active","shortest","alpha","hoverOpacity","colorInherit","colorPrimary","colorSecondary","secondary","sizeSmall","width","justifyContent","getScale","value","Math","pow","styles","entering","transform","entered","Grow","_props$disableStrictM","disableStrictModeCompat","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","_props$timeout","_props$TransitionComp","TransitionComponent","Transition","timer","autoTimeout","enableStrictModeCompat","unstable_strictMode","nodeRef","foreignRef","useForkRef","handleRef","undefined","normalizedTransitionCallback","callback","nodeOrAppearing","maybeAppearing","current","_ref2","_slicedToArray","isAppearing","handleEntering","handleEnter","_getTransitionProps","getAutoHeightDuration","clientHeight","join","handleEntered","handleExiting","handleExit","_getTransitionProps2","handleExited","clearTimeout","appear","addEndListener","nodeOrNext","maybeNext","next","setTimeout","state","childProps","visibility","muiSupportAuto","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","_React$Component","context","_this","call","this","initialStatus","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","_inheritsLoose","getDerivedStateFromProps","prevState","_proto","prototype","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","ReactDOM","findDOMNode","performEnter","performExit","setState","_this2","appearing","maybeNode","timeouts","enterTimeout","config","safeSetState","onTransitionEnd","_this3","cancel","nextState","setNextCallback","_this4","event","handler","doesNotHaveTimeoutOrListener","_ref3","maybeNextCallback","render","_this$props","_objectWithoutPropertiesLoose","createElement","TransitionGroupContext","Provider","cloneElement","Children","only","noop","contextType","propTypes","defaultProps","mapEventPropToEvent","eventProp","substring","toLowerCase","ClickAwayListener","_props$disableReactTr","disableReactTree","_props$mouseEvent","mouseEvent","onClickAway","_props$touchEvent","touchEvent","movedRef","activatedRef","syntheticEventRef","handleOwnRef","instance","handleClickAway","useEventCallback","insideReactTree","document","documentElement","clientWidth","clientX","clientY","clickedRootScrollbar","insideDOM","composedPath","indexOf","ownerDocument","contains","target","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","doc","handleTouchMove","addEventListener","removeEventListener","mappedMouseEvent","Snackbar","_props$anchorOrigin","anchorOrigin","vertical","horizontal","_props$autoHideDurati","autoHideDuration","ClickAwayListenerProps","ContentProps","_props$disableWindowB","disableWindowBlurListener","onMouseEnter","onMouseLeave","open","resumeHideDuration","_props$transitionDura","enteringScreen","leavingScreen","TransitionProps","timerAutoHide","_React$useState","exited","setExited","handleClose","apply","arguments","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","window","createChainedFunction","direction","SnackbarContent","top1","top","bottom1","bottom","right","left","top3","bottom3","right3","left3","center","zIndex","snackbar","position","anchorOriginTopCenter","_defineProperty","breakpoints","up","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","flip","emphasis","emphasize","default","getContrastText","flexWrap","flexGrow","minWidth","i","l","exports","modules","module","__webpack_require__","Object","enumerable","bind","e","err","array","shim","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","objectOf","oneOf","oneOfType","exact","ReactPropTypes","NOTIFICATION_BASE_CLASS","CONTAINER","INSERTION","NOTIFICATION_TYPE","NOTIFICATION_STAGE","REMOVAL","TIMEOUT","CLICK","TOUCH","MANUAL","ERROR","cssWidth","isNullOrUndefined","prop","isString","isNumber","isBoolean","isArray","constructor","Array","validateTransition","defaults","cubicBezier","transitionOptions","Error","isBottomContainer","container","BOTTOM_CENTER","isTopContainer","TOP_CENTER","getHtmlClassesForType","notification","userDefinedTypes","content","foundType","find","q","htmlClasses","getCubicBezierTransition","property","slidingExitTransition","slidingExit","getChildStyleForTouchTransitionExit","startX","currentX","swipe","fade","innerWidth","touchSwipe","touchSlidingExit","touchFade","getRootHeightStyle","scrollHeight","height","react_notification_ReactNotification","endOfSmartSliding","onNotificationClick","setDismissTimeout","onSmartSlidingEnd","onTouchSmartSlidingEnd","onTouchStart","onTouchMove","onTouchEnd","rootDOM","external_commonjs_react_commonjs2_react_amd_react_root_React_default","createRef","isFirstNotification","hasSliding","insert","animatedElementClasses","rootElementStyle","marginBottom","push","animationIn","length","item","getInitialSlidingState","smartSliding","setRemovalTimeout","dismiss","timeoutId","toggleTimeoutRemoval","stage","requestAnimationFrame","stopPropagation","isSameNode","toggleRemoval","animationOut","slidingEnter","resized","onClickHandler","touches","pageX","diffX","swipeLength","toggleTouchEnd","distance","abs","childElementStyle","touchSlidingBack","onAnimationEnd","touchHasEnded","stateAnimatedElementClasses","stateRootStyle","handleStageTransition","dismissable","click","onTouchCancel","notificationTitle","htmlCloseIconContent","dismissIcon","react_notification_component_ReactNotificationComponent","isMobile","breakpoint","notifications","types","addNotification","handleResize","renderReactNotifications","mounted","map","id","removedBy","random","toString","substr","TITLE_STRING","MESSAGE_STRING","definedTypes","p","option","touch","iconClassName","iconContent","isValidElement","DISMISS_ICON_INVALID","DISMISS_POSITIVE","getNotificationOptions","API","filter","_this5","onNotificationRemoval","key","_this6","mobileNotifications","topLeft","topRight","topCenter","bottomLeft","bottomRight","bottomCenter","notificationsPerContainer","prop_types_default","__webpack_exports__"],"mappings":"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","file":"static/js/342.e84eab4b.chunk.js","sourcesContent":["import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\"\n}), 'SuccessOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"\n}), 'ReportProblemOutlined');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z\"\n}), 'InfoOutlined');","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { withStyles, lighten, darken } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport SuccessOutlinedIcon from '../internal/svg-icons/SuccessOutlined';\nimport ReportProblemOutlinedIcon from '../internal/svg-icons/ReportProblemOutlined';\nimport ErrorOutlineIcon from '../internal/svg-icons/ErrorOutline';\nimport InfoOutlinedIcon from '../internal/svg-icons/InfoOutlined';\nimport CloseIcon from '../internal/svg-icons/Close';\nimport IconButton from '@material-ui/core/IconButton';\nimport { capitalize } from '@material-ui/core/utils';\nexport var styles = function styles(theme) {\n var getColor = theme.palette.type === 'light' ? darken : lighten;\n var getBackgroundColor = theme.palette.type === 'light' ? lighten : darken;\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body2, {\n borderRadius: theme.shape.borderRadius,\n backgroundColor: 'transparent',\n display: 'flex',\n padding: '6px 16px'\n }),\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"success\"`. */\n standardSuccess: {\n color: getColor(theme.palette.success.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.success.main, 0.9),\n '& $icon': {\n color: theme.palette.success.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"info\"`. */\n standardInfo: {\n color: getColor(theme.palette.info.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.info.main, 0.9),\n '& $icon': {\n color: theme.palette.info.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"warning\"`. */\n standardWarning: {\n color: getColor(theme.palette.warning.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.warning.main, 0.9),\n '& $icon': {\n color: theme.palette.warning.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"standard\"` and `color=\"error\"`. */\n standardError: {\n color: getColor(theme.palette.error.main, 0.6),\n backgroundColor: getBackgroundColor(theme.palette.error.main, 0.9),\n '& $icon': {\n color: theme.palette.error.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"success\"`. */\n outlinedSuccess: {\n color: getColor(theme.palette.success.main, 0.6),\n border: \"1px solid \".concat(theme.palette.success.main),\n '& $icon': {\n color: theme.palette.success.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"info\"`. */\n outlinedInfo: {\n color: getColor(theme.palette.info.main, 0.6),\n border: \"1px solid \".concat(theme.palette.info.main),\n '& $icon': {\n color: theme.palette.info.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"warning\"`. */\n outlinedWarning: {\n color: getColor(theme.palette.warning.main, 0.6),\n border: \"1px solid \".concat(theme.palette.warning.main),\n '& $icon': {\n color: theme.palette.warning.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"error\"`. */\n outlinedError: {\n color: getColor(theme.palette.error.main, 0.6),\n border: \"1px solid \".concat(theme.palette.error.main),\n '& $icon': {\n color: theme.palette.error.main\n }\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"success\"`. */\n filledSuccess: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.success.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"info\"`. */\n filledInfo: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.info.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"warning\"`. */\n filledWarning: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.warning.main\n },\n\n /* Styles applied to the root element if `variant=\"filled\"` and `color=\"error\"`. */\n filledError: {\n color: '#fff',\n fontWeight: theme.typography.fontWeightMedium,\n backgroundColor: theme.palette.error.main\n },\n\n /* Styles applied to the icon wrapper element. */\n icon: {\n marginRight: 12,\n padding: '7px 0',\n display: 'flex',\n fontSize: 22,\n opacity: 0.9\n },\n\n /* Styles applied to the message wrapper element. */\n message: {\n padding: '8px 0'\n },\n\n /* Styles applied to the action wrapper element if `action` is provided. */\n action: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n }\n };\n};\nvar defaultIconMapping = {\n success: /*#__PURE__*/React.createElement(SuccessOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n warning: /*#__PURE__*/React.createElement(ReportProblemOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n error: /*#__PURE__*/React.createElement(ErrorOutlineIcon, {\n fontSize: \"inherit\"\n }),\n info: /*#__PURE__*/React.createElement(InfoOutlinedIcon, {\n fontSize: \"inherit\"\n })\n};\n\nvar _ref = /*#__PURE__*/React.createElement(CloseIcon, {\n fontSize: \"small\"\n});\n\nvar Alert = /*#__PURE__*/React.forwardRef(function Alert(props, ref) {\n var action = props.action,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$closeText = props.closeText,\n closeText = _props$closeText === void 0 ? 'Close' : _props$closeText,\n color = props.color,\n icon = props.icon,\n _props$iconMapping = props.iconMapping,\n iconMapping = _props$iconMapping === void 0 ? defaultIconMapping : _props$iconMapping,\n onClose = props.onClose,\n _props$role = props.role,\n role = _props$role === void 0 ? 'alert' : _props$role,\n _props$severity = props.severity,\n severity = _props$severity === void 0 ? 'success' : _props$severity,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'standard' : _props$variant,\n other = _objectWithoutProperties(props, [\"action\", \"children\", \"classes\", \"className\", \"closeText\", \"color\", \"icon\", \"iconMapping\", \"onClose\", \"role\", \"severity\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n role: role,\n square: true,\n elevation: 0,\n className: clsx(classes.root, classes[\"\".concat(variant).concat(capitalize(color || severity))], className),\n ref: ref\n }, other), icon !== false ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.icon\n }, icon || iconMapping[severity] || defaultIconMapping[severity]) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: classes.message\n }, children), action != null ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.action\n }, action) : null, action == null && onClose ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.action\n }, /*#__PURE__*/React.createElement(IconButton, {\n size: \"small\",\n \"aria-label\": closeText,\n title: closeText,\n color: \"inherit\",\n onClick: onClose\n }, _ref)) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? Alert.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 action to display. It renders after the message, at the end of the alert.\n */\n action: PropTypes.node,\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 * Override the default label for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/guides/localization/).\n */\n closeText: PropTypes.string,\n\n /**\n * The main color for the alert. Unless provided, the value is taken from the `severity` prop.\n */\n color: PropTypes.oneOf(['error', 'info', 'success', 'warning']),\n\n /**\n * Override the icon displayed before the children.\n * Unless provided, the icon is mapped to the value of the `severity` prop.\n */\n icon: PropTypes.node,\n\n /**\n * The component maps the `severity` prop to a range of different icons,\n * for instance success to ``.\n * If you wish to change this mapping, you can provide your own.\n * Alternatively, you can use the `icon` prop to override the icon displayed.\n */\n iconMapping: PropTypes.shape({\n error: PropTypes.node,\n info: PropTypes.node,\n success: PropTypes.node,\n warning: PropTypes.node\n }),\n\n /**\n * Callback fired when the component requests to be closed.\n * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.\n *\n * @param {object} event The event source of the callback.\n */\n onClose: PropTypes.func,\n\n /**\n * The ARIA role attribute of the element.\n */\n role: PropTypes.string,\n\n /**\n * The severity of the alert. This defines the color and icon used.\n */\n severity: PropTypes.oneOf(['error', 'info', 'success', 'warning']),\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAlert'\n})(Alert);","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","export var reflow = function reflow(node) {\n return node.scrollTop;\n};\nexport function getTransitionProps(props, options) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style;\n return {\n duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n delay: style.transitionDelay\n };\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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';\nexport var styles = function styles(theme) {\n var elevations = {};\n theme.shadows.forEach(function (shadow, index) {\n elevations[\"elevation\".concat(index)] = {\n boxShadow: shadow\n };\n });\n return _extends({\n /* Styles applied to the root element. */\n root: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n },\n\n /* Styles applied to the root element if `square={false}`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n border: \"1px solid \".concat(theme.palette.divider)\n }\n }, elevations);\n};\nvar Paper = /*#__PURE__*/React.forwardRef(function Paper(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$square = props.square,\n square = _props$square === void 0 ? false : _props$square,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.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 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 * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n */\n elevation: chainPropTypes(PropTypes.number, function (props) {\n var classes = props.classes,\n elevation = props.elevation; // in case `withStyles` fails to inject we don't need this warning\n\n if (classes === undefined) {\n return null;\n }\n\n if (elevation != null && classes[\"elevation\".concat(elevation)] === undefined) {\n return new Error(\"Material-UI: This elevation `\".concat(elevation, \"` is not implemented.\"));\n }\n\n return null;\n }),\n\n /**\n * If `true`, rounded corners are disabled.\n */\n square: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['elevation', 'outlined'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiPaper'\n})(Paper);","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 { alpha } 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: alpha(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: alpha(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: alpha(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 _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;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\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 return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import * as React from 'react';\nimport { createSvgIcon } from '@material-ui/core/utils';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport { elementAcceptingRef, exactProp } from '@material-ui/utils';\n\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\n\nfunction clickedRootScrollbar(event) {\n return document.documentElement.clientWidth < event.clientX || document.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n */\n\n\nfunction ClickAwayListener(props) {\n var children = props.children,\n _props$disableReactTr = props.disableReactTree,\n disableReactTree = _props$disableReactTr === void 0 ? false : _props$disableReactTr,\n _props$mouseEvent = props.mouseEvent,\n mouseEvent = _props$mouseEvent === void 0 ? 'onClick' : _props$mouseEvent,\n onClickAway = props.onClickAway,\n _props$touchEvent = props.touchEvent,\n touchEvent = _props$touchEvent === void 0 ? 'onTouchEnd' : _props$touchEvent;\n var movedRef = React.useRef(false);\n var nodeRef = React.useRef(null);\n var activatedRef = React.useRef(false);\n var syntheticEventRef = React.useRef(false);\n React.useEffect(function () {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(function () {\n activatedRef.current = true;\n }, 0);\n return function () {\n activatedRef.current = false;\n };\n }, []); // can be removed once we drop support for non ref forwarding class components\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n nodeRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(children.ref, handleOwnRef); // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviours like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n var handleClickAway = useEventCallback(function (event) {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n var insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false; // 1. IE 11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!activatedRef.current || !nodeRef.current || clickedRootScrollbar(event)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n var insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n // TODO v6 remove dead logic https://caniuse.com/#search=composedPath.\n var doc = ownerDocument(nodeRef.current);\n insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n }\n\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n var createHandleSynthetic = function createHandleSynthetic(handlerName) {\n return function (event) {\n syntheticEventRef.current = true;\n var childrenPropsHandler = children.props[handlerName];\n\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n };\n\n var childrenProps = {\n ref: handleRef\n };\n\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n\n React.useEffect(function () {\n if (touchEvent !== false) {\n var mappedTouchEvent = mapEventPropToEvent(touchEvent);\n var doc = ownerDocument(nodeRef.current);\n\n var handleTouchMove = function handleTouchMove() {\n movedRef.current = true;\n };\n\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return function () {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n\n return undefined;\n }, [handleClickAway, touchEvent]);\n\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n\n React.useEffect(function () {\n if (mouseEvent !== false) {\n var mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n var doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return function () {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(children, childrenProps));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.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 wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n */\n disableReactTree: PropTypes.bool,\n\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', false]),\n\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\n\nexport default ClickAwayListener;","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 { duration } from '../styles/transitions';\nimport ClickAwayListener from '../ClickAwayListener';\nimport useEventCallback from '../utils/useEventCallback';\nimport capitalize from '../utils/capitalize';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport Grow from '../Grow';\nimport SnackbarContent from '../SnackbarContent';\nexport var styles = function styles(theme) {\n var top1 = {\n top: 8\n };\n var bottom1 = {\n bottom: 8\n };\n var right = {\n justifyContent: 'flex-end'\n };\n var left = {\n justifyContent: 'flex-start'\n };\n var top3 = {\n top: 24\n };\n var bottom3 = {\n bottom: 24\n };\n var right3 = {\n right: 24\n };\n var left3 = {\n left: 24\n };\n var center = {\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)'\n };\n return {\n /* Styles applied to the root element. */\n root: {\n zIndex: theme.zIndex.snackbar,\n position: 'fixed',\n display: 'flex',\n left: 8,\n right: 8,\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'center' }}`. */\n anchorOriginTopCenter: _extends({}, top1, _defineProperty({}, theme.breakpoints.up('sm'), _extends({}, top3, center))),\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'center' }}`. */\n anchorOriginBottomCenter: _extends({}, bottom1, _defineProperty({}, theme.breakpoints.up('sm'), _extends({}, bottom3, center))),\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }}`. */\n anchorOriginTopRight: _extends({}, top1, right, _defineProperty({}, theme.breakpoints.up('sm'), _extends({\n left: 'auto'\n }, top3, right3))),\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }}`. */\n anchorOriginBottomRight: _extends({}, bottom1, right, _defineProperty({}, theme.breakpoints.up('sm'), _extends({\n left: 'auto'\n }, bottom3, right3))),\n\n /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }}`. */\n anchorOriginTopLeft: _extends({}, top1, left, _defineProperty({}, theme.breakpoints.up('sm'), _extends({\n right: 'auto'\n }, top3, left3))),\n\n /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }}`. */\n anchorOriginBottomLeft: _extends({}, bottom1, left, _defineProperty({}, theme.breakpoints.up('sm'), _extends({\n right: 'auto'\n }, bottom3, left3)))\n };\n};\nvar Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(props, ref) {\n var action = props.action,\n _props$anchorOrigin = props.anchorOrigin;\n _props$anchorOrigin = _props$anchorOrigin === void 0 ? {\n vertical: 'bottom',\n horizontal: 'center'\n } : _props$anchorOrigin;\n\n var vertical = _props$anchorOrigin.vertical,\n horizontal = _props$anchorOrigin.horizontal,\n _props$autoHideDurati = props.autoHideDuration,\n autoHideDuration = _props$autoHideDurati === void 0 ? null : _props$autoHideDurati,\n children = props.children,\n classes = props.classes,\n className = props.className,\n ClickAwayListenerProps = props.ClickAwayListenerProps,\n ContentProps = props.ContentProps,\n _props$disableWindowB = props.disableWindowBlurListener,\n disableWindowBlurListener = _props$disableWindowB === void 0 ? false : _props$disableWindowB,\n message = props.message,\n onClose = props.onClose,\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 onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n open = props.open,\n resumeHideDuration = props.resumeHideDuration,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Grow : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n } : _props$transitionDura,\n TransitionProps = props.TransitionProps,\n other = _objectWithoutProperties(props, [\"action\", \"anchorOrigin\", \"autoHideDuration\", \"children\", \"classes\", \"className\", \"ClickAwayListenerProps\", \"ContentProps\", \"disableWindowBlurListener\", \"message\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n\n var timerAutoHide = React.useRef();\n\n var _React$useState = React.useState(true),\n exited = _React$useState[0],\n setExited = _React$useState[1];\n\n var handleClose = useEventCallback(function () {\n if (onClose) {\n onClose.apply(void 0, arguments);\n }\n });\n var setAutoHideTimer = useEventCallback(function (autoHideDurationParam) {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(function () {\n handleClose(null, 'timeout');\n }, autoHideDurationParam);\n });\n React.useEffect(function () {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return function () {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]); // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n\n var handlePause = function handlePause() {\n clearTimeout(timerAutoHide.current);\n }; // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n\n\n var handleResume = React.useCallback(function () {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n\n var handleMouseEnter = function handleMouseEnter(event) {\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n\n handlePause();\n };\n\n var handleMouseLeave = function handleMouseLeave(event) {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n\n handleResume();\n };\n\n var handleClickAway = function handleClickAway(event) {\n if (onClose) {\n onClose(event, 'clickaway');\n }\n };\n\n var handleExited = function handleExited() {\n setExited(true);\n };\n\n var handleEnter = function handleEnter() {\n setExited(false);\n };\n\n React.useEffect(function () {\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return function () {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, open]); // So we only render active snackbars.\n\n if (!open && exited) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(ClickAwayListener, _extends({\n onClickAway: handleClickAway\n }, ClickAwayListenerProps), /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, classes[\"anchorOrigin\".concat(capitalize(vertical)).concat(capitalize(horizontal))], className),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n onEnter: createChainedFunction(handleEnter, onEnter),\n onEntered: onEntered,\n onEntering: onEntering,\n onExit: onExit,\n onExited: createChainedFunction(handleExited, onExited),\n onExiting: onExiting,\n timeout: transitionDuration,\n direction: vertical === 'top' ? 'down' : 'up'\n }, TransitionProps), children || /*#__PURE__*/React.createElement(SnackbarContent, _extends({\n message: message,\n action: action\n }, ContentProps)))));\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.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 action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n\n /**\n * The anchor of the `Snackbar`.\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['center', 'left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The number of milliseconds to wait before automatically calling the\n * `onClose` function. `onClose` should then set the state of the `open`\n * prop to hide the Snackbar. This behavior is disabled by default with\n * the `null` value.\n */\n autoHideDuration: PropTypes.number,\n\n /**\n * Replace the `SnackbarContent` component.\n */\n children: PropTypes.element,\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 * Props applied to the `ClickAwayListener` element.\n */\n ClickAwayListenerProps: PropTypes.object,\n\n /**\n * Props applied to the [`SnackbarContent`](/api/snackbar-content/) element.\n */\n ContentProps: PropTypes.object,\n\n /**\n * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n */\n disableWindowBlurListener: PropTypes.bool,\n\n /**\n * When displaying multiple consecutive Snackbars from a parent rendering a single\n * , add the key prop to ensure independent treatment of each message.\n * e.g. , otherwise, the message may update-in-place and\n * features such as autoHideDuration may be canceled.\n */\n key: PropTypes.any,\n\n /**\n * The message to display.\n */\n message: PropTypes.node,\n\n /**\n * Callback fired when the component requests to be closed.\n * Typically `onClose` is used to set state in the parent component,\n * which is used to control the `Snackbar` `open` prop.\n * The `reason` parameter can optionally be used to control the response to `onClose`,\n * for example ignoring `clickaway`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the transition is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEnter: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the transition has entered.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntered: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the transition is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntering: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired before the transition is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExit: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the transition has exited.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExited: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the transition is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExiting: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * @ignore\n */\n onMouseEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n\n /**\n * If `true`, `Snackbar` is open.\n */\n open: PropTypes.bool,\n\n /**\n * The number of milliseconds to wait before dismissing after user interaction.\n * If `autoHideDuration` prop isn't specified, it does nothing.\n * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n * we default to `autoHideDuration / 2` ms.\n */\n resumeHideDuration: PropTypes.number,\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 * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([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 flip: false,\n name: 'MuiSnackbar'\n})(Snackbar);","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 Paper from '../Paper';\nimport { emphasize } from '../styles/colorManipulator';\nexport var styles = function styles(theme) {\n var emphasis = theme.palette.type === 'light' ? 0.8 : 0.98;\n var backgroundColor = emphasize(theme.palette.background.default, emphasis);\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.body2, _defineProperty({\n color: theme.palette.getContrastText(backgroundColor),\n backgroundColor: backgroundColor,\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n padding: '6px 16px',\n borderRadius: theme.shape.borderRadius,\n flexGrow: 1\n }, theme.breakpoints.up('sm'), {\n flexGrow: 'initial',\n minWidth: 288\n })),\n\n /* Styles applied to the message wrapper element. */\n message: {\n padding: '8px 0'\n },\n\n /* Styles applied to the action wrapper element if `action` is provided. */\n action: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n }\n };\n};\nvar SnackbarContent = /*#__PURE__*/React.forwardRef(function SnackbarContent(props, ref) {\n var action = props.action,\n classes = props.classes,\n className = props.className,\n message = props.message,\n _props$role = props.role,\n role = _props$role === void 0 ? 'alert' : _props$role,\n other = _objectWithoutProperties(props, [\"action\", \"classes\", \"className\", \"message\", \"role\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n role: role,\n square: true,\n elevation: 6,\n className: clsx(classes.root, className),\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"div\", {\n className: classes.message\n }, message), action ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.action\n }, action) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SnackbarContent.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 action to display. It renders after the message, at the end of the snackbar.\n */\n action: 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 message to display.\n */\n message: PropTypes.node,\n\n /**\n * The ARIA role attribute of the element.\n */\n role: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiSnackbarContent'\n})(SnackbarContent);"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","module.exports = require(\"react\");","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export const NOTIFICATION_BASE_CLASS = \"notification-item\";\n\nexport const CONTAINER = {\n BOTTOM_LEFT: \"bottom-left\",\n BOTTOM_RIGHT: \"bottom-right\",\n BOTTOM_CENTER: \"bottom-center\",\n TOP_LEFT: \"top-left\",\n TOP_RIGHT: \"top-right\",\n TOP_CENTER: \"top-center\",\n};\n\nexport const INSERTION = {\n TOP: \"top\",\n BOTTOM: \"bottom\"\n};\n\nexport const NOTIFICATION_TYPE = {\n SUCCESS: \"success\",\n DANGER: \"danger\",\n INFO: \"info\",\n DEFAULT: \"default\",\n WARNING: \"warning\"\n};\n\nexport const NOTIFICATION_STAGE = {\n // used for both sliding and animation at the same time\n SLIDING_ANIMATION_EXIT: \"SLIDING_ANIMATION_EXIT\",\n\n // used for onTouchMove/onTouchEnd to slide and animate\n TOUCH_SLIDING_ANIMATION_EXIT: \"TOUCH_SLIDING_ANIMATION_EXIT\",\n\n // used by API call to remove notification\n MANUAL_REMOVAL: \"REMOVAL\"\n};\n\nexport const REMOVAL = {\n TIMEOUT: 1,\n CLICK: 2,\n TOUCH: 3,\n MANUAL: 4\n};\n\nexport const ERROR = {\n // dismiss icon option\n DISMISS_ICON_CLASS: \"className property of dismissIcon option is required\",\n DISMISS_ICON_CONTENT: \"content property of dismissIcon option is required\",\n DISMISS_ICON_STRING: \"className property of dismissIcon option must be a String\",\n DISMISS_ICON_INVALID: \"content property of dismissIcon option must be a valid React element\",\n\n // animations\n ANIMATION_IN: \"animationIn option must be an array\",\n ANIMATION_OUT: \"animationOut option must be an array\",\n\n // dismiss\n DISMISS_REQUIRED: \"duration property of dismiss option is required\",\n DISMISS_NUMBER: \"duration property of dismiss option must be a Number\",\n DISMISS_POSITIVE: \"duration property of dismiss option must be a positive Number\",\n\n // title\n TITLE_STRING: \"title option must be a String.\",\n\n // message\n MESSAGE_REQUIRED: \"message option is required\",\n MESSAGE_STRING: \"message option must be a String\",\n\n // type\n TYPE_REQUIRED: \"type option is required\",\n TYPE_STRING: \"type option must be a String\",\n TYPE_NOT_EXISTENT: \"type option not found\",\n\n // container\n CONTAINER_REQUIRED: \"container option is required\",\n CONTAINER_STRING: \"container option must be a String\",\n\n // dismissable\n DISMISSABLE_CLICK_BOOL: \"click property of dismissable option must be a Boolean\",\n DISMISSABLE_TOUCH_BOOL: \"touch property of dismissable option must be a Boolean\",\n\n // width\n WIDTH_NUMBER: \"width option must be a Number\",\n\n // insert\n INSERT_STRING: \"insert option must be a String\",\n\n // transition\n TRANSITION_DURATION_NUMBER: \"duration property of transition option must be a Number\",\n TRANSITION_CUBICBEZIER_NUMBER: \"cubicBezier property of transition option must be a String\",\n TRANSITION_DELAY_NUMBER: \"delay property of transition option must be a Number\",\n\n // custom types\n TYPE_NOT_FOUND: \"custom type not found\"\n};\n\nexport const BREAKPOINT = 768;\n","export function cssWidth(width) {\n return width ? `${width}px` : undefined;\n}\n\nexport function isNullOrUndefined(prop) {\n return prop === null || prop === undefined;\n}\n\nexport function isString(object) {\n return typeof object === \"string\";\n}\n\nexport function isNumber(object) {\n return typeof object === \"number\";\n}\n\nexport function isBoolean(object) {\n return typeof object === \"boolean\";\n}\n\nexport function isArray(object) {\n return !isNullOrUndefined(object) && object.constructor === Array;\n}\n","import React from \"react\";\nimport {\n ERROR,\n NOTIFICATION_TYPE\n} from \"src/constants\";\nimport {\n isNullOrUndefined,\n isString,\n isNumber,\n isBoolean,\n isArray\n} from \"src/utils\";\n\nexport function validateDismissIconOption(dismissIcon) {\n // skip validation for undefined option\n if (isNullOrUndefined(dismissIcon)) return;\n\n const {\n className: iconClassName,\n content: iconContent\n } = dismissIcon;\n\n if (!iconClassName) {\n // className is required\n throw new Error(ERROR.DISMISS_ICON_CLASS);\n }\n\n if (!isString(iconClassName)) {\n // icon's `className` must be a String\n throw new Error(ERROR.DISMISS_ICON_STRING);\n }\n\n if (!iconContent) {\n // icon's content is required\n throw new Error(ERROR.DISMISS_ICON_CONTENT);\n }\n\n if (!React.isValidElement(iconContent)) {\n // icon's content must be a valid react element\n throw new Error(ERROR.DISMISS_ICON_INVALID);\n }\n}\n\nexport function validateAnimationIn(animationIn) {\n // return empty array instead of undefined\n if (isNullOrUndefined(animationIn)) return [];\n\n if (!isArray(animationIn)) {\n // option must be an Array\n throw new Error(ERROR.ANIMATION_IN);\n }\n\n return animationIn;\n}\n\nexport function validateAnimationOut(animationOut) {\n // return empty array instead of undefined\n if (isNullOrUndefined(animationOut)) return [];\n\n if (!isArray(animationOut)) {\n // option must be an Array\n throw new Error(ERROR.ANIMATION_OUT);\n }\n\n return animationOut;\n}\n\nexport function validateTimeoutDismissOption(dismiss) {\n // skip validation for undefined option\n if (!dismiss) return;\n\n if (isNullOrUndefined(dismiss.duration)) {\n // duration is required\n throw new Error(ERROR.DISMISS_REQUIRED);\n }\n\n if (!isNumber(dismiss.duration)) {\n // duration must be a Number\n throw new Error(ERROR.DISMISS_NUMBER);\n }\n\n if (dismiss.duration < 0) {\n // duration must be positive\n throw new Error(ERROR.DISMISS_POSITIVE);\n }\n}\n\nexport function validateTransition(transition, defaults) {\n const {\n duration,\n cubicBezier,\n delay\n } = defaults;\n\n const transitionOptions = transition || {};\n\n if (isNullOrUndefined(transitionOptions.duration)) {\n // set default duration\n transitionOptions.duration = duration;\n }\n\n if (isNullOrUndefined(transitionOptions.cubicBezier)) {\n // set default timing function\n transitionOptions.cubicBezier = cubicBezier;\n }\n\n if (isNullOrUndefined(transitionOptions.delay)) {\n // set default delay\n transitionOptions.delay = delay;\n }\n\n if (!isNumber(transitionOptions.duration)) {\n // throw if duration is NaN\n throw new Error(ERROR.TRANSITION_DURATION_NUMBER);\n }\n\n if (!isString(transitionOptions.cubicBezier)) {\n // throw if cubicBezier is not a String\n throw new Error(ERROR.TRANSITION_CUBICBEZIER_NUMBER);\n }\n\n if (!isNumber(transitionOptions.delay)) {\n // throw if delay is NaN\n throw new Error(ERROR.TRANSITION_DELAY_NUMBER);\n }\n\n return transitionOptions;\n}\n\nexport function validateTitle(notification) {\n const {\n content,\n title\n } = notification;\n\n // title is not required\n if (content || isNullOrUndefined(title)) return;\n\n if (!isString(title)) {\n // title must be a String if defined\n throw new Error(ERROR.TITLE_STRING);\n }\n}\n\nexport function validateMessage(notification) {\n const { content, message } = notification;\n\n // message not required\n if (content) return;\n\n if (!message) {\n // message is required\n throw new Error(ERROR.MESSAGE_REQUIRED);\n }\n\n if (!isString(message)) {\n // message must be a String\n throw new Error(ERROR.MESSAGE_STRING);\n }\n}\n\nexport function validateType(notification, userDefinedTypes) {\n const { content, type } = notification;\n\n // skip type validation\n if (content) return undefined;\n\n if (!type) {\n // type is required\n throw new Error(ERROR.TYPE_REQUIRED);\n }\n\n if (!isString(type)) {\n // type must be a String\n throw new Error(ERROR.TYPE_STRING);\n }\n\n if (\n !userDefinedTypes\n && type !== NOTIFICATION_TYPE.SUCCESS\n && type !== NOTIFICATION_TYPE.DANGER\n && type !== NOTIFICATION_TYPE.INFO\n && type !== NOTIFICATION_TYPE.DEFAULT\n && type !== NOTIFICATION_TYPE.WARNING\n ) {\n // throw error if missing type\n throw new Error(ERROR.TYPE_NOT_EXISTENT);\n }\n\n return type.toLowerCase();\n}\n\nexport function validateContainer(container) {\n if (!container) {\n // container is required\n throw new Error(ERROR.CONTAINER_REQUIRED);\n }\n\n if (!isString(container)) {\n // container must be a String\n throw new Error(ERROR.CONTAINER_STRING);\n }\n\n return container.toLowerCase();\n}\n\nexport function validateDismissable(dismissable) {\n const option = dismissable;\n\n if (!option) {\n // return default values if option is undefined\n return { click: true, touch: true };\n }\n\n if (isNullOrUndefined(option.click)) {\n // set default value\n option.click = true;\n }\n\n if (isNullOrUndefined(option.touch)) {\n // set default value\n option.touch = true;\n }\n\n if (!isBoolean(option.click)) {\n // option must be Boolean\n throw new Error(ERROR.DISMISSABLE_CLICK_BOOL);\n }\n\n if (!isBoolean(option.touch)) {\n // option must be Boolean\n throw new Error(ERROR.DISMISSABLE_TOUCH_BOOL);\n }\n\n return option;\n}\n\nexport function validateInsert(insert) {\n // set default insertion\n if (!insert) return \"top\";\n\n if (!isString(insert)) {\n // must be a String value\n throw new Error(ERROR.INSERT_STRING);\n }\n\n return insert.toLowerCase();\n}\n\nexport function validateWidth(width) {\n // width is not required\n if (isNullOrUndefined(width)) return 0;\n\n if (!isNumber(width)) {\n // width must be a valid Number\n throw new Error(ERROR.WIDTH_NUMBER);\n }\n\n return width;\n}\n\nexport function validateUserDefinedTypes(notification, definedTypes) {\n const { type } = notification;\n\n // skip validation in this case\n if (notification.content) return undefined;\n\n if (\n type === NOTIFICATION_TYPE.SUCCESS\n || type === NOTIFICATION_TYPE.DANGER\n || type === NOTIFICATION_TYPE.INFO\n || type === NOTIFICATION_TYPE.DEFAULT\n || type === NOTIFICATION_TYPE.WARNING\n || !definedTypes\n ) {\n return undefined;\n }\n\n // search for custom type in array\n if (!definedTypes.find(p => p.name === type)) {\n // custom type not found, throw exception\n throw new Error(ERROR.TYPE_NOT_FOUND);\n }\n\n return definedTypes;\n}\n","import React from \"react\";\nimport {\n ERROR,\n NOTIFICATION_BASE_CLASS,\n CONTAINER,\n INSERTION,\n NOTIFICATION_TYPE,\n NOTIFICATION_STAGE\n} from \"src/constants\";\n\nimport {\n validateDismissIconOption,\n validateAnimationIn,\n validateAnimationOut,\n validateTimeoutDismissOption,\n validateTransition,\n validateTitle,\n validateMessage,\n validateType,\n validateContainer,\n validateDismissable,\n validateInsert,\n validateWidth,\n validateUserDefinedTypes\n} from \"src/validators\";\n\nimport {\n cssWidth,\n isNullOrUndefined\n} from \"src/utils\";\n\nexport function isBottomContainer(container) {\n return (\n container === CONTAINER.BOTTOM_LEFT\n || container === CONTAINER.BOTTOM_RIGHT\n || container === CONTAINER.BOTTOM_CENTER\n );\n}\n\nexport function isTopContainer(container) {\n return (\n container === CONTAINER.TOP_LEFT\n || container === CONTAINER.TOP_RIGHT\n || container === CONTAINER.TOP_CENTER\n );\n}\n\nexport function shouldNotificationHaveSliding(notification) {\n return (\n // slide DOWN if container is top and insertion is at top\n (notification.insert === INSERTION.TOP && isTopContainer(notification.container))\n // slide UP if container is bottom and insertion is at bottom\n || (notification.insert === INSERTION.BOTTOM && isBottomContainer(notification.container))\n );\n}\n\nexport function htmlClassesForExistingType(type) {\n const lowerCaseType = type.toLowerCase();\n\n switch (lowerCaseType) {\n case NOTIFICATION_TYPE.DEFAULT:\n return [NOTIFICATION_BASE_CLASS, \"notification-default\"];\n case NOTIFICATION_TYPE.SUCCESS:\n return [NOTIFICATION_BASE_CLASS, \"notification-success\"];\n case NOTIFICATION_TYPE.DANGER:\n return [NOTIFICATION_BASE_CLASS, \"notification-danger\"];\n case NOTIFICATION_TYPE.WARNING:\n return [NOTIFICATION_BASE_CLASS, \"notification-warning\"];\n case NOTIFICATION_TYPE.INFO:\n return [NOTIFICATION_BASE_CLASS, \"notification-info\"];\n default:\n return [NOTIFICATION_BASE_CLASS];\n }\n}\n\nexport function getHtmlClassesForType(notification) {\n const {\n // option set by user\n type,\n // array value containing all custom types\n userDefinedTypes\n } = notification;\n\n if (notification.content) {\n // return only base class if type is not defined\n return [NOTIFICATION_BASE_CLASS];\n }\n\n if (!userDefinedTypes) {\n // existing type\n return htmlClassesForExistingType(type);\n }\n\n // look for custom type if any defined\n const foundType = userDefinedTypes.find(q => q.name === type);\n\n if (!foundType) {\n // custom type not found, throw error\n throw new Error(ERROR.TYPE_NOT_FOUND);\n }\n\n // append base class to html classes\n return [NOTIFICATION_BASE_CLASS].concat(foundType.htmlClasses);\n}\n\nexport function getNotificationsForMobileView(notifications) {\n const bottom = [];\n const top = [];\n\n notifications.forEach((notification) => {\n const container = notification.container.toLowerCase();\n if (isTopContainer(container)) {\n top.push(notification);\n } else if (isBottomContainer(container)) {\n bottom.push(notification);\n } else throw new Error(`Container ${notification.container} is not valid`);\n });\n\n return { top, bottom };\n}\n\nexport function getNotificationsForEachContainer(notifications) {\n const topLeft = [];\n const topRight = [];\n const topCenter = [];\n const bottomLeft = [];\n const bottomRight = [];\n const bottomCenter = [];\n\n notifications.forEach((notification) => {\n const container = notification.container.toLowerCase();\n if (container === CONTAINER.TOP_LEFT) {\n topLeft.push(notification);\n } else if (container === CONTAINER.TOP_RIGHT) {\n topRight.push(notification);\n } else if (container === CONTAINER.TOP_CENTER) {\n topCenter.push(notification);\n } else if (container === CONTAINER.BOTTOM_LEFT) {\n bottomLeft.push(notification);\n } else if (container === CONTAINER.BOTTOM_RIGHT) {\n bottomRight.push(notification);\n } else if (container === CONTAINER.BOTTOM_CENTER) {\n bottomCenter.push(notification);\n } else {\n throw new Error(`Container ${notification.container} is not valid`);\n }\n });\n\n return {\n topLeft,\n topRight,\n topCenter,\n bottomLeft,\n bottomRight,\n bottomCenter\n };\n}\n\nexport function getCubicBezierTransition(\n duration = 500,\n cubicBezier = \"linear\",\n delay = 0,\n property = \"height\"\n) {\n return `${duration}ms ${property} ${cubicBezier} ${delay}ms`;\n}\n\nexport function slidingExitTransition(notification) {\n return getCubicBezierTransition(\n notification.slidingExit.duration,\n notification.slidingExit.cubicBezier,\n notification.slidingExit.delay,\n \"all\"\n );\n}\n\nexport function touchSwipeTransition(notification) {\n const { swipe } = notification.touchSlidingExit;\n\n return getCubicBezierTransition(\n swipe.duration,\n swipe.cubicBezier,\n swipe.delay,\n \"left\"\n );\n}\n\nexport function touchFadeTransition(notification) {\n const { fade } = notification.touchSlidingExit;\n\n return getCubicBezierTransition(\n fade.duration,\n fade.cubicBezier,\n fade.delay,\n \"opacity\"\n );\n}\n\nexport function getInitialSlidingState({ notification, isFirstNotification }) {\n // no sliding needed for first notification in container\n const hasSliding = shouldNotificationHaveSliding(notification) && !isFirstNotification;\n const state = {};\n\n // set default classes for animated element\n state.animatedElementClasses = getHtmlClassesForType(notification);\n state.rootElementStyle = {\n height: \"0\",\n marginBottom: 0,\n overflow: \"hidden\",\n width: cssWidth(notification.width)\n };\n\n if (hasSliding) {\n // hide content by toggling visibility while sliding\n state.animatedElementClasses.push(\"notification-invisible\");\n } else if (notification.animationIn && notification.animationIn.length > 0) {\n // add user defined notification classes if sliding will not occur\n notification.animationIn.forEach(item => state.animatedElementClasses.push(item));\n }\n\n state.hasSliding = hasSliding;\n return state;\n}\n\nexport function getChildStyleForTouchTransitionExit(notification, startX, currentX) {\n const width = window.innerWidth * 2;\n const touchSwipe = touchSwipeTransition(notification);\n const touchFade = touchFadeTransition(notification);\n\n return {\n opacity: 0,\n position: \"relative\",\n transition: `${touchSwipe}, ${touchFade}`,\n\n // for currentX > startX\n // we slide to the right limit\n // otherwise we slide to the left limit\n left: `${currentX - startX >= 0 ? width : -width}px`\n };\n}\n\nexport function handleTouchSlidingAnimationExit(notification, currentX, startX) {\n // set current html classes\n const animatedElementClasses = getHtmlClassesForType(notification);\n // set opacity and left to pull-out notification\n const childElementStyle = getChildStyleForTouchTransitionExit(notification, startX, currentX);\n // sliding out transition\n const slidingTransition = slidingExitTransition(notification);\n\n return {\n childElementStyle,\n animatedElementClasses,\n // slide to height 0\n rootElementStyle: {\n height: 0,\n marginBottom: 0,\n transition: slidingTransition,\n width: cssWidth(notification.width)\n },\n };\n}\n\nexport function handleSlidingAnimationExit(notification) {\n const { animationOut } = notification;\n const animatedElementClasses = getHtmlClassesForType(notification);\n\n if (animationOut) {\n // add CSS classes if any defined\n animationOut.forEach(item => animatedElementClasses.push(item));\n }\n\n return {\n // slide element to height 0\n rootElementStyle: {\n height: 0,\n marginBottom: 0,\n transition: slidingExitTransition(notification),\n width: cssWidth(notification.width)\n },\n animatedElementClasses\n };\n}\n\nexport function handleStageTransition(notification, state) {\n let animatedElementClasses;\n let rootElementStyle;\n\n const {\n TOUCH_SLIDING_ANIMATION_EXIT,\n SLIDING_ANIMATION_EXIT\n } = NOTIFICATION_STAGE;\n\n const {\n animatedElementClasses: stateAnimatedElementClasses,\n rootElementStyle: stateRootStyle,\n currentX,\n startX\n } = state;\n\n if (notification.stage === TOUCH_SLIDING_ANIMATION_EXIT) {\n return handleTouchSlidingAnimationExit(notification, currentX, startX);\n }\n\n if (notification.stage === SLIDING_ANIMATION_EXIT) {\n return handleSlidingAnimationExit(notification);\n }\n\n if (notification.resized) {\n // window got resized, do not apply animations\n rootElementStyle = stateRootStyle;\n animatedElementClasses = getHtmlClassesForType(notification);\n } else {\n // use values from state\n rootElementStyle = stateRootStyle;\n animatedElementClasses = stateAnimatedElementClasses;\n }\n\n return {\n rootElementStyle,\n animatedElementClasses\n };\n}\n\nexport function hasFullySwiped(diffX) {\n const swipeLength = Math.abs(diffX);\n const requiredSwipeLength = (40 / 100) * window.innerWidth;\n\n return swipeLength >= requiredSwipeLength;\n}\n\nexport function getRootHeightStyle(notification, scrollHeight) {\n return {\n height: `${scrollHeight}px`,\n width: cssWidth(notification.width),\n transition: getCubicBezierTransition(\n notification.slidingExit.duration,\n notification.slidingExit.cubicBezier,\n notification.slidingExit.delay\n )\n };\n}\n\nexport function getIconHtmlContent(notification, onClickHandler) {\n // use icon defined by user\n if (notification.dismissIcon) {\n return (\n \n {notification.dismissIcon.content}\n \n );\n }\n\n // use standard icon\n return (\n \n ×\n \n );\n}\n\nexport function getRandomId() {\n return Math.random().toString(36).substr(2, 9);\n}\n\nexport function getNotificationOptions(options, userDefinedTypes) {\n const notification = options;\n const {\n insert,\n container,\n dismissIcon,\n animationIn,\n animationOut,\n slidingEnter,\n slidingExit,\n touchSlidingBack,\n touchSlidingExit,\n dismissable,\n dismiss,\n width,\n id\n } = notification;\n\n // Use notification id if passed or generate random ID\n notification.id = id || getRandomId();\n\n // validate notification's title\n validateTitle(notification);\n\n // validate notification's body message\n validateMessage(notification);\n\n // validate notification's type\n notification.type = validateType(notification, userDefinedTypes);\n\n if (userDefinedTypes && !notification.content) {\n // validate user defined types if any\n notification.userDefinedTypes = validateUserDefinedTypes(notification, userDefinedTypes);\n }\n\n // validate notification's container\n notification.container = validateContainer(container);\n\n // set default insertion\n notification.insert = validateInsert(insert);\n\n // set default dismissable options\n notification.dismissable = validateDismissable(dismissable);\n\n // assert `dismissIcon` matches rules\n validateDismissIconOption(dismissIcon);\n\n // validate `animationIn` array\n notification.animationIn = validateAnimationIn(animationIn);\n\n // validate `animationOut` array\n notification.animationOut = validateAnimationOut(animationOut);\n\n if (!isNullOrUndefined(width)) {\n // set width option only if defined\n notification.width = validateWidth(width);\n }\n\n // defaults\n const slidingEnterDefaults = { duration: 600, cubicBezier: \"linear\", delay: 0 };\n const slidingExitDefaults = { duration: 600, cubicBezier: \"linear\", delay: 0 };\n const swipeBackDefaults = { duration: 600, cubicBezier: \"ease-in\", delay: 0 };\n const swipeExitDefaults = { duration: 600, cubicBezier: \"ease-in\", delay: 0 };\n const swipeCompleteDefaults = { duration: 300, cubicBezier: \"ease-in\", delay: 0 };\n\n // set defaults for sliding enter transition\n notification.slidingEnter = validateTransition(slidingEnter, slidingEnterDefaults);\n\n // set defaults for sliding exit transition\n notification.slidingExit = validateTransition(slidingExit, slidingExitDefaults);\n\n // set defaults for sliding back on touchEnd/touchCancel\n notification.touchSlidingBack = validateTransition(touchSlidingBack, swipeBackDefaults);\n\n // let it empty object if undefined\n notification.touchSlidingExit = touchSlidingExit || {};\n\n // set defaults for swipe transition when swipe is complete\n notification.touchSlidingExit.swipe = validateTransition(\n notification.touchSlidingExit.swipe || {},\n swipeExitDefaults\n );\n\n // set defaults for fade transition when swipe is complete\n notification.touchSlidingExit.fade = validateTransition(\n notification.touchSlidingExit.fade || {},\n swipeCompleteDefaults\n );\n\n // assert `dismiss` matches rules\n validateTimeoutDismissOption(dismiss);\n\n return notification;\n}\n","import React from \"react\";\nimport { NOTIFICATION_STAGE } from \"src/constants\";\nimport { cssWidth } from \"src/utils\";\nimport {\n getHtmlClassesForType,\n handleStageTransition,\n getCubicBezierTransition,\n hasFullySwiped,\n getRootHeightStyle,\n getInitialSlidingState,\n getIconHtmlContent\n} from \"src/helpers\";\n\nexport default class ReactNotification extends React.Component {\n constructor(props) {\n super(props);\n\n this.endOfSmartSliding = false;\n\n // methods binding\n this.onTransitionEnd = this.onTransitionEnd.bind(this);\n this.onNotificationClick = this.onNotificationClick.bind(this);\n this.setDismissTimeout = this.setDismissTimeout.bind(this);\n\n // smart sliding end\n this.onSmartSlidingEnd = this.onSmartSlidingEnd.bind(this);\n this.onTouchSmartSlidingEnd = this.onTouchSmartSlidingEnd.bind(this);\n\n // touch events\n this.onTouchStart = this.onTouchStart.bind(this);\n this.onTouchMove = this.onTouchMove.bind(this);\n this.onTouchEnd = this.onTouchEnd.bind(this);\n\n // ref elements\n this.rootDOM = React.createRef();\n\n // component's state\n this.state = getInitialSlidingState(props);\n }\n\n componentDidMount() {\n // start sliding\n this.smartSliding();\n\n // set notification to be dismissed by timeout\n this.setRemovalTimeout(this.props.notification.dismiss);\n }\n\n componentWillUnmount() {\n if (this.timeoutId) {\n this.timeoutId = clearTimeout(this.timeoutId);\n }\n }\n\n setDismissTimeout(duration) {\n // timeout handler\n const timeoutDismissHandler = () => {\n const { notification, toggleTimeoutRemoval } = this.props;\n\n // skip timeout removal if it's already in a removal process\n if (notification.stage === NOTIFICATION_STAGE.MANUAL_REMOVAL\n || notification.stage === NOTIFICATION_STAGE.TOUCH_SLIDING_ANIMATION_EXIT) return;\n\n this.setState({\n rootElementStyle: getRootHeightStyle(\n notification,\n this.rootDOM.current.scrollHeight\n )\n }, () => requestAnimationFrame(() => toggleTimeoutRemoval(notification)));\n };\n\n // set timeout to automatically dismiss notification\n this.timeoutId = setTimeout(timeoutDismissHandler, duration);\n }\n\n setRemovalTimeout(dismiss) {\n if (dismiss && dismiss.duration > 0) {\n // make sure option is defined and set\n this.setDismissTimeout(dismiss.duration);\n }\n }\n\n onTransitionEnd() {\n // sliding has finished, we need to add CSS classes to animate\n\n const { notification } = this.props;\n const { animationIn } = notification;\n\n // get html classes for type\n let animatedElementClasses = getHtmlClassesForType(notification);\n\n // make element visible now\n animatedElementClasses.push(\"notification-visible\");\n\n // append animation classes\n animatedElementClasses = animatedElementClasses.concat(animationIn || []);\n\n this.setState({\n animatedElementClasses,\n rootElementStyle: {\n height: \"auto\",\n width: cssWidth(notification.width)\n }\n });\n }\n\n onTouchSmartSlidingEnd(e) {\n // stop propagation of transitionEnd\n e.stopPropagation();\n\n if (!e.target.isSameNode(this.rootDOM.current)) {\n // skip if target is rootDOM node\n return;\n }\n\n if (this.endOfSmartSliding) {\n // remove notification\n this.props.toggleRemoval(this.props.notification);\n }\n\n // both animation and sliding have finished\n this.endOfSmartSliding = true;\n }\n\n onSmartSlidingEnd() {\n const { notification } = this.props;\n\n if (\n !notification.animationOut\n || !notification.animationOut.length\n || this.endOfSmartSliding\n ) {\n this.props.toggleRemoval(notification);\n }\n\n // both animationEnd and transitionEnd have finished\n this.endOfSmartSliding = true;\n }\n\n smartSliding() {\n const { notification } = this.props;\n const { slidingEnter } = notification;\n\n const animatedElementClasses = getHtmlClassesForType(notification);\n const rootElementStyle = {\n // set sliding transition unless `resize` event has been fired\n // in which case we no longer slide nor animate\n transition: notification.resized\n ? undefined\n : getCubicBezierTransition(\n slidingEnter.duration,\n slidingEnter.cubicBezier,\n slidingEnter.delay\n ),\n\n // overwrite notification's width\n width: cssWidth(notification.width),\n\n // set height instead of auto\n height: `${this.rootDOM.current.scrollHeight}px`\n };\n\n // if `resize` has been fired then no animation is going to happen\n if (!notification.resized\n && notification.animationIn\n && notification.animationIn.length > 0) {\n notification.animationIn.forEach(item => animatedElementClasses.push(item));\n }\n\n this.setState({\n rootElementStyle,\n animatedElementClasses\n });\n }\n\n onNotificationClick() {\n const { notification } = this.props;\n\n const rootElementStyle = getRootHeightStyle(\n notification,\n this.rootDOM.current.scrollHeight\n );\n\n this.setState({\n rootElementStyle\n }, () => requestAnimationFrame(() => {\n this.props.onClickHandler(notification);\n }));\n }\n\n onTouchStart(e) {\n this.setState({\n startX: e.touches[0].pageX,\n currentX: e.touches[0].pageX\n });\n }\n\n onTouchMove(e) {\n const {\n notification,\n toggleTouchEnd\n } = this.props;\n\n // distance between start and current\n const distance = e.touches[0].pageX - this.state.startX;\n\n if (hasFullySwiped(distance)) {\n // move notification to the left/right by changing style\n this.setState({\n animatedElementClasses: getHtmlClassesForType(notification),\n rootElementStyle: getRootHeightStyle(\n notification,\n this.rootDOM.current.scrollHeight\n )\n }, () => {\n // remove notification from state\n requestAnimationFrame(() => toggleTouchEnd(notification));\n });\n return;\n }\n\n // swiping is still in place\n this.setState({\n currentX: e.touches[0].pageX,\n childElementStyle: {\n position: \"relative\",\n left: `${0 + distance}px`\n }\n });\n }\n\n onTouchEnd() {\n const { touchSlidingBack } = this.props.notification;\n\n this.setState({\n childElementStyle: {\n left: \"0\",\n position: \"relative\",\n transition: getCubicBezierTransition(\n touchSlidingBack.duration,\n touchSlidingBack.cubicBezier,\n touchSlidingBack.delay,\n \"left\"\n )\n }\n });\n }\n\n render() {\n const { notification } = this.props;\n let { childElementStyle } = this.state;\n let { onAnimationEnd } = this;\n let onNotificationClick = null;\n let touchHasEnded = false;\n\n // set onTransitionEnd event if notification has sliding\n let onTransitionEnd = this.state.hasSliding\n ? this.onTransitionEnd\n : null;\n\n const stage = handleStageTransition(notification, this.state);\n const animatedElementClasses = (stage.animatedElementClasses || []).join(\" \");\n let { rootElementStyle } = stage;\n\n // set `onClick` event if notification is dismissable\n if (notification.dismissable.click) {\n ({ onNotificationClick } = this);\n }\n\n if (notification.stage === NOTIFICATION_STAGE.MANUAL_REMOVAL) {\n onAnimationEnd = null;\n rootElementStyle = getRootHeightStyle(notification, this.rootDOM.current.scrollHeight);\n } else if (notification.stage === NOTIFICATION_STAGE.SLIDING_ANIMATION_EXIT) {\n onAnimationEnd = this.onSmartSlidingEnd;\n onTransitionEnd = this.onSmartSlidingEnd;\n } else if (notification.stage === NOTIFICATION_STAGE.TOUCH_SLIDING_ANIMATION_EXIT) {\n onAnimationEnd = this.onTouchSmartSlidingEnd;\n onTransitionEnd = this.onTouchSmartSlidingEnd;\n onNotificationClick = null;\n ({ childElementStyle } = stage);\n touchHasEnded = true;\n }\n\n if (notification.content) {\n return (\n \n \n {notification.content}\n \n \n );\n }\n\n const icon = \n ×\n ;\n\n const htmlCloseIconContent = notification.dismissIcon\n ? getIconHtmlContent(notification, this.onNotificationClick)\n : icon;\n\n let notificationTitle;\n if (notification.title) {\n notificationTitle =

{notification.title}

;\n }\n\n return (\n \n \n
\n {htmlCloseIconContent}\n {notificationTitle}\n

\n {this.props.notification.message}\n

\n
\n \n \n );\n }\n}\n","import React from \"react\";\nimport ReactNotification from \"src/react-notification\";\nimport PropTypes from \"prop-types\";\nimport { isArray } from \"src/utils\";\n\nimport {\n INSERTION,\n NOTIFICATION_STAGE,\n REMOVAL,\n BREAKPOINT\n} from \"src/constants\";\n\nimport {\n getNotificationsForEachContainer,\n getNotificationsForMobileView,\n getNotificationOptions\n} from \"src/helpers\";\n\n// react-notifications-component theme\nimport \"src/scss/notification.scss\";\n\nclass ReactNotificationComponent extends React.Component {\n static propTypes = {\n // option for responsiveness (defaults to true)\n isMobile: PropTypes.bool,\n // responsiveness breakpoint (defaults to 768)\n breakpoint: PropTypes.number,\n types: PropTypes.array,\n onNotificationRemoval: PropTypes.func\n }\n\n static defaultProps = {\n isMobile: true,\n breakpoint: BREAKPOINT\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n isMobile: props.isMobile,\n breakpoint: props.breakpoint,\n // notifications array data\n notifications: []\n };\n\n if (isArray(props.types)) {\n // check for custom types\n this.state.userDefinedTypes = props.types;\n }\n\n this.addNotification = this.addNotification.bind(this);\n this.onNotificationClick = this.onNotificationClick.bind(this);\n this.toggleRemoval = this.toggleRemoval.bind(this);\n this.toggleTimeoutRemoval = this.toggleTimeoutRemoval.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.renderReactNotifications = this.renderReactNotifications.bind(this);\n this.toggleTouchEnd = this.toggleTouchEnd.bind(this);\n }\n\n componentDidMount() {\n this.setState({\n width: window.innerWidth\n }, () => {\n // add listener for `resize` event\n window.addEventListener(\"resize\", this.handleResize);\n });\n }\n\n componentWillUnmount() {\n this.mounted = false;\n }\n\n handleResize() {\n this.setState({\n width: window.innerWidth,\n notifications: this.state.notifications.map(notification => {\n notification.resized = true;\n return notification;\n })\n });\n }\n\n toggleTimeoutRemoval(notification) {\n const { SLIDING_ANIMATION_EXIT } = NOTIFICATION_STAGE;\n const { TIMEOUT } = REMOVAL;\n\n this.setState({\n notifications: this.state.notifications.map(item => {\n if (item.id === notification.id) {\n // set stage flag\n item.stage = SLIDING_ANIMATION_EXIT;\n // set removal flag\n item.removedBy = TIMEOUT;\n }\n\n return item;\n })\n });\n }\n\n // API call\n addNotification(object) {\n // call will throw exception if object does not match rules\n const notification = getNotificationOptions(\n object,\n // we need this to validate custom types if any\n this.state.userDefinedTypes\n );\n\n this.setState((prevState) => ({\n notifications:\n notification.insert === INSERTION.TOP\n ? [notification, ...prevState.notifications]\n : [...prevState.notifications, notification]\n }));\n\n return notification.id;\n }\n\n // API call\n removeNotification(id) {\n this.setState({\n notifications: this.state.notifications.map(item => {\n if (item.id === id) {\n // set stage flag\n item.stage = NOTIFICATION_STAGE.MANUAL_REMOVAL;\n // set removal flag\n item.removedBy = REMOVAL.API;\n }\n\n return item;\n })\n }, () => {\n requestAnimationFrame(() => {\n this.setState({\n notifications: this.state.notifications.map(item => {\n if (item.id === id) {\n // set stage flag\n item.stage = NOTIFICATION_STAGE.SLIDING_ANIMATION_EXIT;\n // set removal flag\n item.removedBy = REMOVAL.API;\n }\n\n return item;\n })\n });\n });\n });\n }\n\n onNotificationClick(notification) {\n const { dismissable, dismissIcon } = notification;\n const dismissByClick = dismissable && dismissable.click;\n\n if (dismissByClick || dismissIcon) {\n requestAnimationFrame(() => {\n this.setState({\n notifications: this.state.notifications.map(item => {\n if (item.id === notification.id) {\n // set stage flag\n item.stage = NOTIFICATION_STAGE.SLIDING_ANIMATION_EXIT;\n // set removal flag\n item.removedBy = REMOVAL.CLICK;\n }\n\n return item;\n })\n });\n });\n }\n }\n\n // called after a full swipe in order to remove notification from state\n toggleTouchEnd(notification) {\n const { TOUCH_SLIDING_ANIMATION_EXIT } = NOTIFICATION_STAGE;\n\n this.setState({\n notifications: this.state.notifications.map(item => {\n if (item.id === notification.id) {\n // set stage flag\n item.stage = TOUCH_SLIDING_ANIMATION_EXIT;\n // set removal flag\n item.removedBy = REMOVAL.TOUCH;\n }\n\n return item;\n })\n });\n }\n\n toggleRemoval(notification) {\n this.setState({\n notifications: this.state.notifications.filter(item => item.id !== notification.id)\n }, () => {\n if (this.props.onNotificationRemoval) {\n this.props.onNotificationRemoval(notification.id, notification.removedBy);\n }\n });\n }\n\n renderReactNotifications(notifications) {\n return notifications.map(notification => );\n }\n\n render() {\n const {\n state,\n props\n } = this;\n\n if (props.isMobile && state.width <= state.breakpoint) {\n const mobileNotifications = getNotificationsForMobileView(state.notifications);\n const top = this.renderReactNotifications(mobileNotifications.top);\n const bottom = this.renderReactNotifications(mobileNotifications.bottom);\n\n return (\n
\n
\n {top}\n
\n
\n {bottom}\n
\n
\n );\n }\n\n const notificationsPerContainer = getNotificationsForEachContainer(state.notifications);\n const topLeft = this.renderReactNotifications(notificationsPerContainer.topLeft);\n const topRight = this.renderReactNotifications(notificationsPerContainer.topRight);\n const topCenter = this.renderReactNotifications(notificationsPerContainer.topCenter);\n const bottomLeft = this.renderReactNotifications(notificationsPerContainer.bottomLeft);\n const bottomRight = this.renderReactNotifications(notificationsPerContainer.bottomRight);\n const bottomCenter = this.renderReactNotifications(notificationsPerContainer.bottomCenter);\n\n return (\n
\n
\n {topLeft}\n
\n
\n {topRight}\n
\n
\n {bottomLeft}\n
\n
\n {bottomRight}\n
\n
\n {topCenter}\n
\n
\n {bottomCenter}\n
\n
\n );\n }\n}\n\nexport default ReactNotificationComponent;\n"],"sourceRoot":""}