@use 'ej2-base/styles/common/mixin' as *;
@mixin padding-styles($left, $right) {
  padding-left: $left;
  padding-right: $right;
}

@mixin height-styles($height, $line-height) {
  height: $height;
  line-height: $line-height;
}

@mixin padding-position-styles {
  padding-bottom: 4px;
  position: static;
}

@include export-module('excel-filter-layout') {

  /*! Excel-Filter layout */
  .sf-grid .e-excelfilter {
    &.e-dialog .e-dlg-content {
      padding-left: 0;
      padding-right: 0;
    }
    .e-dlg-content {
      overflow: visible;
      padding: 0;
      @if $theme-name == 'Material3-dark' or $theme-name == 'tailwind3-dark' or $theme-name == 'fluent-dark'{
        background: unset;
      }
    }

    .e-searchcontainer {
      padding: $sfgrid-xlfl-dlg-padding;
      padding-top: 4px;
      @include padding-styles($grid-checkbox-content-padding-left, 24px);
    }

    &.e-rtl{
      .e-searchcontainer {
        padding: $sfgrid-xlfl-dlg-padding;
        padding-top: 4px;
        @include padding-styles($grid-rtl-checkbox-content-padding-left, 0);
      }
      .e-checkbox-wrapper .e-frame + .e-label {
        margin-left: 0;
        margin-right: 8px;
      }
    }

    .e-contextmenu-container {
      &.e-sfcontextmenu {
        display: inline-block;
        position: relative;
        width: 100%;
        .e-ul {
          position: absolute;
          .e-menu-item .e-menu-icon {
            @include height-styles(26px, 26px);
          }
          .e-menu-item:not(.e-separator) {
            @include height-styles(36px, 36px);
          }
          .e-separator {
            height: auto;
          }
        }
      }
      ul .e-menu-item .e-caret {
        margin-right: 24px;
        @if $grid-xlfl-skin == 'fluent2' or $grid-xlfl-skin == 'fluent2-dark' or $grid-xlfl-skin == 'bootstrap5' or $grid-xlfl-skin == 'bootstrap5-dark' or $grid-xlfl-skin == 'bootstrap4'or $grid-xlfl-skin == 'tailwind' or $grid-xlfl-skin == 'tailwind3' or $grid-xlfl-skin == 'tailwind3-dark' {
          line-height: $grid-xlfl-li-height;
          padding: 0;
        }
      }
    }

    .e-searchbox {
      padding-left: 8px;
    }
  }

  .sf-grid-dlg.e-xlflmenu .e-xlfl-radiodiv {
    width: unset;
  }

  #{&}.e-xlflmenu {
    min-height: $grid-xlfl-min-height;

    .e-xlfl-dlgfields {
      font-size: $grid-xlfl-dlgfields-font-size;
      @if $grid-xlfl-skin == 'material3' {
        padding-top: 12px;
      }
      @if $grid-xlfl-skin == 'tailwind3' {
        color: $content-text-color;
      }
    }

    .e-xlfl-fieldset {
      font-size: $grid-xlfl-fieldset-font-size;
      padding-top: $grid-xlfl-fieldset-padding;
      @if $grid-xlfl-skin == 'tailwind3' {
        color: $content-text-color;
      }
    }

    .e-responsive-dialog & table.e-xlfl-table tr.e-xlfl-fields:nth-child(2) td.e-xlfl-optr,
    .e-responsive-dialog & table.e-xlfl-table tr.e-xlfl-fields:nth-child(2) td.e-xlfl-value {
      @if $grid-xlfl-skin == 'material3' {
        padding-top: 16px;
      }
    }

    table.e-xlfl-table tr.e-xlfl-fields:nth-child(2) td.e-xlfl-optr,
    table.e-xlfl-table tr.e-xlfl-fields:nth-child(2) td.e-xlfl-value {
      @if $grid-xlfl-skin == 'material3' {
        padding-top: 0;
      }
    }

    .e-xlfl-optr,
    .e-xlfl-value {
      padding-top: $grid-xlfltd-padding;
    }

    .e-xlfl-radio,
    .e-xlfl-mtcase {
      padding-top: $grid-xlfltd-radio-mtcase-padding;
    }

    .e-xlfl-optr:first-child {
      padding-right: $grid-xlfl-dropdown-padding-right;
    }

    .e-xlfl-table {
      border-spacing: $grid-xlfltable-border-spacing;
      table-layout: fixed;
      width: 100%;
    }

    .e-radio + label .e-label {
      margin-top: $grid-xl-radio-margin-top;
      @include padding-styles($grid-xl-radio-padding-left, $grid-xl-radio-padding-right);
    }

    .e-xlfl-matchcasediv .e-checkbox-wrapper {
      .e-frame + .e-label {
        @if $grid-xlfl-skin == 'material3' {
          max-width: none;
        }
      }
    }

    .e-checkbox-wrapper {
      .e-frame + .e-label {
        margin-bottom: 1px;
        margin-left: $grid-xl-match-margin-left;
        @if $grid-xlfl-skin == 'fluent2' {
          margin-bottom: 7px;
        }
        @if $grid-xlfl-skin == 'tailwind3' {
          margin-bottom: 2px;
        }
      }

      .e-frame {
        margin-bottom: 1px;
        @if $grid-xlfl-skin == 'fluent2' {
          margin-bottom: 8px;
        }
      }
    }

    .e-dlg-content {
      padding-bottom: $grid-xlfl-dlg-padding-bottom;
    }

    .e-xlfl-radiodiv {
      width: $grid-xlfl-radiodiv-width;
    }

    .e-xlfl-matchcasediv {
      margin-left: 0;
      margin-right: 13px;
    }
  }

  .e-xlfl-radio-or,
  .e-xlfl-matchcasediv {
    margin-left: $grid-xlfl-radio-margin-left;
  }

  .e-emptyicon {
    opacity: 0;
  }

  #{&}.e-xlflmenu.e-rtl {
    .e-xlfl-optr {
      @include padding-styles($grid-xlfl-dropdown-padding-right, 0);
    }

    .e-radio + label .e-label {
      @include padding-styles($grid-xl-rtl-radio-padding-left, $grid-xl-rtl-radio-padding-right);
    }

    .e-xlfl-radio-or {
      margin-left: 0;
      margin-right: 13px;
    }
  }

  #{&}.e-excelfilter {
    .e-checkboxlist {
      height: 200px;
      margin-top: 5px;
      min-height: 160px;
      overflow-y: auto;
      @if $grid-xlfl-skin == 'fluent2' {
        margin-left: -12px;
      }
    }

    .e-checkboxfiltertext {
      width: $grid-checkboxfiltertext-width;
      word-break: normal;
    }

    .e-responsive-dialog & .e-checkboxfiltertext {
      @if $grid-xlfl-skin == 'material3' {
        width: 180px;
      }
    }

    .e-chk-hidden {
      -moz-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */
      height: 1px;
      opacity: 0;
      width: 1px;
    }

    .e-contextmenu-wrapper ul li,
    .e-contextmenu-container ul li {
      @if $grid-xlfl-skin == 'fluent2' {
        padding: 0 12px;
      }
      @include height-styles($grid-xlfl-li-height, $grid-xlfl-li-height);
      .e-menu-icon {
        @include height-styles($grid-xlfl-li-height, $grid-xlfl-li-height);
        margin-right: $grid-xlfl-li-icon-margin-right;
      }
    }

    .e-contextmenu-wrapper ul .e-menu-item .e-caret {
      @include height-styles($grid-xlfl-li-height, $grid-xlfl-li-height);
    }

    .e-contextmenu-wrapper ul,
    .e-contextmenu-container ul:not(.e-ul) {
      border: 0;
      border-radius: $grid-xlfl-context-menu-border-radious;
      box-shadow: none;
      max-width: 300px;
      @include padding-position-styles;
      @if $grid-xlfl-skin == 'fluent2' {
        background-color: $content-bg-color;
      }
    }

    .e-dlg-content {
      @if $grid-xlfl-skin == 'material3' {
        background: $grid-dialog-footer-color;
      }
      @else {
        background-color: $grid-dialog-footer-color;
      }
      padding-top: 0;
      padding-top: $grid-xlfl-dlg-content-top-padding;
    }

    .e-searchbox,
    .e-contextmenu-wrapper,
    .e-contextmenu-wrapper ul {
      display: block;
    }

    .e-contextmenu-wrapper ul {
      @include padding-position-styles;
      @if $grid-xlfl-skin == 'fluent2' {
        padding: 4px 0;
      }
      li .e-contextmenu-container ul li {
        @include height-styles($grid-xlfl-li-height, $grid-xlfl-li-height);
      }
      .e-menu-item .e-caret {
        @include height-styles($grid-xlfl-li-height, $grid-xlfl-li-height);
        margin-right: $grid-xlfl-li-icon-margin-arrow-icon;
        @if $grid-xlfl-skin == 'fluent2' {
          margin-top: -3px;
          margin-right: 17px;
        }
        @if $grid-xlfl-skin == 'tailwind3' {
          margin-top: 1px;
        }
        @if $grid-xlfl-skin == 'tailwind3' {
          font-size: 18px;
        }
      }
    }

    .e-contextmenu-wrapper ul li .e-menu-icon,
    .e-contextmenu-container ul li .e-menu-icon {
      @include height-styles($grid-xlfl-li-height, $grid-xlfl-li-height);
      margin-right: $grid-xlfl-li-icon-margin-right;
      @if $grid-xlfl-skin == 'tailwind3' {
        font-size: 20px;
        &.e-icon-check {
          font-size: 18px;
        }
      }
    }

    &.e-rtl {
      .e-contextmenu-wrapper ul {
        li .e-menu-icon {
          margin-right: 0;
        }
        .e-menu-item .e-caret {
          @if $grid-xlfl-skin == 'material3' {
            margin-left: 14px;
          }
          @else {
            margin-left: $grid-xlfl-li-icon-margin-arrow-icon;
          }
        }
      }
    }

    .e-footer-content {
      border-style: solid;
      border-width: $grid-column-chooser-footdiv;
      @if $grid-xlfl-skin == 'fluent2' {
        padding-right: 20px;
        padding-left: 20px;
      }
    }

    .e-excel-menu {
      z-index: 1000;
    }

    .e-xlsel {
      border: 0 solid;
      position: absolute;
      user-select: none;
    }

    &.e-dialog .e-dlg-content {
      padding-left: $grid-checkbox-content-padding-left;
      @if $grid-xlfl-skin == 'material3' {
        padding-right: 16px;
      }
      @if $grid-xlfl-skin == 'fluent2' {
        padding-right: 20px;
      }
    }

    .e-ftrchk,
    .e-searchbox {
      padding-left: $grid-checkbox-padding-topbottom;
    }

    &.e-rtl {
      .e-dlg-content {
        @include padding-styles($grid-rtl-checkbox-content-padding-left, $grid-checkbox-content-padding-left);
      }

      .e-ftrchk,
      .e-searchbox {
        @include padding-styles(0, $grid-checkbox-padding-topbottom);
      }
    }
  }

  .e-ftrchk {
    padding-bottom: $grid-checkbox-padding-topbottom;
    padding-top: $grid-checkbox-padding-topbottom;
    @if $grid-xlfl-skin == 'fluent2' {
      padding-bottom: 4px;
      padding-top: 4px;
    }
  }

  @if $grid-xlfl-skin == 'fluent2' {
    .e-ftrchk.e-infinitescroll {
      padding-left: 0;
      margin-left: 0;
    }
  }
}

.e-excel-menu.e-contextmenu.e-menu-parent {
  max-height: $grid-exlfltr-ctxtmnu-max-height;
  overflow-y: auto;
}
