UNPKG

3.11 kBTypeScriptView Raw
1/**
2 * @description 编辑区域,入口文件
3 * @author wangfupeng
4 */
5import { DomElement } from '../utils/dom-core';
6import Editor from '../editor/index';
7import { NodeListType } from './getChildrenJSON';
8/** 按键函数 */
9declare type KeyBoardHandler = (event: KeyboardEvent) => unknown;
10/** 普通事件回调 */
11declare type EventHandler = (event: Event) => unknown;
12declare type TextEventHooks = {
13 changeEvents: (() => void)[];
14 dropEvents: ((event: DragEvent) => unknown)[];
15 clickEvents: EventHandler[];
16 keyupEvents: KeyBoardHandler[];
17 /** tab 键(keyCode === )Up 时 */
18 tabUpEvents: KeyBoardHandler[];
19 /** tab 键(keyCode === 9)Down 时 */
20 tabDownEvents: KeyBoardHandler[];
21 /** enter 键(keyCode === 13)up 时 */
22 enterUpEvents: KeyBoardHandler[];
23 /** enter 键(keyCode === 13)down 时 */
24 enterDownEvents: KeyBoardHandler[];
25 /** 删除键(keyCode === 8)up 时 */
26 deleteUpEvents: KeyBoardHandler[];
27 /** 删除键(keyCode === 8)down 时 */
28 deleteDownEvents: KeyBoardHandler[];
29 /** 粘贴事件 */
30 pasteEvents: ((e: ClipboardEvent) => void)[];
31 /** 点击链接事件 */
32 linkClickEvents: ((e: DomElement) => void)[];
33 /** 点击代码事件 */
34 codeClickEvents: ((e: DomElement) => void)[];
35 /** 编辑区域滑动事件 */
36 textScrollEvents: EventHandler[];
37 /** 菜单栏被点击 */
38 toolbarClickEvents: EventHandler[];
39 /** 图片被点击事件 */
40 imgClickEvents: ((e: DomElement) => void)[];
41 /** 图片拖拽MouseDown */
42 imgDragBarMouseDownEvents: (() => void)[];
43 /** 表格点击 */
44 tableClickEvents: ((e: DomElement) => void)[];
45 /** 每个菜单被点击时,按理说这个不属于 txt 的,先暂时在这放着吧 */
46 menuClickEvents: (() => void)[];
47 /** droplist 菜单悬浮事件。暂时放这里 */
48 dropListMenuHoverEvents: (() => void)[];
49 /** 点击分割线时 */
50 splitLineEvents: ((e: DomElement) => void)[];
51};
52declare class Text {
53 editor: Editor;
54 eventHooks: TextEventHooks;
55 constructor(editor: Editor);
56 /**
57 * 初始化
58 */
59 init(): void;
60 /**
61 * 切换placeholder
62 */
63 togglePlaceholder(): void;
64 /**
65 * 清空内容
66 */
67 clear(): void;
68 /**
69 * 设置/获取 html
70 * @param val html 字符串
71 */
72 html(val?: string): void | string;
73 /**
74 * 将json设置成html至编辑器
75 * @param nodeList json格式
76 */
77 setJSON(nodeList: NodeListType): void;
78 /**
79 * 获取 json 格式的数据
80 */
81 getJSON(): NodeListType;
82 /**
83 * 设置 字符串内容
84 * @param val text 字符串
85 */
86 text(val: string): void;
87 /**
88 * 获取 字符串内容
89 */
90 text(): string;
91 /**
92 * 追加 html 内容
93 * @param html html 字符串
94 */
95 append(html: string): void;
96 /**
97 * 每一步操作,都实时保存选区范围
98 */
99 private _saveRange;
100 /**
101 * 绑定事件,事件会触发钩子函数
102 */
103 private _bindEventHooks;
104}
105export default Text;
106
\No newline at end of file