@use 'sass:color';

//default
$ddl-input-font-size: 14px !default;
$ddl-input-border: $border-size $border-type !default;
$ddl-input-font-family: inherit !default;
$ddl-zero-value: 0 !default;
$ddl-input-margin-bottom: $ddl-zero-value !default;
$ddl-input-padding: 8px !default;
$ddl-input-group-border-width: 1px !default;
$ddl-clear-icon-margin-right: 0 !default;
$ddl-active-font-color: $active-font-color !default;

$ddl-input-bgr-small-clear-margin: 0 4px !default;
$ddl-input-popup-padding: 4px 0 !default;
$ddl-input-zero-padding: 0 !default;
$ddl-bigger-filter-parent-padding: 8px 16px 8px 0 !default;
$ddl-bigger-small-filtr-parent: 8px 16px !default;
$ddl-bigger-filter-input-parent-padding: 4px 16px 4px 0 !default;

$ddl-list-search-icon-padding: 8px !default;
$ddl-list-filter-text-indent: 0 12px !default;
$ddl-list-icon-color: $grey-dark-font !default;
$ddl-list-box-shadow-color: rgba($base-font, .5) !default;
$ddl-bigger-list-font-size: 15px !default;
$ddl-popup-background-color: $grey !default;
$ddl-filter-border: $grey-44 !default;
$ddl-filter-top-border: 0 !default;
$ddl-filter-padding: 5px 8px !default;
$ddl-filter-box-shadow: none !default;
$ddl-filter-background-color: $grey-white !default;
$ddl-default-border-color: $grey-44 !default;
$ddl-back-icon-margin: -2px 10px 0 -54px !default;
$ddl-back-icon-padding: 0 !default;
$ddl-filter-margin: 0 !default;
$ddl-box-border-color: $grey-lighter !default;

$ddl-bgr-input-filter-margin-left: -20px !default;
$ddl-bgr-content-min-height: 40px !default;
$ddl-border-width: 1px !default;
$ddl-zero-margin-padding: 0 !default;
$ddl-content-nim-height: 33px !default;
$ddl-popup-resize-height: 15px !default;
$ddl-bgr-popup-clear-min-width: 16px !default;
$ddl-bgr-popup-clear-min-height: 16px !default;
$ddl-bgr-small-popup-clear-min-height: 18px !default;
$ddl-bgr-small-popup-clear-min-width: 18px !default;
$ddl-zero-height: 0 !default;
$ddl-popup-resize-width: 15px !default;
$input-border: $ddl-zero-value $border-type !default;
$ddl-full-width: 100%;

// small size
$ddl-small-list-font-size: 13px !default;

// touch size
$ddl-bigger-small-list-font-size: 14px !default;

@include export-module('dropdownlist-bootstrap-dark') {
  #{&}.e-popup.e-ddl {
    border-radius: 4px;
    box-shadow: 0 6px 12px $ddl-list-box-shadow-color;
    margin-top: 3px;
    @at-root {
      #{if(&, '&', '*')} .e-input-group {
        width: auto;

        #{if(&, '&', '*')} input {
          line-height: 15px;
        }
      }
    }
  }

  #{&}.e-popup.e-ddl .e-dropdownbase {
    min-height: 26px;
  }

  #{&}.e-popup.e-ddl .e-filter-parent .e-input-group {
    display: flex;
    width: auto;
    @at-root {
      #{if(&, '&', '*')} .e-back-icon {
        border: 0;
      }
    }
  }

  .e-input-group:not(.e-disabled) .e-control#{&}.e-dropdownlist ~ .e-ddl-icon:active,
  .e-input-group:not(.e-disabled) .e-control#{&}.e-dropdownlist ~ .e-ddl-icon:hover,
  .e-control#{&}.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
  .e-control#{&}.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:hover,
  .e-ddl#{&}.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active,
  .e-ddl#{&}.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:hover,
  .e-ddl#{&}.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
  .e-ddl#{&}.e-popup .e-input-group:not(.e-disabled) .e-back-icon:hover {
    background: transparent;
    color: $ddl-list-icon-color;
  }

  .e-input-group:not(.e-disabled) .e-control#{&}.e-dropdownlist ~ .e-ddl-icon,
  .e-input-group.e-disabled.e-ddl .e-control#{&}.e-dropdownlist ~ .e-input-group-icon,
  .e-control#{&}.e-dropdownlist .e-input-group.e-disabled.e-ddl .e-input-group-icon,
  .e-control#{&}.e-dropdownlist .e-input-group.e-ddl .e-input-group-icon {
    border: 0;
  }

  .e-input-group:not(.e-disabled) .e-control#{&}.e-dropdownlist ~ .e-input-group-icon:active,
  .e-control#{&}.e-dropdownlist .e-input-group:not(.e-disabled) .e-input-group-icon:active,
  .e-ddl#{&}.e-popup .e-input-group:not(.e-disabled) .e-back-icon:active,
  .e-ddl#{&}.e-popup .e-input-group:not(.e-disabled) .e-clear-icon:active {
    box-shadow: none;
  }

  .e-ddl#{&}.e-popup .e-filter-parent {
    border-bottom: 1px solid $grey-88;
  }
}

