import React from 'react'; import { SmartBaseExternalClassName, SmartComponent, SmartEventHandler } from '../base'; import { SmartTransitionEvents } from '../transition'; export interface SmartBottomSheetProps { /** * 是否显示动作面板 */ show?: boolean; /** * 标题 */ title?: string; /** * 标题中关闭按钮的颜色 * @default --app-B4-N3 || rgba(0, 0, 0, 0.5) */ iconColor?: string; /** * 标题中关闭按钮的大小 * @default 24 */ iconSize?: string; /** * 是否显示圆角 * @default true */ round?: boolean; /** * `z-index` 层级 * * @default 100 */ zIndex?: number; /** * 是否显示遮罩层 */ overlay?: boolean; /** * 点击遮罩是否关闭菜单 */ closeOnClickOverlay?: boolean; /** * 开启弹框期间是否禁用本地手势 * * @default false * @version v2.5.0 */ nativeDisabled?: boolean; /** * 内容区域高度,当设置此值时,组件的 max-height 将会失效 * @version 2.5.0 */ contentHeight?: number | string; /** * 组件整体最大高度 用于自动撑开高度情况 * @version 2.6.0 * @default 50% */ maxHeight?: number | string; /** * @description 组件整体最大高度 用于自动撑开高度情况 * @version 2.6.1 * @default true */ showClose?: boolean; /** * 是否支持拖拽,可用于实现拖拽调整面板高度 * @version 2.7.2 * @default false */ draggable?: boolean; /** * 拖拽时允许的最小高度 * @version 2.7.2 * @default windowHeight * 0.8 */ minDragHeight?: number; /** * 拖拽时允许的最大高度 * @version 2.7.2 * @default windowHeight * 0.5 */ maxDragHeight?: number; /** * 拖拽时中间态高度 * @version 2.7.2 * @default windowHeight * 0.1 */ midDragHeight?: number; /** * 拖拽关闭时的临界高度,低于该高度将自动关闭 * @version 2.7.2 * @default windowHeight * 0.4 */ closeDragHeight?: number; /** * 是否锁定背景滚动 * @version 2.9.0 * @default true */ lockScroll?: boolean; /** * 是否锁定最大拖拽高度,设置为 `true` 时,拖拽过程中面板高度不会超过 `max-drag-height` * @version 2.9.0 * @default false */ lockMaxDrag?: boolean; /** * 是否使用 cover-view 包裹弹层,用于覆盖原生组件(如 map、video)时使用 * * @default false * @version 2.11.1 */ fullCoverView?: boolean; /** * 关闭图标读屏文案;不传则仅有 button 角色,由业务自行多语言传入 * * @version 2.13.0 */ closeIconAriaLabel?: string; } export interface SmartBottomSheetEvents extends SmartTransitionEvents { /** * 关闭时触发 */ onClose?: SmartEventHandler; /** * 遮罩进入前触发 */ onBeforeEnter?: SmartEventHandler; /** * 遮罩进入中触发 */ onEnter?: SmartEventHandler; /** * 遮罩进入后触发 */ onAfterEnter?: SmartEventHandler; /** * 遮罩离开前触发 */ onBeforeLeave?: SmartEventHandler; /** * 遮罩离开中触发 */ onLeave?: SmartEventHandler; /** * 遮罩离开后触发 */ onAfterLeave?: SmartEventHandler; /** * 点击遮罩层时触发 */ onClickOverlay?: SmartEventHandler; /** * 拖拽结束时触发,返回当前面板位置 * @version 2.7.2 */ onDragPosition?: SmartEventHandler<'max' | 'mid' | 'min'>; } interface SmartBottomSheetSlot { /** * 内容 */ children?: React.ReactNode; slot?: { /** * @description 自定义 title 显示内容,需要不设置 title 属性 * @version 2.6.1 */ title: React.ReactNode; }; } /** * Since v2.0.0 */ export type SmartBottomSheet = SmartComponent; export {};