From 4a01c17ef4355211aa965f65dd3f4291c5771ab2 Mon Sep 17 00:00:00 2001
From: katja <ekaterina.kondareva@druid.fi>
Date: Thu, 4 Mar 2021 13:15:29 +0200
Subject: [PATCH] university main menu dropdown

---
 .../hy-menu-main-group.scss                   | 35 ++++++++++++++-----
 .../hy-menu-main-group/hy-menu-main-group.tsx | 35 +++++++++++++++----
 2 files changed, 54 insertions(+), 16 deletions(-)

diff --git a/src/components/hy-menu-main-group/hy-menu-main-group.scss b/src/components/hy-menu-main-group/hy-menu-main-group.scss
index 9c41cfe4..b48d58b8 100644
--- a/src/components/hy-menu-main-group/hy-menu-main-group.scss
+++ b/src/components/hy-menu-main-group/hy-menu-main-group.scss
@@ -6,7 +6,6 @@
   align-items: center;
   display: flex;
   flex-flow: row;
-  position: relative;
   margin-left: 28px;
   @include breakpoint($narrow) {
     margin-left: 32px;
@@ -17,7 +16,8 @@
 }
 
 .menu--main-group__toggle {
-  @include font-size(14px, 24px);
+  @include font-size(14px, 16px);
+  @include font-weight($semibold);
   align-items: center;
   background: var(--grayscale-black);
   border: 0 none;
@@ -25,8 +25,7 @@
   display: flex;
   flex-flow: row;
   font-family: var(--main-font-family);
-  font-weight: 600;
-  letter-spacing: -0.4px;
+  letter-spacing: -0.44px;
   margin: 0 -4px;
   padding: 0;
 
@@ -34,6 +33,14 @@
   }
   &:hover {
   }
+
+  svg {
+  }
+  span {
+    @include breakpoint($wide) {
+      margin-left: 17px;
+    }
+  }
 }
 
 .menu--main-group__dropdown {
@@ -46,22 +53,32 @@
     box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);
     color: var(--grayscale-white);
     display: flex;
-    flex-flow: column;
-    justify-items: center;
-    left: -15px;
+    left: 0;
     margin: 0;
-    padding: 15px;
+    padding: 6px 0 20px;
     position: absolute;
+    top: 0;
     visibility: visible;
-    width: max-content;
+    width: 100%;
     z-index: 100;
 
+    .list {
+      display: flex;
+      flex-flow: column;
+      justify-items: center;
+      position: relative;
+    }
     .menu-main-link {
       @include font-size(16px, 20px);
+      align-items: center;
+      display: flex;
+      flex-direction: row;
+      margin-bottom: 20px;
       text-decoration: none;
     }
     .menu--main-group__label {
       color: var(--grayscale-white);
+      margin-left: 12px;
     }
   }
 }
diff --git a/src/components/hy-menu-main-group/hy-menu-main-group.tsx b/src/components/hy-menu-main-group/hy-menu-main-group.tsx
index 0915840f..b33399ac 100644
--- a/src/components/hy-menu-main-group/hy-menu-main-group.tsx
+++ b/src/components/hy-menu-main-group/hy-menu-main-group.tsx
@@ -27,6 +27,22 @@ export class HyMenuMainGroup {
   @Listen('click')
   handleComponentClick(event) {
     this.isMenuOpen = !this.isMenuOpen;
+
+    if (this.isMenuOpen) {
+      let hyTopHeader = this.el.closest('.hy-site-header__content-top') as HTMLElement;
+      let mainMenuToggle = event.target.shadowRoot.querySelector('.menu--main-group__toggle') as HTMLElement;
+      let mainMenuDropdown = event.target.shadowRoot.querySelector('.menu--main-group__dropdown') as HTMLElement;
+      let mainMenuList = event.target.shadowRoot.querySelector('.list') as HTMLElement;
+
+      if (hyTopHeader && mainMenuDropdown && mainMenuList && mainMenuToggle) {
+        let rectHeader = hyTopHeader.getBoundingClientRect();
+        let rectMenuToggle = mainMenuToggle.getBoundingClientRect();
+        mainMenuDropdown.style.top = `${rectHeader.height}px`;
+
+        mainMenuList.style.left = `${rectMenuToggle.left}px`;
+      }
+    }
+
     event.stopPropagation();
   }
 
@@ -62,13 +78,18 @@ export class HyMenuMainGroup {
             'is-open': this.isMenuOpen,
           }}
         >
-          {this._dataMainMenu.map((item) => {
-            return (
-              <a href={item.url} class={{'menu-main-link': true}}>
-                <span class={'menu--main-group__label'}>{item.label}</span>
-              </a>
-            );
-          })}
+          <div class="list">
+            {this._dataMainMenu.map((item) => {
+              return (
+                <a href={item.url} class={{'menu-main-link': true}}>
+                  <span class="heading-icon">
+                    <hy-icon icon={'hy-icon-caret-right'} size={10} fill={white} />
+                  </span>
+                  <span class={'menu--main-group__label'}>{item.label}</span>
+                </a>
+              );
+            })}
+          </div>
         </div>
       </Host>
     );
-- 
GitLab