@import './token.less';
@import '../../pop-over/style/index.less';

@import './datetime.less';
.@{ns}-DatePicker {
  position: relative;
  display: inline-flex;
  flex-wrap: nowrap;
  border: @DatePicker-borderWidth solid @DatePicker-borderColor;
  font-size: @DatePicker-fontSize;
  padding: @DatePicker-paddingY @DatePicker-paddingX;
  height: @DatePicker-height;
  outline: none;
  white-space: nowrap;
  color: @DatePicker-color;
  background: @DatePicker-bg;
  border-radius: @DatePicker-borderRadius;
  transition: border-color @animation-duration;
  width: 100%;

  &-input {
    display: inline-block;
    width: 100%;
    background: none;
    padding: 0;
    border: 0;
    line-height: 1;
    &:focus {
      border: none;
      outline: none;
      box-sizing: none;
    }
    // &::placeholder {
    //   color: @colors-neutral-text-6;
    // }
  }

  .@{ns}-DatePicker-clear {
    display: none;
  }

  .input-border();

  &-value{
    .@{ns}-DatePicker-clear{
      display: flex;
    }
    .@{ns}-DatePicker-toggler{
      display: none;
    }
  }

  &.is-quick-edit {
    border-color: transparent;
    &:hover:not(.is-disabled),&.is-focused{
      background: @DatePicker-onHover-bg;
      border-color: @DatePicker-onFocused-borderColor;

      .@{ns}-DatePicker-clear,.@{ns}-DatePicker-toggler{
        opacity: 1;
      }
    }
    .@{ns}-DatePicker-clear,.@{ns}-DatePicker-toggler{
      opacity: 0;
    }
    &.is-disabled{
      color: var(--color-text-3);
      border: 0;
    }

  }

  &.is-focused {
    border-color: @DatePicker-onFocused-borderColor;
    box-shadow: @Form-input-boxShadow;
  }

  &.is-disabled {
    background: var(--color-fill-2);
    border-color: var(--color-border-2);

    > .@{ns}-DatePicker-input {
      color: var(--color-text-3);
    }
  }

  &:not(.is-disabled) {
    cursor: pointer;

    .@{ns}-DatePicker-clear + .@{ns}-DatePicker-toggler {
      display: none;
    }
    &:hover {
      background: @DatePicker-onHover-bg;
      border-color: @DatePicker-onHover-borderColor;

      // .@{ns}-DatePicker-clear {
      //   display: flex;
      // }

    }

    &.is-focused {
      border-color: @DatePicker-onFocused-borderColor;
      box-shadow: @Form-input-boxShadow;
    }
    // &:hover {
    //   background: @DatePicker-onHover-bg;
    //   border-color: @DatePicker-onHover-borderColor;

    //   .@{ns}-DatePicker-toggler:before {
    //     color: @DatePicker-onHover-iconColor;
    //   }
    // }
  }
  &-placeholder {
    color: @DatePicker-placeholderColor;
    user-select: none;
    margin-right: @gap-base;
    min-width: 50px;
    flex-basis: 0;
    flex-grow: 1;
  }

  &-value {
    // margin-right: @gap-base;
    // flex-basis: 0;
    // flex-grow: 1;
  }

  &-toggler {
    .input-clear();
    line-height: 1;

    svg {
      polyline,
      circle {
        stroke: @DatePicker-iconColor;
      }
    }

    &:hover svg {
      polyline,
      circle {
        stroke: @DatePicker-onHover-iconColor;
      }
    }
  }

  &-clear {
    .input-clear();
    line-height: 1;
  }
}

.@{ns}-DateControl:not(.is-inline) > .@{ns}-DatePicker {
  display: flex;
}

.@{ns}-DatePicker-shortcuts {
  margin: 0;
  background: @Calendar-shortcuts-bg;
  padding: calc(
      (
          @Calendar-shortcuts-height - @Calendar-fontSize *
            @line-height-base
        ) / 2
    )
    @gap-sm;
  list-style: none;
  width: 250px;

  & + .rdt .rdtPicker {
    padding-top: 0;
  }
}

