@kaitify/core 0.0.1-beta.2 → 0.0.1-beta.21
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 +917 -1001
- package/lib/kaitify-core.umd.js +2 -2
- package/lib/model/Editor.d.ts +18 -5
- 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 +50 -50
package/lib/model/Editor.d.ts
CHANGED
|
@@ -377,6 +377,10 @@ export declare class Editor {
|
|
|
377
377
|
* 是否深色模式
|
|
378
378
|
*/
|
|
379
379
|
isDark(): boolean;
|
|
380
|
+
/**
|
|
381
|
+
* 判断编辑器是否为空,这里的空指的是编辑器内只有一个段落,并且段落里只有占位符
|
|
382
|
+
*/
|
|
383
|
+
isEmpty(): boolean;
|
|
380
384
|
/**
|
|
381
385
|
* dom转KNode
|
|
382
386
|
*/
|
|
@@ -408,11 +412,11 @@ export declare class Editor {
|
|
|
408
412
|
/**
|
|
409
413
|
* 获取某个节点内的最后一个可以设置光标点的节点,包括自身
|
|
410
414
|
*/
|
|
411
|
-
|
|
415
|
+
getLastSelectionNode(node: KNode): KNode | null;
|
|
412
416
|
/**
|
|
413
417
|
* 获取某个节点内的第一个可以设置光标点的节点,包括自身
|
|
414
418
|
*/
|
|
415
|
-
|
|
419
|
+
getFirstSelectionNode(node: KNode): KNode | null;
|
|
416
420
|
/**
|
|
417
421
|
* 查找指定节点之前可以设置为光标点的非空节点,不包括自身
|
|
418
422
|
*/
|
|
@@ -436,7 +440,7 @@ export declare class Editor {
|
|
|
436
440
|
/**
|
|
437
441
|
* 判断光标是否在某个节点内,start表示只判断起点,end表示只判断终点,all表示起点和终点都判断
|
|
438
442
|
*/
|
|
439
|
-
|
|
443
|
+
isSelectionInTargetNode(node: KNode, type?: 'all' | 'start' | 'end' | undefined): boolean;
|
|
440
444
|
/**
|
|
441
445
|
* 获取光标选区内的节点数据
|
|
442
446
|
*/
|
|
@@ -466,7 +470,12 @@ export declare class Editor {
|
|
|
466
470
|
*/
|
|
467
471
|
insertText(text: string): void;
|
|
468
472
|
/**
|
|
469
|
-
*
|
|
473
|
+
* 向选区进行换行
|
|
474
|
+
* 1. 所在块节点只有占位符并且块节点不是段落则会转为段落
|
|
475
|
+
* 2. 非代码块样式内换行是插入换行符\n
|
|
476
|
+
* 2. 光标所在块节点是固定块节点,则无法换行
|
|
477
|
+
* 3. 光标所在块节点只有占位符,并且其存在父节点,且父节点不是固定块节点,会从父节点抽离到与父节点同级
|
|
478
|
+
* 4. 光标所在块节点只有占位符,并且不存在父节点,且不是段落,则会转为段落
|
|
470
479
|
*/
|
|
471
480
|
insertParagraph(): void;
|
|
472
481
|
/**
|
|
@@ -496,7 +505,11 @@ export declare class Editor {
|
|
|
496
505
|
/**
|
|
497
506
|
* 获取编辑器的纯文本内容
|
|
498
507
|
*/
|
|
499
|
-
|
|
508
|
+
getContent(): string;
|
|
509
|
+
/**
|
|
510
|
+
* 获取编辑器的html内容,该方法会返回一个包含style标签和div标签的html内容。自行展示html内容时可保证样式与编辑器一致,但是对于附件等有交互事件的元素交互事件会失效
|
|
511
|
+
*/
|
|
512
|
+
getHTML(): string;
|
|
500
513
|
/**
|
|
501
514
|
* 配置编辑器,返回创建的编辑器
|
|
502
515
|
*/
|
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,52 +1,52 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
2
|
+
"name": "@kaitify/core",
|
|
3
|
+
"version": "0.0.1-beta.21",
|
|
4
|
+
"private": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"author": "so-better",
|
|
7
|
+
"main": "lib/kaitify-core.umd.js",
|
|
8
|
+
"module": "lib/kaitify-core.es.js",
|
|
9
|
+
"types": "lib/index.d.ts",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"description": "基于原生JS的富文本编辑器核心库",
|
|
12
|
+
"scripts": {
|
|
13
|
+
"dev": "vite",
|
|
14
|
+
"lib": "tsc && vite build",
|
|
15
|
+
"docs:dev": "vitepress dev docs",
|
|
16
|
+
"docs:build": "vitepress build docs"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"csstype": "^3.1.3",
|
|
20
|
+
"dap-util": "1.6.0",
|
|
21
|
+
"highlight.js": "^11.10.0",
|
|
22
|
+
"interactjs": "^1.10.27",
|
|
23
|
+
"katex": "^0.16.11",
|
|
24
|
+
"vue": "^3.3.13"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/katex": "^0.16.7",
|
|
28
|
+
"@types/node": "^20.11.24",
|
|
29
|
+
"@vitejs/plugin-vue": "^5.0.4",
|
|
30
|
+
"less": "^3.0.4",
|
|
31
|
+
"less-loader": "^5.0.0",
|
|
32
|
+
"terser": "^5.16.9",
|
|
33
|
+
"typescript": "^5.6.3",
|
|
34
|
+
"vite": "^5.4.10",
|
|
35
|
+
"vite-plugin-css-injected-by-js": "^3.5.1",
|
|
36
|
+
"vite-plugin-dts": "^4.3.0",
|
|
37
|
+
"vitepress": "^1.5.0"
|
|
38
|
+
},
|
|
39
|
+
"browserslist": [
|
|
40
|
+
"> 1%",
|
|
41
|
+
"last 2 versions",
|
|
42
|
+
"not dead"
|
|
43
|
+
],
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "https://github.com/so-better/kaitify-core"
|
|
47
|
+
},
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"access": "public",
|
|
50
|
+
"registry": "https://registry.npmjs.org"
|
|
51
|
+
}
|
|
52
52
|
}
|