/**
 * This file is part of the drip-table project.
 * @link     : https://drip-table.jd.com/
 * @author   : Emil Zhai (root@derzh.com)
 * @modifier : Emil Zhai (root@derzh.com)
 * @copyright: Copyright (c) 2021 JD Network Technology Co., Ltd.
 */

@prefixCls: jfe-drip-table-motion;

.zoom-motion(@className, @keyframeName, @duration: @animation-duration-base) {
  @name: ~"@{prefixCls}-@{className}";
  .make-motion(@name, @keyframeName, @duration);
  .@{name}-enter,
  .@{name}-appear {
    transform: scale(0);
    opacity: 0;
    animation-timing-function: @ease-out-circ;

    &-prepare {
      transform: none;
    }
  }
  .@{name}-leave {
    animation-timing-function: @ease-in-out-circ;
  }
}

.zoom-motion(zoom, jfe-drip-table-motion-zoom);
.zoom-motion(zoom-big, jfe-drip-table-motion-zoom-big);
.zoom-motion(zoom-big-fast, jfe-drip-table-motion-zoom-big, @animation-duration-fast);

.zoom-motion(zoom-up, jfe-drip-table-motion-zoom-up);
.zoom-motion(zoom-down, jfe-drip-table-motion-zoom-down);
.zoom-motion(zoom-left, jfe-drip-table-motion-zoom-left);
.zoom-motion(zoom-right, jfe-drip-table-motion-zoom-right);

@keyframes jfe-drip-table-motion-zoom-in {
  0% {
    transform: scale(.2);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes jfe-drip-table-motion-zoom-out {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(.2);
    opacity: 0;
  }
}

@keyframes jfe-drip-table-motion-zoom-big-in {
  0% {
    transform: scale(.8);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes jfe-drip-table-motion-zoom-big-out {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(.8);
    opacity: 0;
  }
}

@keyframes jfe-drip-table-motion-zoom-up-in {
  0% {
    transform: scale(.8);
    transform-origin: 50% 0%;
    opacity: 0;
  }

  100% {
    transform: scale(1);
    transform-origin: 50% 0%;
  }
}

@keyframes jfe-drip-table-motion-zoom-up-out {
  0% {
    transform: scale(1);
    transform-origin: 50% 0%;
  }

  100% {
    transform: scale(.8);
    transform-origin: 50% 0%;
    opacity: 0;
  }
}

@keyframes jfe-drip-table-motion-zoom-left-in {
  0% {
    transform: scale(.8);
    transform-origin: 0% 50%;
    opacity: 0;
  }

  100% {
    transform: scale(1);
    transform-origin: 0% 50%;
  }
}

@keyframes jfe-drip-table-motion-zoom-left-out {
  0% {
    transform: scale(1);
    transform-origin: 0% 50%;
  }

  100% {
    transform: scale(.8);
    transform-origin: 0% 50%;
    opacity: 0;
  }
}

@keyframes jfe-drip-table-motion-zoom-right-in {
  0% {
    transform: scale(.8);
    transform-origin: 100% 50%;
    opacity: 0;
  }

  100% {
    transform: scale(1);
    transform-origin: 100% 50%;
  }
}

@keyframes jfe-drip-table-motion-zoom-right-out {
  0% {
    transform: scale(1);
    transform-origin: 100% 50%;
  }

  100% {
    transform: scale(.8);
    transform-origin: 100% 50%;
    opacity: 0;
  }
}

@keyframes jfe-drip-table-motion-zoom-down-in {
  0% {
    transform: scale(.8);
    transform-origin: 50% 100%;
    opacity: 0;
  }

  100% {
    transform: scale(1);
    transform-origin: 50% 100%;
  }
}

@keyframes jfe-drip-table-motion-zoom-down-out {
  0% {
    transform: scale(1);
    transform-origin: 50% 100%;
  }

  100% {
    transform: scale(.8);
    transform-origin: 50% 100%;
    opacity: 0;
  }
}
