@use 'sass:map';

@use './index.scss' as *;
@use '../mixins/mixins' as *;
@use '../common/var' as *;

$checked-icon: "data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E";

@mixin checked-icon {
  // content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  border-top: none;
  border-right: none;
  background-repeat: no-repeat;
  background-position: center;
  background-color: map.get($select-option, 'selected-text-color');
  // mask: url('#{$checked-icon}') no-repeat;
  // mask-size: 100% 100%;
  // -webkit-mask: url('#{$checked-icon}') no-repeat;
  // -webkit-mask-size: 100% 100%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
}

@include b(dsh-select-dropdown) {
  @include set-component-css-var('dsh-select', $select);
}

@include b(dsh-select) {
  
  @include e(input) {
    border-radius: 0;
    border-style: none none solid;
    border-bottom: 1px solid #d9dbde;
    outline: none;
    padding-left: 24px;
    color: getCssVar('dsh-select-multiple-input-color');
    font-size: getCssVar('dsh-select-font-size');
    appearance: none;
    height: 32px;
    line-height: 32px;
    width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    background-color: transparent;
    
    &::placeholder {
      color: getCssVar('text-color-placeholder');
    }

    &:hover {
      border-bottom-color: #888c94
    }

    &:active
    ,&:focus {
      border-bottom-color: #005BF5
    }

    @include when(disabled) {
      cursor: not-allowed;
    }

    &--iOS {
      position: absolute;
      left: 0;
      top: 0;
      z-index: 6;
    }

    @include when(small) {
      height: 14px;
    }
  }
}

@include b(dsh-select-dropdown) {
  z-index: calc(#{getCssVar('index-top')} + 1);
  border-radius: getCssVar('border-radius-base');
  box-sizing: border-box;

  @include when(multiple) {
    & .#{$namespace}-dsh-select-dropdown__item.selected {
      color: map.get($select-option, 'selected-text-color');
      background-color: map.get($select-dropdown, 'bg-color');

      &.hover {
        background-color: map.get($select-option, 'hover-background');
      }

      &::after {
        @include checked-icon;
      }

      &.is-disabled {
        &::after {
          background-color: getCssVar('text-color-disabled');
        }
      }
    }
  }
  
  .text-sub {
    color: getCssVar('text-color-placeholder');
    margin-left: 5px;
  }

  & .#{$namespace}-dsh-select-dropdown__option-item.is-selected {
    &::after {
      @include checked-icon;
    }
  }

  .#{$namespace}-dsh-scrollbar.is-empty .#{$namespace}-dsh-select-dropdown__list {
    padding: 0;
  }

  .#{$namespace}-dsh-select-dropdown__item.is-disabled {
    &:hover {
      background-color: unset;
    }

    &.selected {
      color: getCssVar('text-color-disabled');
    }
  }
}

@include b(dsh-select-dropdown__empty) {
  padding: map.get($select-dropdown, 'empty-padding');
  margin: 0;
  text-align: center;
  color: map.get($select-dropdown, 'empty-color');
  font-size: getCssVar('dsh-select-font-size');
}

@include b(dsh-select-dropdown__wrap) {
  max-height: map.get($select-dropdown, 'max-height');
}

@include b(dsh-select-dropdown__list) {
  list-style: none;
  padding: 0 6px 0 0;
  margin: 0;
  box-sizing: border-box;
}
