@menu-prefix-cls: ~'@{namespace}-menu';
@menu-popup-prefix-cls: ~'@{namespace}-menu-popup';
@submenu-popup-prefix-cls: ~'@{namespace}-menu-submenu-popup';

@transition-time: 0.2s;
@menu-dark-subsidiary-color: rgba(255, 255, 255, 0.7);

.light-border {
  &::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: block;
    width: 2px;
    content: '';
    background-color: @primary-color;
  }
}

.@{menu-prefix-cls}-menu-popover {
  .ant-popover-arrow {
    display: none;
  }

  .ant-popover-inner-content {
    padding: 0;
  }

  .@{menu-prefix-cls} {
    &-opened>*>&-submenu-title-icon {
      transform: translateY(-50%) rotate(90deg) !important;
    }

    &-item,
    &-submenu-title {
      position: relative;
      z-index: 1;
      padding: 12px 20px;
      color: @menu-dark-subsidiary-color;
      cursor: pointer;
      transition: all @transition-time @ease-in-out;

      &-icon {
        position: absolute;
        top: 50%;
        right: 18px;
        transition: transform @transition-time @ease-in-out;
        transform: translateY(-50%) rotate(-90deg);
      }
    }

    &-dark {

      .@{menu-prefix-cls}-item,
      .@{menu-prefix-cls}-submenu-title {
        color: @menu-dark-subsidiary-color;
        // background: @menu-dark-active-bg;

        &:hover {
          color: #fff;
        }

        &-selected {
          color: #fff;
          background-color: @primary-color !important;
        }
      }
    }

    &-light {

      .@{menu-prefix-cls}-item,
      .@{menu-prefix-cls}-submenu-title {
        color: @text-color-base;

        &:hover {
          color: @primary-color;
        }

        &-selected {
          z-index: 2;
          color: @primary-color;
          background-color: fade(@primary-color, 10);

          .light-border();
        }
      }
    }
  }
}

.content();

.content() {
  .@{menu-prefix-cls} {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    font-size: @font-size-base;
    color: @text-color-base;
    list-style: none;
    outline: none;

    // .collapse-transition {
    //   transition: @transition-time height ease-in-out, @transition-time padding-top ease-in-out,
    //     @transition-time padding-bottom ease-in-out;
    // }

    &-light {
      background-color: #fff;

      .@{menu-prefix-cls}-submenu-active {
        color: @primary-color !important;

        &-border {
          .light-border();
        }
      }
    }

    &-dark {
      .@{menu-prefix-cls}-submenu-active {
        color: #fff !important;
      }
    }

    &-item {
      position: relative;
      z-index: 1;
      display: flex;
      align-items: center;
      font-size: @font-size-base;
      color: inherit;
      list-style: none;
      cursor: pointer;
      outline: none;

      &:hover,
      &:active {
        color: inherit;
      }
    }

    &-item>i {
      margin-right: 6px;
    }

    &-submenu-title>i,
    &-submenu-title span>i {
      margin-right: 8px;
    }

    // vertical
    &-vertical &-item,
    &-vertical &-submenu-title {
      position: relative;
      z-index: 1;
      padding: 14px 24px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      cursor: pointer;

      &:hover {
        color: @primary-color;
      }

      .@{menu-prefix-cls}-tooltip {
        width: calc(100% - 0px);
        padding: 12px 0;
        text-align: center;
      }

      .@{menu-prefix-cls}-submenu-popup {
        padding: 12px 0;
      }
    }

    &-vertical &-submenu-collapse {
      .@{submenu-popup-prefix-cls} {
        display: flex;
        align-items: center;
        justify-content: center;
      }

      .@{menu-prefix-cls}-submenu-collapsed-show-tit {
        flex-direction: column;
      }
    }

    &-vertical&-collapse &-item,
    &-vertical&-collapse &-submenu-title {
      padding: 0;
    }

    &-vertical &-submenu-title-icon {
      position: absolute;
      top: 50%;
      right: 18px;
      transform: translateY(-50%);
    }

    &-submenu-title-icon {
      transition: transform @transition-time @ease-in-out;
    }

    &-vertical &-opened>*>&-submenu-title-icon {
      transform: translateY(-50%) rotate(180deg);
    }

    &-vertical &-submenu {
      &-nested {
        padding-left: 20px;
      }

      .@{menu-prefix-cls}-item {
        padding-left: 43px;
      }
    }

    &-light&-vertical &-item {
      &-active:not(.@{menu-prefix-cls}-submenu) {
        z-index: 2;
        color: @primary-color;
        background-color: fade(@primary-color, 10);

        .light-border();
      }

      &-active.@{menu-prefix-cls}-submenu {
        color: @primary-color;
      }
    }

    &-light&-vertical&-collapse {

      >li.@{menu-prefix-cls}-item-active,
      .@{menu-prefix-cls}-submenu-active {
        position: relative;
        background-color: fade(@primary-color, 5);

        &::after {
          display: none;
        }

        &::before {
          position: absolute;
          top: 0;
          left: 0;
          width: 3px;
          height: 100%;
          content: '';
          background-color: @primary-color;
        }
      }
    }

    &-dark&-vertical &-item,
    &-dark&-vertical &-submenu-title {
      color: @menu-dark-subsidiary-color;

      &-active:not(.@{menu-prefix-cls}-submenu) {
        color: #fff !important;
        background-color: @primary-color !important;
      }

      &:hover {
        color: #fff;
      }
    }

    &-dark&-vertical&-collapse {

      >li.@{menu-prefix-cls}-item-active,
      .@{menu-prefix-cls}-submenu-active {
        position: relative;
        color: #fff !important;
        background-color: @sider-dark-darken-bg-color !important;

        &::before {
          position: absolute;
          top: 0;
          left: 0;
          width: 3px;
          height: 100%;
          content: '';
          background-color: @primary-color;
        }

        .@{menu-prefix-cls}-submenu-collapse {
          background-color: transparent;
        }
      }
    }

    &-dark&-vertical &-submenu &-item {

      &-active,
      &-active:hover {
        color: #fff;
        border-right: none;
      }
    }

    &-dark&-vertical &-child-item-active>&-submenu-title {
      color: #fff;
    }

    &-dark&-vertical &-opened {
      .@{menu-prefix-cls}-submenu-has-parent-submenu {
        .@{menu-prefix-cls}-submenu-title {
          background-color: transparent;
        }
      }
    }
  }
}
