/** * @license * Copyright 厦门乾元盛世科技有限公司 All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file. */ import { EventEmitter, ElementRef, Renderer } from '@angular/core'; import { OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core'; import { MenuItem } from './menu.item'; import { SubMenu } from './submenu'; export interface SelectParam { key: string; keyPath: string[]; item: MenuItem | SubMenu; domEvent: Event; selectedKeys?: string[]; } export interface ClickParam { key: string; keyPath: string[]; item: MenuItem | SubMenu; domEvent: Event; } export interface OpenParam { key: string; item: MenuItem | SubMenu; trigger?: string; open?: boolean; originalEvent?: Event; } export interface HoverParam { key: string; item: MenuItem | SubMenu; hover?: boolean; domEvent: Event; trigger: string; openChanges?: OpenParam[]; } export interface OpenChangeParam { openKeys: string[]; menu: Menu; } /** * Menu导航菜单 * 参考: https://github.com/react-component/menu */ export declare class Menu implements OnInit, OnDestroy, OnChanges { private renderer; private elementRef; /** 样式前缀 */ prefixCls: string; /** * 菜单类型,现在支持垂直、水平、和内嵌模式三种: `vertical` `horizontal` `inline`。默认为 `vertical`。 */ mode?: 'vertical' | 'horizontal' | 'inline'; /** 主题颜色,可选项为`light` `dark`,默认为`light`。 */ theme: string; /** 展开/关闭菜单时的动画效果 (目前未实现) */ openAnimation?: string | Object; openTransitionName?: string | Object; /** * 当前选中的菜单项 key 数组 */ selectedKeys?: Array; /** * 当前展开的 SubMenu 菜单项 key 数组 */ openKeys?: Array; /** 用户CSS样式 */ class: string; /** * 当前被激活的菜单 */ activeKey: string; defaultActiveFirst: boolean; openSubMenuOnMouseEnter: boolean; closeSubMenuOnMouseLeave: boolean; visible: boolean; selectable: boolean; focusable: boolean; /** * 是否允许多选,默认为false */ multiple?: boolean; /** * 模式的菜单缩进宽度,默认为24px */ inlineIndent: number; /** * SubMenu 展开/关闭的事件,参数为:({openKeys: string[], menu: Menu}) */ openChange: EventEmitter; /** * menuItem 被选中时的事件,参数为:({ item, key, selectedKeys }) */ select: EventEmitter; /** * menuItem 取消选中时的事件,仅在 multiple 生效,参数为:({ item, key, selectedKeys }) */ deselect: EventEmitter; /** * menuItem 被点击时的事件,参数为:({ item, key, keyPath, domEvent }) */ menuClick: EventEmitter; /** * menuItem 事件,参数为:({ item, key }) */ menuEnter: EventEmitter; /** * menuItem 事件,参数为:({ item, key }) */ menuLeave: EventEmitter; role: string; activedescendant: string; level: number; protected instanceArray: Array; private switchModeFromInline; constructor(renderer: Renderer, elementRef: ElementRef); /** * 属性:tabIndex */ readonly tabIndex: number; /** * 菜单样式 */ readonly classes: string; onKeyDown(event: KeyboardEvent): void; /** * The underlying host native element */ getHostElement(): HTMLElement; ngOnInit(): void; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; /** * 当要销毁子菜单/子菜单项时 * * @param key 菜单项的Key */ onDestroy(key: string): void; onClick(info: ClickParam): void; onMouseEnter(info: HoverParam): void; onMouseLeave(info: HoverParam): void; onItemHover(e: HoverParam): void; onOpenChange(e_: OpenParam | OpenParam[]): void; onSelect(selectInfo: SelectParam): void; onDeselect(selectInfo: SelectParam): void; getOpenAnimationName(): string | Object; isInlineMode(): boolean; lastOpenSubMenu(): MenuItem; step(direction: number): MenuItem; getOpenChangesOnItemHover(e: HoverParam): OpenParam | OpenParam[]; registerItem(item: MenuItem): void; getGUID(prefix: string): string; }