@kaitify/core 0.0.1-beta.3 → 0.0.1-beta.30
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.
- package/README.md +2 -2
- package/lib/extensions/align/index.d.ts +9 -0
- package/lib/extensions/attachment/index.d.ts +15 -0
- package/lib/extensions/back-color/index.d.ts +9 -0
- package/lib/extensions/blockquote/index.d.ts +15 -0
- package/lib/extensions/bold/index.d.ts +9 -0
- package/lib/extensions/code/index.d.ts +15 -0
- package/lib/extensions/code-block/index.d.ts +18 -0
- package/lib/extensions/color/index.d.ts +9 -0
- package/lib/extensions/font-family/index.d.ts +9 -0
- package/lib/extensions/font-size/index.d.ts +9 -0
- package/lib/extensions/heading/index.d.ts +15 -0
- package/lib/extensions/history/index.d.ts +12 -0
- package/lib/extensions/horizontal/index.d.ts +3 -0
- package/lib/extensions/image/index.d.ts +12 -0
- package/lib/extensions/indent/index.d.ts +10 -0
- package/lib/extensions/italic/index.d.ts +9 -0
- package/lib/extensions/line-height/index.d.ts +9 -0
- package/lib/extensions/link/index.d.ts +15 -0
- package/lib/extensions/list/index.d.ts +26 -0
- package/lib/extensions/math/index.d.ts +12 -0
- package/lib/extensions/strikethrough/index.d.ts +9 -0
- package/lib/extensions/subscript/index.d.ts +9 -0
- package/lib/extensions/superscript/index.d.ts +9 -0
- package/lib/extensions/table/index.d.ts +30 -0
- package/lib/extensions/task/index.d.ts +15 -0
- package/lib/extensions/text/index.d.ts +21 -0
- package/lib/extensions/underline/index.d.ts +9 -0
- package/lib/extensions/video/index.d.ts +12 -0
- package/lib/kaitify-core.es.js +1305 -1164
- package/lib/kaitify-core.umd.js +2 -2
- package/lib/model/Editor.d.ts +40 -10
- package/lib/model/KNode.d.ts +7 -4
- package/lib/model/config/format-rules.d.ts +7 -1
- package/lib/model/config/function.d.ts +2 -2
- package/lib/tools/index.d.ts +8 -0
- package/package.json +3 -3
- package/lib/model/config/dom-observe.d.ts +0 -10
package/lib/model/Editor.d.ts
CHANGED
|
@@ -3,6 +3,13 @@ import { Selection } from './Selection';
|
|
|
3
3
|
import { History } from './History';
|
|
4
4
|
import { RuleFunctionType } from './config/format-rules';
|
|
5
5
|
import { Extension } from '../extensions';
|
|
6
|
+
/**
|
|
7
|
+
* 非法dom更新数据类型
|
|
8
|
+
*/
|
|
9
|
+
export type EditorObserverUpdateDataType = {
|
|
10
|
+
elm: Node;
|
|
11
|
+
type: 'add' | 'remove' | 'update';
|
|
12
|
+
};
|
|
6
13
|
/**
|
|
7
14
|
* 编辑器获取光标范围内节点数据的类型
|
|
8
15
|
*/
|
|
@@ -341,10 +348,6 @@ export declare class Editor {
|
|
|
341
348
|
* 是否编辑器内部渲染真实光标引起selctionChange事件【不可修改】
|
|
342
349
|
*/
|
|
343
350
|
internalCauseSelectionChange: boolean;
|
|
344
|
-
/**
|
|
345
|
-
* 是否用户操作的删除行为,如果是用户操作的删除行为,则在处理不可编辑的节点是会删除该节点,如果是API调用的删除方法则走正常的删除逻辑【不可修改】
|
|
346
|
-
*/
|
|
347
|
-
isUserDelection: boolean;
|
|
348
351
|
/**
|
|
349
352
|
* dom监听【不可修改】
|
|
350
353
|
*/
|
|
@@ -377,6 +380,10 @@ export declare class Editor {
|
|
|
377
380
|
* 是否深色模式
|
|
378
381
|
*/
|
|
379
382
|
isDark(): boolean;
|
|
383
|
+
/**
|
|
384
|
+
* 判断编辑器是否为空,这里的空指的是编辑器内只有一个段落,并且段落里只有占位符
|
|
385
|
+
*/
|
|
386
|
+
isEmpty(): boolean;
|
|
380
387
|
/**
|
|
381
388
|
* dom转KNode
|
|
382
389
|
*/
|
|
@@ -408,11 +415,11 @@ export declare class Editor {
|
|
|
408
415
|
/**
|
|
409
416
|
* 获取某个节点内的最后一个可以设置光标点的节点,包括自身
|
|
410
417
|
*/
|
|
411
|
-
|
|
418
|
+
getLastSelectionNode(node: KNode): KNode | null;
|
|
412
419
|
/**
|
|
413
420
|
* 获取某个节点内的第一个可以设置光标点的节点,包括自身
|
|
414
421
|
*/
|
|
415
|
-
|
|
422
|
+
getFirstSelectionNode(node: KNode): KNode | null;
|
|
416
423
|
/**
|
|
417
424
|
* 查找指定节点之前可以设置为光标点的非空节点,不包括自身
|
|
418
425
|
*/
|
|
@@ -436,7 +443,7 @@ export declare class Editor {
|
|
|
436
443
|
/**
|
|
437
444
|
* 判断光标是否在某个节点内,start表示只判断起点,end表示只判断终点,all表示起点和终点都判断
|
|
438
445
|
*/
|
|
439
|
-
|
|
446
|
+
isSelectionInTargetNode(node: KNode, type?: 'all' | 'start' | 'end' | undefined): boolean;
|
|
440
447
|
/**
|
|
441
448
|
* 获取光标选区内的节点数据
|
|
442
449
|
*/
|
|
@@ -466,7 +473,12 @@ export declare class Editor {
|
|
|
466
473
|
*/
|
|
467
474
|
insertText(text: string): void;
|
|
468
475
|
/**
|
|
469
|
-
*
|
|
476
|
+
* 向选区进行换行
|
|
477
|
+
* 1. 所在块节点只有占位符并且块节点不是段落则会转为段落
|
|
478
|
+
* 2. 非代码块样式内换行是插入换行符\n
|
|
479
|
+
* 2. 光标所在块节点是固定块节点,则无法换行
|
|
480
|
+
* 3. 光标所在块节点只有占位符,并且其存在父节点,且父节点不是固定块节点,会从父节点抽离到与父节点同级
|
|
481
|
+
* 4. 光标所在块节点只有占位符,并且不存在父节点,且不是段落,则会转为段落
|
|
470
482
|
*/
|
|
471
483
|
insertParagraph(): void;
|
|
472
484
|
/**
|
|
@@ -486,7 +498,9 @@ export declare class Editor {
|
|
|
486
498
|
*/
|
|
487
499
|
updateRealSelection(): Promise<void>;
|
|
488
500
|
/**
|
|
489
|
-
*
|
|
501
|
+
* 重新渲染编辑器视图
|
|
502
|
+
* 1. 不会触发onChange事件;
|
|
503
|
+
* 2. 不会渲染真实光标
|
|
490
504
|
*/
|
|
491
505
|
review(value: string): Promise<void>;
|
|
492
506
|
/**
|
|
@@ -496,7 +510,23 @@ export declare class Editor {
|
|
|
496
510
|
/**
|
|
497
511
|
* 获取编辑器的纯文本内容
|
|
498
512
|
*/
|
|
499
|
-
|
|
513
|
+
getContent(): string;
|
|
514
|
+
/**
|
|
515
|
+
* 获取编辑器的html内容,该方法会返回一个包含style标签和div标签的html内容。自行展示html内容时可保证样式与编辑器一致,但是对于附件等有交互事件的元素交互事件会失效
|
|
516
|
+
*/
|
|
517
|
+
getHTML(): string;
|
|
518
|
+
/**
|
|
519
|
+
* 判断光标是否完全在可视范围内
|
|
520
|
+
*/
|
|
521
|
+
isSelectionInView(): boolean;
|
|
522
|
+
/**
|
|
523
|
+
* 移除对编辑器的dom监听
|
|
524
|
+
*/
|
|
525
|
+
removeDomObserve(): void;
|
|
526
|
+
/**
|
|
527
|
+
* 设置对编辑器的dom监听,主要解决非法dom插入问题
|
|
528
|
+
*/
|
|
529
|
+
setDomObserve(): void;
|
|
500
530
|
/**
|
|
501
531
|
* 配置编辑器,返回创建的编辑器
|
|
502
532
|
*/
|
package/lib/model/KNode.d.ts
CHANGED
|
@@ -184,7 +184,7 @@ export declare class KNode {
|
|
|
184
184
|
*/
|
|
185
185
|
isEqualMarks(node: KNode): boolean;
|
|
186
186
|
/**
|
|
187
|
-
* 【API
|
|
187
|
+
* 【API】判断当前节点是否在拥有代码块样式的块级节点内(包括自身),是的话返回该块级节点,否则返回null
|
|
188
188
|
*/
|
|
189
189
|
isInCodeBlockStyle(): KNode | null;
|
|
190
190
|
/**
|
|
@@ -206,11 +206,11 @@ export declare class KNode {
|
|
|
206
206
|
/**
|
|
207
207
|
* 【API】如果当前节点是文本节点或者闭合节点,则判断是不是指定节点后代中所有文本节点和闭合节点中的第一个
|
|
208
208
|
*/
|
|
209
|
-
|
|
209
|
+
firstInTargetNode: (node: KNode) => boolean;
|
|
210
210
|
/**
|
|
211
211
|
* 【API】如果当前节点是文本节点或者闭合节点,则判断是不是指定节点后代中所有文本节点和闭合节点中的最后一个
|
|
212
212
|
*/
|
|
213
|
-
|
|
213
|
+
lastInTargetNode(node: KNode): boolean;
|
|
214
214
|
/**
|
|
215
215
|
* 【API】获取当前节点在某个节点数组中的前一个非空节点
|
|
216
216
|
*/
|
|
@@ -228,7 +228,10 @@ export declare class KNode {
|
|
|
228
228
|
*/
|
|
229
229
|
getMatchNode(options: KNodeMatchOptionType): KNode | null;
|
|
230
230
|
/**
|
|
231
|
-
* 【API
|
|
231
|
+
* 【API】获取当前节点下的所有可聚焦的节点,如果自身符合也会包括在内
|
|
232
|
+
* 1. type 是 all 获取闭合节点和文本节点;
|
|
233
|
+
* 2. type 是 closed 获取闭合节点;
|
|
234
|
+
* 3. type 是 text 获取文本节点
|
|
232
235
|
*/
|
|
233
236
|
getFocusNodes: (type?: "all" | "closed" | "text" | undefined) => KNode[];
|
|
234
237
|
/**
|
|
@@ -12,7 +12,9 @@ export type RuleFunctionType = (state: {
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const fomratBlockTagParse: RuleFunctionType;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* 针对子节点中的块节点:
|
|
16
|
+
* 1. 子节点中含有块节点则该节点转为块节点;
|
|
17
|
+
* 2. 子节点中含有块节点,则其他节点也转为块节点
|
|
16
18
|
*/
|
|
17
19
|
export declare const formatBlockInChildren: RuleFunctionType;
|
|
18
20
|
/**
|
|
@@ -27,6 +29,10 @@ export declare const formatPlaceholderMerge: RuleFunctionType;
|
|
|
27
29
|
* 针对节点自身:将文本节点内连续的零宽度无断空白字符合并(光标可能会更新)
|
|
28
30
|
*/
|
|
29
31
|
export declare const formatZeroWidthTextMerge: RuleFunctionType;
|
|
32
|
+
/**
|
|
33
|
+
* 针对节点自身:统一将文本节点内的\r\n换成\n,解决Windows兼容问题
|
|
34
|
+
*/
|
|
35
|
+
export declare const formatLineBreakText: RuleFunctionType;
|
|
30
36
|
/**
|
|
31
37
|
* 针对节点的子节点数组:兄弟节点合并策略(光标可能会更新)
|
|
32
38
|
*/
|
|
@@ -59,7 +59,7 @@ export declare const handlerForPasteKeepMarksAndStyles: (this: Editor, nodes: KN
|
|
|
59
59
|
*/
|
|
60
60
|
export declare const handlerForPasteFiles: (this: Editor, files: FileList) => Promise<void>;
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* 处理某个节点数组,针对为空的块级节点补充占位符,目前仅用于粘贴处理
|
|
63
63
|
*/
|
|
64
64
|
export declare const fillPlaceholderToEmptyBlock: (this: Editor, nodes: KNode[]) => void;
|
|
65
65
|
/**
|
|
@@ -71,7 +71,7 @@ export declare const handlerForPasteDrop: (this: Editor, dataTransfer: DataTrans
|
|
|
71
71
|
*/
|
|
72
72
|
export declare const removeBlockFromParentToSameLevel: (this: Editor, node: KNode) => void;
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* 光标所在的块节点不是只有占位符,且非固定块节点,非代码块样式的块节点,在该块节点内正常换行方法
|
|
75
75
|
*/
|
|
76
76
|
export declare const handlerForNormalInsertParagraph: (this: Editor) => void;
|
|
77
77
|
/**
|
package/lib/tools/index.d.ts
CHANGED
|
@@ -47,3 +47,11 @@ export declare const delay: (num?: number | undefined) => Promise<void>;
|
|
|
47
47
|
* 删除对象的某个属性
|
|
48
48
|
*/
|
|
49
49
|
export declare const deleteProperty: <T>(val: any, propertyName: string) => T;
|
|
50
|
+
/**
|
|
51
|
+
* 键盘Tab是否按下
|
|
52
|
+
*/
|
|
53
|
+
export declare const isOnlyTab: (e: KeyboardEvent) => boolean;
|
|
54
|
+
/**
|
|
55
|
+
* 键盘Tab和shift是否一起按下
|
|
56
|
+
*/
|
|
57
|
+
export declare const isTabWithShift: (e: KeyboardEvent) => boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaitify/core",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.30",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "so-better",
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"csstype": "^3.1.3",
|
|
20
|
-
"dap-util": "
|
|
20
|
+
"dap-util": "1.6.0",
|
|
21
21
|
"highlight.js": "^11.10.0",
|
|
22
22
|
"interactjs": "^1.10.27",
|
|
23
23
|
"katex": "^0.16.11",
|
|
24
|
-
"vue": "^3.
|
|
24
|
+
"vue": "^3.3.13"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/katex": "^0.16.7",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Editor } from '../Editor';
|
|
2
|
-
/**
|
|
3
|
-
* 移除对编辑器的dom监听
|
|
4
|
-
*/
|
|
5
|
-
export declare const removeDomObserve: (editor: Editor) => void;
|
|
6
|
-
/**
|
|
7
|
-
* 设置对编辑器的dom监听,主要解决非法dom插入问题
|
|
8
|
-
* 中文输入和updateView时不会启用dom监听
|
|
9
|
-
*/
|
|
10
|
-
export declare const setDomObserve: (editor: Editor) => void;
|