diff --git a/projects/observability/src/pages/explorer/explorer.component.test.ts b/projects/observability/src/pages/explorer/explorer.component.test.ts
index dcab7cb6d..a77f92535 100644
--- a/projects/observability/src/pages/explorer/explorer.component.test.ts
+++ b/projects/observability/src/pages/explorer/explorer.component.test.ts
@@ -8,6 +8,7 @@ import {
DEFAULT_COLOR_PALETTE,
LayoutChangeService,
NavigationService,
+ PreferenceService,
RelativeTimeRange,
TimeDuration,
TimeRangeService,
@@ -102,6 +103,9 @@ describe('Explorer component', () => {
colors: ['black', 'white']
}
},
+ mockProvider(PreferenceService, {
+ get: jest.fn().mockReturnValue(of(true))
+ }),
...getMockFlexLayoutProviders()
]
});
diff --git a/projects/observability/src/pages/explorer/explorer.component.ts b/projects/observability/src/pages/explorer/explorer.component.ts
index ae75ac8e6..185d1a348 100644
--- a/projects/observability/src/pages/explorer/explorer.component.ts
+++ b/projects/observability/src/pages/explorer/explorer.component.ts
@@ -3,6 +3,7 @@ import { ActivatedRoute, ParamMap } from '@angular/router';
import {
assertUnreachable,
NavigationService,
+ PreferenceService,
QueryParamObject,
TimeDuration,
TimeDurationService
@@ -53,9 +54,14 @@ import {
(filtersChange)="this.onFiltersUpdated($event)"
>
-
+
- Visualization
@@ -83,9 +89,14 @@ import {
-
+
- Results
+ Results
;
public readonly vizDashboard$: Observable;
@@ -128,9 +141,8 @@ export class ExplorerComponent {
];
public filters: Filter[] = [];
-
- public visualizationExpanded: boolean = true;
- public resultsExpanded: boolean = true;
+ public visualizationExpanded$: Observable;
+ public resultsExpanded$: Observable;
private readonly contextChangeSubject: Subject = new Subject();
@@ -138,10 +150,13 @@ export class ExplorerComponent {
private readonly metadataService: MetadataService,
private readonly navigationService: NavigationService,
private readonly timeDurationService: TimeDurationService,
+ private readonly preferenceService: PreferenceService,
@Inject(EXPLORER_DASHBOARD_BUILDER_FACTORY) explorerDashboardBuilderFactory: ExplorerDashboardBuilderFactory,
activatedRoute: ActivatedRoute
) {
this.explorerDashboardBuilder = explorerDashboardBuilderFactory.build();
+ this.visualizationExpanded$ = this.preferenceService.get(ExplorerComponent.VISUALIZATION_EXPANDED_PREFERENCE, true);
+ this.resultsExpanded$ = this.preferenceService.get(ExplorerComponent.RESULTS_EXPANDED_PREFERENCE, true);
this.resultsDashboard$ = this.explorerDashboardBuilder.resultsDashboard$;
this.vizDashboard$ = this.explorerDashboardBuilder.visualizationDashboard$;
this.initialState$ = activatedRoute.queryParamMap.pipe(
@@ -183,6 +198,14 @@ export class ExplorerComponent {
this.contextChangeSubject.next(contextWrapper.dashboardContext);
}
+ public onVisualizationExpandedChange(expanded: boolean): void {
+ this.preferenceService.set(ExplorerComponent.VISUALIZATION_EXPANDED_PREFERENCE, expanded);
+ }
+
+ public onResultsExpandedChange(expanded: boolean): void {
+ this.preferenceService.set(ExplorerComponent.RESULTS_EXPANDED_PREFERENCE, expanded);
+ }
+
private updateUrlWithVisualizationData(request: ExploreRequestState): void {
this.navigationService.addQueryParametersToUrl({
[ExplorerQueryParam.Scope]: this.getQueryParamFromContext(request.context as ExplorerGeneratedDashboardContext),