From 3aebf0bfc92b8a6b5048f26ddfbdddba549c4f9f Mon Sep 17 00:00:00 2001
From: AndiMajore <andi.majore@googlemail.com>
Date: Mon, 5 Dec 2022 16:20:50 +0100
Subject: [PATCH] fixed menu issues

---
 .../analysis-panel.component.html             | 38 ++++++++++-------
 .../analysis-panel.component.scss             | 38 +++++++++--------
 .../analysis-panel.component.ts               |  8 ----
 .../download-button-inverse.component.scss    |  1 -
 .../components/network/network.component.html | 36 +++++++++-------
 .../components/network/network.component.scss | 42 +++++++++----------
 .../components/network/network.component.ts   |  8 ----
 src/stylesheets/variables.scss                |  1 +
 8 files changed, 86 insertions(+), 86 deletions(-)

diff --git a/src/app/components/analysis-panel/analysis-panel.component.html b/src/app/components/analysis-panel/analysis-panel.component.html
index 1f88d22f..00baaf46 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.html
+++ b/src/app/components/analysis-panel/analysis-panel.component.html
@@ -52,23 +52,29 @@
               ></app-fa-solid-icon>
             </button>
           </p>
-          <div class="control dropdown" ngbDropdown>
-                  <button ngbDropdownToggle
-                          class="button is-rounded is-small is-outlined highlight-primary"
-                          type="button" (click)="showMenu = !showMenu"
-                          [class]="{'dropdown-toggle-enabled': showMenu}" (focusout)="hideMenu()">
-                            <app-fa-solid-icon icon="bars" classString="only-item-in-button"></app-fa-solid-icon>
-                </button>
-              <ul ngbDropdownMenu class="dropdown-content dropdown-list"
-                  [style]="{'display':showMenu ? 'inline-block':'none'}">
-                  <li ngbDropdownItem pTooltip="Display end-user license agreement (EULA)." tooltipPosition="left"
-                      [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'"
-                      (click)="showEULA()"><a>Show EULA</a></li>
-                  <li ngbDropdownItem pTooltip="Opens Drugst.One website" tooltipPosition="left"
-                      [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'"><a target="_blank"
-                                                                                           href="https://drugst.one/home">About Drugst.One</a></li>
-              </ul>
+           <div class="control dropdown is-hoverable">
+          <div class="dropdown-trigger">
+                    <button
+                      aria-haspopup="true"
+                      attr.aria-controls="controls-menu-button"
+                      class="button is-rounded is-small is-outlined highlight-primary">
+                              <app-fa-solid-icon icon="bars" classString="only-item-in-button"></app-fa-solid-icon>
+                  </button>
+            <div class="dropdown-menu dropdown-list " id="controls-menu-button" role="menu">
+                <div class="dropdown-content inner-dropdown">
+                    <a class="dropdown-item" pTooltip="Display end-user license agreement (EULA)."
+                       tooltipPosition="left"
+                       [ngClass]="{ 'text-small': drugstoneConfig.smallStyle }"
+                       [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'"
+                       (click)="showEULA()">Show EULA</a>
+                    <a class="dropdown-item" pTooltip="Opens Drugst.One website"
+                       [ngClass]="{ 'text-small': drugstoneConfig.smallStyle }" tooltipPosition="left"
+                       [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'" target="_blank"
+                       href="https://drugst.one/home">About Drugst.One</a>
+                </div>
+            </div>
           </div>
+           </div>
           <p class="control">
             <button
               class="button is-rounded is-small is-outlined highlight-danger has-text-danger"
diff --git a/src/app/components/analysis-panel/analysis-panel.component.scss b/src/app/components/analysis-panel/analysis-panel.component.scss
index 48d3d5b7..9a219fab 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.scss
+++ b/src/app/components/analysis-panel/analysis-panel.component.scss
@@ -79,30 +79,34 @@
   z-index: $analysis-network-legend-z !important;
 }
 
-.dropdown-toggle-enabled {
-  background-color: var(--drgstn-primary) !important;
-  app-fa-solid-icon {
-    color: var(--drgstn-text-secondary)
-  }
-}
-
-ul.dropdown-list {
+div.dropdown-list {
   right: 0;
   left: auto !important;
   background-color: var(--drgstn-background);
   min-width: $menu-width !important;
-  z-index: calc($loading-overlay-z + 1);
   width: auto;
-  li {
-    display: flex;
-    width: 100%;
-    justify-content: center;
-    a {
-      color: var(--drgstn-text-primary) !important;
-    }
-  }
 }
 
 div.control.dropdown {
   margin-bottom: 0.4rem;
 }
+
+.dropdown-menu {
+  z-index: $menu-z-index !important;
+}
+
+.inner-dropdown.dropdown-menu {
+  margin-left: calc(150px - 15px);
+  width: 150px;
+  margin-top: -45px;
+
+  .dropdown-content {
+    padding-left: 0.5rem;
+    padding-right: 0.5rem;
+
+    .dropdown-item {
+      padding: .375rem !important;
+    }
+  }
+
+}
diff --git a/src/app/components/analysis-panel/analysis-panel.component.ts b/src/app/components/analysis-panel/analysis-panel.component.ts
index 078295d8..d5cf926a 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.ts
+++ b/src/app/components/analysis-panel/analysis-panel.component.ts
@@ -112,8 +112,6 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit
 
   public loading = false;
 
-  public showMenu = false;
-
   constructor(public legendService: LegendService, public networkHandler: NetworkHandlerService, public drugstoneConfig: DrugstoneConfigService, private http: HttpClient, public analysis: AnalysisService, public netex: NetexControllerService, public loadingScreen: LoadingScreenService) {
   }
 
@@ -548,10 +546,4 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit
     this.drugstoneConfig.showLicense = true;
   }
 
-  public hideMenu() {
-    setTimeout(() => {
-      this.showMenu = false;
-    }, 100);
-  }
-
 }
diff --git a/src/app/components/network/network-menu-left/download-button-inverse/download-button-inverse.component.scss b/src/app/components/network/network-menu-left/download-button-inverse/download-button-inverse.component.scss
index f8a6c3af..ffd2eb88 100644
--- a/src/app/components/network/network-menu-left/download-button-inverse/download-button-inverse.component.scss
+++ b/src/app/components/network/network-menu-left/download-button-inverse/download-button-inverse.component.scss
@@ -19,5 +19,4 @@
     }
   }
 
