UNPKG

tdesign-react

Version:
193 lines (192 loc) 5.21 kB
/** * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC * */ import { ButtonProps } from '../button'; import { PopupProps } from '../popup'; import { TNode, TElement, AttachNode } from '../common'; import { MouseEvent } from 'react'; export interface TdGuideProps { /** * 用于自定义渲染计数部分 */ counter?: TNode<{ current: number; total: number; }>; /** * 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景 */ current?: number; /** * 当前步骤,即整个引导的进度。-1 则不展示,用于需要中断展示的场景,非受控属性 */ defaultCurrent?: number; /** * 透传 完成 的全部属性,示例:`{ content: '完成', theme: 'primary' }` */ finishButtonProps?: ButtonProps; /** * 是否隐藏计数 * @default false */ hideCounter?: boolean; /** * 是否隐藏上一步按钮 * @default false */ hidePrev?: boolean; /** * 是否隐藏跳过按钮 * @default false */ hideSkip?: boolean; /** * 高亮框的内边距 * @default 8 */ highlightPadding?: number; /** * 引导框的类型 * @default popup */ mode?: 'popup' | 'dialog'; /** * 透传 下一步按钮 的全部属性,示例:{ content: '下一步', theme: 'primary' } */ nextButtonProps?: ButtonProps; /** * 透传 上一步按钮 的全部属性,示例:{ content: '上一步', theme: 'default' } */ prevButtonProps?: ButtonProps; /** * 是否出现遮罩层 * @default true */ showOverlay?: boolean; /** * 透传 跳过按钮 的全部属性,{ content: '跳过', theme: 'default' } */ skipButtonProps?: ButtonProps; /** * 用于定义每个步骤的内容,包括高亮的节点、相对位置和具体的文案内容等。 */ steps?: Array<GuideStep>; /** * 提示框的层级 * @default 999999 */ zIndex?: number; /** * 当前步骤发生变化时触发 */ onChange?: (current: number, context?: { e: MouseEvent<HTMLDivElement>; total: number; }) => void; /** * 点击完成按钮时触发 */ onFinish?: (context: { e: MouseEvent<HTMLDivElement>; current: number; total: number; }) => void; /** * 点击下一步时触发 */ onNextStepClick?: (context: { e: MouseEvent<HTMLDivElement>; next: number; current: number; total: number; }) => void; /** * 点击上一步时触发 */ onPrevStepClick?: (context: { e: MouseEvent<HTMLDivElement>; prev: number; current: number; total: number; }) => void; /** * 点击跳过按钮时触发 */ onSkip?: (context: { e: MouseEvent<HTMLDivElement>; current: number; total: number; }) => void; } export interface GuideStep { /** * 当前步骤提示框的内容 */ body?: TNode; /** * 自定义内容,同 content */ children?: TNode; /** * 用户自定义引导弹框的内容,一旦存在,此时除 `placement`、`offset`和`element` 外,其它属性全部失效) */ content?: TElement; /** * 高亮的节点。数据类型为 String 时,会被当作选择器处理,进行节点查询。示例:'#tdesign' 或 () => document.querySelector('#tdesign') */ element: AttachNode; /** * 用户自定义的高亮框 (仅当 `mode` 为 `popup` 时生效) */ highlightContent?: TElement; /** * 高亮框的内边距 */ highlightPadding?: number; /** * 引导框的类型 */ mode?: 'popup' | 'dialog'; /** * 用于自定义当前引导框的下一步按钮的内容 */ nextButtonProps?: ButtonProps; /** * 【讨论确认中】相对于 placement 的偏移量,示例:[-10, 20] 或 ['10px', '8px'] */ offset?: Array<string | number>; /** * 引导框相对于高亮元素出现的位置 * @default 'top' */ placement?: StepPopupPlacement | StepDialogPlacement; /** * 透传全部属性到 Popup 组件。`mode=popup` 时有效 */ popupProps?: PopupProps; /** * 用于自定义当前引导框的上一步按钮的内容 */ prevButtonProps?: ButtonProps; /** * 是否出现遮罩层 * @default true */ showOverlay?: boolean; /** * 用于自定义当前步骤引导框的跳过按钮的内容 */ skipButtonProps?: ButtonProps; /** * 覆盖引导框的类名 * @default '' */ stepOverlayClass?: string; /** * 当前步骤的标题内容 * @default '' */ title?: string; } export type StepPopupPlacement = 'top' | 'left' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom'; export type StepDialogPlacement = 'top' | 'center';