import { animate, AnimationTransitionMetadata, AnimationTriggerMetadata, state, style, transition, trigger, } from '@angular/animations'; import { AnimationConfigInterface, } from './animation-config.interface'; import { ANIMATION_DEFAULTS_CONST, } from './animation-defaults.const'; export function fadeInOutAnimation( config?: AnimationConfigInterface, ): AnimationTriggerMetadata { return trigger( (config && config.animationName) || 'fadeInOutAnimation', [ transition(':enter', [ style({ opacity: 0, }), animate( (config && config.animationTimingsEnter) || ANIMATION_DEFAULTS_CONST.animationTimings, style({ opacity: 1, }), )], ), transition(':leave', [ style({ opacity: 1, }), animate( (config && config.animationTimingsLeave) || ANIMATION_DEFAULTS_CONST.animationTimings, style({ opacity: 0, }), ), ]), ], ); }