import { animate, AnimationTriggerMetadata, style, transition, trigger, } from '@angular/animations'; import { AnimationConfigInterface, } from './animation-config.interface'; import { ANIMATION_DEFAULTS_CONST, } from './animation-defaults.const'; export function fadeInFromRightAnimation( config?: AnimationConfigInterface, transformDistanceEnterPx = 40, transformDistanceExitPx = -40, ): AnimationTriggerMetadata { return trigger( (config && config.animationName) || 'fadeInFromRightAnimation', [ transition(':enter', [ style({ opacity: 0, transform: `translateX(${transformDistanceEnterPx}px)`, }), animate( (config && config.animationTimingsEnter) || ANIMATION_DEFAULTS_CONST.animationTimings, style({ opacity: 1, transform: 'translateX(0)', }), )], ), transition(':leave', [ style({ opacity: 1, transform: 'translateX(0)', }), animate( (config && config.animationTimingsLeave) || ANIMATION_DEFAULTS_CONST.animationTimings, style({ opacity: 0, transform: `translateX(${transformDistanceExitPx}px)`, }), ), ]), ], ); }