@alyle/ui
Version:
Minimal Design, a set of components for Angular
188 lines (187 loc) • 8.06 kB
TypeScript
import { AfterViewInit, ElementRef, OnDestroy, OnInit, Renderer2, TemplateRef, EventEmitter, OnChanges, QueryList } from '@angular/core';
import { LyOverlay, LyTheme2, OverlayFactory, Placement, ThemeVariables, XPosition, YPosition, StyleCollection, LyClasses, StyleTemplate, ThemeRef, StyleRenderer } from '@alyle/ui';
import { AnimationEvent } from '@angular/animations';
import { BooleanInput } from '@angular/cdk/coercion';
import { ViewportRuler } from '@angular/cdk/scrolling';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export interface LyMenuTheme {
/** Styles for Menu Component */
root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)> | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);
}
export interface LyMenuVariables {
menu?: LyMenuTheme;
}
export declare const STYLES: (theme: ThemeVariables & LyMenuVariables, ref: ThemeRef) => {
$name: string;
$priority: number;
root: () => StyleTemplate;
container: (_className: string) => string;
item: (_className: string) => string;
itemSubMenuTrigger: () => (_className: string) => string;
};
/** Menu container */
export declare class LyMenu implements OnChanges, OnInit, AfterViewInit, OnDestroy {
private _theme;
private _el;
private _renderer;
private _viewportRuler;
readonly sRenderer: StyleRenderer;
/** Menu Trigger */
set ref(value: LyMenuTriggerFor);
get ref(): LyMenuTriggerFor;
/** Whether the menu has a backdrop. */
get hasBackdrop(): boolean;
set hasBackdrop(value: boolean);
constructor(_theme: LyTheme2, _el: ElementRef, _renderer: Renderer2, _viewportRuler: ViewportRuler, sRenderer: StyleRenderer);
/** @docs-private */
static readonly и = "LyMenu";
static ngAcceptInputType_hasBackdrop: BooleanInput;
/**
* styles
* @docs-private
*/
readonly classes: LyClasses<(theme: ThemeVariables & LyMenuVariables, ref: ThemeRef) => {
$name: string;
$priority: number;
root: () => StyleTemplate;
container: (_className: string) => string;
item: (_className: string) => string;
itemSubMenuTrigger: () => (_className: string) => string;
}>;
/** Whether the menu is animating. */
_isAnimating: boolean;
/** Whether the menu is destroying. */
_isDestroying: boolean;
/** Emits whenever an animation on the menu completes. */
_animationDone: Subject<AnimationEvent>;
private _menuRef;
/**
* Destroy menu
* @docs-private
*/
destroy: () => void;
_container?: ElementRef<HTMLDivElement>;
readonly menuItems?: QueryList<LyMenuItem>;
private _ref;
/** The point in the anchor where the menu `xAxis` will be attached. */
xAnchor: XPosition;
/** The point in the anchor where the menu `yAxis` will be attached. */
yAnchor: YPosition;
/** The x-axis position of the menu. */
xAxis: XPosition;
/** The y-axis position of the menu. */
yAxis: YPosition;
/**
* Position where the menu will be placed.
* @deprecated Use `xAxis` and` yAxis` together instead.
*/
placement: Placement;
/**
* The x-axis position of the menu.
* @deprecated Use `xAxis` instead.
*/
xPosition: XPosition;
/**
* The y-axis position of the menu.
* @deprecated Use `yAxis` instead.
*/
yPosition: YPosition;
private _hasBackdrop;
private _mouseenterListen?;
private _mouseleaveListen?;
transformMenuLeave: unknown;
ngOnChanges(): void;
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
private _checkBackdropAndOpenOnHover;
private _getHostMenuTrigger;
private _addOpenOnHover;
/** Remove listeners */
private _removeOpenOnHoverListeners;
/** Update Menu Position */
private _updatePlacement;
_onAnimationStart(event: AnimationEvent): void;
_onAnimationDone(event: AnimationEvent): void;
static ɵfac: i0.ɵɵFactoryDeclaration<LyMenu, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LyMenu, "ly-menu", ["lyMenu"], { "ref": { "alias": "ref"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "xAnchor": { "alias": "xAnchor"; "required": false; }; "yAnchor": { "alias": "yAnchor"; "required": false; }; "xAxis": { "alias": "xAxis"; "required": false; }; "yAxis": { "alias": "yAxis"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "xPosition": { "alias": "xPosition"; "required": false; }; "yPosition": { "alias": "yPosition"; "required": false; }; }, {}, ["menuItems"], ["*"], false, never>;
}
export declare class LyMenuItem {
private _menu;
constructor(_menu: LyMenu, el: ElementRef, renderer: Renderer2);
private _itemSubMenuTrigger?;
_handleClick(): void;
_handleMouseEnter(): void;
/** Except for this, close all menus */
private _closeOtherMenus;
_setItemSubMenuTrigger(menuTrigger: LyMenuTriggerFor): void;
_getItemSubMenuTrigger(): LyMenuTriggerFor;
static ɵfac: i0.ɵɵFactoryDeclaration<LyMenuItem, [{ optional: true; }, null, null]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<LyMenuItem, "[ly-menu-item]", never, {}, {}, never, never, false, never>;
}
export declare class LyMenuTriggerFor implements OnDestroy {
private elementRef;
private overlay;
private _menuItem;
readonly sRenderer: StyleRenderer;
_menu: LyMenu;
readonly classes: LyClasses<(theme: ThemeVariables & LyMenuVariables, ref: ThemeRef) => {
$name: string;
$priority: number;
root: () => StyleTemplate;
container: (_className: string) => string;
item: (_className: string) => string;
itemSubMenuTrigger: () => (_className: string) => string;
}>;
/** Current menuRef */
_menuRef?: OverlayFactory | null;
private _menuOpen;
private _destroying;
_menuDetached: Subject<void>;
_menuOpenOnHoverRef?: LyMenuOpenOnHover;
/** Whether the menu is open. */
get menuOpen(): boolean;
lyMenuTriggerFor: TemplateRef<any>;
/** Data to be passed to the menu. */
menuData: any;
readonly menuOpened: EventEmitter<void>;
readonly menuClosed: EventEmitter<void>;
constructor(elementRef: ElementRef, overlay: LyOverlay, _menuItem: LyMenuItem, sRenderer: StyleRenderer, _menu: LyMenu);
ngOnDestroy(): void;
_handleClick(): void;
/** Opens the menu */
openMenu(): void;
/** Closes the menu */
closeMenu(): void;
/** Toggle menu */
toggleMenu(): void;
/** @docs-private */
detach(): void;
/** @docs-private */
destroy(menuRef: OverlayFactory<any>): void;
_getHostElement(): any;
_setMenuOpenToTrue(): void;
/**
* @docs-private
*/
_isItemSubMenuTrigger(): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<LyMenuTriggerFor, [null, null, { optional: true; }, null, { optional: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<LyMenuTriggerFor, "[lyMenuTriggerFor]", ["lyMenuTriggerFor"], { "lyMenuTriggerFor": { "alias": "lyMenuTriggerFor"; "required": false; }; "menuData": { "alias": "lyMenuTriggerData"; "required": false; }; }, { "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }, never, never, false, never>;
}
export declare class LyMenuOpenOnHover implements OnDestroy {
private _trigger;
private _events;
/** Whether menu should open on hover. */
get openOnHover(): boolean;
set openOnHover(value: boolean);
private _openOnHover;
constructor(_trigger: LyMenuTriggerFor);
ngOnDestroy(): void;
/** Handle mouseenter */
_handleMouseEnterOrLeave(enter: true): void;
/** Handle mouseleave */
_handleMouseEnterOrLeave(leave: false): void;
static ɵfac: i0.ɵɵFactoryDeclaration<LyMenuOpenOnHover, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<LyMenuOpenOnHover, "[lyMenuTriggerFor][openOnHover]", never, { "openOnHover": { "alias": "openOnHover"; "required": false; }; }, {}, never, never, false, never>;
}