82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
import type { CSSObject } from '../../_util/cssinjs';
 | 
						|
import { Keyframes } from '../../_util/cssinjs';
 | 
						|
import type { NotificationToken } from '.';
 | 
						|
import type { GenerateStyle } from '../../theme/internal';
 | 
						|
 | 
						|
const genNotificationPlacementStyle: GenerateStyle<NotificationToken, CSSObject> = token => {
 | 
						|
  const { componentCls, width, notificationMarginEdge } = token;
 | 
						|
 | 
						|
  const notificationTopFadeIn = new Keyframes('antNotificationTopFadeIn', {
 | 
						|
    '0%': {
 | 
						|
      marginTop: '-100%',
 | 
						|
      opacity: 0,
 | 
						|
    },
 | 
						|
 | 
						|
    '100%': {
 | 
						|
      marginTop: 0,
 | 
						|
      opacity: 1,
 | 
						|
    },
 | 
						|
  });
 | 
						|
 | 
						|
  const notificationBottomFadeIn = new Keyframes('antNotificationBottomFadeIn', {
 | 
						|
    '0%': {
 | 
						|
      marginBottom: '-100%',
 | 
						|
      opacity: 0,
 | 
						|
    },
 | 
						|
 | 
						|
    '100%': {
 | 
						|
      marginBottom: 0,
 | 
						|
      opacity: 1,
 | 
						|
    },
 | 
						|
  });
 | 
						|
 | 
						|
  const notificationLeftFadeIn = new Keyframes('antNotificationLeftFadeIn', {
 | 
						|
    '0%': {
 | 
						|
      right: {
 | 
						|
        _skip_check_: true,
 | 
						|
        value: width,
 | 
						|
      },
 | 
						|
      opacity: 0,
 | 
						|
    },
 | 
						|
 | 
						|
    '100%': {
 | 
						|
      right: {
 | 
						|
        _skip_check_: true,
 | 
						|
        value: 0,
 | 
						|
      },
 | 
						|
      opacity: 1,
 | 
						|
    },
 | 
						|
  });
 | 
						|
 | 
						|
  return {
 | 
						|
    [`&${componentCls}-top, &${componentCls}-bottom`]: {
 | 
						|
      marginInline: 0,
 | 
						|
    },
 | 
						|
 | 
						|
    [`&${componentCls}-top`]: {
 | 
						|
      [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]:
 | 
						|
        {
 | 
						|
          animationName: notificationTopFadeIn,
 | 
						|
        },
 | 
						|
    },
 | 
						|
 | 
						|
    [`&${componentCls}-bottom`]: {
 | 
						|
      [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]:
 | 
						|
        {
 | 
						|
          animationName: notificationBottomFadeIn,
 | 
						|
        },
 | 
						|
    },
 | 
						|
 | 
						|
    [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {
 | 
						|
      marginInlineEnd: 0,
 | 
						|
      marginInlineStart: notificationMarginEdge,
 | 
						|
 | 
						|
      [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]:
 | 
						|
        {
 | 
						|
          animationName: notificationLeftFadeIn,
 | 
						|
        },
 | 
						|
    },
 | 
						|
  };
 | 
						|
};
 | 
						|
export default genNotificationPlacementStyle;
 |