@cauca-911/menu
Version:
Run `npm install @cauca-911/menu --save` to add this library to your project
110 lines (99 loc) • 4.46 kB
TypeScript
import * as i0 from '@angular/core';
import { Signal, WritableSignal, Type, Provider, EnvironmentProviders, InjectionToken } from '@angular/core';
declare class LoggedInLayoutComponent {
static ɵfac: i0.ɵɵFactoryDeclaration<LoggedInLayoutComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LoggedInLayoutComponent, "cauca-logged-in-layout", never, {}, {}, never, never, true, never>;
}
declare class HeaderBarComponent {
static ɵfac: i0.ɵɵFactoryDeclaration<HeaderBarComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<HeaderBarComponent, "cauca-header-bar", never, {}, {}, never, never, true, never>;
}
declare const MENU_STATE_KEY = "menuState";
interface SideMenuItemOption {
label: string;
icon: string;
route: string;
children?: SideMenuItemOption[];
isParent?: boolean;
}
declare class MenuStateService {
version: Signal<string>;
isOpen: WritableSignal<boolean>;
isPinned: WritableSignal<boolean>;
isExpanded: Signal<boolean>;
isShowingMenuItems: WritableSignal<boolean>;
menuItems: Signal<SideMenuItemOption[]>;
currentUrl: WritableSignal<string>;
displayMenu: Signal<boolean>;
showHeaderMenuButton: Signal<boolean>;
showPinButton: Signal<boolean>;
caucaLogo: string;
private readonly screenSize;
setCurrentUrl(url: string): void;
getVersion(applicationVersion: string): string;
togglePin(): void;
toggleMenu(): void;
onMouseOver(): void;
onMouseLeave(): void;
hideMenuItems(): void;
showMenuItems(): void;
private getInitialPinState;
static ɵfac: i0.ɵɵFactoryDeclaration<MenuStateService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<MenuStateService>;
}
declare class SideMenuComponent {
readonly menu: MenuStateService;
constructor();
onMouseHover(): void;
onMouseOut(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<SideMenuComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SideMenuComponent, "cauca-side-menu", never, {}, {}, never, never, true, never>;
}
declare class MenuSeparatorComponent {
static ɵfac: i0.ɵɵFactoryDeclaration<MenuSeparatorComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<MenuSeparatorComponent, "cauca-menu-separator", never, {}, {}, never, never, true, never>;
}
declare class LoggedOutUserHeaderComponent {
static ɵfac: i0.ɵɵFactoryDeclaration<LoggedOutUserHeaderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LoggedOutUserHeaderComponent, "cauca-logged-out-user-header", never, {}, {}, never, never, true, never>;
}
declare class ScreenSizeService {
isSmallScreen: i0.Signal<boolean>;
isMobile: i0.WritableSignal<boolean>;
isCompact: i0.Signal<boolean>;
constructor();
private is;
static ɵfac: i0.ɵɵFactoryDeclaration<ScreenSizeService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ScreenSizeService>;
}
declare class UserAgentReaderService {
getUserAgent(): string;
static ɵfac: i0.ɵɵFactoryDeclaration<UserAgentReaderService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<UserAgentReaderService>;
}
declare function provideCaucaMenu(option: CaucaMenuOptions): (Provider | EnvironmentProviders);
interface CaucaMenuOptions {
applicationVersion: string;
logoPath?: string;
menuItemsProvider: Type<MenuItemsProvider>;
logoutHandler: Type<LogoutHandler>;
loginState: Type<LoginState>;
}
declare const APP_VERSION_TOKEN: InjectionToken<string>;
declare const LOGO_PATH_TOKEN: InjectionToken<string>;
declare const MENU_ITEMS_PROVIDER_TOKEN: InjectionToken<MenuItemsProvider>;
declare const LOGOUT_HANDLER_TOKEN: InjectionToken<LogoutHandler>;
declare const LOGIN_STATE_TOKEN: InjectionToken<LoginState>;
interface MenuItemsProvider {
items: Signal<SideMenuItemOption[]>;
}
interface LogoutHandler {
logoutWithMessage(): Promise<void>;
logout(): Promise<void>;
}
interface LoginState {
userFullName: Signal<string>;
username: Signal<string>;
}
export { APP_VERSION_TOKEN, HeaderBarComponent, LOGIN_STATE_TOKEN, LOGOUT_HANDLER_TOKEN, LOGO_PATH_TOKEN, LoggedInLayoutComponent, LoggedOutUserHeaderComponent, MENU_ITEMS_PROVIDER_TOKEN, MENU_STATE_KEY, MenuSeparatorComponent, MenuStateService, ScreenSizeService, SideMenuComponent, UserAgentReaderService, provideCaucaMenu };
export type { CaucaMenuOptions, LoginState, LogoutHandler, MenuItemsProvider, SideMenuItemOption };