Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
33450ff
DS-6299 Displacement Search should not allow polar map views (#2365)
artisticlight Nov 21, 2025
67c4d84
Updated translations from Phrase (#2337)
ASF-Discovery Dec 1, 2025
679e397
Updated translations from Phrase (#2367)
ASF-Discovery Dec 2, 2025
abf4c1c
feat: add displacement disclaimer button and modal to header breadcrumb
SpicyGarlicAlbacoreRoll Dec 2, 2025
b6f2da1
Merge branch 'test' into opera-disp-displacement-disclaimer
SpicyGarlicAlbacoreRoll Dec 2, 2025
edc0d05
feat: add Open FAQ button to displacement disclaimer text
SpicyGarlicAlbacoreRoll Dec 2, 2025
b48710f
Merge branch 'opera-disp-displacement-disclaimer' of https://github.c…
SpicyGarlicAlbacoreRoll Dec 2, 2025
ed3b361
fix: add punctuation to end of disp disclaimer text
SpicyGarlicAlbacoreRoll Dec 2, 2025
795d5ec
fix: add OPEN_FAQ translation key
SpicyGarlicAlbacoreRoll Dec 2, 2025
99b48ee
Merge pull request #2369 from asfadmin/opera-disp-displacement-discla…
SpicyGarlicAlbacoreRoll Dec 2, 2025
59636dd
DS-6335 (#2368)
artisticlight Dec 3, 2025
0f7473d
Andy/ds 6336 (#2366)
artisticlight Dec 3, 2025
4997d78
feat: Update control flow syntax (#2370)
tylercchase Dec 3, 2025
59d6510
Updated translations from Phrase (#2373)
ASF-Discovery Dec 4, 2025
a08de52
feat: standalone migration
tylercchase Dec 4, 2025
2653b98
Andy/6335 (#2374)
artisticlight Dec 17, 2025
478b6f4
Revamped William's Pull Request for Changing On Demand Job Names (#2375)
artisticlight Dec 19, 2025
f3ab183
Andy/radio button toggle (#2378)
artisticlight Jan 6, 2026
9fff7be
Andy/radio button toggle (#2380)
artisticlight Jan 6, 2026
568fb61
Updated translations from Phrase
ASF-Discovery Jan 7, 2026
8562d1a
Merge pull request #2383 from asfadmin/phrase-translations
yoreley777 Jan 7, 2026
3d6fdf1
Yoreley/dec 27 (#2384)
yoreley777 Jan 7, 2026
32422c3
Updated translations from Phrase
ASF-Discovery Jan 7, 2026
e1fcab7
Merge branch 'test' into phrase-translations
yoreley777 Jan 7, 2026
14dd92c
Merge pull request #2385 from asfadmin/phrase-translations
yoreley777 Jan 7, 2026
370af04
Updated translations from Phrase
ASF-Discovery Jan 7, 2026
3d60189
Merge pull request #2387 from asfadmin/phrase-translations
yoreley777 Jan 7, 2026
4022a48
Yoreley/dec 27 (#2386)
yoreley777 Jan 7, 2026
09112f8
Updated translations from Phrase
ASF-Discovery Jan 8, 2026
7fe0d96
Merge branch 'test' into phrase-translations
yoreley777 Jan 8, 2026
3bb2e30
Updated translations from Phrase
ASF-Discovery Jan 8, 2026
ac9ab0a
Merge pull request #2388 from asfadmin/phrase-translations
yoreley777 Jan 8, 2026
ac1a672
Updated translations from Phrase
ASF-Discovery Jan 8, 2026
e8eadc7
Merge pull request #2389 from asfadmin/phrase-translations
yoreley777 Jan 8, 2026
93d44df
Updated translations from Phrase
ASF-Discovery Jan 8, 2026
6299a3a
Merge branch 'test' into phrase-translations
yoreley777 Jan 8, 2026
58d5a6e
Updated translations from Phrase (#2391)
ASF-Discovery Jan 8, 2026
177e89b
Yoreley/dec 27 (#2392)
yoreley777 Jan 8, 2026
3cf6e7f
Andy/ds 6227 displacemen story map (#2390)
artisticlight Jan 8, 2026
b37691b
Updated translations from Phrase
ASF-Discovery Jan 8, 2026
78a5627
Merge branch 'test' into phrase-translations
yoreley777 Jan 8, 2026
d724e79
Merge pull request #2393 from asfadmin/phrase-translations
yoreley777 Jan 8, 2026
9f256b0
Updated translations from Phrase
ASF-Discovery Jan 8, 2026
0a6bd0f
Merge pull request #2394 from asfadmin/phrase-translations
yoreley777 Jan 8, 2026
7559c8f
Updated translations from Phrase (#2396)
ASF-Discovery Jan 8, 2026
170b5aa
Yoreley/dec 27 (#2397)
yoreley777 Jan 8, 2026
9e367f7
Andy/ds 6227 displacemen story map (#2395)
artisticlight Jan 9, 2026
b43a6c9
Andy/ds 6227 displacemen story map (#2399)
artisticlight Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ local-serve.sh
# Claude Code
.claude/
CLAUDE.md
TRANSLATIONS_SCRATCH.md
docs/
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,4 @@
"ts-node": "^8.10.2",
"typescript-eslint": "8.40.0"
}
}
}
23 changes: 21 additions & 2 deletions src/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ import {
inject,
} from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { MatSidenav } from '@angular/material/sidenav';
import {
MatSidenav,
MatSidenavContainer,
MatSidenavContent,
} from '@angular/material/sidenav';
import { MatIconRegistry } from '@angular/material/icon';
import { DomSanitizer, Title } from '@angular/platform-browser';
import { MatDialog } from '@angular/material/dialog';
Expand Down Expand Up @@ -57,6 +61,11 @@ import {
NativeDateAdapter,
} from '@angular/material/core';
import { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';
import { NgClass, AsyncPipe } from '@angular/common';
import { SidebarComponent } from './components/sidebar/sidebar.component';
import { HeaderComponent } from './components/header/header.component';
import { MapComponent } from './components/map/map.component';
import { ResultsMenuComponent } from './components/results-menu/results-menu.component';

@Component({
selector: 'app-root',
Expand All @@ -70,7 +79,17 @@ import { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';
{ provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },
{ provide: MAT_DATE_LOCALE, useValue: 'en' },
],
standalone: false,
imports: [
MatSidenavContainer,
MatSidenav,
NgClass,
SidebarComponent,
MatSidenavContent,
HeaderComponent,
MapComponent,
ResultsMenuComponent,
AsyncPipe,
],
})
export class AppComponent implements OnInit, OnDestroy, AfterViewInit {
private store$ = inject<Store<AppState>>(Store);
Expand Down
163 changes: 0 additions & 163 deletions src/app/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,89 +1,8 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BrowserModule } from '@angular/platform-browser';

import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatMenuModule } from '@angular/material/menu';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatDialogModule } from '@angular/material/dialog';
import { MatIconModule } from '@angular/material/icon';
import { MatTableModule } from '@angular/material/table';
import { MatSortModule } from '@angular/material/sort';

import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import { ToastrModule } from 'ngx-toastr';

import * as store from './store';

import { MatSharedModule } from '@shared';
import { SidebarModule } from '@components/sidebar';
import { HeaderModule } from '@components/header';
import { MapModule } from '@components/map';
import { CodeExportModule } from '@components/shared/code-export';
import { ResultsMenuModule } from '@components/results-menu';
import { BaselineChartModule } from '@components/baseline-chart';
import { HelpModule } from '@components/help';
import { AppComponent } from './app.component';

import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClient } from '@angular/common/http';

import * as services from '@services';

import {
NgcCookieConsentModule,
NgcCookieConsentConfig,
} from 'ngx-cookieconsent';
import { getSaver, SAVER } from '@services/saver.provider';
import {
DateAdapter,
MAT_DATE_FORMATS,
MAT_DATE_LOCALE,
} from '@angular/material/core';
import {
MAT_MOMENT_DATE_ADAPTER_OPTIONS,
MAT_MOMENT_DATE_FORMATS,
MomentDateAdapter,
} from '@angular/material-moment-adapter';
import { TimeseriesResultsMenuModule } from '@components/results-menu/timeseries-results-menu/timeseries-results-menu.module';

// info about cookie consent module: https://tinesoft.github.io/ngx-cookieconsent/home
const cookieConfig: NgcCookieConsentConfig = {
autoOpen: false,
cookie: {
domain: window.location.hostname,
},
position: 'bottom',
theme: 'edgeless',
palette: {
popup: {
background: '#000000',
text: '#ffffff',
link: '#ffffff',
},
button: {
background: '#236192',
text: '#ffffff',
border: 'transparent',
},
},
type: 'info',
content: {
message:
'This website uses cookies to ensure you get the best experience on our website.',
dismiss: 'Dismiss',
deny: 'Refuse cookies',
link: 'Learn more',
href: 'https://cookiesandyou.com',
policy: 'Cookie Policy',
},
};

// AoT requires an exported function for factories
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http);
Expand All @@ -92,85 +11,3 @@ export function HttpLoaderFactory(http: HttpClient) {
export const routes = [
{ path: '**', name: 'AppComponent', component: AppComponent },
];

@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient],
},
}),
BrowserAnimationsModule,
NgcCookieConsentModule.forRoot(cookieConfig),
MatBottomSheetModule,
MatSharedModule,
RouterModule.forRoot(routes, { useHash: true }),
StoreModule.forRoot(store.reducers, { metaReducers: store.metaReducers }),
EffectsModule.forRoot(store.appEffects),
MatSidenavModule,
MatTableModule,
MatSortModule,
SidebarModule,
MapModule,
ResultsMenuModule,
HeaderModule,
MatMenuModule,
MatFormFieldModule,
MatIconModule,
MatDialogModule,
BaselineChartModule,
HelpModule,
ToastrModule.forRoot({ positionClass: 'inline', preventDuplicates: true }),
CodeExportModule,
TimeseriesResultsMenuModule,
],
providers: [
services.AsfApiService,
services.AsfLanguageService,
services.UrlStateService,
services.MapService,
services.DrawService,
services.WktService,
services.LayerService,
services.ProductService,
services.BulkDownloadService,
services.SearchParamsService,
services.RangeService,
services.PolygonValidationService,
services.DateExtremaService,
services.EnvironmentService,
services.PropertyService,
services.LegacyAreaFormatService,
services.BannerApiService,
services.ScreenSizeService,
services.KeyboardService,
services.UserDataService,
services.SavedSearchService,
services.UnzipApiService,
services.ScenesService,
services.SearchService,
services.Hyp3ApiService,
services.Hyp3JobStatusService,
services.Hyp3JobService,
services.PossibleHyp3JobsService,
services.OnDemandService,
services.Hyp3JobPollingService,
services.PairService,
services.SceneSelectService,
{ provide: SAVER, useFactory: getSaver },
{
provide: DateAdapter,
useClass: MomentDateAdapter,
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
},
{ provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },
// { provide: Window, useValue: window },
],
bootstrap: [AppComponent],
exports: [MatTableModule],
})
export class AppModule {}
54 changes: 30 additions & 24 deletions src/app/components/baseline-chart/baseline-chart.component.html
Original file line number Diff line number Diff line change
@@ -1,25 +1,31 @@
<div *ngIf="breakpoint$ | async as breakpoint">
<ul>
<li>
<div class="box reference-box"></div>
{{ 'REFERENCE' | translate }}
</li>
<li>
<div class="box selected-box"></div>
{{ 'SELECTED' | translate }}
</li>
<li>
<div class="box download-box"></div>
{{ 'DOWNLOADS' | translate }}
</li>
<li *ngIf="breakpoint === breakpoints.MOBILE">
<div class="box baseline-box"></div>
{{ 'CRITICAL_BASELINE_ABBR' | translate }}
</li>
<li *ngIf="breakpoint !== breakpoints.MOBILE">
<div class="box baseline-box"></div>
{{ 'CRITICAL_BASELINE' | translate }}
</li>
</ul>
</div>
@if (breakpoint$ | async; as breakpoint) {
<div>
<ul>
<li>
<div class="box reference-box"></div>
{{ 'REFERENCE' | translate }}
</li>
<li>
<div class="box selected-box"></div>
{{ 'SELECTED' | translate }}
</li>
<li>
<div class="box download-box"></div>
{{ 'DOWNLOADS' | translate }}
</li>
@if (breakpoint === breakpoints.MOBILE) {
<li>
<div class="box baseline-box"></div>
{{ 'CRITICAL_BASELINE_ABBR' | translate }}
</li>
}
@if (breakpoint !== breakpoints.MOBILE) {
<li>
<div class="box baseline-box"></div>
{{ 'CRITICAL_BASELINE' | translate }}
</li>
}
</ul>
</div>
}
<div #baselineChart id="baseline-chart" (resized)="onResized()"></div>
6 changes: 4 additions & 2 deletions src/app/components/baseline-chart/baseline-chart.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
import { combineLatest } from 'rxjs';
import { map, tap, filter } from 'rxjs/operators';

import { TranslateService } from '@ngx-translate/core';
import { TranslateService, TranslateModule } from '@ngx-translate/core';

import { Store } from '@ngrx/store';
import { AppState } from '@store';
Expand All @@ -23,6 +23,8 @@ import { criticalBaselineFor, CMRProduct } from '@models';
import * as d3 from 'd3';
import * as models from '@models';
import * as services from '@services';
import { AsyncPipe } from '@angular/common';
import { ResizedDirective } from '../../directives/resized.directive';
export enum ChartDatasets {
MASTER = 0,
SELECTED = 1,
Expand All @@ -41,7 +43,7 @@ interface Point {
selector: 'app-baseline-chart',
templateUrl: './baseline-chart.component.html',
styleUrls: ['./baseline-chart.component.scss'],
standalone: false,
imports: [ResizedDirective, AsyncPipe, TranslateModule],
})
export class BaselineChartComponent implements OnInit, OnDestroy {
translate = inject(TranslateService);
Expand Down
15 changes: 0 additions & 15 deletions src/app/components/baseline-chart/baseline-chart.module.ts

This file was deleted.

1 change: 0 additions & 1 deletion src/app/components/baseline-chart/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
export * from './baseline-chart.component';
export * from './baseline-chart.module';
Loading
Loading