@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
TypeScript
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;
}