-
 }
diff --git a/src/app/components/network/network.component.html b/src/app/components/network/network.component.html
index 716b0704..ddd9d09b 100644
--- a/src/app/components/network/network.component.html
+++ b/src/app/components/network/network.component.html
@@ -33,22 +33,28 @@
               ></app-fa-solid-icon>
             </button>
           </p>
-        <div class="control dropdown" ngbDropdown>
-                  <button ngbDropdownToggle
-                          class="button is-rounded is-small is-outlined highlight-primary" (click)="showMenu = !showMenu"
-                          [class]="{'dropdown-toggle-enabled': showMenu}" (focusout)="hideMenu()">
-                            <app-fa-solid-icon icon="bars" classString="only-item-in-button"></app-fa-solid-icon>
-                </button>
-              <ul ngbDropdownMenu class="dropdown-content dropdown-list dropdown-menu"
-                  [style]="{'display':showMenu ? 'inline-block':'none'}">
-                  <li ngbDropdownItem class="dropdown-item" pTooltip="Display end-user license agreement (EULA)." tooltipPosition="left"
-                      [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'"
-                      (click)="showEULA()"><a>Show EULA</a></li>
-                  <li ngbDropdownItem class="dropdown-item" pTooltip="Opens Drugst.One website" tooltipPosition="left"
-                      [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'"><a target="_blank"
-                                                                                           href="https://drugst.one/home">About Drugst.One</a></li>
-              </ul>
+        <div class="control dropdown is-hoverable">
+          <div class="dropdown-trigger">
+                    <button
+                            aria-haspopup="true"
+                            attr.aria-controls="controls-menu-button"
+                            class="button is-rounded is-small is-outlined highlight-primary">
+                              <app-fa-solid-icon icon="bars" classString="only-item-in-button"></app-fa-solid-icon>
+                  </button>
+            <div class="dropdown-menu dropdown-list " id="controls-menu-button" role="menu">
+                <div class="dropdown-content inner-dropdown">
+                    <a class="dropdown-item" pTooltip="Display end-user license agreement (EULA)."
+                       tooltipPosition="left"
+                       [ngClass]="{ 'text-small': drugstoneConfig.smallStyle }"
+                       [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'"
+                       (click)="showEULA()">Show EULA</a>
+                    <a class="dropdown-item" pTooltip="Opens Drugst.One website" [ngClass]="{ 'text-small': drugstoneConfig.smallStyle }" tooltipPosition="left"
+                       [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'" target="_blank"
+                       href="https://drugst.one/home">About Drugst.One</a>
+                </div>
+            </div>
           </div>
+        </div>
       </div>
     </span>
   </header>
diff --git a/src/app/components/network/network.component.scss b/src/app/components/network/network.component.scss
index b97f1f3c..27d62b30 100644
--- a/src/app/components/network/network.component.scss
+++ b/src/app/components/network/network.component.scss
@@ -11,34 +11,34 @@
   }
 }
 
-.dropdown-menu {
-  z-index: $network-tissue-options-z !important;
-}
-
-.dropdown-toggle-enabled {
-  background-color: var(--drgstn-primary) !important;
-  app-fa-solid-icon {
-    color: var(--drgstn-text-secondary)
-  }
-}
-
-ul.dropdown-list {
+div.dropdown-list {
   right: 0;
   left: auto !important;
   background-color: var(--drgstn-background);
   min-width: $menu-width !important;
-  z-index: calc($loading-overlay-z + 1);
   width: auto;
-  li {
-    display: flex;
-    width: 100%;
-    justify-content: center;
-    a {
-      color: var(--drgstn-text-primary) !important;
-    }
-  }
 }
 
 div.control.dropdown {
   margin-bottom: 0.4rem;
 }
+
+.dropdown-menu {
+  z-index: $menu-z-index !important;
+}
+
+.inner-dropdown.dropdown-menu {
+  margin-left: calc(150px - 15px);
+  width: 150px;
+  margin-top: -45px;
+
+  .dropdown-content {
+    padding-left: 0.5rem;
+    padding-right: 0.5rem;
+
+    .dropdown-item {
+      padding: .375rem !important;
+    }
+  }
+
+}
diff --git a/src/app/components/network/network.component.ts b/src/app/components/network/network.component.ts
index afed865d..f337900f 100644
--- a/src/app/components/network/network.component.ts
+++ b/src/app/components/network/network.component.ts
@@ -68,8 +68,6 @@ export class NetworkComponent implements OnInit {
 
   public queryItems: Wrapper[] = [];
 
-  public showMenu: boolean = false;
-
   public networkPositions: any;
 
   public highlightSeeds = false;
@@ -647,10 +645,4 @@ export class NetworkComponent implements OnInit {
   public showEULA() {
     this.drugstoneConfig.showLicense = true;
   }
-
-  public hideMenu() {
-    setTimeout(() => {
-      this.showMenu = false;
-    }, 100);
-  }
 }
diff --git a/src/stylesheets/variables.scss b/src/stylesheets/variables.scss
index 8f37818a..53044816 100644
--- a/src/stylesheets/variables.scss
+++ b/src/stylesheets/variables.scss
@@ -71,3 +71,4 @@ $toast-z: 2147483647;
 $loading-overlay-z: 2147483647;
 
 $menu-width: 150px;
+$menu-z-index: calc(2147483647 - 1)
-- 
GitLab