From d26208d97e10e9331b7c3d2db09dcedc98e6b748 Mon Sep 17 00:00:00 2001 From: Andrew Anderson Date: Tue, 13 Jan 2026 12:59:32 -0800 Subject: [PATCH 01/12] Andy/ds 6363 displacement disclaimer (#2403) * Changed the Disclaimer to show in the info bar * Changed Disclaimer info button in header to be an external link --- .../header-buttons.component.html | 20 ++++++++----- .../header-buttons.component.ts | 12 ++++++-- src/app/components/map/map.component.html | 4 +++ src/app/components/map/map.component.scss | 29 +++++++++++++++++++ .../search-type-selector.component.html | 8 ----- .../search-type-selector.component.ts | 11 +------ 6 files changed, 56 insertions(+), 28 deletions(-) diff --git a/src/app/components/header/header-buttons/header-buttons.component.html b/src/app/components/header/header-buttons/header-buttons.component.html index e6057bf99..efee79774 100644 --- a/src/app/components/header/header-buttons/header-buttons.component.html +++ b/src/app/components/header/header-buttons/header-buttons.component.html @@ -91,16 +91,20 @@ open_in_new - } diff --git a/src/app/components/header/header-buttons/header-buttons.component.ts b/src/app/components/header/header-buttons/header-buttons.component.ts index 1b6c47fd0..1b3da6a44 100644 --- a/src/app/components/header/header-buttons/header-buttons.component.ts +++ b/src/app/components/header/header-buttons/header-buttons.component.ts @@ -40,7 +40,6 @@ import { MatTooltip } from '@angular/material/tooltip'; import { MatIcon } from '@angular/material/icon'; import { MatBadge } from '@angular/material/badge'; import { SearchButtonComponent } from '@components/shared/search-button/search-button.component'; -import { DocsModalComponent } from '@components/shared/docs-modal/docs-modal.component'; import { MatSuffix } from '@angular/material/input'; import { TranslateModule } from '@ngx-translate/core'; @@ -65,7 +64,6 @@ declare global { MatMenu, MatMenuItem, SearchButtonComponent, - DocsModalComponent, MatSuffix, AsyncPipe, TitleCasePipe, @@ -247,6 +245,16 @@ export class HeaderButtonsComponent implements OnInit, OnDestroy { this.openNewWindow(url, analyticsEvent); } + public onOpenOperaInfo(): void { + const url = 'https://asf.alaska.edu/datasets/daac/opera/'; + const analyticsEvent = { + name: 'open-opera-info', + value: url, + }; + + this.openNewWindow(url, analyticsEvent); + } + public onOpenOnDemandDocs(): void { const url = 'https://hyp3-docs.asf.alaska.edu/'; const analyticsEvent = { diff --git a/src/app/components/map/map.component.html b/src/app/components/map/map.component.html index 3f6e11b99..0247e6f20 100644 --- a/src/app/components/map/map.component.html +++ b/src/app/components/map/map.component.html @@ -97,6 +97,10 @@ breakpoint > breakpoints.MOBILE && searchType === searchTypes.DISPLACEMENT ) { +
+ info_outline + {{ 'DISCLAIMER' | translate }} +
} diff --git a/src/app/components/map/map.component.scss b/src/app/components/map/map.component.scss index 6fac3481e..23a89a264 100644 --- a/src/app/components/map/map.component.scss +++ b/src/app/components/map/map.component.scss @@ -199,3 +199,32 @@ button { right: 1px; top: 1px; } + +.disclaimer-chip { + position: fixed; + top: 131px; + left: 50%; + transform: translateX(-50%); + display: flex; + align-items: center; + gap: 6px; + padding: 4px 10px; + background-color: rgba(0, 0, 0, 0.25); + color: white; + border-radius: 16px; + font-size: 13px; + cursor: pointer; + pointer-events: auto; + z-index: 999; + transition: background-color 0.2s ease; + + &:hover { + background-color: rgba(0, 0, 0, 0.9); + } + + .disclaimer-icon { + font-size: 18px; + width: 18px; + height: 18px; + } +} diff --git a/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.html b/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.html index a4f8c9fe7..dd1bf0025 100644 --- a/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.html +++ b/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.html @@ -24,14 +24,6 @@

