@engie-group/fluid-design-system-angular
Version:
Fluid Design System Angular
32 lines (29 loc) • 1.11 kB
text/typescript
import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';
import {njSemanticMotionEasingFastOutSlowIn} from '@engie-group/fluid-design-tokens';
export const defaultParams = {
params: {animationDuration: '100ms'},
};
export const sidePanelLayoutAnimation: {
readonly panelSlideInAndOut: AnimationTriggerMetadata;
readonly panelOpened: AnimationTriggerMetadata;
} = {
panelSlideInAndOut: trigger('panelSlideInAndOut', [
state('void', style({opacity: 0.9, transform: 'translateX(100%)'})),
state('*', style({opacity: 1, transform: 'none'})),
transition(
':enter, :leave',
animate(`{{animationDuration}} ${njSemanticMotionEasingFastOutSlowIn}`),
defaultParams,
),
]),
panelOpened: trigger('panelOpened', [
state('void', style({paddingRight: 0})),
state('false', style({paddingRight: 0})),
state('true', style({paddingRight: 'var(--nj-sidepanel-final-width)'})),
transition(
'* => *',
animate(`{{animationDuration}} ${njSemanticMotionEasingFastOutSlowIn}`),
defaultParams,
),
]),
};