From 15a6b2655e34e135479926b7a1c1eba4c84254d9 Mon Sep 17 00:00:00 2001 From: ArtemDzhereleiko Date: Thu, 30 Sep 2021 16:45:57 +0300 Subject: [PATCH 1/8] Fixed attribute tables pagination on switch between attributes scope --- .../home/components/attribute/attribute-table.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts index 5694cc5c77..bcb9edd07e 100644 --- a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts +++ b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts @@ -198,6 +198,7 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI attributeScopeChanged(attributeScope: TelemetryType) { this.attributeScope = attributeScope; this.mode = 'default'; + this.paginator.pageIndex = 0; this.updateData(true); } @@ -447,7 +448,7 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI if (this.mode === 'widget') { this.widgetsList = []; this.widgetsListCache = []; - this.widgetsCarouselIndex = 0; + this.widgetsCarouselIndex = 0; if (widgetsBundle) { this.widgetsLoaded = false; const bundleAlias = widgetsBundle.alias; From 7077a81d61e537e60a08d29786d1979328177ead Mon Sep 17 00:00:00 2001 From: ArtemDzhereleiko Date: Thu, 30 Sep 2021 16:49:38 +0300 Subject: [PATCH 2/8] Fixed entities table loading first page pagination if time window was changed --- .../modules/home/components/entity/entities-table.component.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui-ngx/src/app/modules/home/components/entity/entities-table.component.ts b/ui-ngx/src/app/modules/home/components/entity/entities-table.component.ts index 84c421c5c1..49386db131 100644 --- a/ui-ngx/src/app/modules/home/components/entity/entities-table.component.ts +++ b/ui-ngx/src/app/modules/home/components/entity/entities-table.component.ts @@ -432,6 +432,9 @@ export class EntitiesTableComponent extends PageComponent implements AfterViewIn } onTimewindowChange() { + if (this.displayPagination) { + this.paginator.pageIndex = 0; + } this.updateData(); } From 4cb3319f1dce319806d37caeb71ffc3e9c50add1 Mon Sep 17 00:00:00 2001 From: ArtemDzhereleiko Date: Thu, 30 Sep 2021 17:40:21 +0300 Subject: [PATCH 3/8] Fixed reltions table pagination when switch direction --- .../modules/home/components/relation/relation-table.component.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/ui-ngx/src/app/modules/home/components/relation/relation-table.component.ts b/ui-ngx/src/app/modules/home/components/relation/relation-table.component.ts index cd88d9fae0..b10ed82249 100644 --- a/ui-ngx/src/app/modules/home/components/relation/relation-table.component.ts +++ b/ui-ngx/src/app/modules/home/components/relation/relation-table.component.ts @@ -124,6 +124,7 @@ export class RelationTableComponent extends PageComponent implements AfterViewIn directionChanged(direction: EntitySearchDirection) { this.direction = direction; this.updateColumns(); + this.paginator.pageIndex = 0; this.updateData(true); } From c8ce826b7cc7b7898f7328958bb8d73ed7d469b1 Mon Sep 17 00:00:00 2001 From: ArtemDzhereleiko Date: Thu, 7 Oct 2021 12:36:27 +0300 Subject: [PATCH 4/8] Fix pagination on timewindow updated --- ui-ngx/src/app/core/api/widget-subscription.ts | 8 +++++++- .../lib/timeseries-table-widget.component.ts | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/core/api/widget-subscription.ts b/ui-ngx/src/app/core/api/widget-subscription.ts index 5481af9255..0f05208981 100644 --- a/ui-ngx/src/app/core/api/widget-subscription.ts +++ b/ui-ngx/src/app/core/api/widget-subscription.ts @@ -67,7 +67,7 @@ import { KeyFilter, updateDatasourceFromEntityInfo } from '@shared/models/query/query.models'; -import { filter, map, switchMap, takeUntil } from 'rxjs/operators'; +import { distinct, filter, map, switchMap, takeUntil } from 'rxjs/operators'; import { AlarmDataListener } from '@core/api/alarm-data.service'; import { RpcStatus } from '@shared/models/rpc.models'; @@ -139,6 +139,11 @@ export class WidgetSubscription implements IWidgetSubscription { executingSubjects: Array>; subscribed = false; + widgetTimewindowChangedSubject: Subject = new ReplaySubject(); + + widgetTimewindowChanged = this.widgetTimewindowChangedSubject.asObservable().pipe( + distinct() + ); constructor(subscriptionContext: WidgetSubscriptionContext, public options: WidgetSubscriptionOptions) { const subscriptionSubject = new ReplaySubject(); @@ -805,6 +810,7 @@ export class WidgetSubscription implements IWidgetSubscription { update(isTimewindowTypeChanged = false) { if (this.type !== widgetType.rpc) { + this.widgetTimewindowChangedSubject.next(this.timeWindowConfig); if (this.type === widgetType.alarm) { this.updateAlarmDataSubscription(); } else { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts index 3f36769baf..e22c7b6f1c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts @@ -139,6 +139,7 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI private rowStylesInfo: RowStyleInfo; private subscriptions: Subscription[] = []; + private widgetTimewindowChangedSubscription: Subscription; private searchAction: WidgetAction = { name: 'action.search', @@ -169,6 +170,23 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI this.datasources = this.ctx.datasources; this.initialize(); this.ctx.updateWidgetParams(); + + this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( + () => { + this.sources.forEach((source) => { + if (this.displayPagination) { + source.pageLink.page = 0; + } + }); + } + ); + } + + ngOnDestroy(): void { + if (this.widgetTimewindowChangedSubscription) { + this.widgetTimewindowChangedSubscription.unsubscribe(); + this.widgetTimewindowChangedSubscription = null; + } } ngAfterViewInit(): void { From 246390b43b15bb29cb28fcf2146e5f765b475358 Mon Sep 17 00:00:00 2001 From: ArtemDzhereleiko Date: Thu, 7 Oct 2021 12:52:42 +0300 Subject: [PATCH 5/8] Fix pagination on alarm table widget after timewindow updated --- .../widget/lib/alarms-table-widget.component.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts index 390559bab3..deb3083b8f 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts @@ -48,7 +48,7 @@ import cssjs from '@core/css/css'; import { sortItems } from '@shared/models/page/page-link'; import { Direction } from '@shared/models/page/sort-order'; import { CollectionViewer, DataSource, SelectionModel } from '@angular/cdk/collections'; -import { BehaviorSubject, forkJoin, fromEvent, merge, Observable } from 'rxjs'; +import { BehaviorSubject, forkJoin, fromEvent, merge, Observable, Subscription } from 'rxjs'; import { emptyPageData, PageData } from '@shared/models/page/page-data'; import { entityTypeTranslations } from '@shared/models/entity-type.models'; import { debounceTime, distinctUntilChanged, map, take, tap } from 'rxjs/operators'; @@ -188,6 +188,8 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit, private rowStylesInfo: RowStyleInfo; + private widgetTimewindowChangedSubscription: Subscription; + private searchAction: WidgetAction = { name: 'action.search', show: true, @@ -243,6 +245,17 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit, this.initializeConfig(); this.updateAlarmSource(); this.ctx.updateWidgetParams(); + + this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( + () => this.pageLink.page = 0 + ); + } + + ngOnDestroy(): void { + if (this.widgetTimewindowChangedSubscription) { + this.widgetTimewindowChangedSubscription.unsubscribe(); + this.widgetTimewindowChangedSubscription = null; + } } ngAfterViewInit(): void { From e2b0fd6c155ffa4a2b5488d05a5d9fc518afc521 Mon Sep 17 00:00:00 2001 From: ArtemDzhereleiko Date: Fri, 8 Oct 2021 13:05:44 +0300 Subject: [PATCH 6/8] Add compleate to subject and do subscribe if display pagination turn on --- ui-ngx/src/app/core/api/widget-api.models.ts | 4 +++- .../lib/alarms-table-widget.component.ts | 9 +++++--- .../date-range-navigator.component.ts | 1 + .../lib/timeseries-table-widget.component.ts | 21 +++++++++++-------- .../home/models/dashboard-component.models.ts | 1 + 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/ui-ngx/src/app/core/api/widget-api.models.ts b/ui-ngx/src/app/core/api/widget-api.models.ts index 4f46212231..2ed130cc60 100644 --- a/ui-ngx/src/app/core/api/widget-api.models.ts +++ b/ui-ngx/src/app/core/api/widget-api.models.ts @@ -14,7 +14,7 @@ /// limitations under the License. /// -import { Observable } from 'rxjs'; +import { Observable, Subject } from 'rxjs'; import { EntityId } from '@app/shared/models/id/entity-id'; import { DataSet, @@ -277,6 +277,8 @@ export interface IWidgetSubscription { hiddenData?: Array<{data: DataSet}>; timeWindowConfig?: Timewindow; timeWindow?: WidgetTimewindow; + widgetTimewindowChanged: Observable; + widgetTimewindowChangedSubject: Subject; comparisonEnabled?: boolean; comparisonTimeWindow?: WidgetTimewindow; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts index deb3083b8f..4054041c48 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts @@ -246,9 +246,11 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit, this.updateAlarmSource(); this.ctx.updateWidgetParams(); - this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( - () => this.pageLink.page = 0 - ); + if (this.displayPagination) { + this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( + () => this.pageLink.page = 0 + ); + } } ngOnDestroy(): void { @@ -256,6 +258,7 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit, this.widgetTimewindowChangedSubscription.unsubscribe(); this.widgetTimewindowChangedSubscription = null; } + this.ctx.defaultSubscription.widgetTimewindowChangedSubject.complete(); } ngAfterViewInit(): void { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts index 526913af8d..640e09478c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts @@ -119,6 +119,7 @@ export class DateRangeNavigatorWidgetComponent extends PageComponent implements this.dashboardTimewindowChangedSubscription.unsubscribe(); this.dashboardTimewindowChangedSubscription = null; } + this.ctx.dashboard.dashboardTimewindowChangedSubject.complete(); } openNavigatorPanel($event: Event) { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts index e22c7b6f1c..5dfd47ed83 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts @@ -171,15 +171,17 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI this.initialize(); this.ctx.updateWidgetParams(); - this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( - () => { - this.sources.forEach((source) => { - if (this.displayPagination) { - source.pageLink.page = 0; - } - }); - } - ); + if (this.displayPagination) { + this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( + () => { + this.sources.forEach((source) => { + if (this.displayPagination) { + source.pageLink.page = 0; + } + }); + } + ); + } } ngOnDestroy(): void { @@ -187,6 +189,7 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI this.widgetTimewindowChangedSubscription.unsubscribe(); this.widgetTimewindowChangedSubscription = null; } + this.ctx.defaultSubscription.widgetTimewindowChangedSubject.complete(); } ngAfterViewInit(): void { diff --git a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts index ffcaef06ef..3ce1779bf6 100644 --- a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts +++ b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts @@ -67,6 +67,7 @@ export interface IDashboardComponent { autofillHeight: boolean; dashboardTimewindow: Timewindow; dashboardTimewindowChanged: Observable; + dashboardTimewindowChangedSubject: Subject; aliasController: IAliasController; stateController: IStateController; onUpdateTimewindow(startTimeMs: number, endTimeMs: number, interval?: number, persist?: boolean): void; From c93e661e326682c1c4fce76a8a310b7a184f4cf9 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 8 Oct 2021 16:58:02 +0300 Subject: [PATCH 7/8] Update widget-api.models.ts --- ui-ngx/src/app/core/api/widget-api.models.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/ui-ngx/src/app/core/api/widget-api.models.ts b/ui-ngx/src/app/core/api/widget-api.models.ts index 2ed130cc60..eeeb73d038 100644 --- a/ui-ngx/src/app/core/api/widget-api.models.ts +++ b/ui-ngx/src/app/core/api/widget-api.models.ts @@ -278,7 +278,6 @@ export interface IWidgetSubscription { timeWindowConfig?: Timewindow; timeWindow?: WidgetTimewindow; widgetTimewindowChanged: Observable; - widgetTimewindowChangedSubject: Subject; comparisonEnabled?: boolean; comparisonTimeWindow?: WidgetTimewindow; From 45961519cdecb465f6cc7507a6c8e5d1627d00bf Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 8 Oct 2021 19:21:03 +0300 Subject: [PATCH 8/8] UI: Refactoring code --- ui-ngx/src/app/core/api/widget-api.models.ts | 4 ++-- ui-ngx/src/app/core/api/widget-subscription.ts | 3 ++- .../home/components/dashboard/dashboard.component.ts | 1 + .../widget/lib/alarms-table-widget.component.ts | 11 +++++------ .../date-range-navigator.component.ts | 1 - .../widget/lib/timeseries-table-widget.component.ts | 11 +++++------ .../modules/home/models/dashboard-component.models.ts | 1 - 7 files changed, 15 insertions(+), 17 deletions(-) diff --git a/ui-ngx/src/app/core/api/widget-api.models.ts b/ui-ngx/src/app/core/api/widget-api.models.ts index eeeb73d038..91555a040a 100644 --- a/ui-ngx/src/app/core/api/widget-api.models.ts +++ b/ui-ngx/src/app/core/api/widget-api.models.ts @@ -14,7 +14,7 @@ /// limitations under the License. /// -import { Observable, Subject } from 'rxjs'; +import { Observable } from 'rxjs'; import { EntityId } from '@app/shared/models/id/entity-id'; import { DataSet, @@ -277,7 +277,7 @@ export interface IWidgetSubscription { hiddenData?: Array<{data: DataSet}>; timeWindowConfig?: Timewindow; timeWindow?: WidgetTimewindow; - widgetTimewindowChanged: Observable; + widgetTimewindowChanged$: Observable; comparisonEnabled?: boolean; comparisonTimeWindow?: WidgetTimewindow; diff --git a/ui-ngx/src/app/core/api/widget-subscription.ts b/ui-ngx/src/app/core/api/widget-subscription.ts index 0f05208981..61ada4ffd2 100644 --- a/ui-ngx/src/app/core/api/widget-subscription.ts +++ b/ui-ngx/src/app/core/api/widget-subscription.ts @@ -141,7 +141,7 @@ export class WidgetSubscription implements IWidgetSubscription { subscribed = false; widgetTimewindowChangedSubject: Subject = new ReplaySubject(); - widgetTimewindowChanged = this.widgetTimewindowChangedSubject.asObservable().pipe( + widgetTimewindowChanged$ = this.widgetTimewindowChangedSubject.asObservable().pipe( distinct() ); @@ -1124,6 +1124,7 @@ export class WidgetSubscription implements IWidgetSubscription { destroy(): void { this.unsubscribe(); + this.widgetTimewindowChangedSubject.complete(); for (const cafId of Object.keys(this.cafs)) { if (this.cafs[cafId]) { this.cafs[cafId](); diff --git a/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts b/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts index 72c242c308..b7bd51c437 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard/dashboard.component.ts @@ -238,6 +238,7 @@ export class DashboardComponent extends PageComponent implements IDashboardCompo if (this.breakpointObserverSubscription) { this.breakpointObserverSubscription.unsubscribe(); } + this.dashboardTimewindowChangedSubject.complete(); this.gridster = null; } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts index 4054041c48..dd3539024b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts @@ -188,7 +188,7 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit, private rowStylesInfo: RowStyleInfo; - private widgetTimewindowChangedSubscription: Subscription; + private widgetTimewindowChanged$: Subscription; private searchAction: WidgetAction = { name: 'action.search', @@ -247,18 +247,17 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit, this.ctx.updateWidgetParams(); if (this.displayPagination) { - this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( + this.widgetTimewindowChanged$ = this.ctx.defaultSubscription.widgetTimewindowChanged$.subscribe( () => this.pageLink.page = 0 ); } } ngOnDestroy(): void { - if (this.widgetTimewindowChangedSubscription) { - this.widgetTimewindowChangedSubscription.unsubscribe(); - this.widgetTimewindowChangedSubscription = null; + if (this.widgetTimewindowChanged$) { + this.widgetTimewindowChanged$.unsubscribe(); + this.widgetTimewindowChanged$ = null; } - this.ctx.defaultSubscription.widgetTimewindowChangedSubject.complete(); } ngAfterViewInit(): void { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts index 640e09478c..526913af8d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/date-range-navigator/date-range-navigator.component.ts @@ -119,7 +119,6 @@ export class DateRangeNavigatorWidgetComponent extends PageComponent implements this.dashboardTimewindowChangedSubscription.unsubscribe(); this.dashboardTimewindowChangedSubscription = null; } - this.ctx.dashboard.dashboardTimewindowChangedSubject.complete(); } openNavigatorPanel($event: Event) { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts index 5dfd47ed83..f5b01ef39a 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts @@ -139,7 +139,7 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI private rowStylesInfo: RowStyleInfo; private subscriptions: Subscription[] = []; - private widgetTimewindowChangedSubscription: Subscription; + private widgetTimewindowChanged$: Subscription; private searchAction: WidgetAction = { name: 'action.search', @@ -172,7 +172,7 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI this.ctx.updateWidgetParams(); if (this.displayPagination) { - this.widgetTimewindowChangedSubscription = this.ctx.defaultSubscription.widgetTimewindowChanged.subscribe( + this.widgetTimewindowChanged$ = this.ctx.defaultSubscription.widgetTimewindowChanged$.subscribe( () => { this.sources.forEach((source) => { if (this.displayPagination) { @@ -185,11 +185,10 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI } ngOnDestroy(): void { - if (this.widgetTimewindowChangedSubscription) { - this.widgetTimewindowChangedSubscription.unsubscribe(); - this.widgetTimewindowChangedSubscription = null; + if (this.widgetTimewindowChanged$) { + this.widgetTimewindowChanged$.unsubscribe(); + this.widgetTimewindowChanged$ = null; } - this.ctx.defaultSubscription.widgetTimewindowChangedSubject.complete(); } ngAfterViewInit(): void { diff --git a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts index 3ce1779bf6..ffcaef06ef 100644 --- a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts +++ b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts @@ -67,7 +67,6 @@ export interface IDashboardComponent { autofillHeight: boolean; dashboardTimewindow: Timewindow; dashboardTimewindowChanged: Observable; - dashboardTimewindowChangedSubject: Subject; aliasController: IAliasController; stateController: IStateController; onUpdateTimewindow(startTimeMs: number, endTimeMs: number, interval?: number, persist?: boolean): void;