@import '../../style/mixins/index';
@import '../../style/themes/default';

@listPrefixCls: am-list;
@listItemPrefixCls: am-list-item;

.@{listPrefixCls} {

  .@{listPrefixCls}-error {
    color: #f50;
    background: white;
    padding: 12px 15px;
    width: 100%;
    display: block;
  }

  &:not(.@{listPrefixCls}-section) {
    & > .@{listPrefixCls}-body {
      & > .@{listItemPrefixCls} {
        & > .@{listItemPrefixCls}-line {
          & >.@{listItemPrefixCls}-content {
            border-bottom: 1px solid #eee;
          }
        }
      }
    }
  }

  &-header {
    box-sizing: border-box;
    color: @color-text-caption;
    font-size: @font-size-base;
    padding: @v-spacing-lg @h-spacing-lg @v-spacing-md @h-spacing-lg;
    width: 100%;
    &.@{listPrefixCls}-required {
      &:before {
        color: #f50;
        content: '*';
        float: left;
        font-size: 18px;
        margin-right: 5px;
        margin-top: 2px;
      }
    }
  }

  &.@{listPrefixCls}-section {
    &.@{listPrefixCls}-section-default {
      &>.@{listPrefixCls}-body {
        &>.@{listItemPrefixCls} {
          margin-bottom: 8px;
        }
      }
    }
  }

    &>.@{listPrefixCls}-body {

      &>.@{listItemPrefixCls}.@{listItemPrefixCls}-vertical {
        &>.@{listItemPrefixCls}-line {
          & >.@{listItemPrefixCls}-content {
            & >.@{listItemPrefixCls}-control {
              width: 100%;
            }
          }
        }
      }
    }

    &>.@{listPrefixCls}-body {

      &>.@{listItemPrefixCls}.@{listItemPrefixCls}-horizontal {
        &>.@{listItemPrefixCls}-line {
          & >.@{listItemPrefixCls}-content {
            display: flex;
            flex-direction: row;
            & >.@{listItemPrefixCls}-title {
              width: auto;
            }
            .@{listItemPrefixCls}-control {
              display: flex;
              align-items: center;
            }
          }
        }
      }
    }

  &-item {

    &&-label {

      &-top {

        .@{listItemPrefixCls}-line {
          display: block;

          .@{listItemPrefixCls}-extra {
            text-align: left;
          }
        }
      }
    }

    &&-extra {

      &-left {

        .@{listItemPrefixCls}-line {

          .@{listItemPrefixCls}-content {
            flex: none;
          }

          .@{listItemPrefixCls}-extra {
            flex: 1;
            margin-left: 8px;
            text-align: left;
          }
        }
      }

      &-center {

        .@{listItemPrefixCls}-line {

          .@{listItemPrefixCls}-content {
            flex: none;
          }

          .@{listItemPrefixCls}-extra {
            flex: 1;
            margin-left: 8px;
            text-align: center;
          }
        }
      }
    }
  }

  &-footer {
    color: @color-text-caption;
    font-size: @font-size-base;
    padding: @v-spacing-md @h-spacing-lg @v-spacing-lg @h-spacing-lg;
  }

  &-body {
    position: relative;
    .hairline('top');
    .hairline('bottom');

    div:not(:last-child) {

      .@{listPrefixCls}-line {
        .hairline('bottom');
      }

      &.@{listItemPrefixCls}-section {

        .@{listItemPrefixCls}-line {
          border-bottom: none;

          &:after {
            display: none;
          }
        }
      }
    }
  }

  &.@{listPrefixCls}-section {

    .@{listPrefixCls}-body {
      border-bottom: none;
      border-top: none;
    }
  }
}

