0.0.6 • Published 1 year ago

kun-wu v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

React + TypeScript + Vite

yarn add kun-wu

Driver

export type Config = {
    steps?: DriveStep[];
    /**@name 是否启用动画 */
    animate?: boolean;
    /**@name 覆盖层颜色 */
    overlayColor?: string;
    /**@name 覆盖层透明度 */
    overlayOpacity?: number;
    /**@name 是否启用平滑滚动 */
    smoothScroll?: boolean;
    /**@name 是否允许关闭 */
    allowClose?: boolean;
    /**@name 舞台区域的内边距 */
    stagePadding?: number;
    /**@name 舞台区域的圆角大小 */
    stageRadius?: number;
    /**@name 是否禁用主动交互*/
    disableActiveInteraction?: boolean;
    /**@name 是否允许键盘控制*/
    allowKeyboardControl?: boolean;
    /**@name Popover的CSS类 */
    popoverClass?: string;
    /**@name Popover 相对于目标元素的偏移量 */
    popoverOffset?: number;
    /**@name 显示的按钮类型 */
    showButtons?: AllowedButtons[];
    /**@name 禁用的按钮类型*/
    disableButtons?: AllowedButtons[];
    /**@name 是否显示进度 */
    showProgress?: boolean;
    /**@name 进度文本 */
    progressText?: string;
    /**@name 下一步按钮文本 */
    nextBtnText?: string;
    /**@name 上一步按钮文本*/
    prevBtnText?: string;
    /**@name 完成按钮文本 */
    doneBtnText?: string;
    /**
     * @name Popover 渲染后的回调
     * @param popover
     * @param opts
     * @returns
     */
    onPopoverRender?: (popover: PopoverDOM, opts: {
        config: Config;
        state: State;
    }) => void;
    /** @name 高亮开始时 */
    onHighlightStarted?: DriverHook;
    /**@name  高亮时*/
    onHighlighted?: DriverHook;
    /**@name  取消高亮时*/
    onDeselected?: DriverHook;
    /**@name  销毁开始时 */
    onDestroyStarted?: DriverHook;
    /**@name 销毁时 */
    onDestroyed?: DriverHook;
    /**@name 下一步按钮点击时 */
    onNextClick?: DriverHook;
    /**@name 上一步按钮点击时 */
    onPrevClick?: DriverHook;
    /**@name 关闭按钮点击时 */
    onCloseClick?: DriverHook;
};

export type DriverHook = (element: Element | undefined, step: DriveStep, opts: {
    config: Config;
    state: State;
}) => void;

export type DriveStep = {
    /**@name 高亮步骤关联的元素选择器字符串或DOM元素 */
    element?: string | Element;
    /**@name 开始高亮步骤时的处理钩子 */
    onHighlightStarted?: DriverHook;
    /**@name 步骤已被高亮时的处理钩子 */
    onHighlighted?: DriverHook;
    /**@name 步骤被取消高亮时的处理钩子 */
    onDeselected?: DriverHook;
    /**@name 与该步骤关联的弹出窗口配置 */
    popover?: Popover;
};

export type Side = "top" | "right" | "bottom" | "left" | "over";
export type Alignment = "start" | "center" | "end";
export type AllowedButtons = "next" | "previous" | "close";

export type Popover = {
  /**@name 弹出窗口标题 */
  title?: string | JSX.Element | Element;

  /**@name 弹出窗口描述内容 */
  description?: string | JSX.Element | Element;

  /**@name 弹出窗口相对于触发元素的位置(如:上、下、左、右) */
  side?: Side;Ï

  /**@name 弹出窗口在所选侧边内的对齐方式(如:开始、中间、结束) */
  align?: Alignment;

  /**@name 显示哪些操作按钮(如:前进、后退、关闭) */
  showButtons?: AllowedButtons[];

  /**@name 是否显示进度条 */
  showProgress?: boolean;

  /**@name 禁用哪些操作按钮 */
  disableButtons?: AllowedButtons[];

  /**@name 自定义弹出窗口类名 */
  popoverClass?: string;

  /**@name 进度文本(用于显示在进度条附近) */
  progressText?: string;

  /**@name 完成按钮文本 */
  doneBtnText?: string;

  /**@name 下一步按钮文本 */
  nextBtnText?: string;

  /**@name 上一步按钮文本 */
  prevBtnText?: string;

  /**@name 弹出窗口渲染完成后回调函数,接收弹出窗口DOM对象及配置和状态参数 */
  onPopoverRender?: (popover: PopoverDOM, opts: { config: Config; state: State }) => void;

  /**@name 下一步按钮点击时的处理钩子 */
  onNextClick?: DriverHook;

  /**@name 上一步按钮点击时的处理钩子 */
  onPrevClick?: DriverHook;

  /**@name 关闭按钮点击时的处理钩子 */
  onCloseClick?: DriverHook;
};