/** * @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 { ElementRef, Renderer } from '@angular/core'; import { AfterViewInit, AfterContentInit, EventEmitter } from '@angular/core'; import { Menu, ClickParam } from '../menu/menu'; import { DropdownButton } from './dropdown.button'; export declare type DropdownPlacement = 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'; export declare type DropdownTriggerType = 'click' | 'hover'; /** * Dropdown - 下拉菜单 */ export declare class Dropdown implements AfterContentInit, AfterViewInit { private renderer; private elementRef; private dropdownButton; /** 样式前缀 */ dropdownPrefixCls: string; /** 触发下拉的行为,可选取值:Array<'click'|'hover'> */ triggerAction: DropdownTriggerType | DropdownTriggerType[]; /** 触发标签的selector,默认为空,表示当前标签 */ triggerAt: string; /** * 菜单弹出位置:`bottomLeft` `bottomCenter` `bottomRight` `topLeft` `topCenter` `topRight` */ dropdownPlacement: DropdownPlacement; /** 位置信息 */ builtinPlacements: Object; /** * 下拉菜单的最小宽度与触发的组件宽度一致 */ dropdownMatchTriggerWidth: boolean; /** 缩略写法:action placement */ dropdown: string; /** * 一个钩子函数: 默认点击菜单后将关闭菜单,如果此函数返回false,将停止关闭菜单。 */ menuClickHanlder: (event: any) => boolean; /** 是否禁用状态,默认为 false */ disabled: boolean; /** 鼠标移入后显示菜单的延迟时间(秒)*/ mouseEnterDelay: number; /** 鼠标移出后隐藏菜单的延迟时间(秒)*/ mouseLeaveDelay: number; /** 菜单 */ menu: Menu; /** 菜单显示事件 */ menuVisibleChange: EventEmitter; /** 菜单显示或隐藏相关 */ private popupVisible; private popupContainer; private delayTimer; private alignClass; private clickOutsideHandler; private touchOutsideHandler; constructor(renderer: Renderer, elementRef: ElementRef, dropdownButton: DropdownButton); ngAfterContentInit(): void; onMenuClick(event: ClickParam): void; ngAfterViewInit(): void; protected getPopupContainer(): HTMLElement; /** * The underlying host native element */ getHostElement(): HTMLElement; getTiggerElement(): HTMLElement; getMenuElement(): HTMLElement; onTriggerClick(event: MouseEvent): void; onTriggerMouseEnter(event: MouseEvent): void; onTriggerMouseLeave(event: MouseEvent): void; isClickTiggerAction(): boolean; isPointerTiggerAction(): boolean; getAlign(): {}; forceAlign(): void; onAlign(align: any): void; /** * 显示或者隐藏菜单 * * @param visible true-显示,false-隐藏 * @param delayS 延迟时间(单位:秒) */ delaySetPopupVisible(visible: boolean, delayS: number): void; isPopupVisible(): boolean; setPopupVisible(popupVisible: boolean): void; afterPopupVisibleChange(popupVisible: boolean): void; onDocumentClick(event: MouseEvent): void; clearOutsideHandler(): void; clearDelayTimer(): void; }