UNPKG

mdui

Version:

实现 material you 设计规范的 Web Components 组件库

133 lines (132 loc) 4.79 kB
import '@mdui/jq/methods/css.js'; import '@mdui/jq/methods/height.js'; import '@mdui/jq/methods/innerHeight.js'; import '@mdui/jq/methods/innerWidth.js'; import '@mdui/jq/methods/width.js'; import '@mdui/jq/static/contains.js'; import { MduiElement } from '@mdui/shared/base/mdui-element.js'; import '@mdui/shared/icons/arrow-right.js'; import '@mdui/shared/icons/check.js'; import '../icon.js'; import type { Ripple } from '../ripple/index.js'; import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit'; declare const MenuItem_base: import("@lit/reactive-element/decorators/base.js").Constructor<import("@mdui/shared/mixins/anchor.js").AnchorMixinInterface> & import("@lit/reactive-element/decorators/base.js").Constructor<import("../ripple/ripple-mixin.js").RippleMixinInterface> & import("@lit/reactive-element/decorators/base.js").Constructor<import("@mdui/shared/mixins/focusable.js").FocusableMixinInterface> & typeof MduiElement; /** * @summary 菜单项组件。需配合 `<mdui-menu>` 组件使用 * * ```html * <mdui-menu> * ..<mdui-menu-item>Item 1</mdui-menu-item> * ..<mdui-menu-item>Item 2</mdui-menu-item> * </mdui-menu> * ``` * * @event focus - 获得焦点时触发 * @event blur - 失去焦点时触发 * @event submenu-open - 子菜单开始打开时,事件被触发。可以通过调用 `event.preventDefault()` 阻止子菜单打开 * @event submenu-opened - 子菜单打开动画完成时,事件被触发 * @event submenu-close - 子菜单开始关闭时,事件被触发。可以通过调用 `event.preventDefault()` 阻止子菜单关闭 * @event submenu-closed - 子菜单关闭动画完成时,事件被触发 * * @slot - 菜单项的文本 * @slot icon - 菜单项左侧图标 * @slot end-icon - 菜单项右侧图标 * @slot end-text - 菜单右侧的文本 * @slot selected-icon - 选中状态的图标 * @slot submenu - 子菜单 * @slot custom - 任意自定义内容 * * @csspart container - 菜单项的容器 * @csspart icon - 左侧的图标 * @csspart label - 文本内容 * @csspart end-icon - 右侧的图标 * @csspart end-text - 右侧的文本 * @csspart selected-icon - 选中状态的图标 * @csspart submenu - 子菜单元素 */ export declare class MenuItem extends MenuItem_base<MenuItemEventMap> { static styles: CSSResultGroup; /** * 菜单项的值 */ value?: string; /** * 是否禁用菜单项 */ disabled: boolean; /** * 左侧的 Material Icons 图标名。也可以通过 `slot="icon"` 设置 * * 如果左侧不需要显示图标,但需要预留一个图标的位置,可传入空字符串进行占位 */ icon?: string; /** * 右侧的 Material Icons 图标名。也可以通过 `slot="end-icon"` 设置 */ endIcon?: string; /** * 右侧的文本。也可以通过 `slot="end-text"` 设置 */ endText?: string; /** * 选中状态的 Material Icons 图标名。也可以通过 `slot="selected-icon"` 设置 */ selectedIcon?: string; /** * 是否打开子菜单 */ submenuOpen: boolean; protected selected: boolean; protected dense: boolean; protected selects?: 'single' | 'multiple'; protected submenuTrigger?: string; protected submenuOpenDelay?: number; protected submenuCloseDelay?: number; protected focusable: boolean; protected readonly key: number; private submenuOpenTimeout; private submenuCloseTimeout; private readonly rippleRef; private readonly containerRef; private readonly submenuRef; private readonly hasSlotController; private readonly definedController; constructor(); protected get focusDisabled(): boolean; protected get focusElement(): HTMLElement; protected get rippleDisabled(): boolean; protected get rippleElement(): Ripple; private get hasSubmenu(); private onOpenChange; connectedCallback(): void; disconnectedCallback(): void; protected firstUpdated(changedProperties: PropertyValues): void; protected render(): TemplateResult; /** * 点击子菜单外面的区域,关闭子菜单 */ private onOuterClick; private hasTrigger; private onFocus; private onBlur; private onClick; private onKeydown; private onMouseEnter; private onMouseLeave; private updateSubmenuPositioner; private renderInner; } export interface MenuItemEventMap { focus: FocusEvent; blur: FocusEvent; 'submenu-open': CustomEvent<void>; 'submenu-opened': CustomEvent<void>; 'submenu-close': CustomEvent<void>; 'submenu-closed': CustomEvent<void>; } declare global { interface HTMLElementTagNameMap { 'mdui-menu-item': MenuItem; } } export {};