motion.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getTransitionName = exports.default = void 0;
  6. var _configProvider = require("../config-provider");
  7. // ================== Collapse Motion ==================
  8. const getCollapsedHeight = () => ({
  9. height: 0,
  10. opacity: 0
  11. });
  12. const getRealHeight = node => {
  13. const {
  14. scrollHeight
  15. } = node;
  16. return {
  17. height: scrollHeight,
  18. opacity: 1
  19. };
  20. };
  21. const getCurrentHeight = node => ({
  22. height: node ? node.offsetHeight : 0
  23. });
  24. const skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';
  25. const initCollapseMotion = (rootCls = _configProvider.defaultPrefixCls) => ({
  26. motionName: `${rootCls}-motion-collapse`,
  27. onAppearStart: getCollapsedHeight,
  28. onEnterStart: getCollapsedHeight,
  29. onAppearActive: getRealHeight,
  30. onEnterActive: getRealHeight,
  31. onLeaveStart: getCurrentHeight,
  32. onLeaveActive: getCollapsedHeight,
  33. onAppearEnd: skipOpacityTransition,
  34. onEnterEnd: skipOpacityTransition,
  35. onLeaveEnd: skipOpacityTransition,
  36. motionDeadline: 500
  37. });
  38. const _SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];
  39. const getTransitionName = (rootPrefixCls, motion, transitionName) => {
  40. if (transitionName !== undefined) {
  41. return transitionName;
  42. }
  43. return `${rootPrefixCls}-${motion}`;
  44. };
  45. exports.getTransitionName = getTransitionName;
  46. var _default = exports.default = initCollapseMotion;