mdui
Version:
实现 material you 设计规范的 Web Components 组件库
95 lines (94 loc) • 3.36 kB
TypeScript
import '@mdui/jq/methods/css.js';
import '@mdui/jq/methods/innerWidth.js';
import { LayoutItemBase } from '../layout/layout-item-base.js';
import type { LayoutPlacement } from '../layout/helper.js';
import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
/**
* 在手机端,`modal` 始终为 `true`;大于手机端时,`modal` 属性才开始生效
*
* @summary 侧边抽屉栏组件
*
* ```html
* <mdui-navigation-drawer>content</mdui-navigation-drawer>
* ```
*
* @event open - 抽屉栏打开之前触发。可以通过调用 `event.preventDefault()` 阻止抽屉栏打开
* @event opened - 抽屉栏打开动画完成之后触发
* @event close - 抽屉栏关闭之前触发。可以通过调用 `event.preventDefault()` 阻止抽屉栏关闭
* @event closed - 抽屉栏关闭动画完成之后触发
* @event overlay-click - 点击遮罩层时触发
*
* @slot - 抽屉栏中的内容
*
* @csspart overlay - 遮罩层
* @csspart panel - 抽屉栏容器
*
* @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
* @cssprop --z-index - 组件的 CSS `z-index` 值
*/
export declare class NavigationDrawer extends LayoutItemBase<NavigationDrawerEventMap> {
static styles: CSSResultGroup;
/**
* 是否打开抽屉栏
*/
open: boolean;
/**
* 抽屉栏打开时,是否显示遮罩层
*
* 在窄屏设备上(屏幕宽度小于 [`--mdui-breakpoint-md`](/docs/2/styles/design-tokens#breakpoint)),会始终显示遮罩层,无视该参数
*/
modal: boolean;
/**
* 在有遮罩层的情况下,按下 ESC 键是否关闭抽屉栏
*/
closeOnEsc: boolean;
/**
* 点击遮罩层时,是否关闭抽屉栏
*/
closeOnOverlayClick: boolean;
/**
* 抽屉栏的位置。可选值包括:
*
* * `left`:左侧
* * `right`:右侧
*/
placement: /*左侧*/ 'left' | /*右侧*/ 'right';
/**
* 默认情况下,抽屉栏相对于 `body` 元素显示。当该参数设置为 `true` 时,抽屉栏将相对于其父元素显示。
*
* **Note**:设置该属性时,必须在父元素上手动设置样式 `position: relative; overflow: hidden;`。
*/
contained: boolean;
private mobile;
private originalTrigger;
private observeResize?;
private modalHelper;
private readonly overlayRef;
private readonly panelRef;
private readonly definedController;
protected get layoutPlacement(): LayoutPlacement;
private get lockTarget();
private get isModal();
private onContainedChange;
private onPlacementChange;
private onMobileChange;
private onOpenChange;
connectedCallback(): void;
disconnectedCallback(): void;
protected firstUpdated(_changedProperties: PropertyValues): void;
protected render(): TemplateResult;
private onOverlayClick;
private getLockTargetAnimate;
}
export interface NavigationDrawerEventMap {
open: CustomEvent<void>;
opened: CustomEvent<void>;
close: CustomEvent<void>;
closed: CustomEvent<void>;
'overlay-click': CustomEvent<void>;
}
declare global {
interface HTMLElementTagNameMap {
'mdui-navigation-drawer': NavigationDrawer;
}
}