mdui
Version:
实现 material you 设计规范的 Web Components 组件库
87 lines (86 loc) • 3.56 kB
TypeScript
import { PropertyValues } from 'lit';
import { LayoutItemBase } from '../layout/layout-item-base.js';
import type { LayoutPlacement } from '../layout/helper.js';
import type { ScrollPaddingPosition } from '@mdui/shared/mixins/scrollBehavior.js';
import type { CSSResultGroup, TemplateResult } from 'lit';
declare const NavigationBar_base: import("@lit/reactive-element/decorators/base.js").Constructor<import("@mdui/shared/mixins/scrollBehavior.js").ScrollBehaviorMixinInterface> & typeof LayoutItemBase;
/**
* @summary 底部导航栏组件。需配合 `<mdui-navigation-bar-item>` 组件使用
*
* ```html
* <mdui-navigation-bar>
* ..<mdui-navigation-bar-item icon="place">Item 1</mdui-navigation-bar-item>
* ..<mdui-navigation-bar-item icon="commute">Item 2</mdui-navigation-bar-item>
* ..<mdui-navigation-bar-item icon="people">Item 3</mdui-navigation-bar-item>
* </mdui-navigation-bar>
* ```
*
* @event change - 值变化时触发
* @event show - 开始显示时,事件被触发。可以通过调用 `event.preventDefault()` 阻止显示
* @event shown - 显示动画完成时,事件被触发
* @event hide - 开始隐藏时,事件被触发。可以通过调用 `event.preventDefault()` 阻止隐藏
* @event hidden - 隐藏动画完成时,事件被触发
*
* @slot - `<mdui-navigation-bar-item>` 组件
*
* @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
* @cssprop --z-index - 组件的 CSS `z-index` 值
*/
export declare class NavigationBar extends NavigationBar_base<NavigationBarEventMap> {
static styles: CSSResultGroup;
/**
* 是否隐藏
*/
hide: boolean;
/**
* 文本的可视状态。可选值包括:
*
* * `auto`:当选项小于等于3个时,始终显示文本;当选项大于3个时,仅显示选中状态的文本
* * `selected`:仅在选中状态显示文本
* * `labeled`:始终显示文本
* * `unlabeled`:始终不显示文本
*/
labelVisibility: /*当选项小于等于3个时,始终显示文本;当选项大于3个时,仅显示选中状态的文本*/ 'auto' | /*仅在选中状态显示文本*/ 'selected' | /*始终显示文本*/ 'labeled' | /*始终不显示文本*/ 'unlabeled';
/**
* 当前选中的 `<mdui-navigation-bar-item>` 的值
*/
value?: string;
/**
* 滚动行为。可选值包括:
*
* * `hide`:滚动时隐藏
*/
scrollBehavior?: 'hide';
private activeKey;
private readonly items;
private isInitial;
private definedController;
protected get scrollPaddingPosition(): ScrollPaddingPosition;
protected get layoutPlacement(): LayoutPlacement;
private onActiveKeyChange;
private onValueChange;
private onLabelVisibilityChange;
protected firstUpdated(_changedProperties: PropertyValues): void;
protected render(): TemplateResult;
/**
* 滚动行为
* 当前仅支持 hide 这一个行为,所以不做行为类型判断
*/
protected runScrollThreshold(isScrollingUp: boolean): void;
private onClick;
private updateItems;
private onSlotChange;
}
export interface NavigationBarEventMap {
change: CustomEvent<void>;
show: CustomEvent<void>;
shown: CustomEvent<void>;
hide: CustomEvent<void>;
hidden: CustomEvent<void>;
}
declare global {
interface HTMLElementTagNameMap {
'mdui-navigation-bar': NavigationBar;
}
}
export {};