{"ast":null,"code":"\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar 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: 0 },\n * entered: { opacity: 1 },\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\nexports.EXITING = EXITING;\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.transitionGroup; // 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 var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\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 _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 var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\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(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\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) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\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(node, timeout, handler) {\n this.setNextCallback(handler);\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 this.props.addEndListener(node, this.nextCallback);\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 childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\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'`, `'unmounted'`), 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 * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\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 = _PropTypes.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. **Note:** Timeouts are still used as a fallback if provided.\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 * @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 * @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 * @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 * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\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 * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\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 = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","map":{"version":3,"sources":["/app/node_modules/reactstrap/node_modules/react-transition-group/Transition.js"],"names":["exports","__esModule","default","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","_interopRequireWildcard","require","_react","_interopRequireDefault","_reactDom","_reactLifecyclesCompat","_PropTypes","obj","newObj","key","Object","prototype","hasOwnProperty","call","desc","defineProperty","getOwnPropertyDescriptor","get","set","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","keys","i","length","indexOf","_inheritsLoose","subClass","superClass","create","constructor","__proto__","Transition","_React$Component","props","context","_this","parentGroup","transitionGroup","appear","isMounting","enter","initialStatus","appearStatus","in","unmountOnExit","mountOnEnter","state","status","nextCallback","_proto","getChildContext","getDerivedStateFromProps","_ref","prevState","nextIn","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","timeout","exit","undefined","mounting","node","findDOMNode","performEnter","performExit","setState","_this2","appearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExited","onExit","onExiting","cancel","nextState","callback","setNextCallback","_this4","active","event","handler","doesNotHaveTimeoutOrListener","addEndListener","setTimeout","render","_this$props","children","childProps","child","Children","only","cloneElement","Component","contextTypes","object","childContextTypes","propTypes","process","env","NODE_ENV","oneOfType","func","isRequired","element","bool","pt","timeoutsShape","_len","arguments","args","Array","_key","apply","concat","noop","defaultProps","_default","polyfill"],"mappings":"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","sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar 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: 0 },\n * entered: { opacity: 1 },\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\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_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.transitionGroup; // 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 var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\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 _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 var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\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(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\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) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\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(node, timeout, handler) {\n this.setNextCallback(handler);\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 this.props.addEndListener(node, this.nextCallback);\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 childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\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'`, `'unmounted'`), 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 * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\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 = _PropTypes.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. **Note:** Timeouts are still used as a fallback if provided.\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 * @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 * @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 * @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 * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\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 * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\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 = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;"]},"metadata":{},"sourceType":"script"}