@import '../core/style/menu-common';
@import '../core/style/list-common';
@import '../core/style/form-common';
@import '../core/style/variables';
@import '../core/style/vendor-prefixes';
@import '../core/a11y/a11y';

$primary: #106cc8 !default;
$warn: #f44336 !default;
$md2-select-trigger-height: 30px !default;
$md2-select-trigger-min-width: 112px !default;
$md2-select-arrow-size: 5px !default;
$md2-select-arrow-margin: 4px !default;
$md2-select-panel-max-height: 256px !default;
$md2-select-trigger-font-size: 16px !default;

.md2-select {
  display: inline-block;
  outline: none;
}

.md2-select-trigger {
  color: rgba(black, 0.38);
  display: flex;
  align-items: center;
  height: $md2-select-trigger-height;
  min-width: $md2-select-trigger-min-width;
  cursor: pointer;
  position: relative;
  box-sizing: border-box;
  font-size: $md2-select-trigger-font-size;

  [aria-disabled='true'] & {
    @include user-select(none);
    cursor: default;
  }

  .md2-select:focus:not(.md2-select-disabled) & {
    color: $primary;
  }

  .md2-select.ng-invalid.ng-touched:not(.md2-select-disabled) & {
    color: $warn;
  }
}

.md2-select-underline {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background-color: rgba(black, 0.12);

  [aria-disabled='true'] & {
    @include mat-control-disabled-underline();
    background-color: transparent;
    background-position: 0 bottom;
  }

  .md2-select:focus:not(.md2-select-disabled) & {
    background-color: $primary;
  }

  .md2-select.ng-invalid.ng-touched:not(.md2-select-disabled) & {
    background-color: $warn;
  }
}

.md2-select-placeholder {
  position: relative;
  padding: 0 2px;
  transform-origin: left top;
  flex-grow: 1;

  &.md2-floating-placeholder {
    top: -22px;
    left: -2px;
    text-align: left;
    transform: scale(0.75);
  }
 
  [dir='rtl'] & {
    transform-origin: right top;

    &.md2-floating-placeholder {
      left: 2px;
      text-align: right;
    }
  }

  [aria-required=true] &::after {
    content: '*';
    color: #fd0f0f;
  }
}

.md2-select-value {
  position: absolute;
  max-width: calc(100% - #{($md2-select-arrow-size + $md2-select-arrow-margin) * 2});
  flex-grow: 1;
  top: 0;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  color: rgba(black, 0.87);

  [dir='rtl'] & {
    left: auto;
    right: 0;
  }

  .md2-select-disabled & {
    color: rgba(black, 0.38);
  }
}

.md2-select-value-text {
  @include mat-truncate-line();
  line-height: $md2-select-trigger-height;
}

.md2-select-arrow {
  width: 0;
  height: 0;
  border-left: $md2-select-arrow-size solid transparent;
  border-right: $md2-select-arrow-size solid transparent;
  border-top: $md2-select-arrow-size solid;
  margin: 0 $md2-select-arrow-margin;
}

.md2-select-panel {
  @include mat-menu-base();
  padding-top: 0;
  padding-bottom: 0;
  max-height: $md2-select-panel-max-height;
  min-width: 100%;

  @include cdk-high-contrast {
    outline: solid 1px;
  }
}

.md2-select-content, .md2-select-panel-done-animating {
  background: white;
}

.cdk-overlay-container, .cdk-global-overlay-wrapper {
  pointer-events: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.cdk-overlay-container {
  position: fixed;
  z-index: 999;
}

.cdk-overlay-pane {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  z-index: 999;
}

.cdk-overlay-backdrop {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  pointer-events: auto;
  transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
  opacity: 0;
}

.cdk-overlay-transparent-backdrop {
  background: none;
}

.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0.48;
}