.@{ns}-DatePicker-shortcut {
  display: inline-block;
  margin-right: @gap-sm;

  a {
    font-size: @Calendar-fontSize;
    cursor: pointer;
    color: @Calendar-shortcut-color;
    text-decoration: @Calendar-shortcut-decoration;

    &:hover {
      color: @Calendar-shortcut-onHover-color;
      text-decoration: @Calendar-shortcut-onHover-decoration;
    }
  }
}

.@{ns}-DatePicker-popover {
  margin: 2px 0 0;

  &.@{ns}-PopOver--leftTopLeftBottom,
  &.@{ns}-PopOver--rightTopRightBottom {
    margin: -2px 0 0;
  }
}

.@{ns}-DatePicker-popup {
  height: 300px;
}


// override third-party styles
.rdt {
  user-select: none;
  font-size: @Calendar-fontSize;
  color: @Calendar-color;

  .rdtPicker {
    margin-top: 0;
    padding: @gap-sm;
    background: transparent;
    border: none;

    .dow {
      color: @Calendar-wLabel-color;
      font-weight: normal;
    }
    // td.rdtDay{
    //   padding: 6px 0;
    //   position:relative;
    // }
    td.rdtDay,
    td.rdtHour,
    td.rdtMinute,
    td.rdtSecond,
    .rdtTimeToggle {
      background: @Calendar-cell-bg;

      &:hover span {
        background: @Calendar-cell-onHover-bg;
      }
    }

    td.rdtToday {
      position: relative;
      // > span {
      //   border: 1px solid @Calendar-borderColor;
      // }
      // &:hover span {
      //   background: transparent;
      // }
    }

    td.rdtBetween {
      background: @Calendar-cell-onBetween-bg;
    }

    td.rdtToday:before {
      border-bottom-color: @Calendar-cell-onActive-bg;
    }

    td.rdtActive.rdtToday:before {
      border-bottom-color: @Calendar-cell-bg;
    }

    .rdtDisabled.rdtToday,
    .rdtOld.rdtToday,
    .rdtNew.rdtToday {
      > span {
        border-color: #e8e9eb;
      }
    }

    td.rdtActive,
    td.rdtActive:hover {
      > span {
        background: @Calendar-cell-onActive-bg;
      }
    }

    .rdtActive.rdtToday {
      // color: #151b26;
      > span {
        // border-color: #144bcc;
      }
    }

    td.rdtDisabled:hover {
      > span {
        background: @Calendar-cell-onDisabled-bg;
      }
    }
  }

  thead tr:first-child th {
    cursor: default;
    font-weight: normal;
    border-bottom: none;
  }

  thead tr:first-child th:hover {
    background: transparent;
  }

  tfoot {
    border-top: 0;

    td {
      padding-top: @gap-xs;
      text-align: left;

      span {
        width: 10px;
        display: inline-block;
        text-align: center;
      }

      .rdtActions {
        margin-top: @gap-sm;
        text-align: right;
      }
    }
  }
}

.@{ns}-CalendarInputWrapper {
  display: inline-block;
  position: relative;

  .@{ns}-CalendarInput-sugs {
    list-style: none;
    position: absolute;
    background: @Form-select-menu-bg;
    color: @Form-select-menu-color;
    border: @Form-input-borderWidth solid
      @Form-input-onFocused-borderColor;
    left: -1px;
    right: -1px;
    top: 100%;
    z-index: 10;
    max-height: 200px;
    overflow: auto;
    &Item {
      padding-left: 4px;
      &.is-highlight,
      &:hover {
        color: @Form-select-menu-onHover-color;
        background: @Form-select-menu-onHover-bg;
      }
    }
  }
}

.@{ns}-CalendarInput {
  outline: none;
  width: 40px;
  font-size: @Calendar-input-fontSize;
  color: @Calendar-input-color;
  border: 1px solid @Calendar-input-borderColor;
  border-radius: @Calendar-input-borderRadius;
  height: @Calendar-input-height;
  line-height: @Calendar-input-lineHeight;
  padding: @Calendar-input-paddingY @Calendar-input-paddingX;
  box-shadow: none;

  &:focus {
    border-color: @Calendar-input-onFocused-borderColor;
    box-shadow: none;
  }
}

