{"version":3,"sources":["webpack:///./node_modules/react-transition-group/esm/config.js","webpack:///./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack:///./node_modules/react-transition-group/esm/Transition.js","webpack:///./node_modules/react-transition-group/esm/utils/reflow.js","webpack:///./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack:///./node_modules/react-transition-group/esm/TransitionGroup.js","webpack:///./node_modules/react-toastify/esm/react-toastify.js"],"names":["React","createContext","Transition","_React$Component","props","context","_this","call","this","initialStatus","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","state","status","nextCallback","_inheritsLoose","getDerivedStateFromProps","_ref","prevState","_proto","prototype","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","timeout","undefined","mounting","node","nodeRef","current","ReactDOM","findDOMNode","scrollTop","forceReflow","performEnter","performExit","setState","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","config","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","callback","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","setTimeout","render","_this$props","children","childProps","_objectWithoutPropertiesLoose","createElement","TransitionGroupContext","Provider","value","cloneElement","Children","only","Component","noop","contextType","propTypes","defaultProps","in","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","getChildMapping","mapFn","result","Object","create","map","c","forEach","child","key","isValidElement","mapper","getProp","prop","getNextChildMapping","nextProps","prevChildMapping","nextChildMapping","prev","next","getValueForKey","i","nextKeysPending","pendingKeys","prevKey","length","push","childMapping","nextKey","pendingNextKey","mergeChildMappings","keys","hasPrev","hasNext","prevChild","isLeaving","bind","values","obj","k","TransitionGroup","handleExited","_assertThisInitialized","contextValue","firstRender","mounted","currentChildMapping","_extends","component","childFactory","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","WARNING","ERROR","DEFAULT","ACTION","NOOP","isValidDelay","val","isNaN","objectValues","canUseDom","window","document","fn","falseOrDelay","propName","componentName","Error","isRequired","eventManager","list","Map","emitQueue","on","has","set","get","off","cancelEmit","timers","timer","clearTimeout","emit","_len","arguments","args","Array","_key","apply","cssTransition","_ref$duration","duration","_ref$appendPosition","appendPosition","enterDuration","exitDuration","position","preventExitTransition","enterClassName","exitClassName","isArray","classList","add","style","animationFillMode","animationDuration","remove","cssText","ProgressBar","_cx","_animationEvent","delay","isRunning","closeToast","type","hide","className","userStyle","controlledProgress","progress","rtl","animationPlayState","opacity","transform","classNames","cx","RT_NAMESPACE","animationEvent","getX","e","targetTouches","clientX","getY","clientY","PropTypes","bool","func","string","oneOfType","object","number","iLoveInternetExplorer","test","navigator","userAgent","Toast","_Component","concat","flag","canCloseOnClick","canDrag","drag","start","x","y","deltaX","removalDistance","boundingRect","ref","pauseToast","autoClose","playToast","onDragStart","getBoundingClientRect","transition","nativeEvent","offsetWidth","draggablePercent","onDragMove","Math","abs","onDragEnd","onDragTransitionEnd","_this$boundingRect","top","bottom","left","right","pauseOnHover","onExitTransitionEnd","height","scrollHeight","requestAnimationFrame","minHeight","padding","margin","onOpen","draggable","bindDragEvents","pauseOnFocusLoss","bindFocusEvents","unbindDragEvents","unbindFocusEvents","onClose","addEventListener","removeEventListener","closeButton","onClick","closeOnClick","hideProgressBar","bodyClassName","progressClassName","progressStyle","updateId","role","toastProps","onMouseEnter","onMouseLeave","parseFloat","onMouseDown","onTouchStart","onMouseUp","onTouchEnd","CloseButton","ariaLabel","stopPropagation","oneOf","containerId","arialLabel","Bounce","ToastContainer","toast","toastKey","collection","isToastActive","id","indexOf","content","options","buildToast","clear","removeToast","filter","v","dispatchChange","makeCloseButton","toastClose","toastId","getAutoCloseDelay","toastAutoClose","canBeRendered","parseClassName","toString","belongToContainer","enableMultiContainer","toastOptions","toastClassName","appendToast","staleToastId","_extends2","renderToast","_this5","toastToRender","newestOnTop","reverse","_this5$collection$toa","isDocumentHidden","disablePointer","pointerEvents","_this6","containers","latestInstance","containerDomNode","containerConfig","queue","lazy","isAnyContainerMounted","size","getToast","container","getContainer","mergeOptions","getToastId","generateToastId","random","Date","now","substr","dispatchToast","action","body","appendChild","_loop","t","toLowerCase","warn","warning","dismiss","isActive","update","oldOptions","oldContent","nextOptions","done","onChange","configure","containerInstance","item","removeChild"],"mappings":"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","file":"0.856d9489ac0f0bda1a4b.js","sourcesContent":["export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","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;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React, { Component, isValidElement, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Transition, TransitionGroup } from 'react-transition-group';\nimport { render } from 'react-dom';\n\nvar POSITION = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\nvar TYPE = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\nvar ACTION = {\n SHOW: 0,\n CLEAR: 1,\n DID_MOUNT: 2,\n WILL_UNMOUNT: 3,\n ON_CHANGE: 4\n};\nvar NOOP = function NOOP() {};\nvar RT_NAMESPACE = 'Toastify';\n\nfunction isValidDelay(val) {\n return typeof val === 'number' && !isNaN(val) && val > 0;\n}\nfunction objectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n}\nvar canUseDom = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withRequired(fn) {\n fn.isRequired = function (props, propName, componentName) {\n var prop = props[propName];\n\n if (typeof prop === 'undefined') {\n return new Error(\"The prop \" + propName + \" is marked as required in \\n \" + componentName + \", but its value is undefined.\");\n }\n\n fn(props, propName, componentName);\n };\n\n return fn;\n}\n\nvar falseOrDelay = withRequired(function (props, propName, componentName) {\n var prop = props[propName];\n\n if (prop !== false && !isValidDelay(prop)) {\n return new Error(componentName + \" expect \" + propName + \" \\n to be a valid Number > 0 or equal to false. \" + prop + \" given.\");\n }\n\n return null;\n});\n\nvar eventManager = {\n list: new Map(),\n emitQueue: new Map(),\n on: function on(event, callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event).push(callback);\n return this;\n },\n off: function off(event) {\n this.list.delete(event);\n return this;\n },\n cancelEmit: function cancelEmit(event) {\n var timers = this.emitQueue.get(event);\n\n if (timers) {\n timers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n this.emitQueue.delete(event);\n }\n\n return this;\n },\n\n /**\n * Enqueue the event at the end of the call stack\n * Doing so let the user call toast as follow:\n * toast('1')\n * toast('2')\n * toast('3')\n * Without setTimemout the code above will not work\n */\n emit: function emit(event) {\n var _this = this;\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 this.list.has(event) && this.list.get(event).forEach(function (callback) {\n var timer = setTimeout(function () {\n callback.apply(void 0, args);\n }, 0);\n _this.emitQueue.has(event) || _this.emitQueue.set(event, []);\n\n _this.emitQueue.get(event).push(timer);\n });\n }\n};\n\nfunction cssTransition(_ref) {\n var enter = _ref.enter,\n exit = _ref.exit,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 750 : _ref$duration,\n _ref$appendPosition = _ref.appendPosition,\n appendPosition = _ref$appendPosition === void 0 ? false : _ref$appendPosition;\n return function Animation(_ref2) {\n var children = _ref2.children,\n position = _ref2.position,\n preventExitTransition = _ref2.preventExitTransition,\n props = _objectWithoutPropertiesLoose(_ref2, [\"children\", \"position\", \"preventExitTransition\"]);\n\n var enterClassName = appendPosition ? enter + \"--\" + position : enter;\n var exitClassName = appendPosition ? exit + \"--\" + position : exit;\n var enterDuration, exitDuration;\n\n if (Array.isArray(duration) && duration.length === 2) {\n enterDuration = duration[0];\n exitDuration = duration[1];\n } else {\n enterDuration = exitDuration = duration;\n }\n\n var onEnter = function onEnter(node) {\n node.classList.add(enterClassName);\n node.style.animationFillMode = 'forwards';\n node.style.animationDuration = enterDuration * 0.001 + \"s\";\n };\n\n var onEntered = function onEntered(node) {\n node.classList.remove(enterClassName);\n node.style.cssText = '';\n };\n\n var onExit = function onExit(node) {\n node.classList.add(exitClassName);\n node.style.animationFillMode = 'forwards';\n node.style.animationDuration = exitDuration * 0.001 + \"s\";\n };\n\n return React.createElement(Transition, _extends({}, props, {\n timeout: preventExitTransition ? 0 : {\n enter: enterDuration,\n exit: exitDuration\n },\n onEnter: onEnter,\n onEntered: onEntered,\n onExit: preventExitTransition ? NOOP : onExit\n }), children);\n };\n}\n\nfunction ProgressBar(_ref) {\n var _cx, _animationEvent;\n\n var delay = _ref.delay,\n isRunning = _ref.isRunning,\n closeToast = _ref.closeToast,\n type = _ref.type,\n hide = _ref.hide,\n className = _ref.className,\n userStyle = _ref.style,\n controlledProgress = _ref.controlledProgress,\n progress = _ref.progress,\n rtl = _ref.rtl;\n\n var style = _extends({}, userStyle, {\n animationDuration: delay + \"ms\",\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1,\n transform: controlledProgress ? \"scaleX(\" + progress + \")\" : null\n });\n\n var classNames = cx(RT_NAMESPACE + \"__progress-bar\", controlledProgress ? RT_NAMESPACE + \"__progress-bar--controlled\" : RT_NAMESPACE + \"__progress-bar--animated\", RT_NAMESPACE + \"__progress-bar--\" + type, (_cx = {}, _cx[RT_NAMESPACE + \"__progress-bar--rtl\"] = rtl, _cx), className);\n var animationEvent = (_animationEvent = {}, _animationEvent[controlledProgress && progress >= 1 ? 'onTransitionEnd' : 'onAnimationEnd'] = controlledProgress && progress < 1 ? null : closeToast, _animationEvent);\n return React.createElement(\"div\", _extends({\n className: classNames,\n style: style\n }, animationEvent));\n}\n\nProgressBar.propTypes = {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: falseOrDelay.isRequired,\n\n /**\n * Whether or not the animation is running or paused\n */\n isRunning: PropTypes.bool.isRequired,\n\n /**\n * Func to close the current toast\n */\n closeToast: PropTypes.func.isRequired,\n\n /**\n * Support rtl content\n */\n rtl: PropTypes.bool.isRequired,\n\n /**\n * Optional type : info, success ...\n */\n type: PropTypes.string,\n\n /**\n * Hide or not the progress bar\n */\n hide: PropTypes.bool,\n\n /**\n * Optionnal className\n */\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * Controlled progress value\n */\n progress: PropTypes.number,\n\n /**\n * Tell wether or not controlled progress bar is used\n */\n controlledProgress: PropTypes.bool\n};\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n\nfunction getX(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX;\n}\n\nfunction getY(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY;\n}\n\nvar iLoveInternetExplorer = canUseDom && /(msie|trident)/i.test(navigator.userAgent);\n\nvar Toast =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Toast, _Component);\n\n function Toast() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n isRunning: true,\n preventExitTransition: false\n };\n _this.flag = {\n canCloseOnClick: true,\n canDrag: false\n };\n _this.drag = {\n start: 0,\n x: 0,\n y: 0,\n deltaX: 0,\n removalDistance: 0\n };\n _this.boundingRect = null;\n _this.ref = null;\n\n _this.pauseToast = function () {\n if (_this.props.autoClose) {\n _this.setState({\n isRunning: false\n });\n }\n };\n\n _this.playToast = function () {\n if (_this.props.autoClose) {\n _this.setState({\n isRunning: true\n });\n }\n };\n\n _this.onDragStart = function (e) {\n _this.flag.canCloseOnClick = true;\n _this.flag.canDrag = true;\n _this.boundingRect = _this.ref.getBoundingClientRect();\n _this.ref.style.transition = '';\n _this.drag.start = _this.drag.x = getX(e.nativeEvent);\n _this.drag.removalDistance = _this.ref.offsetWidth * (_this.props.draggablePercent / 100);\n };\n\n _this.onDragMove = function (e) {\n if (_this.flag.canDrag) {\n if (_this.state.isRunning) {\n _this.pauseToast();\n }\n\n _this.drag.x = getX(e);\n _this.drag.deltaX = _this.drag.x - _this.drag.start;\n _this.drag.y = getY(e); // prevent false positif during a toast click\n\n _this.drag.start !== _this.drag.x && (_this.flag.canCloseOnClick = false);\n _this.ref.style.transform = \"translateX(\" + _this.drag.deltaX + \"px)\";\n _this.ref.style.opacity = 1 - Math.abs(_this.drag.deltaX / _this.drag.removalDistance);\n }\n };\n\n _this.onDragEnd = function (e) {\n if (_this.flag.canDrag) {\n _this.flag.canDrag = false;\n\n if (Math.abs(_this.drag.deltaX) > _this.drag.removalDistance) {\n _this.setState({\n preventExitTransition: true\n }, _this.props.closeToast);\n\n return;\n }\n\n _this.ref.style.transition = 'transform 0.2s, opacity 0.2s';\n _this.ref.style.transform = 'translateX(0)';\n _this.ref.style.opacity = 1;\n }\n };\n\n _this.onDragTransitionEnd = function () {\n if (_this.boundingRect) {\n var _this$boundingRect = _this.boundingRect,\n top = _this$boundingRect.top,\n bottom = _this$boundingRect.bottom,\n left = _this$boundingRect.left,\n right = _this$boundingRect.right;\n\n if (_this.props.pauseOnHover && _this.drag.x >= left && _this.drag.x <= right && _this.drag.y >= top && _this.drag.y <= bottom) {\n _this.pauseToast();\n } else {\n _this.playToast();\n }\n }\n };\n\n _this.onExitTransitionEnd = function () {\n if (iLoveInternetExplorer) {\n _this.props.onExited();\n\n return;\n }\n\n var height = _this.ref.scrollHeight;\n var style = _this.ref.style;\n requestAnimationFrame(function () {\n style.minHeight = 'initial';\n style.height = height + 'px';\n style.transition = 'all 0.4s ';\n requestAnimationFrame(function () {\n style.height = 0;\n style.padding = 0;\n style.margin = 0;\n });\n setTimeout(function () {\n return _this.props.onExited();\n }, 400);\n });\n };\n\n return _this;\n }\n\n var _proto = Toast.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.onOpen(this.props.children.props);\n\n if (this.props.draggable) {\n this.bindDragEvents();\n } // Maybe I could bind the event in the ToastContainer and rely on delegation\n\n\n if (this.props.pauseOnFocusLoss) {\n this.bindFocusEvents();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.draggable !== this.props.draggable) {\n if (this.props.draggable) {\n this.bindDragEvents();\n } else {\n this.unbindDragEvents();\n }\n }\n\n if (prevProps.pauseOnFocusLoss !== this.props.pauseOnFocusLoss) {\n if (this.props.pauseOnFocusLoss) {\n this.bindFocusEvents();\n } else {\n this.unbindFocusEvents();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.onClose(this.props.children.props);\n\n if (this.props.draggable) {\n this.unbindDragEvents();\n }\n\n if (this.props.pauseOnFocusLoss) {\n this.unbindFocusEvents();\n }\n };\n\n _proto.bindFocusEvents = function bindFocusEvents() {\n window.addEventListener('focus', this.playToast);\n window.addEventListener('blur', this.pauseToast);\n };\n\n _proto.unbindFocusEvents = function unbindFocusEvents() {\n window.removeEventListener('focus', this.playToast);\n window.removeEventListener('blur', this.pauseToast);\n };\n\n _proto.bindDragEvents = function bindDragEvents() {\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.onDragEnd);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.onDragEnd);\n };\n\n _proto.unbindDragEvents = function unbindDragEvents() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.onDragEnd);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.onDragEnd);\n };\n\n _proto.render = function render() {\n var _cx,\n _this2 = this;\n\n var _this$props = this.props,\n closeButton = _this$props.closeButton,\n children = _this$props.children,\n autoClose = _this$props.autoClose,\n pauseOnHover = _this$props.pauseOnHover,\n onClick = _this$props.onClick,\n closeOnClick = _this$props.closeOnClick,\n type = _this$props.type,\n hideProgressBar = _this$props.hideProgressBar,\n closeToast = _this$props.closeToast,\n Transition = _this$props.transition,\n position = _this$props.position,\n className = _this$props.className,\n bodyClassName = _this$props.bodyClassName,\n progressClassName = _this$props.progressClassName,\n progressStyle = _this$props.progressStyle,\n updateId = _this$props.updateId,\n role = _this$props.role,\n progress = _this$props.progress,\n rtl = _this$props.rtl;\n var toastProps = {\n className: cx(RT_NAMESPACE + \"__toast\", RT_NAMESPACE + \"__toast--\" + type, (_cx = {}, _cx[RT_NAMESPACE + \"__toast--rtl\"] = rtl, _cx), className)\n };\n\n if (autoClose && pauseOnHover) {\n toastProps.onMouseEnter = this.pauseToast;\n toastProps.onMouseLeave = this.playToast;\n } // prevent toast from closing when user drags the toast\n\n\n if (closeOnClick) {\n toastProps.onClick = function (e) {\n onClick && onClick(e);\n _this2.flag.canCloseOnClick && closeToast();\n };\n }\n\n var controlledProgress = parseFloat(progress) === progress;\n return React.createElement(Transition, {\n in: this.props.in,\n appear: true,\n onExited: this.onExitTransitionEnd,\n position: position,\n preventExitTransition: this.state.preventExitTransition\n }, React.createElement(\"div\", _extends({\n onClick: onClick\n }, toastProps, {\n ref: function ref(_ref) {\n return _this2.ref = _ref;\n },\n onMouseDown: this.onDragStart,\n onTouchStart: this.onDragStart,\n onMouseUp: this.onDragTransitionEnd,\n onTouchEnd: this.onDragTransitionEnd\n }), React.createElement(\"div\", _extends({}, this.props.in && {\n role: role\n }, {\n className: cx(RT_NAMESPACE + \"__toast-body\", bodyClassName)\n }), children), closeButton && closeButton, (autoClose || controlledProgress) && React.createElement(ProgressBar, _extends({}, updateId && !controlledProgress ? {\n key: \"pb-\" + updateId\n } : {}, {\n rtl: rtl,\n delay: autoClose,\n isRunning: this.state.isRunning,\n closeToast: closeToast,\n hide: hideProgressBar,\n type: type,\n style: progressStyle,\n className: progressClassName,\n controlledProgress: controlledProgress,\n progress: progress\n }))));\n };\n\n return Toast;\n}(Component);\n\nToast.propTypes = {\n closeButton: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]).isRequired,\n autoClose: falseOrDelay.isRequired,\n children: PropTypes.node.isRequired,\n closeToast: PropTypes.func.isRequired,\n position: PropTypes.oneOf(objectValues(POSITION)).isRequired,\n pauseOnHover: PropTypes.bool.isRequired,\n pauseOnFocusLoss: PropTypes.bool.isRequired,\n closeOnClick: PropTypes.bool.isRequired,\n transition: PropTypes.func.isRequired,\n rtl: PropTypes.bool.isRequired,\n hideProgressBar: PropTypes.bool.isRequired,\n draggable: PropTypes.bool.isRequired,\n draggablePercent: PropTypes.number.isRequired,\n in: PropTypes.bool,\n onExited: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n type: PropTypes.oneOf(objectValues(TYPE)),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n bodyClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n progressClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n progressStyle: PropTypes.object,\n progress: PropTypes.number,\n updateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n ariaLabel: PropTypes.string,\n containerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n role: PropTypes.string\n};\nToast.defaultProps = {\n type: TYPE.DEFAULT,\n in: true,\n onOpen: NOOP,\n onClose: NOOP,\n className: null,\n bodyClassName: null,\n progressClassName: null,\n updateId: null\n};\n\nfunction CloseButton(_ref) {\n var closeToast = _ref.closeToast,\n type = _ref.type,\n ariaLabel = _ref.ariaLabel;\n return React.createElement(\"button\", {\n className: RT_NAMESPACE + \"__close-button \" + RT_NAMESPACE + \"__close-button--\" + type,\n type: \"button\",\n onClick: function onClick(e) {\n e.stopPropagation();\n closeToast(e);\n },\n \"aria-label\": ariaLabel\n }, \"\\u2716\\uFE0E\");\n}\n\nCloseButton.propTypes = {\n closeToast: PropTypes.func,\n arialLabel: PropTypes.string\n};\nCloseButton.defaultProps = {\n ariaLabel: 'close'\n};\n\nvar Bounce = cssTransition({\n enter: RT_NAMESPACE + \"__bounce-enter\",\n exit: RT_NAMESPACE + \"__bounce-exit\",\n appendPosition: true\n});\nvar Slide = cssTransition({\n enter: RT_NAMESPACE + \"__slide-enter\",\n exit: RT_NAMESPACE + \"__slide-exit\",\n duration: [450, 750],\n appendPosition: true\n});\nvar Zoom = cssTransition({\n enter: RT_NAMESPACE + \"__zoom-enter\",\n exit: RT_NAMESPACE + \"__zoom-exit\"\n});\nvar Flip = cssTransition({\n enter: RT_NAMESPACE + \"__flip-enter\",\n exit: RT_NAMESPACE + \"__flip-exit\"\n});\n\nvar ToastContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(ToastContainer, _Component);\n\n function ToastContainer() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n toast: []\n };\n _this.toastKey = 1;\n _this.collection = {};\n\n _this.isToastActive = function (id) {\n return _this.state.toast.indexOf(id) !== -1;\n };\n\n return _this;\n }\n\n var _proto = ToastContainer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n eventManager.cancelEmit(ACTION.WILL_UNMOUNT).on(ACTION.SHOW, function (content, options) {\n return _this2.ref ? _this2.buildToast(content, options) : null;\n }).on(ACTION.CLEAR, function (id) {\n return !_this2.ref ? null : id == null ? _this2.clear() : _this2.removeToast(id);\n }).emit(ACTION.DID_MOUNT, this);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n eventManager.emit(ACTION.WILL_UNMOUNT, this);\n };\n\n _proto.removeToast = function removeToast(id) {\n this.setState({\n toast: this.state.toast.filter(function (v) {\n return v !== id;\n })\n }, this.dispatchChange);\n };\n\n _proto.dispatchChange = function dispatchChange() {\n eventManager.emit(ACTION.ON_CHANGE, this.state.toast.length, this.props.containerId);\n };\n\n _proto.makeCloseButton = function makeCloseButton(toastClose, toastId, type) {\n var _this3 = this;\n\n var closeButton = this.props.closeButton;\n\n if (isValidElement(toastClose) || toastClose === false) {\n closeButton = toastClose;\n } else if (toastClose === true) {\n closeButton = this.props.closeButton && typeof this.props.closeButton !== 'boolean' ? this.props.closeButton : React.createElement(CloseButton, null);\n }\n\n return closeButton === false ? false : cloneElement(closeButton, {\n closeToast: function closeToast() {\n return _this3.removeToast(toastId);\n },\n type: type\n });\n };\n\n _proto.getAutoCloseDelay = function getAutoCloseDelay(toastAutoClose) {\n return toastAutoClose === false || isValidDelay(toastAutoClose) ? toastAutoClose : this.props.autoClose;\n };\n\n _proto.canBeRendered = function canBeRendered(content) {\n return isValidElement(content) || typeof content === 'string' || typeof content === 'number' || typeof content === 'function';\n };\n\n _proto.parseClassName = function parseClassName(prop) {\n if (typeof prop === 'string') {\n return prop;\n } else if (prop !== null && typeof prop === 'object' && 'toString' in prop) {\n return prop.toString();\n }\n\n return null;\n };\n\n _proto.belongToContainer = function belongToContainer(_ref) {\n var containerId = _ref.containerId;\n return containerId === this.props.containerId;\n };\n\n _proto.buildToast = function buildToast(content, _ref2) {\n var _this4 = this;\n\n var delay = _ref2.delay,\n options = _objectWithoutPropertiesLoose(_ref2, [\"delay\"]);\n\n if (!this.canBeRendered(content)) {\n throw new Error(\"The element you provided cannot be rendered. You provided an element of type \" + typeof content);\n }\n\n var toastId = options.toastId,\n updateId = options.updateId; // Check for multi-container and also for duplicate toastId\n // Maybe it would be better to extract it\n\n if (this.props.enableMultiContainer && !this.belongToContainer(options) || this.isToastActive(toastId) && updateId == null) {\n return;\n }\n\n var closeToast = function closeToast() {\n return _this4.removeToast(toastId);\n };\n\n var toastOptions = {\n id: toastId,\n // ⚠️ if no options.key, this.toastKey - 1 is assigned\n key: options.key || this.toastKey++,\n type: options.type,\n closeToast: closeToast,\n updateId: options.updateId,\n rtl: this.props.rtl,\n position: options.position || this.props.position,\n transition: options.transition || this.props.transition,\n className: this.parseClassName(options.className || this.props.toastClassName),\n bodyClassName: this.parseClassName(options.bodyClassName || this.props.bodyClassName),\n onClick: options.onClick || this.props.onClick,\n closeButton: this.makeCloseButton(options.closeButton, toastId, options.type),\n pauseOnHover: typeof options.pauseOnHover === 'boolean' ? options.pauseOnHover : this.props.pauseOnHover,\n pauseOnFocusLoss: typeof options.pauseOnFocusLoss === 'boolean' ? options.pauseOnFocusLoss : this.props.pauseOnFocusLoss,\n draggable: typeof options.draggable === 'boolean' ? options.draggable : this.props.draggable,\n draggablePercent: typeof options.draggablePercent === 'number' && !isNaN(options.draggablePercent) ? options.draggablePercent : this.props.draggablePercent,\n closeOnClick: typeof options.closeOnClick === 'boolean' ? options.closeOnClick : this.props.closeOnClick,\n progressClassName: this.parseClassName(options.progressClassName || this.props.progressClassName),\n progressStyle: this.props.progressStyle,\n autoClose: this.getAutoCloseDelay(options.autoClose),\n hideProgressBar: typeof options.hideProgressBar === 'boolean' ? options.hideProgressBar : this.props.hideProgressBar,\n progress: parseFloat(options.progress),\n role: typeof options.role === 'string' ? options.role : this.props.role\n };\n typeof options.onOpen === 'function' && (toastOptions.onOpen = options.onOpen);\n typeof options.onClose === 'function' && (toastOptions.onClose = options.onClose); // add closeToast function to react component only\n\n if (isValidElement(content) && typeof content.type !== 'string' && typeof content.type !== 'number') {\n content = cloneElement(content, {\n closeToast: closeToast\n });\n } else if (typeof content === 'function') {\n content = content({\n closeToast: closeToast\n });\n }\n\n if (isValidDelay(delay)) {\n setTimeout(function () {\n _this4.appendToast(toastOptions, content, options.staleToastId);\n }, delay);\n } else {\n this.appendToast(toastOptions, content, options.staleToastId);\n }\n };\n\n _proto.appendToast = function appendToast(options, content, staleToastId) {\n var _extends2;\n\n var id = options.id,\n updateId = options.updateId;\n this.collection = _extends({}, this.collection, (_extends2 = {}, _extends2[id] = {\n options: options,\n content: content,\n position: options.position\n }, _extends2));\n this.setState({\n toast: (updateId ? [].concat(this.state.toast) : [].concat(this.state.toast, [id])).filter(function (id) {\n return id !== staleToastId;\n })\n }, this.dispatchChange);\n };\n\n _proto.clear = function clear() {\n this.setState({\n toast: []\n });\n };\n\n _proto.renderToast = function renderToast() {\n var _this5 = this;\n\n var toastToRender = {};\n var _this$props = this.props,\n className = _this$props.className,\n style = _this$props.style,\n newestOnTop = _this$props.newestOnTop;\n var collection = newestOnTop ? Object.keys(this.collection).reverse() : Object.keys(this.collection); // group toast by position\n\n collection.forEach(function (toastId) {\n var _this5$collection$toa = _this5.collection[toastId],\n position = _this5$collection$toa.position,\n options = _this5$collection$toa.options,\n content = _this5$collection$toa.content;\n toastToRender[position] || (toastToRender[position] = []);\n\n if (_this5.state.toast.indexOf(options.id) !== -1) {\n toastToRender[position].push(React.createElement(Toast, _extends({}, options, {\n isDocumentHidden: _this5.state.isDocumentHidden,\n key: \"toast-\" + options.key\n }), content));\n } else {\n toastToRender[position].push(null);\n delete _this5.collection[toastId];\n }\n });\n return Object.keys(toastToRender).map(function (position) {\n var _cx;\n\n var disablePointer = toastToRender[position].length === 1 && toastToRender[position][0] === null;\n var props = {\n className: cx(RT_NAMESPACE + \"__toast-container\", RT_NAMESPACE + \"__toast-container--\" + position, (_cx = {}, _cx[RT_NAMESPACE + \"__toast-container--rtl\"] = _this5.props.rtl, _cx), _this5.parseClassName(className)),\n style: disablePointer ? _extends({}, style, {\n pointerEvents: 'none'\n }) : _extends({}, style)\n };\n return React.createElement(TransitionGroup, _extends({}, props, {\n key: \"container-\" + position\n }), toastToRender[position]);\n });\n };\n\n _proto.render = function render() {\n var _this6 = this;\n\n return React.createElement(\"div\", {\n ref: function ref(node) {\n return _this6.ref = node;\n },\n className: \"\" + RT_NAMESPACE\n }, this.renderToast());\n };\n\n return ToastContainer;\n}(Component);\n\nToastContainer.propTypes = {\n /**\n * Set toast position\n */\n position: PropTypes.oneOf(objectValues(POSITION)),\n\n /**\n * Disable or set autoClose delay\n */\n autoClose: falseOrDelay,\n\n /**\n * Disable or set a custom react element for the close button\n */\n closeButton: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]),\n\n /**\n * Hide or not progress bar when autoClose is enabled\n */\n hideProgressBar: PropTypes.bool,\n\n /**\n * Pause toast duration on hover\n */\n pauseOnHover: PropTypes.bool,\n\n /**\n * Dismiss toast on click\n */\n closeOnClick: PropTypes.bool,\n\n /**\n * Newest on top\n */\n newestOnTop: PropTypes.bool,\n\n /**\n * An optional className\n */\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional style\n */\n style: PropTypes.object,\n\n /**\n * An optional className for the toast\n */\n toastClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional className for the toast body\n */\n bodyClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional className for the toast progress bar\n */\n progressClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional style for the toast progress bar\n */\n progressStyle: PropTypes.object,\n\n /**\n * Define enter and exit transition using react-transition-group\n */\n transition: PropTypes.func,\n\n /**\n * Support rtl display\n */\n rtl: PropTypes.bool,\n\n /**\n * Allow toast to be draggable\n */\n draggable: PropTypes.bool,\n\n /**\n * The percentage of the toast's width it takes for a drag to dismiss a toast\n */\n draggablePercent: PropTypes.number,\n\n /**\n * Pause the toast on focus loss\n */\n pauseOnFocusLoss: PropTypes.bool,\n\n /**\n * Show the toast only if it includes containerId and it's the same as containerId\n */\n enableMultiContainer: PropTypes.bool,\n\n /**\n * Set id to handle multiple container\n */\n containerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Set role attribute for the toast body\n */\n role: PropTypes.string,\n\n /**\n * Fired when clicking inside toaster\n */\n onClick: PropTypes.func\n};\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: React.createElement(CloseButton, null),\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: 80,\n className: null,\n style: null,\n toastClassName: null,\n bodyClassName: null,\n progressClassName: null,\n progressStyle: null,\n role: 'alert'\n};\n\nvar containers = new Map();\nvar latestInstance = null;\nvar containerDomNode = null;\nvar containerConfig = {};\nvar queue = [];\nvar lazy = false;\n/**\n * Check whether any container is currently mounted in the DOM\n */\n\nfunction isAnyContainerMounted() {\n return containers.size > 0;\n}\n/**\n * Get the container by id. Returns the last container declared when no id is given.\n */\n\n\nfunction getContainer(containerId) {\n if (!isAnyContainerMounted()) return null;\n if (!containerId) return containers.get(latestInstance);\n return containers.get(containerId);\n}\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\n\n\nfunction getToast(toastId, _ref) {\n var containerId = _ref.containerId;\n var container = getContainer(containerId);\n if (!container) return null;\n var toast = container.collection[toastId];\n if (typeof toast === 'undefined') return null;\n return toast;\n}\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\n\n\nfunction mergeOptions(options, type) {\n return _extends({}, options, {\n type: type,\n toastId: getToastId(options)\n });\n}\n/**\n * Generate a random toastId\n */\n\n\nfunction generateToastId() {\n return (Math.random().toString(36) + Date.now().toString(36)).substr(2, 10);\n}\n/**\n * Generate a toastId or use the one provided\n */\n\n\nfunction getToastId(options) {\n if (options && (typeof options.toastId === 'string' || typeof options.toastId === 'number' && !isNaN(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\n\n\nfunction dispatchToast(content, options) {\n if (isAnyContainerMounted()) {\n eventManager.emit(ACTION.SHOW, content, options);\n } else {\n queue.push({\n action: ACTION.SHOW,\n content: content,\n options: options\n });\n\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(React.createElement(ToastContainer, containerConfig), containerDomNode);\n }\n }\n\n return options.toastId;\n}\n\nvar toast = function toast(content, options) {\n return dispatchToast(content, mergeOptions(options, options && options.type || TYPE.DEFAULT));\n};\n/**\n * For each available type create a shortcut\n */\n\n\nvar _loop = function _loop(t) {\n if (TYPE[t] !== TYPE.DEFAULT) {\n toast[TYPE[t].toLowerCase()] = function (content, options) {\n return dispatchToast(content, mergeOptions(options, options && options.type || TYPE[t]));\n };\n }\n};\n\nfor (var t in TYPE) {\n _loop(t);\n}\n/**\n * Maybe I should remove warning in favor of warn, I don't know\n */\n\n\ntoast.warn = toast.warning;\n/**\n * Remove toast programmaticaly\n */\n\ntoast.dismiss = function (id) {\n if (id === void 0) {\n id = null;\n }\n\n return isAnyContainerMounted() && eventManager.emit(ACTION.CLEAR, id);\n};\n/**\n * return true if one container is displaying the toast\n */\n\n\ntoast.isActive = function (id) {\n var isToastActive = false;\n\n if (containers.size > 0) {\n containers.forEach(function (container) {\n if (container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n }\n\n return isToastActive;\n};\n\ntoast.update = function (toastId, options) {\n if (options === void 0) {\n options = {};\n }\n\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(function () {\n var toast = getToast(toastId, options);\n\n if (toast) {\n var oldOptions = toast.options,\n oldContent = toast.content;\n\n var nextOptions = _extends({}, oldOptions, {}, options, {\n toastId: options.toastId || toastId\n });\n\n if (!options.toastId || options.toastId === toastId) {\n nextOptions.updateId = generateToastId();\n } else {\n nextOptions.staleToastId = toastId;\n }\n\n var content = typeof nextOptions.render !== 'undefined' ? nextOptions.render : oldContent;\n delete nextOptions.render;\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n/**\n * Used for controlled progress bar.\n */\n\n\ntoast.done = function (id) {\n toast.update(id, {\n progress: 1\n });\n};\n/**\n * Track changes. The callback get the number of toast displayed\n */\n\n\ntoast.onChange = function (callback) {\n if (typeof callback === 'function') {\n eventManager.on(ACTION.ON_CHANGE, callback);\n }\n};\n/**\n * Configure the ToastContainer when lazy mounted\n */\n\n\ntoast.configure = function (config) {\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\n\neventManager.on(ACTION.DID_MOUNT, function (containerInstance) {\n latestInstance = containerInstance.props.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n queue.forEach(function (item) {\n eventManager.emit(item.action, item.content, item.options);\n });\n queue = [];\n}).on(ACTION.WILL_UNMOUNT, function (containerInstance) {\n if (containerInstance) containers.delete(containerInstance.props.containerId || containerInstance);else containers.clear();\n\n if (containers.size === 0) {\n eventManager.off(ACTION.SHOW).off(ACTION.CLEAR);\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n});\n\nexport { Bounce, Flip, Slide, ToastContainer, POSITION as ToastPosition, TYPE as ToastType, Zoom, cssTransition, toast };\n"],"sourceRoot":""}