@kaitify/core 0.0.2-beta.9 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -124,7 +124,7 @@ export type EditorConfigureOptionType = {
124
124
  */
125
125
  onInsertParagraph?: (this: Editor, node: KNode) => void;
126
126
  /**
127
- * 完成删除时触发
127
+ * 完成删除回调,此时还没有对起点和终点进行合并操作,也没有进行判空操作
128
128
  */
129
129
  onDeleteComplete?: (this: Editor) => void;
130
130
  /**
@@ -167,6 +167,10 @@ export type EditorConfigureOptionType = {
167
167
  * 编辑器updateView执行时,通过比对新旧节点数组获取需要格式化的节点,在这些节点被格式化前,触发此方法,回调参数即当前需要被格式化的节点,该方法返回一个节点,返回的节点将会被格式化,如果你不需要任何特殊处理,返回入参提供的节点即可
168
168
  */
169
169
  onBeforePatchNodeToFormat?: (this: Editor, node: KNode) => KNode;
170
+ /**
171
+ * 编辑器进行光标纠正时触发,在这里可以修改虚拟光标的位置
172
+ */
173
+ onRedressSelection?: (this: Editor) => void;
170
174
  /**
171
175
  * 编辑器的初始默认值
172
176
  */
@@ -289,7 +293,7 @@ export declare class Editor {
289
293
  */
290
294
  onInsertParagraph?: (this: Editor, node: KNode) => void;
291
295
  /**
292
- * 完成删除时触发【初始化后不可修改】
296
+ * 完成删除回调,此时还没有对起点和终点进行合并操作,也没有进行判空操作【初始化后不可修改】
293
297
  */
294
298
  onDeleteComplete?: (this: Editor) => void;
295
299
  /**
@@ -332,6 +336,10 @@ export declare class Editor {
332
336
  * 编辑器updateView执行时,通过比对新旧节点数组获取需要格式化的节点,在这些节点被格式化前,触发此方法,回调参数即当前需要被格式化的节点,该方法返回一个节点,返回的节点将会被格式化,如果你不需要任何特殊处理,返回入参提供的节点即可【初始化后不可修改】
333
337
  */
334
338
  onBeforePatchNodeToFormat?: (this: Editor, node: KNode) => KNode;
339
+ /**
340
+ * 编辑器进行光标纠正时触发,在这里可以修改虚拟光标的位置
341
+ */
342
+ onRedressSelection?: (this: Editor) => void;
335
343
  /**
336
344
  * 唯一id【不可修改】【open】
337
345
  */
@@ -373,13 +381,27 @@ export declare class Editor {
373
381
  */
374
382
  scrollViewToSelection(): void;
375
383
  /**
376
- * 根据dom查找到编辑内的对应节点
384
+ * 根据dom查找到编辑内的对应节点。如果是闭合节点内的dom,此时可能无标记或者无对应的节点,则会向上查找,最终找到闭合节点并返回
377
385
  */
378
386
  findNode(dom: HTMLElement): KNode;
379
387
  /**
380
388
  * 根据编辑器内的node查找真实dom
381
389
  */
382
390
  findDom(node: KNode): HTMLElement;
391
+ /**
392
+ * 判断某个dom是否在闭合节点对应的真实dom之内。
393
+ * - includeSelf 为 true(默认)时,闭合节点的根 dom 自身也算"在内";
394
+ * - includeSelf 为 false 时,只有闭合节点内部的子孙 dom 才算"在内",根 dom 自身返回 false。
395
+ */
396
+ isDomInClosedNode(el: HTMLElement, includeSelf?: boolean): boolean;
397
+ /**
398
+ * 获取光标所在的闭合节点,仅当光标在闭合节点的两侧,即offset分别是0和1时,才会返回该闭合节点
399
+ */
400
+ getClosedNodeBySelection(options?: KNodeMatchOptionType): KNode | null;
401
+ /**
402
+ * 判断光标范围内是否有闭合节点,必须完整包含的闭合节点才会被返回在内
403
+ */
404
+ hasClosedNodeBySelection(options?: KNodeMatchOptionType): boolean;
383
405
  /**
384
406
  * 设置编辑器是否可编辑
385
407
  */
@@ -77,18 +77,21 @@ export declare class KNode {
77
77
  */
78
78
  marks?: KNodeMarksType;
79
79
  /**
80
- * 样式集合,样式名称请使用驼峰写法,虽然在渲染时兼容处理了中划线格式的样式名称,但是在其他地方可能会出现问题并且编辑器内部在样式相关的判断都是以驼峰写法为主【可以修改】
80
+ * 样式集合【可以修改】
81
+ * 样式名称请使用驼峰写法,虽然在渲染时兼容处理了中划线格式的样式名称,但是在其他地方可能会出现问题并且编辑器内部在样式相关的判断都是以驼峰写法为主
81
82
  */
82
83
  styles?: KNodeStylesType;
83
84
  /**
84
- * 是否锁定节点【可以修改】:
85
- * 针对块节点,在符合合并条件的情况下是否允许编辑器将其与父节点或者子节点进行合并;
86
- * 针对行内节点,在符合合并条件的情况下是否允许编辑器将其与相邻节点或者父节点或者子节点进行合并;
87
- * 针对文本节点,在符合合并的条件下是否允许编辑器将其与相邻节点或者父节点进行合并。
85
+ * 是否锁定节点,锁定的节点都不允许合并【可以修改】:
86
+ * - 针对块节点,在符合合并条件的情况下是否允许编辑器将其与父节点或者子节点进行合并;
87
+ * - 针对行内节点,在符合合并条件的情况下是否允许编辑器将其与相邻节点或者父节点或者子节点进行合并;
88
+ * - 针对文本节点,在符合合并的条件下是否允许编辑器将其与相邻节点或者父节点进行合并。
88
89
  */
89
90
  locked: boolean;
90
91
  /**
91
- * 是否为固定块节点,值为true时:当光标在节点起始处或者光标在节点内只有占位符时,执行删除操作不会删除此节点,会再次创建一个占位符进行处理;当光标在节点内且节点不是代码块样式,不会进行换行【可以修改】
92
+ * 是否为固定块节点,值为true时:
93
+ * - 当光标在节点起始处或者光标在节点内只有占位符时,执行删除操作不会删除此节点,会再次创建一个占位符进行处理;
94
+ * - 当光标在节点内且节点不是代码块样式,不会进行换行【可以修改】
92
95
  */
93
96
  fixed: boolean;
94
97
  /**
@@ -96,7 +99,9 @@ export declare class KNode {
96
99
  */
97
100
  nested: boolean;
98
101
  /**
99
- * 是否为不可见节点,意味着此类节点在编辑器内视图内无法看到
102
+ * 是否为不可见节点
103
+ * - 编辑器在处理节点时会忽略此类节点
104
+ * - 通常意味着无法看到的或者无法编辑的
100
105
  */
101
106
  void?: boolean;
102
107
  /**
@@ -163,10 +168,6 @@ export declare class KNode {
163
168
  * 【API】是否含有样式
164
169
  */
165
170
  hasStyles(): boolean;
166
- /**
167
- * 【API】判断节点是否不可编辑的,如果是返回设置不可编辑的那个节点,否则返回null
168
- */
169
- getUneditable(): KNode | null;
170
171
  /**
171
172
  * 【API】当前节点是否只包含占位符
172
173
  */
@@ -14,7 +14,7 @@ export declare const onComposition: (this: Editor, e: Event) => Promise<void>;
14
14
  /**
15
15
  * 监听键盘事件
16
16
  */
17
- export declare const onKeyboard: (this: Editor, e: Event) => void;
17
+ export declare const onKeyboard: (this: Editor, e: Event) => Promise<void>;
18
18
  /**
19
19
  * 监听编辑器获取焦点
20
20
  */
@@ -7,20 +7,20 @@ export type RuleFunctionType = (state: {
7
7
  editor: Editor;
8
8
  node: KNode;
9
9
  }) => void;
10
+ /**
11
+ * 针对节点自身:将带有 contenteditable="false" 标记的节点统一转为闭合节点,并移除该标记(渲染时由框架统一添加)
12
+ */
13
+ export declare const formatContenteditableToClosed: RuleFunctionType;
10
14
  /**
11
15
  * 针对节点自身:处理块节点的标签,部分块节点需要转为默认块节点标签
12
16
  */
13
- export declare const fomratBlockTagParse: RuleFunctionType;
17
+ export declare const formatBlockTagParse: RuleFunctionType;
14
18
  /**
15
19
  * 针对子节点中的块节点:
16
20
  * 1. 子节点中含有块节点则该节点转为块节点;
17
21
  * 2. 子节点中含有块节点,则其他节点也转为块节点
18
22
  */
19
23
  export declare const formatBlockInChildren: RuleFunctionType;
20
- /**
21
- * 针对节点自身:处理不可编辑的非块级节点:在两侧添加零宽度空白字符 & 重置不可编辑节点内的光标位置
22
- */
23
- export declare const formatUneditableNoodes: RuleFunctionType;
24
24
  /**
25
25
  * 针对节点的子节点数组:处理子节点中的占位符,如果占位符和其他节点共存则删除占位符,如果只存在占位符则将多个占位符合并为一个(光标可能会更新)
26
26
  */
@@ -43,9 +43,9 @@ export declare const registerExtension: (this: Editor, extension: Extension) =>
43
43
  */
44
44
  export declare const updateSelection: (this: Editor) => boolean;
45
45
  /**
46
- * 纠正光标位置,返回布尔值表示是否存在纠正行为
46
+ * 纠正光标位置
47
47
  */
48
- export declare const redressSelection: (this: Editor) => boolean;
48
+ export declare const redressSelection: (this: Editor) => void;
49
49
  /**
50
50
  * 初始化校验编辑器的节点数组,如果编辑器的节点数组为空或者都是空节点,则初始化创建一个只有占位符的段落
51
51
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaitify/core",
3
- "version": "0.0.2-beta.9",
3
+ "version": "0.0.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "author": "so-better",