@include export-module('dropdownlist-layout') {

  .e-ddl#{&}.e-popup {
    #{if(&, '&', '*')} .e-input-group {
      @if ($skin-name == 'Material3') {
        padding-top: $ddl-popup-input-group-mat-margin-top;
      }
    }
  }

  .e-ddl.e-lib.e-input-group:not(.e-float-input) .e-dropdownlist:not(.e-input) {
    width: $ddl-full-width;
    border: $input-border;
  }

  .e-popup.e-wide-popup.e-ddl-device.e-popup-close {
    display: block;
    visibility: hidden;
  }

  .e-popup-full-page {
    bottom: $ddl-zero-margin-padding;
    left: $ddl-zero-margin-padding;
    margin: $ddl-input-zero-padding;
    overflow: hidden;
    padding: $ddl-input-zero-padding;
    right: $ddl-zero-margin-padding;
    top: $ddl-zero-margin-padding;

    #{&}.e-ddl.e-popup.e-ddl-device-filter {
      margin: $ddl-filter-margin;
    }
  }

  .e-ddl.e-control-wrapper .e-ddl-disable-icon {
    position: relative;
  }

  .e-ddl.e-control-wrapper .e-ddl-disable-icon::before {
    content: '';
  }

  .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
    position: relative;
  }

  .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
    content: '';
  }

  .e-ddl-device-filter .e-filter-parent {
    background-color: $ddl-filter-background-color;
  }

  /* stylelint-disable property-no-vendor-prefix */
  .e-ddl input.e-input::-webkit-contacts-auto-fill-button {
    display: none;
    pointer-events: none;
    position: absolute;
    right: $ddl-zero-margin-padding;
    visibility: hidden;
  }
  /* stylelint-enable property-no-vendor-prefix */

  .e-filter-parent {
    border: $ddl-filter-border;
    border-top-width: $ddl-filter-top-border;
    box-shadow: $ddl-filter-box-shadow;
    display: block;
    padding: $ddl-filter-padding;
    @if ($skin-name == 'FluentUI') {
      border-bottom: $ddl-filter-parent-border;
    }
  }

  .e-ddl.e-input-group:not(.e-disabled) {
    cursor: pointer;
  }

  .e-ddl#{&}.e-popup.e-ddl-device-filter {
    @at-root {
      #{if(&, '&', '*')} .e-input-group.e-input-focus::before,
      #{if(&, '&', '*')} .e-input-group.e-input-focus::after {
        width: $ddl-zero-margin-padding;
      }
    }
  }

  .e-ddl#{&}.e-popup {
    background: $ddl-popup-background-color;
    @if $skin-name != 'material' and $skin-name != 'Material3' {
      border: $ddl-border-width solid $ddl-default-border-color;
    }
    @if $skin-name == 'Material3' {
      border-radius: $ddl-nrml-popup-border-radius;
    }
    position: absolute;
    @at-root {
      #{if(&, '&', '*')} .e-search-icon {
        margin: $ddl-input-zero-padding;
        opacity: .57;
        padding: $ddl-list-search-icon-padding;
      }

      #{if(&, '&', '*')} .e-filter-parent .e-back-icon {
        padding: $ddl-back-icon-padding;
      }

      #{if(&, '&', '*')}.e-rtl .e-filter-parent .e-input-group.e-control-wrapper .e-input-filter,
      #{if(&, '&', '*')} .e-filter-parent .e-input-filter,
      #{if(&, '&', '*')} .e-filter-parent .e-input-filter:focus,
      #{if(&, '&', '*')} .e-filter-parent .e-input-group.e-input-focus .e-input-filter,
      #{if(&, '&', '*')} .e-filter-parent .e-input-group.e-control-wrapper.e-input-focus .e-input-filter {
        @if ($skin-name != 'bootstrap4' and $skin-name != 'bootstrap4-dark' and $skin-name != 'FluentUI' and $skin-name != 'bootstrap5' and $skin-name != 'bootstrap5.3' and $skin-name != 'tailwind' and $skin-name != 'tailwind3') {
          padding: $ddl-list-filter-text-indent;
        }
      }

      #{if(&, '&', '*')} .e-input-group {
        margin-bottom: $ddl-zero-margin-padding;
      }

      #{if(&, '&', '*')} .e-ddl-footer,
      #{if(&, '&', '*')} .e-ddl-header {
        cursor: default;
      }
    }
  }

  /* stylelint-disable property-no-vendor-prefix */
  .e-ddl.e-input-group .e-ddl-hidden,
  .e-ddl.e-float-input .e-ddl-hidden {
    -webkit-appearance: initial;
    border: 0;
    height: $ddl-zero-height;
    padding: $ddl-input-zero-padding;
    visibility: hidden;
    width: $ddl-zero-margin-padding;
  }

  .e-ddl.e-input-group,
  .e-ddl.e-input-group.e-input-focus:focus {
    outline: none;
  }

  .e-dropdownbase .e-list-item .e-highlight {
    display: inline;
    font-weight: bold;
    vertical-align: baseline;
  }

  .e-ddl.e-input-group input[readonly] ~ .e-clear-icon:not(.e-clear-icon-hide),
  .e-float-input input[readonly] ~ .e-clear-icon:not(.e-clear-icon-hide),
  .e-float-input.e-input-group input[readonly] ~ .e-clear-icon:not(.e-clear-icon-hide) {
    opacity: 1;
  }

  .e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon,
  .e-input-group input.e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon,
  .e-input-group.e-control-wrapper input.e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon,
  .e-float-input input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon,
  .e-float-input.e-control-wrapper input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon,
  .e-float-input.e-input-group input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon,
  .e-float-input.e-input-group.e-control-wrapper input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon {
    display: flex;
  }

  .e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-input-group input.e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-input-group.e-control-wrapper input.e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input.e-control-wrapper input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input.e-input-group input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input.e-input-group.e-control-wrapper input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide {
    display: none;
  }

  .e-input-group.e-static-clear input.e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-input-group.e-static-clear.e-control-wrapper input.e-dropdownlist.e-input:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input.e-static-clear input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input.e-static-clear.e-control-wrapper input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input.e-static-clear.e-input-group input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide,
  .e-float-input.e-static-clear.e-input-group.e-control-wrapper input.e-dropdownlist:not(:valid):first-child ~ .e-clear-icon.e-clear-icon-hide {
    cursor: pointer;
    display: flex;
  }

  .e-disabled.e-ddl.e-static-clear .e-clear-icon {
    pointer-events: none;
  }

  .e-ddl.e-input-group {
    .e-input-value,
    .e-input-value:focus {
      font-family: $ddl-input-font-family;
      font-size: $ddl-input-font-size;
      height: auto;
      margin: $ddl-zero-value;
      outline: none;
      width: $ddl-full-width;
      overflow: hidden;
    }

    input[readonly].e-input,
    input[readonly],
    .e-dropdownlist {
      pointer-events: none;
    }
  }

  .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
    cursor: pointer;
    pointer-events: auto;
  }

  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
    opacity: .7;
    pointer-events: none;
    @if $skin-name == 'bootstrap5.3' or $skin-name == 'fluent2' or $skin-name == 'tailwind3' {
      color: $ddl-list-disable-item-color;
    }
  }

  ejs-autocomplete,
  ejs-combobox,
  ejs-dropdownlist {
    display: block;
  }

  .e-small .e-ddl#{&}.e-popup,
  .e-input-group.e-ddl.e-small {
    #{if(&, '&', '*')} .e-list-item {
      font-size: $ddl-small-list-font-size;
    }

    #{if(&, '&', '*')} .e-list-group-item {
      @if $skin-name != 'tailwind' {
        font-size: $ddl-small-list-font-size;
      }
    }
  }

  .e-small.e-ddl#{&}.e-popup,
  .e-input-group.e-ddl.e-small {
    #{if(&, '&', '*')} .e-list-item {
      font-size: $ddl-small-list-font-size;
    }

    #{if(&, '&', '*')} .e-list-group-item {
      @if $skin-name != 'tailwind' {
        font-size: $ddl-small-list-font-size;
      }
    }
  }

  .e-content-placeholder.e-ddl.e-placeholder-ddl,
  .e-content-placeholder.e-autocomplete.e-placeholder-autocomplete,
  .e-content-placeholder.e-combobox.e-placeholder-combobox {
    background-size: 300px 33px;
    min-height: $ddl-content-nim-height;
  }

  .e-ddl.e-popup.e-resize .e-resizer-right {
    bottom: $ddl-zero-margin-padding;
    right: $ddl-zero-margin-padding;
    cursor: nwse-resize;
    height: $ddl-popup-resize-height;
    position: absolute;
    width: $ddl-popup-resize-width;
  }

  .e-ddl.e-popup.e-resize .e-resizer-right {
    @if $skin-name == 'bootstrap-dark' or $skin-name == 'material-dark' or $skin-name == 'tailwind-dark' or $skin-name == 'material3-dark' or $skin-name == 'bootstrap5-dark' or $skin-name == 'fluent-dark'  or $skin-name == 'fabric-dark' or $skin-name == 'highcontrast'  {
      background: transparent;
      color: rgb(221, 218, 218);
    }
  }
  .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
  .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
    @if $skin-name =='fabric' or $skin-name =='bootstrap' or $skin-name =='bootstrap4' or $skin-name =='bootstrap5' or $skin-name =='bootstrap5.3' or $skin-name =='highcontrast' {
      border-color: $ddl-box-border-color;
    }

    @if $skin-name =='bootstrap' or $skin-name =='bootstrap4' {
      -webkit-box-shadow: none;
      box-shadow: none;
    }

    @if $skin-name =='bootstrap5' or $skin-name =='bootstrap5.3' {
      box-shadow: none;
    }
  }
}

@include export-module('dropdownlist-theme') {
  #{&}.e-popup {
    border-color: $ddl-default-border-color;
  }

  .e-float-input.e-input-group.e-ddl.e-control.e-icon-anim > .e-float-text,
  .e-float-input.e-input-focus.e-input-group.e-ddl.e-control.e-keyboard > .e-float-text {
    color: $ddl-active-font-color;
  }

  .e-ddl.e-popup .e-filter-parent .e-input-group input.e-input-filter {
    border-color: transparent;
    @if $skin-name == 'bootstrap4' or $skin-name == 'bootstrap5' or $skin-name == 'bootstrap5.3' or $skin-name == 'highcontrast' {
      background: none;
    }
  }
}

@include export-module('dropdownlist-bootstrap-icons') {
  .e-ddl .e-search-icon::before {
    content: '\e993';
  }

  .e-ddl .e-back-icon::before {
    content: '\e94b';
  }

  .e-ddl.e-input-group.e-control-wrapper .e-ddl-icon::before {
    content: '\e969';
    font-family: 'e-icons';
  }

  .e-ddl.e-popup.e-resize .e-icons.e-resizer-right::before {
    content: '\eb08';
  }
}