.@{ns}-CalendarTime {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.@{ns}-CalendarCounter {
  &-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 25px;
    text-align: center;
    color: @Button--primary-bg;

    &:hover {
      color: @Button--primary-onActive-bg;
    }

    > svg {
      width: 16px;
      height: 16px;
    }

    &--up > svg {
      transform: rotate(-90deg);
    }

    &--down > svg {
      transform: rotate(90deg);
    }
  }

  &-sep {
    width: @gap-md;
    text-align: center;
  }

  &--daypart {
    margin-left: 10px;
  }

  &--daypart &-value {
    height: 30px;
    display: flex;
    align-items: center;
    padding: 0 5px;
  }
}

.rdtBtn {
  line-height: @Calendar-btn-lineHeight;
  padding: @Calendar-btn-paddingY @Calendar-btn-paddingX;
  display: inline-block;
  vertical-align: middle;
  text-align: center;
  user-select: none;
  cursor: pointer;
  text-decoration: none;
  font-size: @Calendar-btn-fontSize;
  border: 1px solid @Calendar-btn-border;

  &:hover {
    text-decoration: none;
  }

  &.is-disabled {
    border-color: @Button-onDisabled-borderColor;
    opacity: 0.6;
    pointer-events: none;
  }

  .fa,
  .iconfont {
    font-size: @font-size-sm;
  }

  // @include button-variant(
  //   @Calendar-btn-bg,
  //   @Calendar-btn-border,
  //   @Calendar-btn-color,
  //   @Calendar-btn-onHover-bg,
  //   @Calendar-btn-onHover-border,
  //   @Calendar-btn-onHover-color,
  //   @Calendar-btn-onActive-bg,
  //   @Calendar-btn-onActive-border,
  //   @Calendar-btn-onActive-color
  // );

  border-radius: @Calendar-btn-borderRadius;

  & + .rdtBtn {
    margin-left: @gap-xs;
  }

  // &Cancel {
  //   @include button-variant(
  //     @Calendar-btnCancel-bg,
  //     @Calendar-btnCancel-border,
  //     @Calendar-btnCancel-color,
  //     @Calendar-btnCancel-onHover-bg,
  //     @Calendar-btnCancel-onHover-border,
  //     @Calendar-btnCancel-onHover-color,
  //     @Calendar-btnCancel-onActive-bg,
  //     @Calendar-btnCancel-onActive-border,
  //     @Calendar-btnCancel-onActive-color
  //   );
  // }
}

.rdtBtnPrev:before,
.rdtBtnNext:before {
  display: inline-block;
  color: inherit;
  font-style: normal;
  line-height: 1;
}

.rdtPrev,
.rdtNext {
  cursor: pointer !important;
  width: @gap-md;
  padding: 0;
  color: #999;
  font-size: @font-size-xl;
  text-decoration: none;
  font-family: auto;
  font-weight: normal;

  &:hover {
    text-decoration: none;
    color: #000;
  }
}

.rdtSwitch {
  text-align: center;
  color: #000;
  cursor: pointer;
  font-weight: normal;

  &:hover {
    color: var(--info-onHover);
    text-decoration: none;
  }
}

.rdtHeader {
  display: table;
  table-layout: fixed;
  border-collapse: separate;
  width: 100%;
  // padding: 0 10px;

  > * {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
  }

  .rdtSwitch + .rdtSwitch {
    margin-left: @gap-xs;
  }
}

td.rdtMonth,
td.rdtYear,
td.rdtQuarter {
  width: 50px;
  height: 40px;

  > span {
    height: 28px;
    display: block;
  }

  // &.rdtBetween {
  //   background: transparent !important;

  //   > span {
  //     background: @Calendar-cell-onBetween-bg;
  //   }
  // }

  &:hover,
  &.rdtActive {
    background: transparent !important;

    > span {
      background: var(--primary-5);
      color: @white;
    }
  }

  &.rdtDisabled {
    background: transparent !important;

    > span {
      background: #edf1f2;
      color: #999;
    }
  }
}

// .@{ns}-DateCalendar {
//   display: inline-block;
//   border: @DatePicker-borderWidth solid @DatePicker-borderColor;
//   background: @DatePicker-bg;
//   border-radius: @DatePicker-borderRadius;
// }
