| 218 | ); |
| 219 | |
| 220 | function createViewHelper( |
| 221 | view: View, |
| 222 | label: string, |
| 223 | shouldScrollVertically: boolean = false, |
| 224 | shouldResizeVertically: boolean = false, |
| 225 | ): View { |
| 226 | let verticalScrollView = null; |
| 227 | if (shouldScrollVertically) { |
| 228 | verticalScrollView = new VerticalScrollView( |
| 229 | surface, |
| 230 | defaultFrame, |
| 231 | view, |
| 232 | viewState, |
| 233 | label, |
| 234 | ); |
| 235 | } |
| 236 | |
| 237 | const horizontalPanAndZoomView = new HorizontalPanAndZoomView( |
| 238 | surface, |
| 239 | defaultFrame, |
| 240 | verticalScrollView !== null ? verticalScrollView : view, |
| 241 | data.duration, |
| 242 | viewState, |
| 243 | ); |
| 244 | |
| 245 | let resizableView = null; |
| 246 | if (shouldResizeVertically) { |
| 247 | resizableView = new ResizableView( |
| 248 | surface, |
| 249 | defaultFrame, |
| 250 | horizontalPanAndZoomView, |
| 251 | viewState, |
| 252 | canvasRef, |
| 253 | label, |
| 254 | ); |
| 255 | } |
| 256 | |
| 257 | return resizableView || horizontalPanAndZoomView; |
| 258 | } |
| 259 | |
| 260 | const axisMarkersView = new TimeAxisMarkersView( |
| 261 | surface, |