import { Directive } from '@angular/core' ; import { SmoothScrollToOptions } from 'ngx-scrollbar/smooth-scroll' ; import { Observable } from 'rxjs' ; import { ScrollViewport } from './scroll-viewport' ; import { ScrollbarManager } from './utils/scrollbar-manager' ; import { ScrollbarPointerEventsMethod } from './ng-scrollbar.model' ; @ Directive ( ) export abstract class NgScrollbarBase { abstract manager : ScrollbarManager ; abstract viewport : ScrollViewport ; abstract trackClass : string ; abstract thumbClass : string ; abstract minThumbSize : number ; abstract viewportPropagateMouseMove : boolean ; abstract trackClickScrollDuration : number ; abstract pointerEventsMethod : ScrollbarPointerEventsMethod ; abstract pointerEventsDisabled : boolean ; abstract updated : Observable < void > ; abstract scrolled : Observable < Event > ; abstract setHovered ( hovered ) ; abstract setDragging ( hovered ) ; abstract setClicked ( scrollbarClicked ) ; abstract scrollTo ( options ) ; } export interface ScrollbarDragging { verticalDragging ? : boolean ; horizontalDragging ? : boolean ; } export interface ScrollbarHovered { verticalHovered ? : boolean ; horizontalHovered ? : boolean ; }