{"ast":null,"code":"import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n * \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","map":{"version":3,"sources":["/app/node_modules/react-transition-group/esm/SwitchTransition.js"],"names":["_inheritsLoose","_leaveRenders","_enterRenders","React","PropTypes","ENTERED","ENTERING","EXITING","TransitionGroupContext","areChildrenDifferent","oldChildren","newChildren","isValidElement","key","modes","out","in","callHook","element","name","cb","_element$props","props","apply","arguments","leaveRenders","_ref","current","changeState","cloneElement","onExited","_ref2","children","onEntered","enterRenders","_ref3","_ref4","SwitchTransition","_React$Component","_this","_len","length","args","Array","_key","call","concat","state","status","appeared","setState","_proto","prototype","componentDidMount","getDerivedStateFromProps","mode","render","_this$props","_this$state","data","component","createElement","Provider","value","isMounting","Component","propTypes","process","env","NODE_ENV","oneOf","oneOfType","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n * \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;"]},"metadata":{},"sourceType":"module"}