@@ -36,6 +36,7 @@ export interface MetricDataStore {
36
36
focusSmoothed : boolean
37
37
stepRange : number [ ]
38
38
smoothValue : number
39
+ trimSmoothEnds : boolean
39
40
40
41
isUnsaved : boolean
41
42
}
@@ -100,6 +101,12 @@ namespace ChangeHandlers {
100
101
}
101
102
}
102
103
104
+ export class TrimSmoothToggleHandler extends ChangeHandlerBase {
105
+ protected handleChange ( ) {
106
+ this . wrapper . dataStore . trimSmoothEnds = ! this . wrapper . dataStore . trimSmoothEnds
107
+ }
108
+ }
109
+
103
110
export class ToggleChangeHandler extends ChangeHandlerBase {
104
111
private readonly idx : number
105
112
private readonly isBase : boolean
@@ -153,6 +160,7 @@ export class ViewWrapper {
153
160
private readonly focusButton : ToggleButton
154
161
private readonly smoothSlider : Slider
155
162
private readonly deleteButton : DeleteButton
163
+ private readonly trimSmoothToggleButton : ToggleButton
156
164
private sparkLines : SparkLines
157
165
158
166
public dataStore : MetricDataStore
@@ -226,6 +234,15 @@ export class ViewWrapper {
226
234
parent : this . constructor . name ,
227
235
onButtonClick : this . onDelete
228
236
} )
237
+ this . trimSmoothToggleButton = new ToggleButton ( {
238
+ onButtonClick : ( ) => {
239
+ let changeHandler = new ChangeHandlers . TrimSmoothToggleHandler ( this )
240
+ changeHandler . change ( )
241
+ } ,
242
+ text : 'Trim Smooth Ends' ,
243
+ isToggled : this . dataStore . trimSmoothEnds ,
244
+ parent : this . constructor . name
245
+ } )
229
246
}
230
247
231
248
public clear ( ) {
@@ -316,7 +333,8 @@ export class ViewWrapper {
316
333
}
317
334
318
335
private smoothSeries ( ) {
319
- smoothAndTrimAllCharts ( this . dataStore . series , this . dataStore . baseSeries , this . dataStore . smoothValue , this . dataStore . stepRange )
336
+ smoothAndTrimAllCharts ( this . dataStore . series , this . dataStore . baseSeries ,
337
+ this . dataStore . smoothValue , this . dataStore . stepRange , this . dataStore . trimSmoothEnds )
320
338
}
321
339
322
340
private renderTopButtons ( ) {
@@ -357,6 +375,7 @@ export class ViewWrapper {
357
375
$ ( 'div' , '.button-row' , $ => {
358
376
$ ( 'span.key' , 'Smoothing:' )
359
377
this . smoothSlider . render ( $ )
378
+ this . trimSmoothToggleButton . render ( $ )
360
379
} )
361
380
} )
362
381
}
0 commit comments