@charset "UTF-8";
@import "./input-number.css";
@import "./tooltip.css";
@import "./common/var.css";

@component-namespace el {
  @b slider {
    @utils-clearfix;
    @e runway {
      width: 100%;
      height: var(--slider-height);
      margin: var(--slider-margin);
      background-color: var(--slider-runway-background-color);
      border-radius: var(--slider-border-radius);
      position: relative;
      cursor: pointer;
      vertical-align: middle;

      &.show-input {
        margin-right: 160px;
        width: auto;
      }

      &.disabled {
        cursor: default;

        .el-slider__bar, .el-slider__button {
          background-color: var(--slider-disable-color);
        }

        .el-slider__button-wrapper {
          &:hover,
          &.hover {
            cursor: not-allowed;
          }

          &.dragging {
            cursor: not-allowed;
          }
        }

        .el-slider__button {
          &:hover,
          &.hover,
          &.dragging {
            transform: scale(1);
          }

          &:hover,
          &.hover {
            cursor: not-allowed;
          }

          &.dragging {
            cursor: not-allowed;
          }
        }
      }
    }

    @e input {
      float: right;
      margin-top: 3px;
    }

    @e bar {
      height: var(--slider-height);
      background-color: var(--slider-main-background-color);
      border-top-left-radius: var(--slider-border-radius);
      border-bottom-left-radius: var(--slider-border-radius);
      position: absolute;
    }

    @e button-wrapper {
      size: var(--slider-button-wrapper-size);
      position: absolute;
      z-index: 1001;
      top: var(--slider-button-wrapper-offset);
      transform: translateX(-50%);
      background-color: transparent;
      text-align: center;
      user-select: none;
      @utils-vertical-center;

      .el-tooltip {
        vertical-align: middle;
        display: inline-block;
      }

      &:hover,
      &.hover {
        cursor: grab;
      }

      &.dragging {
        cursor: grabbing;
      }
    }

    @e button {
      size: var(--slider-button-size);
      background-color: var(--slider-main-background-color);
      border-radius: 50%;
      transition: .2s;
      user-select: none;

      &:hover,
      &.hover,
      &.dragging {
        transform: scale(1.5);
        background-color: var(--slider-button-hover-color);
      }

      &:hover,
      &.hover {
        cursor: grab;
      }

      &.dragging {
        cursor: grabbing;
      }
    }

    @e stop {
      position: absolute;
      size: var(--slider-height);
      border-radius: var(--border-radius-circle);
      background-color: var(--slider-stop-background-color);
      transform: translateX(-50%);
    }

    @when vertical {
      position: relative;
      .el-slider__runway {
        width: 4px;
        height: 100%;
        margin: 0 16px;
      }
      .el-slider__bar {
        width: 4px;
        height: auto;
        border-radius: 0 0 3px 3px;
      }
      .el-slider__button-wrapper {
        top: auto;
        left: var(--slider-button-wrapper-offset);
        transform: translateY(50%);
      }
      .el-slider__stop {
        transform: translateY(50%);
      }
      &.el-slider--with-input {
        padding-bottom: calc(var(--input-large-height) + 22px);
        .el-slider__input {
          overflow: visible;
          float: none;
          position: absolute;
          bottom: 22px;
          width: 36px;
          margin-top: 15px;
          .el-input__inner {
            text-align: center;
            padding-left: 5px;
            padding-right: 5px;
          }
          .el-input-number__decrease,
          .el-input-number__increase
          {
            top: var(--input-small-height);
            margin-top: -1px;
            border: var(--input-border);
            line-height: 20px;
            box-sizing: border-box;
            transition: var(--border-transition-base);
          }
          .el-input-number__decrease {
            width: 18px;
            right: 18px;
            border-bottom-left-radius: var(--input-border-radius);
          }
          .el-input-number__increase {
            width: 19px;
            border-bottom-right-radius: var(--input-border-radius);
            & ~ .el-input .el-input__inner {
              border-bottom-left-radius: 0;
              border-bottom-right-radius: 0;
            }
          }
          &:hover {
            .el-input-number__decrease,
            .el-input-number__increase
            {
              border-color: var(--input-hover-border);
            }
          }
          &:active {
            .el-input-number__decrease,
            .el-input-number__increase
            {
              border-color: var(--input-focus-border);
            }
          }
        }
      }
    }
  }
}
