mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-07-15 15:20:46 +00:00
74 lines
2.0 KiB
TypeScript
74 lines
2.0 KiB
TypeScript
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
import { FuseAnimationCurves, FuseAnimationDurations } from '@fuse/animations/defaults';
|
|
|
|
// -----------------------------------------------------------------------------------------------------
|
|
// @ Zoom in
|
|
// -----------------------------------------------------------------------------------------------------
|
|
const zoomIn = trigger('zoomIn',
|
|
[
|
|
|
|
state('void',
|
|
style({
|
|
opacity : 0,
|
|
transform: 'scale(0.5)'
|
|
})
|
|
),
|
|
|
|
state('*',
|
|
style({
|
|
opacity : 1,
|
|
transform: 'scale(1)'
|
|
})
|
|
),
|
|
|
|
// Prevent the transition if the state is false
|
|
transition('void => false', []),
|
|
|
|
// Transition
|
|
transition('void => *', animate('{{timings}}'),
|
|
{
|
|
params: {
|
|
timings: `${FuseAnimationDurations.entering} ${FuseAnimationCurves.deceleration}`
|
|
}
|
|
}
|
|
)
|
|
]
|
|
);
|
|
|
|
// -----------------------------------------------------------------------------------------------------
|
|
// @ Zoom out
|
|
// -----------------------------------------------------------------------------------------------------
|
|
const zoomOut = trigger('zoomOut',
|
|
[
|
|
|
|
state('*',
|
|
style({
|
|
opacity : 1,
|
|
transform: 'scale(1)'
|
|
})
|
|
),
|
|
|
|
state('void',
|
|
style({
|
|
opacity : 0,
|
|
transform: 'scale(0.5)'
|
|
})
|
|
),
|
|
|
|
// Prevent the transition if the state is false
|
|
transition('false => void', []),
|
|
|
|
// Transition
|
|
transition('* => void', animate('{{timings}}'),
|
|
{
|
|
params: {
|
|
timings: `${FuseAnimationDurations.exiting} ${FuseAnimationCurves.acceleration}`
|
|
}
|
|
}
|
|
)
|
|
]
|
|
);
|
|
|
|
export { zoomIn, zoomOut };
|
|
|