import {
  animate,
  state,
  style,
  transition,
  trigger,
} from '@angular/animations';

export const rotateInState = state('rotateIn', style({ opacity: 1, transform: 'rotate(0deg)' }));
export const rotateEnter = transition('* => rotateIn', [
  style({ opacity: 0, transform: 'rotate(5deg)' }),
  animate('400ms ease-in-out'),
]);

export const rotateOutState = state('rotateOut', style({ opacity: 0, transform: 'rotate(5deg)' }));
export const rotateLeave = transition('rotateIn => rotateOut', [
  style({ opacity: 1, transform: 'rotate(0deg)' }),
  animate('400ms ease-in-out'),
]);

export const rotateIn = trigger('rotateIn', [
  rotateEnter,
]);

export const rotateOut = trigger('rotateOut', [
  rotateLeave,
]);

export const rotateInOut = trigger('rotateInOut', [
  rotateEnter,
  rotateLeave,
]);

const expandedStyle = { transform: 'rotate(90deg)' };
const collapsedStyle = { transform: 'rotate(0deg)' };

export const rotate = trigger('rotate',
  [
    state('expanded', style(expandedStyle)),
    state('collapsed', style(collapsedStyle)),
    transition('expanded <=> collapsed', [
      animate('200ms'),
    ]),

  ]);