- @if (searchType === searchTypes.DISPLACEMENT) { - - *{{ 'DISCLAIMER' | translate }} - - }
diff --git a/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.ts b/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.ts index d73513a10..30c204ea9 100644 --- a/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.ts +++ b/src/app/components/shared/selectors/search-type-selector/search-type-selector.component.ts @@ -18,11 +18,7 @@ import * as userStore from '@store/user'; import * as models from '@models'; -import { - DisplacementDisclaimerService, - EnvironmentService, - ScreenSizeService, -} from '@services'; +import { EnvironmentService, ScreenSizeService } from '@services'; import { AnalyticsEvent, Breakpoints, derivedDatasets } from '@models'; import { TranslateService, TranslateModule } from '@ngx-translate/core'; import { NgClass, AsyncPipe } from '@angular/common'; @@ -63,7 +59,6 @@ export class SearchTypeSelectorComponent implements OnInit, OnDestroy { translate = inject(TranslateService); private store$ = inject>(Store); private screenSize = inject(ScreenSizeService); - private disclaimerService = inject(DisplacementDisclaimerService); env = inject(EnvironmentService); @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger; @@ -246,10 +241,6 @@ export class SearchTypeSelectorComponent implements OnInit, OnDestroy { event.stopPropagation(); } - public onOpenDisclaimer(): void { - this.disclaimerService.open(); - } - ngOnDestroy() { this.subs.unsubscribe(); } From 11889981476debc6724de459c269bbe26e9d508f Mon Sep 17 00:00:00 2001 From: SpicyGarlicAlbacoreRoll Date: Tue, 13 Jan 2026 15:46:01 -0900 Subject: [PATCH 02/12] bug: remove recommended product tag from science product filter --- .../product-science-selector.component.html | 3 --- .../product-science-selector.component.scss | 7 ------- .../product-science-selector.component.ts | 5 +---- src/assets/i18n/en.json | 1 - src/assets/i18n/es.json | 1 - 5 files changed, 1 insertion(+), 16 deletions(-) diff --git a/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.html b/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.html index e14357fbd..67e7bcebb 100644 --- a/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.html +++ b/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.html @@ -24,9 +24,6 @@ } } - *{{ 'RECOMMENDED_PRODUCT' | translate }}
diff --git a/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.scss b/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.scss index ddcccf546..8598ead5a 100644 --- a/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.scss +++ b/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.scss @@ -32,10 +32,3 @@ div.cdk-overlay-pane:has(>.sci-prod-select) { .sci-prod-optgroup { font-weight: bold; } - -.sci-prod-recommended { - font-style: italic; - font-weight: 400; - font-size: small; - margin-left: 18px; -} diff --git a/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.ts b/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.ts index 18cab8aa8..02bd730c6 100644 --- a/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.ts +++ b/src/app/components/shared/selectors/product-science-selector/product-science-selector.component.ts @@ -51,10 +51,7 @@ export class ProductScienceSelectorComponent implements OnInit, OnDestroy { disabled: false, sciProd: [ { value: 'GSLC', viewValue: 'GSLC (Geocoded Single Look Complex)' }, - { - value: 'GCOV', - viewValue: '*GCOV (Geocoded Polarimetric Covariance)', - }, + { value: 'GCOV', viewValue: 'GCOV (Geocoded Polarimetric Covariance)' }, { value: 'GUNW', viewValue: 'GUNW (Geocoded Interferogram)' }, { value: 'GOFF', viewValue: 'GOFF (Geocoded Pixel Offsets)' }, ], diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 504430585..2376262c6 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -719,7 +719,6 @@ "READ_OUR_ON_DEMAND_GUIDE": "Read Our On Demand Guide", "READ_OUR_USER_GUIDE": "Read Our User Guide", "READ_THE_VERTEX_USER_GUIDE_INCLUDING_SECTIONS_ON_GETTING_STARTED_BASELINE_SEARCHES": "Read the Vertex User Guide, including sections on Getting Started, Baseline Searches,", - "RECOMMENDED_PRODUCT": "Recommended Product", "REFERENCE": "Reference", "REFERENCE_SCENE": "reference scene.", "REFERENCE_SCENES": "Reference Scenes", diff --git a/src/assets/i18n/es.json b/src/assets/i18n/es.json index 24c6af6f7..b9fed3d4e 100644 --- a/src/assets/i18n/es.json +++ b/src/assets/i18n/es.json @@ -719,7 +719,6 @@ "READ_OUR_ON_DEMAND_GUIDE": "Lea nuestra guía a On Demand ", "READ_OUR_USER_GUIDE": "Lea nuestra guía de usuario", "READ_THE_VERTEX_USER_GUIDE_INCLUDING_SECTIONS_ON_GETTING_STARTED_BASELINE_SEARCHES": "Lea la Guía del usuario de Vertex, incluidas las secciones sobre Primeros pasos, Búsquedas de referencia,", - "RECOMMENDED_PRODUCT": "Producto Recomendado", "REFERENCE": "Referencia", "REFERENCE_SCENE": "escena de referencia.", "REFERENCE_SCENES": "Escenas de referencia", From d85fb8a89dbbf4066a360fcae6f01f23edb0b938 Mon Sep 17 00:00:00 2001 From: Yoreley Date: Tue, 13 Jan 2026 19:31:58 -0800 Subject: [PATCH 03/12] DS-6220 Remove file type filter for ARIA S1 GUNW --- .../product-type-selector.component.html | 2 ++ .../product-type-selector/product-type-selector.component.ts | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.html b/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.html index 23144a8ac..c29de6847 100644 --- a/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.html +++ b/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.html @@ -1,3 +1,4 @@ +@if (!isAriaS1Gunw) { } +} diff --git a/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.ts b/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.ts index c93058404..cf2dabdd5 100644 --- a/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.ts +++ b/src/app/components/shared/selectors/product-type-selector/product-type-selector.component.ts @@ -119,4 +119,9 @@ export class ProductTypeSelectorComponent implements OnInit, OnDestroy { this.typesChange.emit(productTypes); } + + public get isAriaS1Gunw(): boolean { + return this.dataset?.apiValue?.dataset === 'ARIA S1 GUNW'; + } + } From 9bdcb7a6445388ea7d082e274c70dc09132e2aa9 Mon Sep 17 00:00:00 2001 From: yoreley777 Date: Wed, 14 Jan 2026 16:13:09 -0800 Subject: [PATCH 04/12] DS-6221 ARIA GUNW: Remove campaign selector filter (#2407) Co-authored-by: Andrew Anderson --- src/app/models/datasets/beta.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/models/datasets/beta.ts b/src/app/models/datasets/beta.ts index 08a923d83..38261c6b8 100644 --- a/src/app/models/datasets/beta.ts +++ b/src/app/models/datasets/beta.ts @@ -12,7 +12,6 @@ export const beta = { Props.FRAME, Props.FLIGHT_DIRECTION, Props.POLARIZATION, - Props.MISSION_NAME, Props.ABSOLUTE_ORBIT, Props.FRAME_ORDERING, Props.BASELINE_TOOL, From 7306e86dd434ff037a2badcf4274adef532336b6 Mon Sep 17 00:00:00 2001 From: Andrew Anderson Date: Thu, 15 Jan 2026 11:42:44 -0800 Subject: [PATCH 05/12] DS-6374 Displacement: Collapse Icons when screen sizes are smaller (#2408) * Changed the Disclaimer to show in the info bar * Changed Disclaimer info button in header to be an external link * WIP before tweaking the expand/collapse icon * WIP on icon panel slider in Displacement * WIP on icon panel slider * WIP on icon panel slider * WIP Everything looks good except for MapBox attribution at the bottom of the page. * WIP Icon Slider Drawer Everything looks good. Need to test dark mode. * Icon Slider Drawer Dark mode supported and ready for testing. * Changes per Kim's feedback minor nitpick: we should use @if @else since we're only checking a single variable (I think this was already there before this change I just noticed it in the git diff since the line got moved around) I suggest we simplify the chevron menu screen size change sanity-check (HostListener can get expensive since from my understanding the current implementation will try to query the clicked component AND every parent html element until it reaches the site's root element (https://developer.mozilla.org/en-US/docs/Web/API/Element/closest) I recommend we use Angular's animate.enter and animate.leave with css classes instead of their deprecated typescript-declared animation system, which will be removed in Angular V23. https://angular.dev/guide/animations * Sliding icon panel improvements Bug fixes: - Remove stray xmlns attribute from container div - Add optional chaining for userAuth?.id to prevent null reference - Add i18n support for drawer-tab tooltip (COLLAPSE_PANEL, EXPAND_PANEL keys) - Add accessibility attributes to drawer-tab (aria-expanded, aria-controls, aria-label) Code quality: - Move inline styles to SCSS classes (panel-storymap-button, panel-info-button, text-adjust-storymap, text-adjust-info) - Replace magic numbers with documented SCSS variables Animation polish: - Add will-change: transform for GPU-accelerated animation - Add prefers-reduced-motion media query for accessibility * npm run lint -- --fix * Position Tweaks to the Header Buttons for Displacement --- .../header-buttons.component.html | 232 ++++++++++++++---- .../header-buttons.component.scss | 128 ++++++++++ .../header-buttons.component.ts | 36 ++- .../product-type-selector.component.html | 54 ++-- .../product-type-selector.component.ts | 1 - src/assets/i18n/en.json | 2 + 6 files changed, 369 insertions(+), 84 deletions(-) diff --git a/src/app/components/header/header-buttons/header-buttons.component.html b/src/app/components/header/header-buttons/header-buttons.component.html index efee79774..9cfc139e1 100644 --- a/src/app/components/header/header-buttons/header-buttons.component.html +++ b/src/app/components/header/header-buttons/header-buttons.component.html @@ -1,5 +1,5 @@ @if (breakpoint$ | async; as breakpoint) { -
+
@if (breakpoint > breakpoints.MOBILE) { @if (searchType$ | async; as searchType) { @if (searchType !== searchTypes.DISPLACEMENT) { @@ -71,86 +71,217 @@
} - @if (searchType === searchTypes.DISPLACEMENT) { - + @if ( + searchType === searchTypes.DISPLACEMENT && + breakpoint === breakpoints.SMALL + ) { + +
+ + + +
+ + + + + +
+
+ + + } + @if ( + searchType === searchTypes.DISPLACEMENT && + breakpoint > breakpoints.SMALL + ) { + + } - - - @if (!isLoggedIn) { + @if ( + searchType !== searchTypes.DISPLACEMENT || + breakpoint > breakpoints.SMALL + ) { + - } - @if (isLoggedIn) { + @if (!isLoggedIn) { + + } @else { + + } } } } @@ -215,8 +346,7 @@ > account_circle - } - @if (isLoggedIn) { + } @else { account_circle @@ -260,8 +390,7 @@ video_library {{ 'VIDEO_TUTORIALS' | translate }}
- } - @if ((breakpoint$ | async) !== breakpoints.MOBILE) { + } @else {