UNPKG

@bimeister/pupakit.kit

Version:

PupaKit is an open source collection of Angular components based on an atomic approach to building interfaces, which guarantees better performance and greater development flexibility.

31 lines (30 loc) 1.59 kB
import { Nullable } from '@bimeister/utilities'; import { BehaviorSubject, Observable } from 'rxjs'; import { ScrollableComponent } from '../../../components/scrollable/components/scrollable/scrollable.component'; export declare abstract class TabsServiceBase<T> { protected readonly tabNameToHtmlElementMap: Map<string, HTMLElement>; private readonly activeTabNameState$; readonly activeTabName$: Observable<Nullable<T>>; protected readonly hostElement$: BehaviorSubject<Nullable<HTMLElement>>; protected readonly scrollable$: BehaviorSubject<Nullable<ScrollableComponent>>; protected readonly tabsHtmlElement$: BehaviorSubject<Nullable<HTMLElement>>; private readonly activeHtmlElement$; private readonly tabsContainerResize$; private readonly refresh$; readonly railHighlighterOffsetLeftPx$: Observable<number>; readonly railHighlighterWidthPx$: Observable<number>; private tabNames; private readonly isContentDraggingState$; readonly isContentDragging$: Observable<boolean>; registerTab(tabName: T): void; unregisterTab(tabName: T): void; setInitialTab(): void; setActiveTab(tabName: T): void; registerTabsHtmlElement(htmlElement: HTMLElement): void; registerHostHtmlElement(htmlElement: HTMLElement): void; registerScrollable(scrollable: ScrollableComponent): void; registerTabHtmlElement(tabName: T, htmlElement: HTMLElement): void; setContentDraggingStateState(isContentDragging: boolean): void; private correctScrollLeftByTargetTab; private resetActiveTabIfUnregisteredTabIsActive; }