hi-mention
Version:
纯JS聊天框,兼容原生HTML/React/Vue等各种框架;支持@提及功能、插入富文本等多功能编辑器;内置H5和PC的交互样式
79 lines (78 loc) • 2.42 kB
TypeScript
import UserSelector from "./UserSelector";
import { MentionOptions, UserInfo, EventsType } from "./types";
declare class Mention {
protected blurtimeout?: any;
protected options: MentionOptions;
userSelector?: UserSelector;
constructor(el: Element | HTMLElement | string, option?: Partial<MentionOptions>);
protected onUndoHistory(e: KeyboardEvent): boolean;
protected selectAll(): void;
protected onSelectAll(e: KeyboardEvent): boolean;
protected shearContent(): true | undefined;
protected onShearContent(e: KeyboardEvent): boolean;
protected moveCursor(direction: "ArrowLeft" | "ArrowRight"): void;
protected onMoveCursor(e: KeyboardEvent): boolean;
protected wordDelete(e: KeyboardEvent): boolean;
protected onWordDelete(e: KeyboardEvent): boolean;
protected wordWrap(): void;
protected onWordWrap(e: KeyboardEvent): boolean;
setOptions(options: Partial<MentionOptions>): this;
getOptions(): MentionOptions;
/**
* 事件监听器
* @param key 监听的事件名称
* @param fn 事件回调函数
* @returns 返回当前实例
*/
on<T extends keyof EventsType>(key: T, fn: EventsType[T]): this;
/**
* 提及用户
* @param user 用户信息
* @returns
*/
mentionUser(user: UserInfo): this;
/**
* 清空输入框内容
* @returns 返回当前实例
*/
clear(): this;
/**
* 在当前位置插入文本内容
* @param text 文本内容
* @returns 返回当前实例
*/
insertText(text: string): this;
/**
* 在当前位置插入html内容
* @param html html内容
* @returns 返回当前实例
*/
insertHtml(html: HTMLElement): this;
/**
* 获取焦点
* @returns 返回当前实例
*/
focus(): this;
/**
* 获取输入框内容
* @returns 输入框内容
*/
getData(): {
text: string;
html: string;
};
/**
* 获取@提及的用户列表
* @returns 用户列表
*/
getMentions(): UserInfo[];
protected initUserSelector(): void;
protected closeUserSelector(): void;
/**
* 打开用户选择器
* @param query 查询字符串
* @returns
*/
protected openUserSelector(query: string): void;
}
export default Mention;