Skip to content

Commit e18f101

Browse files
committed
checkpoint tensorflow#2
1 parent 0a54e05 commit e18f101

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

tensorboard/webapp/metrics/views/card_renderer/scalar_card_component.ng.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
[tooltipTemplate]="tooltip"
113113
[useDarkMode]="useDarkMode"
114114
(onViewBoxOverridden)="isViewBoxOverridden = $event"
115-
(onViewBoxChanged)="onLineChartZoom.emit($event)"
115+
(viewBoxChanged)="onLineChartZoom.emit($event)"
116116
[customVisTemplate]="lineChartCustomVis"
117117
[customChartOverlayTemplate]="lineChartCustomXAxisVis"
118118
></line-chart>

tensorboard/webapp/metrics/views/card_renderer/scalar_card_container.ts

+19-14
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,12 @@ import {
2424
} from '@angular/core';
2525
import {Store} from '@ngrx/store';
2626
import {
27+
BehaviorSubject,
2728
combineLatest,
2829
from,
2930
Observable,
3031
of,
3132
Subject,
32-
Subscriber,
33-
zip,
3433
} from 'rxjs';
3534
import {
3635
combineLatestWith,
@@ -201,9 +200,9 @@ export class ScalarCardContainer implements CardRenderer, OnInit, OnDestroy {
201200
minMaxSteps$?: Observable<MinMaxStep>;
202201
columnHeaders$?: Observable<ColumnHeaders[]>;
203202

204-
private lineChartZoomObservers: Subscriber<Extent>[] = [];
205-
lineChartZoom$: Observable<Extent> = new Observable((observer) => {
206-
this.lineChartZoomObservers.push(observer);
203+
lineChartZoom$ = new BehaviorSubject<MinMaxStep>({
204+
minStep: -Infinity,
205+
maxStep: Infinity,
207206
});
208207

209208
onVisibilityChange({visible}: {visible: boolean}) {
@@ -353,18 +352,19 @@ export class ScalarCardContainer implements CardRenderer, OnInit, OnDestroy {
353352
shareReplay(1)
354353
);
355354

356-
this.minMaxSteps$ = zip(partitionedSeries$, this.lineChartZoom$).pipe(
357-
map(([series, lineChartViewBox]) => {
358-
const minMax = lineChartViewBox.x;
359-
const minInViewPort = Math.ceil(Math.min(...minMax));
360-
const maxInViewPort = Math.floor(Math.max(...minMax));
355+
this.minMaxSteps$ = combineLatest([
356+
partitionedSeries$,
357+
this.lineChartZoom$,
358+
]).pipe(
359+
map(([series, viewPort]) => {
361360
const allPoints = series
362361
.map(({points}) => points.map(({x}) => x))
363362
.flat();
364363
const min = Math.min(...allPoints);
365364
const max = Math.max(...allPoints);
366-
const minStep = Math.max(min, minInViewPort);
367-
const maxStep = Math.min(max, maxInViewPort);
365+
const minStep = Math.max(min, viewPort.minStep);
366+
const maxStep = Math.min(max, viewPort.maxStep);
367+
368368
return {minStep, maxStep};
369369
})
370370
);
@@ -626,7 +626,12 @@ export class ScalarCardContainer implements CardRenderer, OnInit, OnDestroy {
626626
this.store.dispatch(stepSelectorToggled({affordance}));
627627
}
628628

629-
onLineChartZoom(extent: Extent) {
630-
this.lineChartZoomObservers.forEach((observer) => observer.next(extent));
629+
onLineChartZoom(lineChartViewBox: Extent) {
630+
const minMax = lineChartViewBox.x;
631+
const minMaxStepInViewPort: MinMaxStep = {
632+
minStep: Math.ceil(Math.min(...minMax)),
633+
maxStep: Math.floor(Math.max(...minMax)),
634+
};
635+
this.lineChartZoom$.next(minMaxStepInViewPort);
631636
}
632637
}

tensorboard/webapp/widgets/line_chart_v2/line_chart_component.ts

+1
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ export class LineChartComponent
494494
this.setIsViewBoxOverridden(false);
495495
this.isViewBoxChanged = true;
496496
this.updateLineChart();
497+
this.viewBoxChanged.emit(this.viewBox);
497498
}
498499

499500
private setIsViewBoxOverridden(newValue: boolean): void {

0 commit comments

Comments
 (0)