@import "mixins/mixins";

@include b(steps) {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-spacing: 5px 0px;
  position: relative;
  @include when(space) {
    display: flex;
    .el-step{
      flex-shrink: 1;
    }
  }
  // 简洁风格
  @include m(simple) {
    font-size: 0;
    .cell{
      @include clear;
    }
    @include when(average){
      @include b(step){
        display: table-cell;
      }
    }
    &:not(.is-average) {
      // display: block;
      width: auto;
      table-layout: auto;
    }
    @include b(step){
      display: table-cell;
      position: relative;
      background: $--background-color-dark;
      height: 34px;
      margin-right: 5px;
      @include when(first){
        &::before{
          display: none;
        }
        @include e(main){
          margin-right: 10px;
          @include when(icon){
            margin-left: 20px;
          }
          @include when(text){
            margin-left: 20px;
          }
        }
      }
      @include when(last){
        &::after{
          display: none;
        }
      }
      &:after {
        position: absolute;
        content: "";
        width: 0px;
        height: 0px;
        border: 17px solid transparent;
        border-left: 17px solid $--background-color-dark;
        right: -34px;
        z-index: 10;
        top: 0px;
      }
      &:before {
        position: absolute;
        content: "";
        width: 0px;
        height: 0px;
        border: 17px solid transparent;
        border-left: 17px solid $--color-white;
        left: 0px;
        top: 0;
      }
      @include e(head){
        @include float;
        margin-left: 20px;
        vertical-align: top;
        color: $--color-text-placeholder;
      }
      
      @include e(main){
        margin-right: 10px;
        @include when(icon){
          margin-left: 60px;
        }
        @include when(text){
          margin-left: 30px;
        }
      }
      @include e((line,description)){
        display: none;
      }
      @include e(icon){
        @include when(text){
          i{
            display: none;
          }
        }
        i{
          height: 34px;
          width: 34px;
          background-color: transparent;
          text-align: center;
          font-size: 18px;
          line-height: 34px;
        }
      }
      @include e(title){
        line-height: 34px;
        font-weight: $--font-weight-strengthen;
        color: $--color-text-placeholder;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      @include when(step-finish) {
        background-color: $--color-primary-light-9;
        &:after {
          border-left: 17px solid $--color-primary-light-9;
        }
        @include e((head,title)){
          color: $--color-primary;
        }
      }
      @include when(step-process) {
        background-color: $--color-primary;
        &:after {
          border-left: 17px solid $--color-primary;
        }
        @include e((head,title)){
          color: $--color-white;
        }
      }
      @include when(step-error) {
        background-color: $--color-danger-lighter;
        &:after {
          border-left: 17px solid $--color-danger-lighter;
        }
        @include e((head,title)){
          color: $--color-danger;
        }
      }
      @include when(step-success) {
        background-color: $--color-success-lighter;
        &:after {
          border-left: 17px solid $--color-success-lighter;
        }
        @include e((head,title)){
          color: $--color-success;
        }
      }
    }
  }
  // 横向
  @include m(horizontal) {
    white-space: nowrap;
    @include b(step){
      display: table-cell;
      @include e(head){
        height: 40px;
        text-align: center;
      }
      @include e(line){
        top: 16px;
        height: 2px;
        left: calc(50% + 18px);
        right: calc(-50% + 9px);
        background-color: $--border-color-base;
      }
      @include e(icon){
        position: absolute;
        color: $--color-text-placeholder;
        text-align: center;
        transition: .15s ease-out;
        font-size: 14px;
        line-height: 22px;
        @include when(icon){
          margin-left: 50%;
          left: -20px;
          top: 4px;
        }
  
        @include when(text){
          width: 22px;
          height: 22px;
          margin-left: 50%;
          left: -11px;
          top: 4px;
          border-radius: $--border-radius-semi-circle;
          background: $--background-color-dark;
          border: 2px solid $--background-color-dark;
          i{
            display: none;
          }
        }
      }
      @include when(step-wait){
        @include e(title){
          color: $--color-text-placeholder;
        }
      }

      @include e(main){
        text-align: center;
      }
      @include e(title){
        line-height: 22px;
        color: $--color-text-primary;
        font-weight: $--font-weight-strengthen;
      }
      @include e(description){
        padding: 5px 20px;
      }
      
      @include when(step-process) {
        @include e(icon){
          background-color: $--color-primary;
          color: $--color-white;
          border: 2px solid $--color-primary;
          &.is-icon{
            background-color: $--color-white;
            color: $--color-primary;
            border: none;
            padding: 4px;
          }
        }
        @include when(finish) {
          @include e(line){
            background-color:$--color-primary ;
            i{
              border-color:$--color-primary ;
            }
          }
        }
        @include when(active) {
          @include e(icon){
            background: $--color-primary;
            color: $--color-white;
            border: 2px solid $--color-primary;
            &.is-icon{
              background-color: $--color-white;
              color: $--color-primary;
              border: none;
              padding: 4px;
            }
          }
          @include e(title){
            color: $--color-primary;
          }
        }
      }
      @include when(step-error) {
        @include e(icon){
          background: none;
          color: $--color-danger;
          border: 2px solid;
          &.is-icon{
            background-color: $--color-white;
            color: $--color-danger;
            border: none;
            padding: 4px;
          }
        }
        @include when(finish) {
          @include e(line){
            background-color:$--color-danger ;
            i{
              border-color:$--color-danger ;
            }
          }
        }
        @include when(active) {
          @include e(icon){
            background: $--color-danger;
            color: $--color-white;
            border: 2px solid $--color-danger;
            &.is-icon{
              background-color: $--color-white;
              color: $--color-danger;
              border: none;
              padding: 4px;
            }
          }
          @include e(title){
            color: $--color-danger;
          }
        }
      }
      @include when(step-success) {
        @include e(icon){
          background: none;
          color: $--color-success;
          border: 2px solid;
          &.is-icon{
            background-color: $--color-white;
            color: $--color-success;
            border: none;
            padding: 4px;
          }
        }
        @include when(finish) {
          @include e(line){
            background-color:$--color-success ;
            i{
              border-color:$--color-success ;
            }
          }
        }
        @include when(active) {
          @include e(icon){
            background: $--color-success;
            color: $--color-white;
            border: 2px solid $--color-success;
            &.is-icon{
              background-color: $--color-white;
              color: $--color-success;
              border: none;
              padding: 4px;
            }
          }
          @include e(title){
            color: $--color-success;
          }
        }
      }
      @include when(step-finish) {
        @include e(icon){
          background: none;
          color: $--color-primary;
          border: 2px solid;
          &.is-icon{
            background-color: $--color-white;
            color: $--color-primary;
            border: none;
            padding: 4px;
          }
        }
        @include when(finish) {
          @include e(line){
            background-color:$--color-primary ;
            i{
              border-color:$--color-primary ;
            }
          }
        }
        @include when(active) {
          @include e(icon){
            background: $--color-primary;
            color: $--color-white;
            border: 2px solid $--color-primary;
            &.is-icon{
              background-color: $--color-white;
              color: $--color-primary;
              border: none;
              padding: 4px;
            }
          }
          @include e(title){
            color: $--color-primary;
          }
        }
      }
      @include when(active){
        @include e(line){
          background-color:$--border-color-base ;
          i{
            border-color:$--border-color-base;
          }
        }
      }
    }
  }
  // 纵向
  @include m(vertical) {
    height: 100%;
    border-spacing:0 20px;
    @include b(step){
      @include e(head) {
        position: absolute;
      }
      @include e(main){
        position: relative;
        padding-left: 10px;
      }
      @include e(title){
        position: absolute;
        top: -16px;
        line-height: 1;
        font-weight: $--font-weight-strengthen;
        color: $--color-text-primary;
      }
      @include when(step-wait){
        @include e(title){
          color: $--color-text-placeholder;
        }
      }
      @include when(step-process) {
        @include when(active) {
          @include e(title){
            color: $--color-primary;
          }
        }
      }
      @include when(step-error) {
        @include when(active) {
          @include e(title){
            color: $--color-danger;
          }
        }
      }
      @include when(step-finish) {
        @include when(active) {
          @include e(title){
            color: $--color-primary;
          }
        }
      }
      @include when(step-success) {
        @include when(active) {
          @include e(title){
            color: $--color-success;
          }
        }
      }
      @include e(description){
        padding: 4px 0 30px 0;
      }
      @include e(icon){
        width: 12px;
        height: 12px;
        position: relative;
        z-index: 1;
        font-size: 14px;
        box-sizing: border-box;
        background: $--color-white;
        transition: .15s ease-out;
        border: 2px solid $--border-color-base;
        left: -7px;
        top: -16px;
        @include when(icon) {
          width: 24px;
        }
      }
      @include e(line){
        display: none;
      }
      @include when(vertical) {
        display: table-row;
        position: relative;
        .cell{
          position: relative;
          display: table-cell;
          border-left:2px solid $--border-color-base ;
          @include when(process){
            @include e(icon){
              background-color: $--color-primary;
              border-color: $--color-primary;
              color: $--color-primary;
            }
          }
          @include when(finish){
            @include e(icon){
              background-color: $--color-primary;
              border-color: $--color-primary;
              color: $--color-primary;
            }
          }
          @include when(error){
            @include e(icon){
              background-color: $--color-danger;
              border-color: $--color-danger;
              color: $--color-danger;
            }
          }
          @include when(success){
            @include e(icon){
              background-color: $--color-success;
              border-color: $--color-success;
              color: $--color-success;
            }
          }
          .el-step__icon.is-icon {
            background: none;
            border: none;
            height: 14px;
            top: -18px;
            .el-step__icon-inner{
              font-size: 14px;
            }
          }
        }
        @include when(active){
          .cell{
            border-color: $--border-color-base;
          }
        }
        &.is-last{
          .cell{
            border: none;
            padding-left: 2px;
          }
        }
      }
      @include when(finish) {
        .is-process{
          border-color: $--border-color-base;
        }
        .is-finish{
          border-color: $--color-primary;
        }
        .is-error{
          border-color: $--color-danger;
        }
        .is-success{
          border-color: $--color-success;
        }
      }
    }
  }
}