@alauda-fe/common
Version:
Alauda frontend team common codes.
42 lines (41 loc) • 1.45 kB
TypeScript
import { TemplatePortal } from '@angular/cdk/portal';
import { ReplaySubject } from 'rxjs';
import { NavItemConfig } from '../../page-scaffold/navigation/nav-menu/nav-menu.types';
import * as i0 from "@angular/core";
/**
* Provides a holder for UI templates to be used globally.
*/
export declare class TemplateHolder {
private readonly templatePortalSubject;
get templatePortal$(): import("rxjs").Observable<TemplatePortal<any>>;
setTemplatePortal(templatePortal: TemplatePortal): void;
}
export declare enum TemplateHolderType {
PageHeaderContent = "PageHeaderContent"
}
export interface ActiveNavItem {
label: string;
routerLink?: string | any[];
}
/**
* Acts as a general ui state store
*/
export declare class UiStateService {
private readonly templateHolders;
private _prevViewSwitchState;
private _currViewSwitchState;
activeItemInfo$: ReplaySubject<NavItemConfig[]>;
private registerTemplateHolder;
getTemplateHolder(id: TemplateHolderType): TemplateHolder;
/**
* NOTE: only set active item info in ConsoleComponent
*/
setActiveItemInfo(activeNavItemInfo: NavItemConfig[]): void;
/**
* NOTE: only use for view switch status recording
*/
setViewSwitchState(state: boolean): void;
shouldViewSwitchAnimate(): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<UiStateService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<UiStateService>;
}