/*
 This file is part of GNU Taler
 (C) 2021-2024 Taler Systems S.A.

 GNU Taler is free software; you can redistribute it and/or modify it under the
 terms of the GNU General Public License as published by the Free Software
 Foundation; either version 3, or (at your option) any later version.

 GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

 You should have received a copy of the GNU General Public License along with
 GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */

/**
 *
 * @author Sebastian Javier Marchano (sebasjm)
 */

@include desktop {
  html {
    &.has-aside-left {
      &.has-aside-expanded {
        nav.navbar,
        body {
          padding-left: $aside-width;
        }
      }
      aside.is-placed-left {
        display: block;
      }
    }
  }

  aside.aside.is-expanded {
    width: $aside-width;

    .menu-list {
      @include icon-with-update-mark($aside-icon-width);

      span.menu-item-label {
        display: inline-block;
      }

      li.is-active {
        ul {
          display: block;
        }
      }
    }
  }
}

aside.aside {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 40;
  height: 100vh;
  padding: 0;
  box-shadow: $aside-box-shadow;
  background: $aside-background-color;

  .aside-tools {
    display: flex;
    flex-direction: row;
    width: 100%;
    background-color: $aside-tools-background-color;
    color: $aside-tools-color;
    line-height: $navbar-height;
    height: $navbar-height;
    padding-left: $default-padding * 0.5;
    flex: 1;

    .icon {
      margin-right: $default-padding * 0.5;
    }
  }

  .menu-list {
    li {
      a {
        &.has-dropdown-icon {
          position: relative;
          padding-right: $aside-icon-width;

          .dropdown-icon {
            position: absolute;
            top: $size-base * 0.5;
            right: 0;
          }
        }
      }
      ul {
        display: none;
        border-left: 0;
        background-color: darken($base-color, 2.5%);
        padding-left: 0;
        margin: 0 0 $default-padding * 0.5;

        li {
          a {
            padding: $default-padding * 0.5 0 $default-padding * 0.5
              $default-padding * 0.5;
            font-size: $aside-submenu-font-size;

            &.has-icon {
              padding-left: 0;
            }
            &.is-active {
              &:not(:hover) {
                background: transparent;
              }
            }
          }
        }
      }
    }
  }

  .menu-label {
    padding: 0 $default-padding * 0.5;
    margin-top: $default-padding * 0.5;
    margin-bottom: $default-padding * 0.5;
  }
}

@include touch {
  nav.navbar {
    // @include transition(margin-left);
    // TODO: adapt above transition mixin to work with multiple transitions
    transition:
      margin-left 250ms ease-in-out 50ms,
      width 250ms ease-in-out 50ms;
  }
  aside.aside {
    @include transition(left);
  }
  html.has-aside-mobile-transition {
    body {
      overflow-x: hidden;
    }
    body,
    nav.navbar {
      width: 100vw;
    }
    aside.aside {
      width: $aside-mobile-width;
      display: block;
      left: $aside-mobile-width * -1;

      .image {
        img {
          max-width: $aside-mobile-width * 0.33;
        }
      }

      .menu-list {
        li.is-active {
          ul {
            display: block;
          }
        }
        a {
          @include icon-with-update-mark($aside-icon-width);

          span.menu-item-label {
            display: inline-block;
          }
        }
      }
    }
  }
  div.has-aside-mobile-expanded {
    nav.navbar {
      margin-left: $aside-mobile-width;
      width: calc(100vw - $aside-mobile-width);
    }
    aside.aside {
      left: 0;
    }
  }
}
