"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.animationEndName = void 0; exports.getTransitionName = getTransitionName; exports.getVendorPrefixedEventName = getVendorPrefixedEventName; exports.getVendorPrefixes = getVendorPrefixes; exports.transitionEndName = exports.supportTransition = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _canUseDom = _interopRequireDefault(require("rc-util/lib/Dom/canUseDom")); // ================= Transition ================= // Event wrapper. Copy from react source code function makePrefixMap(styleProp, eventName) { var prefixes = {}; prefixes[styleProp.toLowerCase()] = eventName.toLowerCase(); prefixes["Webkit".concat(styleProp)] = "webkit".concat(eventName); prefixes["Moz".concat(styleProp)] = "moz".concat(eventName); prefixes["ms".concat(styleProp)] = "MS".concat(eventName); prefixes["O".concat(styleProp)] = "o".concat(eventName.toLowerCase()); return prefixes; } function getVendorPrefixes(domSupport, win) { var prefixes = { animationend: makePrefixMap('Animation', 'AnimationEnd'), transitionend: makePrefixMap('Transition', 'TransitionEnd') }; if (domSupport) { if (!('AnimationEvent' in win)) { delete prefixes.animationend.animation; } if (!('TransitionEvent' in win)) { delete prefixes.transitionend.transition; } } return prefixes; } var vendorPrefixes = getVendorPrefixes((0, _canUseDom.default)(), typeof window !== 'undefined' ? window : {}); var style = {}; if ((0, _canUseDom.default)()) { var _document$createEleme = document.createElement('div'); style = _document$createEleme.style; } var prefixedEventNames = {}; function getVendorPrefixedEventName(eventName) { if (prefixedEventNames[eventName]) { return prefixedEventNames[eventName]; } var prefixMap = vendorPrefixes[eventName]; if (prefixMap) { var stylePropList = Object.keys(prefixMap); var len = stylePropList.length; for (var i = 0; i < len; i += 1) { var styleProp = stylePropList[i]; if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) { prefixedEventNames[eventName] = prefixMap[styleProp]; return prefixedEventNames[eventName]; } } } return ''; } var internalAnimationEndName = getVendorPrefixedEventName('animationend'); var internalTransitionEndName = getVendorPrefixedEventName('transitionend'); var supportTransition = !!(internalAnimationEndName && internalTransitionEndName); exports.supportTransition = supportTransition; var animationEndName = internalAnimationEndName || 'animationend'; exports.animationEndName = animationEndName; var transitionEndName = internalTransitionEndName || 'transitionend'; exports.transitionEndName = transitionEndName; function getTransitionName(transitionName, transitionType) { if (!transitionName) return null; if ((0, _typeof2.default)(transitionName) === 'object') { var type = transitionType.replace(/-\w/g, function (match) { return match[1].toUpperCase(); }); return transitionName[type]; } return "".concat(transitionName, "-").concat(transitionType); }