UNPKG

@ray-js/smart-ui

Version:

轻量、可靠的智能小程序 UI 组件库

160 lines (159 loc) 4.14 kB
/// <reference types="react" /> /// <reference types="miniprogram-api-typings" /> /// <reference types="miniprogram-api-typings" /> import { SmartDialogProps } from './index'; type SmartDialogCommonProps = Pick<SmartDialogProps, 'title' | 'width' | 'message' | 'theme' | 'overlay' | 'transition' | 'icon'>; type AnyObject = {}; export type SmartDialogOptions = { /** * 内容对齐方式 * * @default 'center' */ messageAlign?: SmartDialogProps['messageAlign']; /** * `z-index`层级 * * @default 100 */ zIndex?: SmartDialogProps['zIndex']; /** * 自定义类名,`dialog` 在自定义组件内时无效 * * @default '' */ className?: SmartDialogProps['className']; /** * 自定义样式 * * @default '' */ customStyle?: SmartDialogProps['customStyle']; /** * 自定义选择器 * * @default 'smart-dialog' */ selector?: string; /** * 是否展示确认按钮 * * @default true */ showConfirmButton?: SmartDialogProps['showConfirmButton']; /** * 是否展示取消按钮 * * @default false */ showCancelButton?: SmartDialogProps['showCancelButton']; /** * 确认按钮的文案 * * @default '确认' */ confirmButtonText?: SmartDialogProps['confirmButtonText']; /** * 取消按钮的文案 * * @default '取消' */ cancelButtonText?: SmartDialogProps['cancelButtonText']; /** * 确认按钮的字体颜色 */ confirmButtonColor?: React.CSSProperties['color']; /** * 取消按钮的字体颜色 */ cancelButtonColor?: React.CSSProperties['color']; /** * 自定义遮罩层样式 */ overlayStyle?: SmartDialogProps['overlayStyle']; /** * 点击遮罩层时是否关闭弹窗 * * @default false */ closeOnClickOverlay?: SmartDialogProps['closeOnClickOverlay']; /** * 关闭前的回调函数,返回 `false` 可阻止关闭,支持返回 `Promise` */ beforeClose?: SmartDialogProps['beforeClose']; /** * 选择器的选择范围,可以传入自定义组件的 `this` 作为上下文 * * @default 当前页面 */ context?: WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance; /** * 当有dialog未关闭时组件内部会阻塞同 Id 的组件被重复打开,此属性可以无视组件内部阻塞队列 * * @default false * @version v2.2.1 */ ignoreQueue?: boolean; } & SmartDialogCommonProps; export interface SmartDialogInputOptions extends SmartDialogOptions { /** * 输入框的值 */ value: string; /** * 输入框的类型 */ type?: string; /** * 是否是密码类型 */ password?: boolean; /** * 输入框为空时的占位符 */ placeholder?: string; /** * 输入框的最大输入长度 */ maxlength?: number; } export interface SmartDialogInstance { /** * 展示弹窗 */ (options: SmartDialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>; /** * 展示消息提示弹窗 */ alert(options: SmartDialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>; /** * 展示消息确认弹窗 */ confirm(options: SmartDialogOptions): Promise<WechatMiniprogram.Component.TrivialInstance>; /** * 展示输入确认弹窗 */ input(options: SmartDialogInputOptions): Promise<WechatMiniprogram.Component.Instance<{ /** * 输入框的当前值 */ inputValue: string; }, AnyObject, AnyObject>>; /** * 修改默认配置,对所有 `Dialog` 生效 */ setDefaultOptions(options: SmartDialogOptions): void; /** * 重置默认配置,对所有 `Dialog` 生效 */ resetDefaultOptions(): void; /** * 关闭弹窗 */ close(): void; /** * 停止按钮的加载状态 */ stopLoading(): void; } export {};