UNPKG

@carbon/ibm-security

Version:

Carbon for Cloud & Cognitive IBM Security UI components

82 lines (79 loc) 3.82 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _reactTransitionGroup = require("react-transition-group"); var _namespace = require("../../globals/namespace"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /** * @file Transition component. * @copyright IBM Security 2019 - 2020 */ var namespace = (0, _namespace.getComponentNamespace)('transition'); var map = _react.Children.map, toArray = _react.Children.toArray; /** * Transition component. */ var Transition = function Transition(_ref) { var appearTimeout = _ref.appearTimeout, children = _ref.children, className = _ref.className, component = _ref.component, enterTimeout = _ref.enterTimeout, leaveTimeout = _ref.leaveTimeout, timeout = _ref.timeout; return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.TransitionGroup, { className: namespace, component: component }, children && map(children, function (child) { return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.CSSTransition, { classNames: { appear: "".concat(className, "__transition--appear"), appearActive: "".concat(className, "__transition--appear--active"), enter: "".concat(className, "__transition--enter"), enterActive: "".concat(className, "__transition--enter--active"), exit: "".concat(className, "__transition--leave"), exitActive: "".concat(className, "__transition--leave--active") }, timeout: { appear: appearTimeout || timeout, enter: enterTimeout || timeout, exit: leaveTimeout || timeout } }, child); })); }; Transition.defaultProps = { appearTimeout: undefined, component: function component(_ref2) { var children = _ref2.children; return toArray(children)[0] || null; }, enterTimeout: undefined, leaveTimeout: undefined, timeout: 160 }; Transition.propTypes = { /** @type {number} Appear timeout */ appearTimeout: _propTypes.default.number, /** @type {Array.<HTMLElement>|boolean|HTMLElement} Children. */ children: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.bool, _propTypes.default.element]).isRequired, /** @type {string} Classes. */ className: _propTypes.default.string.isRequired, /** @type {Node} The element to wrap the transition's components children in. */ component: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]), /** @type {number} Enter timeout */ enterTimeout: _propTypes.default.number, /** @type {number} Leave timeout */ leaveTimeout: _propTypes.default.number, /** @type {number} Timeout. */ timeout: _propTypes.default.number }; var _default = exports.default = Transition;