@import "mixins/mixins";
@import "common/var";
@import "./input";
@import "./popper";
@import "./tag";
@import "./cascader-panel";

@include b(cascader) {
  display: inline-block;
  position: relative;
  font-size: $--font-size-base;
  line-height: $--input-height;
  outline: none;

  &:not(.is-disabled):hover {
    .#{$namespace}-input__inner {
      cursor: pointer;
      border-color: $--input-hover-border;
    }
  }

  .#{$namespace}-input {
    cursor: pointer;

    .#{$namespace}-input__inner {
      text-overflow: ellipsis;

      &:focus {
        border-color: $--input-focus-border;
      }
    }

    .#{$namespace}-icon-arrow-down {
      transition: transform .3s;
      font-size: 14px;

      @include when(reverse) {
        transform: rotateZ(180deg);
      }
    }

    .#{$namespace}-icon-circle-close:hover {
      color: $--input-clear-hover-color;
    }

    @include when(focus) {
      .#{$namespace}-input__inner {
        border-color: $--input-focus-border;
      }
    }
  }

  @include m(medium) {
    font-size: $--input-medium-font-size;
    line-height: $--input-medium-height;
  }

  @include m(small) {
    font-size: $--input-small-font-size;
    line-height: $--input-small-height;
  }

  @include m(mini) {
    font-size: $--input-mini-font-size;
    line-height: $--input-mini-height;
  }

  @include when(disabled) {
    .#{$namespace}-cascader__label {
      z-index: #{$--index-normal + 1};
      color: $--disabled-color-base;
    }
  }

  @include e(dropdown) {
    font-size: $--cascader-menu-font-size;
    border-radius: $--cascader-menu-radius;

    @include picker-popper(
      $--cascader-menu-fill,
      $--cascader-menu-border,
      $--cascader-menu-shadow,
    );
  }

  @include e(tags) {
    position: absolute;
    left: 0;
    right: 30px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-wrap: wrap;
    line-height: normal;
    text-align: left;
    box-sizing: border-box;

    .#{$namespace}-tag {
      display: inline-flex;
      align-items: center;
      max-width: 100%;
      margin: 2px 0 2px 6px;
      text-overflow: ellipsis;
      background: $--cascader-tag-background;

      &:not(.is-hit) {
        border-color: transparent;
      }

      > span {
        flex: 1;
        overflow: hidden;
        text-overflow: ellipsis;
      }

      .#{$namespace}-icon-close {
        flex: none;
        background-color: $--color-text-placeholder;
        color: $--color-white;

        &:hover {
          background-color: $--color-text-secondary;
        }
      }
    }
  }

  @include e(suggestion-panel) {
    border-radius: $--cascader-menu-radius;
  }

  @include e(suggestion-list) {
    max-height: 204px;
    margin: 0;
    padding: 6px 0;
    font-size: $--font-size-base;
    color: $--cascader-menu-font-color;
    text-align: center;
  }

  @include e(suggestion-item) {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 34px;
    padding: 0 15px;
    text-align: left;
    outline: none;
    cursor: pointer;

    &:hover, &:focus {
      background: $--cascader-node-background-hover;
    }

    &.is-checked {
      color: $--cascader-menu-selected-font-color;
      font-weight: bold;
    }

    > span {
      margin-right: 10px;
    }
  }

  @include e(empty-text) {
    margin: 10px 0;
    color: $--cascader-color-empty;
  }

  @include e(search-input) {
    flex: 1;
    height: 24px;
    min-width: 60px;
    margin: 2px 0 2px 15px;
    padding: 0;
    color: $--cascader-menu-font-color;
    border: none;
    outline: none;
    box-sizing: border-box;

    &::placeholder {
      color: $--color-text-placeholder;
    }
  }
}
