1 |
|
2 |
|
3 |
|
4 |
|
5 | import { DomElement } from '../utils/dom-core';
|
6 | import Editor from '../editor/index';
|
7 | import { NodeListType } from './getChildrenJSON';
|
8 |
|
9 | declare type KeyBoardHandler = (event: KeyboardEvent) => unknown;
|
10 |
|
11 | declare type EventHandler = (event: Event) => unknown;
|
12 | declare 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 | };
|
52 | declare 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 | }
|
105 | export default Text;
|
106 |
|
\ | No newline at end of file |