.@{listPrefixCls}-item {
  align-items: center;
  background-color: @fill-base;
  display: flex;
  min-height: @list-item-height;
  overflow: hidden;
  padding-left: @h-spacing-lg;
  position: relative;
  transition: background-color 200ms;
  vertical-align: middle;

  .@{listItemPrefixCls}-placeholder {
    color: @color-text-placeholder;
  }

  .@{listPrefixCls}-ripple {
    background: transparent;
    border-radius: 100%;
    cursor: pointer;
    display: inline-block;
    outline: none;
    overflow: hidden;
    position: absolute;
    transform: scale(0);
    transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1), background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1);
    will-change: box-shadow, transform;

    &.@{listPrefixCls}-ripple-animate {
      animation: ripple 1s linear;
      background-color: hsla(0, 0%, 62%, .2);
    }
  }

  &.@{listItemPrefixCls}-top {

    .@{listItemPrefixCls}-line {
      align-items: flex-start;

      .@{listItemPrefixCls}-arrow {
        margin-top: 2 * @hd;
      }
    }
  }

  &.@{listItemPrefixCls}-middle {

    .@{listItemPrefixCls}-line {
      align-items: center;
    }
  }

  &.@{listItemPrefixCls}-bottom {

    .@{listItemPrefixCls}-line {
      align-items: flex-end;
    }
  }


  &.@{listItemPrefixCls}-error {

    .@{listItemPrefixCls}-line {

      .@{listItemPrefixCls}-error-extra {
        background-size: @icon-size-sm auto;
        height: @icon-size-sm;
        margin-left: @v-spacing-sm;
        .encoded-svg-background('error');

        width: @icon-size-sm;
      }

      .@{listItemPrefixCls}-extra {
        color: #f50;

        .@{listItemPrefixCls}-brief {
          color: #f50;
        }
      }
    }
  }

  &.@{listItemPrefixCls}-active {
    background-color: @fill-tap;
  }

  &&-disabled {
    .@{listItemPrefixCls}-line {

      .@{listItemPrefixCls}-title,
      .@{listItemPrefixCls}-extra {
        color: @color-text-disabled;
      }
    }
  }

  img {
    height: @icon-size-md;
    vertical-align: middle;
    width: @icon-size-md;
  }

  .@{listItemPrefixCls}-required {

    &:before {
      color: #f50;
      content: '*';
      float: left;
      font-size: 18px;
      margin: 0 4px 0 0;
    }
  }

  /* list左图片显示*/

  .@{listItemPrefixCls}-thumb {
    margin-right: @h-spacing-md;
  }

  .@{listItemPrefixCls}-line {
    align-self: stretch;
    display: flex;
    flex: 1;
    flex-direction: row;
    justify-content: center;
    overflow: hidden;
    padding-right: @h-spacing-lg;
    position: relative;

    & >.@{listItemPrefixCls}-content {

      & >.@{listItemPrefixCls}-title {
        display: flex;
        align-items: center;
        font-size: 15px;
        color: #666;
        line-height: 22.5px;
        margin: 4px 0 4px 0;
        width: 100%;
      }
    }

    /* list左侧主内容*/

    &.@{listItemPrefixCls}-line-multiple {

      .@{listItemPrefixCls}-content {
        flex: 1;
      }
    }

    .@{listItemPrefixCls}-content {
      flex: 1;
      color: @color-text-base;
      font-size: @font-size-heading;
      line-height: @line-height-paragraph;
      min-width: 20%;
      padding-bottom: 7 * @hd;
      padding-right: 8px;
      .ellipsis();

      padding-top: 7 * @hd;
      text-align: left;
    }

    .@{listItemPrefixCls}-control {
      flex: 1;
    }
    /* list右补充内容*/
    .@{listItemPrefixCls}-extra {
      color: @color-text-caption;
      flex: 1;
      font-size: @font-size-caption;
      line-height: @line-height-paragraph;
      padding-bottom: 7 * @hd;
      .ellipsis();

      padding-top: 7 * @hd;

      &-text {
        color: @color-text-paragraph;
      }
    }

    .@{listItemPrefixCls}-title {
      .ellipsis();
    }

    /* 辅助性文字*/

    .@{listItemPrefixCls}-brief {
      color: @color-text-caption;
      font-size: @font-size-subhead;
      line-height: @line-height-paragraph;
      margin-top: @v-spacing-sm;
      .ellipsis();
    }

    /* list右侧箭头*/

    .@{listItemPrefixCls}-arrow {
      background-position: 50% 50%;
      background-repeat: no-repeat;
      background-size: contain;
      display: block;
      .encoded-svg-background('right');

      height: @icon-size-xxs;
      margin-left: @h-spacing-md;
      visibility: hidden;
      width: @icon-size-xxs;

      &-horizontal {
        visibility: visible;
      }

      &-vertical {
        transform: rotate(90deg);
        visibility: visible;
      }

      &-vertical-up {
        transform: rotate(270deg);
        visibility: visible;
      }
    }

    &-multiple {
      padding: 12.5 * @hd @h-spacing-lg 12.5 * @hd 0;

      .@{listItemPrefixCls}-content {
        padding-bottom: 0;
        padding-top: 0;
      }

      .@{listItemPrefixCls}-extra {
        padding-bottom: 0;
        padding-top: 0;
      }
    }

    &-wrap {

      .@{listItemPrefixCls}-content {
        white-space: normal;
      }

      .@{listItemPrefixCls}-extra {
        white-space: normal;
      }
    }
  }

  select {
    appearance: none;
    background-color: transparent;
    border: 0;
    display: block;
    font-size: @font-size-heading;
    height: 100%;
    padding: 0;
    position: relative;
    width: 100%;
  }
}

@keyframes ripple {

  100% {
    opacity: 0;
    transform: scale(2.5);
  }
}
