From af1791c783604e64302d020f12fa2632e2eee658 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 12:16:59 -0700
Subject: [PATCH 1/9] add dash route

---
 projects/nshmp-apps/src/app/hazard/hazard.routes.ts | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/projects/nshmp-apps/src/app/hazard/hazard.routes.ts b/projects/nshmp-apps/src/app/hazard/hazard.routes.ts
index c6e780ea0..58efd4ed6 100644
--- a/projects/nshmp-apps/src/app/hazard/hazard.routes.ts
+++ b/projects/nshmp-apps/src/app/hazard/hazard.routes.ts
@@ -2,6 +2,11 @@ import {Routes} from '@angular/router';
 
 /** Hazard application routes */
 const routes: Routes = [
+  {
+    loadComponent: () =>
+      import('./dashboard/app.component').then(com => com.AppComponent),
+    path: '',
+  },
   {
     loadComponent: () =>
       import('./disagg/app.component').then(com => com.AppComponent),
-- 
GitLab


From df9b320e142042f49c1ed31758ea76db7e77ca34 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 12:17:15 -0700
Subject: [PATCH 2/9] add hazard dashboard

---
 .../app/hazard/dashboard/app.component.html   | 19 ++++++++
 .../app/hazard/dashboard/app.component.scss   |  0
 .../hazard/dashboard/app.component.spec.ts    | 22 +++++++++
 .../src/app/hazard/dashboard/app.component.ts | 46 +++++++++++++++++++
 4 files changed, 87 insertions(+)
 create mode 100644 projects/nshmp-apps/src/app/hazard/dashboard/app.component.html
 create mode 100644 projects/nshmp-apps/src/app/hazard/dashboard/app.component.scss
 create mode 100644 projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts
 create mode 100644 projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts

diff --git a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.html b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.html
new file mode 100644
index 000000000..b20dfdbe0
--- /dev/null
+++ b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.html
@@ -0,0 +1,19 @@
+<nshmp-lib-ng-template #template [navigationList]="navigationList" [title]="">
+  <!-- Dashboard -->
+  <nshmp-lib-ng-dashboard [sections]="sections">
+    <nshmp-lib-ng-dashboard-title>
+      USGS Earthquake Hazard Toolbox:
+      <br />
+      Hazard Applications
+    </nshmp-lib-ng-dashboard-title>
+    <nshmp-lib-ng-dashboard-description />
+  </nshmp-lib-ng-dashboard>
+
+  <!-- About page -->
+  <nshmp-lib-ng-about-page>
+    <nshmp-lib-ng-about-content
+      [showSavingSettingPanel]="false"
+      [showUsingApplicationPanel]="false"
+    />
+  </nshmp-lib-ng-about-page>
+</nshmp-lib-ng-template>
diff --git a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.scss b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts
new file mode 100644
index 000000000..39ededed7
--- /dev/null
+++ b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts
@@ -0,0 +1,22 @@
+import {ComponentFixture, TestBed} from '@angular/core/testing';
+
+import {AppComponent} from './app.component';
+
+describe('AppComponent', () => {
+  let component: AppComponent;
+  let fixture: ComponentFixture<AppComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [AppComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(AppComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts
new file mode 100644
index 000000000..858a8e2a9
--- /dev/null
+++ b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts
@@ -0,0 +1,46 @@
+import {Component} from '@angular/core';
+import {
+  NshmpLibNgAboutContentComponent,
+  NshmpLibNgAboutPageComponent,
+} from '@ghsc/nshmp-lib-ng/about';
+import {
+  ApplicationSections,
+  NshmpLibNgDashboardComponent,
+  NshmpLibNgDashboardDescriptionComponent,
+  NshmpLibNgDashboardTitleComponent,
+  NshmpLibNgTemplateComponent,
+} from '@ghsc/nshmp-lib-ng/nshmp';
+import {
+  hazardApps,
+  navigation,
+} from 'projects/nshmp-apps/src/shared/utils/navigation.utils';
+
+@Component({
+  imports: [
+    NshmpLibNgTemplateComponent,
+    NshmpLibNgAboutPageComponent,
+    NshmpLibNgDashboardComponent,
+    NshmpLibNgDashboardTitleComponent,
+    NshmpLibNgDashboardDescriptionComponent,
+    NshmpLibNgAboutContentComponent,
+  ],
+  selector: 'app-app',
+  standalone: true,
+  styleUrl: './app.component.scss',
+  templateUrl: './app.component.html',
+})
+export class AppComponent {
+  /** Navigation list for menu */
+  navigationList = navigation();
+
+  sections: ApplicationSections[] = [
+    {
+      gridClass: 'grid-col-12',
+      sections: [
+        {
+          applications: hazardApps().map(navigation => ({navigation})),
+        },
+      ],
+    },
+  ];
+}
-- 
GitLab


From cf6536d3ba91f6dee38f6798b84b51396704d25f Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 12:17:29 -0700
Subject: [PATCH 3/9] add dash

---
 projects/nshmp-apps/src/shared/models/applications.model.ts | 2 ++
 projects/nshmp-apps/src/shared/utils/applications.utils.ts  | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/projects/nshmp-apps/src/shared/models/applications.model.ts b/projects/nshmp-apps/src/shared/models/applications.model.ts
index 7645c2953..a61a95a97 100644
--- a/projects/nshmp-apps/src/shared/models/applications.model.ts
+++ b/projects/nshmp-apps/src/shared/models/applications.model.ts
@@ -89,6 +89,8 @@ export interface GmmApplications {
  * Hazard applications.
  */
 export interface HazardApplications {
+  /** Hazard dashboard */
+  dashboard: Navigation;
   /** Disaggregation application */
   disagg: Navigation;
   /** Dynamic hazard calculation application */
diff --git a/projects/nshmp-apps/src/shared/utils/applications.utils.ts b/projects/nshmp-apps/src/shared/utils/applications.utils.ts
index 9bd9e93d2..96007c981 100644
--- a/projects/nshmp-apps/src/shared/utils/applications.utils.ts
+++ b/projects/nshmp-apps/src/shared/utils/applications.utils.ts
@@ -33,6 +33,10 @@ export function apps(): Applications {
       },
     },
     hazard: {
+      dashboard: {
+        display: 'Hazard Dashboard',
+        routerLink: '/hazard',
+      },
       disagg: {
         display: 'Disaggregation',
         routerLink: '/hazard/disagg',
-- 
GitLab


From bf040fb90f31ab5989a9434c974497f3645db921 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 12:18:10 -0700
Subject: [PATCH 4/9] add function

---
 .../nshmp-apps/src/shared/utils/navigation.utils.ts | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/projects/nshmp-apps/src/shared/utils/navigation.utils.ts b/projects/nshmp-apps/src/shared/utils/navigation.utils.ts
index b67ec2629..f612f749b 100644
--- a/projects/nshmp-apps/src/shared/utils/navigation.utils.ts
+++ b/projects/nshmp-apps/src/shared/utils/navigation.utils.ts
@@ -52,6 +52,13 @@ export function devNavigation(): NavigationList[] {
   return [...devNavigation];
 }
 
+/**
+ * Returns list of hazard applications.
+ */
+export function hazardApps(): Navigation[] {
+  return [APPS.hazard.disagg, APPS.hazard.dynamic, APPS.hazard.static];
+}
+
 /**
  * Returns the list of ground motion model applications.
  */
@@ -80,7 +87,8 @@ export function navigation(): NavigationList[] {
       navigation: [APPS.dashboard],
     },
     {
-      navigation: mainApps(),
+      navigation: [APPS.hazard.dashboard, ...hazardApps()],
+      subHeader: 'Hazard',
     },
     {
       navigation: sourceModelApps(),
@@ -98,6 +106,9 @@ export function navigation(): NavigationList[] {
       navigation: ncmApps(),
       subHeader: 'National Crustal Model',
     },
+    {
+      navigation: [APPS.services],
+    },
   ];
 
   return [...navigation];
-- 
GitLab


From 6626b5b43c2da6a5d772852b7364526a91496d76 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 12:22:26 -0700
Subject: [PATCH 5/9] add providers

---
 .../src/app/hazard/dashboard/app.component.spec.ts        | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts
index 39ededed7..10ce8a002 100644
--- a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts
+++ b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.spec.ts
@@ -1,4 +1,7 @@
+import {provideHttpClient} from '@angular/common/http';
 import {ComponentFixture, TestBed} from '@angular/core/testing';
+import {provideNoopAnimations} from '@angular/platform-browser/animations';
+import {provideRouter} from '@angular/router';
 
 import {AppComponent} from './app.component';
 
@@ -9,6 +12,11 @@ describe('AppComponent', () => {
   beforeEach(async () => {
     await TestBed.configureTestingModule({
       imports: [AppComponent],
+      providers: [
+        provideHttpClient(),
+        provideNoopAnimations(),
+        provideRouter([]),
+      ],
     }).compileComponents();
 
     fixture = TestBed.createComponent(AppComponent);
-- 
GitLab


From cae83f8e303ddd9148cfb8476bad19b6b8e46415 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 14:11:06 -0700
Subject: [PATCH 6/9] update deps

---
 package-lock.json | 16 ++++++++--------
 package.json      |  4 ++--
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 9f47f0537..52b2f63e7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21,8 +21,8 @@
         "@asymmetrik/ngx-leaflet": "^18.0.1",
         "@compodoc/compodoc": "^1.1.26",
         "@ghsc/disagg-d3": "^0.13.0",
-        "@ghsc/nshmp-lib-ng": "^18.23.0",
-        "@ghsc/nshmp-template": "^18.1.0",
+        "@ghsc/nshmp-lib-ng": "^18.23.1",
+        "@ghsc/nshmp-template": "^18.2.0",
         "@ghsc/nshmp-utils-ts": "^3.12.1",
         "angular-plotly.js": "^6.0.0",
         "d3": "^7.9.0",
@@ -4632,9 +4632,9 @@
       }
     },
     "node_modules/@ghsc/nshmp-lib-ng": {
-      "version": "18.23.0",
-      "resolved": "https://code.usgs.gov/api/v4/projects/12416/packages/npm/@ghsc/nshmp-lib-ng/-/@ghsc/nshmp-lib-ng-18.23.0.tgz",
-      "integrity": "sha1-TprRpdO8zTo68ZnCUOdauYkWGJk=",
+      "version": "18.23.1",
+      "resolved": "https://code.usgs.gov/api/v4/projects/12416/packages/npm/@ghsc/nshmp-lib-ng/-/@ghsc/nshmp-lib-ng-18.23.1.tgz",
+      "integrity": "sha1-Tl0NKxnzEuNXYg52VYKCLgb5HUw=",
       "dependencies": {
         "tslib": "^2.3.0"
       },
@@ -4644,9 +4644,9 @@
       }
     },
     "node_modules/@ghsc/nshmp-template": {
-      "version": "18.1.0",
-      "resolved": "https://code.usgs.gov/api/v4/projects/1416/packages/npm/@ghsc/nshmp-template/-/@ghsc/nshmp-template-18.1.0.tgz",
-      "integrity": "sha1-b6kU+adoQMmNrsHd5ZDLE09X08I=",
+      "version": "18.2.0",
+      "resolved": "https://code.usgs.gov/api/v4/projects/1416/packages/npm/@ghsc/nshmp-template/-/@ghsc/nshmp-template-18.2.0.tgz",
+      "integrity": "sha1-iR13fpkP/V5I6xH2kWTlP8xRLXE=",
       "dependencies": {
         "tslib": "^2.3.1"
       },
diff --git a/package.json b/package.json
index 61c922fc5..3f7c8fe03 100644
--- a/package.json
+++ b/package.json
@@ -45,8 +45,8 @@
     "@asymmetrik/ngx-leaflet": "^18.0.1",
     "@compodoc/compodoc": "^1.1.26",
     "@ghsc/disagg-d3": "^0.13.0",
-    "@ghsc/nshmp-lib-ng": "^18.23.0",
-    "@ghsc/nshmp-template": "^18.1.0",
+    "@ghsc/nshmp-lib-ng": "^18.23.1",
+    "@ghsc/nshmp-template": "^18.2.0",
     "@ghsc/nshmp-utils-ts": "^3.12.1",
     "angular-plotly.js": "^6.0.0",
     "d3": "^7.9.0",
-- 
GitLab


From bfc0c798d8e5800d45f0ee0db87876bdbd66ae54 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 14:11:12 -0700
Subject: [PATCH 7/9] add option

---
 projects/nshmp-apps/src/shared/utils/applications.utils.ts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/projects/nshmp-apps/src/shared/utils/applications.utils.ts b/projects/nshmp-apps/src/shared/utils/applications.utils.ts
index 96007c981..6f08a6257 100644
--- a/projects/nshmp-apps/src/shared/utils/applications.utils.ts
+++ b/projects/nshmp-apps/src/shared/utils/applications.utils.ts
@@ -36,6 +36,7 @@ export function apps(): Applications {
       dashboard: {
         display: 'Hazard Dashboard',
         routerLink: '/hazard',
+        showInDashboard: false,
       },
       disagg: {
         display: 'Disaggregation',
-- 
GitLab


From f99ba285d92ba667a225f3663c64f9fa6b341ad1 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 14:11:22 -0700
Subject: [PATCH 8/9] use object values

---
 .../src/shared/utils/navigation.utils.ts      | 27 ++++++++-----------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/projects/nshmp-apps/src/shared/utils/navigation.utils.ts b/projects/nshmp-apps/src/shared/utils/navigation.utils.ts
index f612f749b..d9a6082ad 100644
--- a/projects/nshmp-apps/src/shared/utils/navigation.utils.ts
+++ b/projects/nshmp-apps/src/shared/utils/navigation.utils.ts
@@ -9,19 +9,14 @@ const DEV_APPS = ApplicationsUtils.devApps();
  * Returns the list of design map application.
  */
 export function designMapApps(): Navigation[] {
-  return [APPS.designMaps.rtgm];
+  return Object.values(APPS.designMaps) as Navigation[];
 }
 
 /**
  * Returns the list of AWS applications.
  */
 export function devAwsApps(): Navigation[] {
-  return [
-    DEV_APPS.aws.checkHazJobs,
-    DEV_APPS.aws.hazJobHistory,
-    DEV_APPS.aws.submitHazJobs,
-    DEV_APPS.aws.terminateHazJobs,
-  ];
+  return Object.values(DEV_APPS.aws) as Navigation[];
 }
 
 /**
@@ -53,17 +48,17 @@ export function devNavigation(): NavigationList[] {
 }
 
 /**
- * Returns list of hazard applications.
+ * Returns the list of ground motion model applications.
  */
-export function hazardApps(): Navigation[] {
-  return [APPS.hazard.disagg, APPS.hazard.dynamic, APPS.hazard.static];
+export function gmmApps(): Navigation[] {
+  return Object.values(APPS.gmm) as Navigation[];
 }
 
 /**
- * Returns the list of ground motion model applications.
+ * Returns list of hazard applications.
  */
-export function gmmApps(): Navigation[] {
-  return [APPS.gmm.distance, APPS.gmm.magnitude, APPS.gmm.spectra];
+export function hazardApps(): Navigation[] {
+  return Object.values(APPS.hazard) as Navigation[];
 }
 
 /**
@@ -87,7 +82,7 @@ export function navigation(): NavigationList[] {
       navigation: [APPS.dashboard],
     },
     {
-      navigation: [APPS.hazard.dashboard, ...hazardApps()],
+      navigation: hazardApps(),
       subHeader: 'Hazard',
     },
     {
@@ -118,12 +113,12 @@ export function navigation(): NavigationList[] {
  * Returns the list of NCM appliations.
  */
 export function ncmApps(): Navigation[] {
-  return [APPS.ncm.geophysicalProfiles];
+  return Object.values(APPS.ncm) as Navigation[];
 }
 
 /**
  * Returns the list of source model applicaitons.
  */
 export function sourceModelApps(): Navigation[] {
-  return [APPS.source.data, APPS.source.mfd, APPS.source.rateAndProbability];
+  return Object.values(APPS.source) as Navigation[];
 }
-- 
GitLab


From 7a0f0328e709d2c8eda639d907e9f4baa93f224b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 26 Nov 2024 14:14:35 -0700
Subject: [PATCH 9/9] add class

---
 projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts
index 858a8e2a9..4963010c3 100644
--- a/projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts
+++ b/projects/nshmp-apps/src/app/hazard/dashboard/app.component.ts
@@ -35,10 +35,11 @@ export class AppComponent {
 
   sections: ApplicationSections[] = [
     {
-      gridClass: 'grid-col-12',
+      gridClass: 'grid-col-10',
       sections: [
         {
           applications: hazardApps().map(navigation => ({navigation})),
+          gridClass: 'grid-col-12 tablet-lg:grid-col-8 grid-offset-1',
         },
       ],
     },
-- 
GitLab