@kaitify/core 0.0.1-beta.1

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.
Files changed (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/examples/App.vue +342 -0
  4. package/examples/content.js +1 -0
  5. package/examples/main.ts +4 -0
  6. package/examples/test.html +23 -0
  7. package/lib/extensions/Extension.d.ts +172 -0
  8. package/lib/extensions/align/index.d.ts +10 -0
  9. package/lib/extensions/attachment/index.d.ts +29 -0
  10. package/lib/extensions/back-color/index.d.ts +9 -0
  11. package/lib/extensions/blockquote/index.d.ts +12 -0
  12. package/lib/extensions/bold/index.d.ts +9 -0
  13. package/lib/extensions/code/index.d.ts +12 -0
  14. package/lib/extensions/code-block/hljs.d.ts +12 -0
  15. package/lib/extensions/code-block/index.d.ts +15 -0
  16. package/lib/extensions/color/index.d.ts +9 -0
  17. package/lib/extensions/font-family/index.d.ts +9 -0
  18. package/lib/extensions/font-size/index.d.ts +9 -0
  19. package/lib/extensions/heading/index.d.ts +13 -0
  20. package/lib/extensions/history/index.d.ts +10 -0
  21. package/lib/extensions/horizontal/index.d.ts +7 -0
  22. package/lib/extensions/image/index.d.ts +26 -0
  23. package/lib/extensions/indent/index.d.ts +8 -0
  24. package/lib/extensions/index.d.ts +29 -0
  25. package/lib/extensions/italic/index.d.ts +9 -0
  26. package/lib/extensions/line-height/index.d.ts +9 -0
  27. package/lib/extensions/link/index.d.ts +27 -0
  28. package/lib/extensions/list/index.d.ts +18 -0
  29. package/lib/extensions/math/index.d.ts +11 -0
  30. package/lib/extensions/strikethrough/index.d.ts +9 -0
  31. package/lib/extensions/subscript/index.d.ts +9 -0
  32. package/lib/extensions/superscript/index.d.ts +9 -0
  33. package/lib/extensions/table/index.d.ts +21 -0
  34. package/lib/extensions/task/index.d.ts +12 -0
  35. package/lib/extensions/text/index.d.ts +14 -0
  36. package/lib/extensions/underline/index.d.ts +9 -0
  37. package/lib/extensions/video/index.d.ts +27 -0
  38. package/lib/index.d.ts +3 -0
  39. package/lib/kaitify-core.es.js +38337 -0
  40. package/lib/kaitify-core.umd.js +2 -0
  41. package/lib/model/Editor.d.ts +504 -0
  42. package/lib/model/History.d.ts +42 -0
  43. package/lib/model/KNode.d.ts +258 -0
  44. package/lib/model/Selection.d.ts +29 -0
  45. package/lib/model/config/dom-observe.d.ts +10 -0
  46. package/lib/model/config/event-handler.d.ts +33 -0
  47. package/lib/model/config/format-patch.d.ts +25 -0
  48. package/lib/model/config/format-rules.d.ts +37 -0
  49. package/lib/model/config/function.d.ts +84 -0
  50. package/lib/model/index.d.ts +6 -0
  51. package/lib/tools/index.d.ts +49 -0
  52. package/lib/view/index.d.ts +21 -0
  53. package/lib/view/js-render/dom-patch.d.ts +65 -0
  54. package/lib/view/js-render/index.d.ts +5 -0
  55. package/package.json +52 -0
  56. package/src/css/style.less +56 -0
  57. package/src/css/var.less +45 -0
  58. package/src/extensions/Extension.ts +200 -0
  59. package/src/extensions/align/index.ts +115 -0
  60. package/src/extensions/attachment/icon.svg +1 -0
  61. package/src/extensions/attachment/index.ts +293 -0
  62. package/src/extensions/attachment/style.less +25 -0
  63. package/src/extensions/back-color/index.ts +56 -0
  64. package/src/extensions/blockquote/index.ts +144 -0
  65. package/src/extensions/blockquote/style.less +16 -0
  66. package/src/extensions/bold/index.ts +77 -0
  67. package/src/extensions/code/index.ts +295 -0
  68. package/src/extensions/code/style.less +14 -0
  69. package/src/extensions/code-block/hljs.less +183 -0
  70. package/src/extensions/code-block/hljs.ts +95 -0
  71. package/src/extensions/code-block/index.ts +308 -0
  72. package/src/extensions/code-block/style.less +20 -0
  73. package/src/extensions/color/index.ts +56 -0
  74. package/src/extensions/font-family/index.ts +80 -0
  75. package/src/extensions/font-size/index.ts +56 -0
  76. package/src/extensions/heading/index.ts +164 -0
  77. package/src/extensions/heading/style.less +42 -0
  78. package/src/extensions/history/index.ts +96 -0
  79. package/src/extensions/horizontal/index.ts +45 -0
  80. package/src/extensions/horizontal/style.less +13 -0
  81. package/src/extensions/image/index.ts +242 -0
  82. package/src/extensions/image/style.less +8 -0
  83. package/src/extensions/indent/index.ts +98 -0
  84. package/src/extensions/index.ts +29 -0
  85. package/src/extensions/italic/index.ts +77 -0
  86. package/src/extensions/line-height/index.ts +113 -0
  87. package/src/extensions/link/index.ts +184 -0
  88. package/src/extensions/link/style.less +19 -0
  89. package/src/extensions/list/index.ts +410 -0
  90. package/src/extensions/list/style.less +19 -0
  91. package/src/extensions/math/index.ts +233 -0
  92. package/src/extensions/math/style.less +21 -0
  93. package/src/extensions/strikethrough/index.ts +78 -0
  94. package/src/extensions/subscript/index.ts +77 -0
  95. package/src/extensions/superscript/index.ts +77 -0
  96. package/src/extensions/table/index.ts +1148 -0
  97. package/src/extensions/table/style.less +71 -0
  98. package/src/extensions/task/index.ts +243 -0
  99. package/src/extensions/task/style.less +59 -0
  100. package/src/extensions/text/index.ts +359 -0
  101. package/src/extensions/underline/index.ts +78 -0
  102. package/src/extensions/video/index.ts +273 -0
  103. package/src/extensions/video/style.less +8 -0
  104. package/src/index.ts +9 -0
  105. package/src/model/Editor.ts +1963 -0
  106. package/src/model/History.ts +115 -0
  107. package/src/model/KNode.ts +677 -0
  108. package/src/model/Selection.ts +39 -0
  109. package/src/model/config/dom-observe.ts +184 -0
  110. package/src/model/config/event-handler.ts +237 -0
  111. package/src/model/config/format-patch.ts +215 -0
  112. package/src/model/config/format-rules.ts +218 -0
  113. package/src/model/config/function.ts +1018 -0
  114. package/src/model/index.ts +6 -0
  115. package/src/tools/index.ts +156 -0
  116. package/src/view/index.ts +46 -0
  117. package/src/view/js-render/dom-patch.ts +324 -0
  118. package/src/view/js-render/index.ts +210 -0
  119. package/vite-env.d.ts +2 -0
@@ -0,0 +1,172 @@
1
+ import { Editor, EditorCommandsType, KNode, KNodeMarksType, KNodeStylesType, RuleFunctionType, Selection } from '../model';
2
+ /**
3
+ * 创建扩展的入参类型
4
+ */
5
+ export type ExtensionCreateOptionType = {
6
+ /**
7
+ * 扩展名称
8
+ */
9
+ name: string;
10
+ /**
11
+ * 置空的标签
12
+ */
13
+ emptyRenderTags?: string[];
14
+ /**
15
+ * 额外保留的标签
16
+ */
17
+ extraKeepTags?: string[];
18
+ /**
19
+ * 自定义格式化规则
20
+ */
21
+ formatRules?: RuleFunctionType[];
22
+ /**
23
+ * 自定义dom转为非文本节点的后续处理
24
+ */
25
+ domParseNodeCallback?: (this: Editor, node: KNode) => KNode;
26
+ /**
27
+ * 光标变化回调
28
+ */
29
+ onSelectionUpdate?: (this: Editor, selection: Selection) => void;
30
+ /**
31
+ * 插入段落时回调
32
+ */
33
+ onInsertParagraph?: (this: Editor, node: KNode) => void;
34
+ /**
35
+ * 完成删除回调
36
+ */
37
+ onDeleteComplete?: (this: Editor) => void;
38
+ /**
39
+ * 光标在编辑器内时键盘按下回调
40
+ */
41
+ onKeydown?: (this: Editor, event: KeyboardEvent) => void;
42
+ /**
43
+ * 光标在编辑器内时键盘松开回调
44
+ */
45
+ onKeyup?: (this: Editor, event: KeyboardEvent) => void;
46
+ /**
47
+ * 编辑器聚焦时回调
48
+ */
49
+ onFocus?: (this: Editor, event: FocusEvent) => void;
50
+ /**
51
+ * 编辑器失焦时回调
52
+ */
53
+ onBlur?: (this: Editor, event: FocusEvent) => void;
54
+ /**
55
+ * 节点粘贴保留标记的自定义方法
56
+ */
57
+ pasteKeepMarks?: (this: Editor, node: KNode) => KNodeMarksType;
58
+ /**
59
+ * 节点粘贴保留样式的自定义方法
60
+ */
61
+ pasteKeepStyles?: (this: Editor, node: KNode) => KNodeStylesType;
62
+ /**
63
+ * 视频更新前回调
64
+ */
65
+ beforeUpdateView?: (this: Editor) => void;
66
+ /**
67
+ * 视图更新后回调
68
+ */
69
+ afterUpdateView?: (this: Editor) => void;
70
+ /**
71
+ * 在删除和换行操作中块节点节点从其父节点中抽离出去成为与父节点同级的节点后触发,如果返回true则表示继续使用默认逻辑,会将该节点转为段落,返回false则不走默认逻辑,需要自定义处理
72
+ */
73
+ onDetachMentBlockFromParentCallback?: (this: Editor, node: KNode) => boolean;
74
+ /**
75
+ * 编辑器updateView执行时,通过比对新旧节点数组获取需要格式化的节点,在这些节点被格式化前,触发此方法,回调参数即当前需要被格式化的节点,该方法返回一个节点,返回的节点将会被格式化,如果你不需要任何特殊处理,返回入参提供的节点即可
76
+ */
77
+ beforePatchNodeToFormat?: (this: Editor, node: KNode) => KNode;
78
+ /**
79
+ * 自定义命令
80
+ */
81
+ addCommands?: (this: Editor) => EditorCommandsType;
82
+ };
83
+ /**
84
+ * 扩展
85
+ */
86
+ export declare class Extension {
87
+ /**
88
+ * 扩展名称
89
+ */
90
+ name: string;
91
+ /**
92
+ * 是否已注册
93
+ */
94
+ registered: boolean;
95
+ /**
96
+ * 置空的标签
97
+ */
98
+ emptyRenderTags: string[];
99
+ /**
100
+ * 额外保留的标签
101
+ */
102
+ extraKeepTags: string[];
103
+ /**
104
+ * 自定义格式化规则
105
+ */
106
+ formatRules: RuleFunctionType[];
107
+ /**
108
+ * 自定义dom转为非文本节点的后续处理
109
+ */
110
+ domParseNodeCallback?: (this: Editor, node: KNode) => KNode;
111
+ /**
112
+ * 光标变化回调
113
+ */
114
+ onSelectionUpdate?: (this: Editor, selection: Selection) => void;
115
+ /**
116
+ * 插入段落时回调
117
+ */
118
+ onInsertParagraph?: (this: Editor, node: KNode) => void;
119
+ /**
120
+ * 完成删除回调
121
+ */
122
+ onDeleteComplete?: (this: Editor) => void;
123
+ /**
124
+ * 光标在编辑器内时键盘按下回调
125
+ */
126
+ onKeydown?: (this: Editor, event: KeyboardEvent) => void;
127
+ /**
128
+ * 光标在编辑器内时键盘松开回调
129
+ */
130
+ onKeyup?: (this: Editor, event: KeyboardEvent) => void;
131
+ /**
132
+ * 编辑器聚焦时回调
133
+ */
134
+ onFocus?: (this: Editor, event: FocusEvent) => void;
135
+ /**
136
+ * 编辑器失焦时回调
137
+ */
138
+ onBlur?: (this: Editor, event: FocusEvent) => void;
139
+ /**
140
+ * 节点粘贴保留标记的自定义方法
141
+ */
142
+ pasteKeepMarks?: (this: Editor, node: KNode) => KNodeMarksType;
143
+ /**
144
+ * 节点粘贴保留样式的自定义方法
145
+ */
146
+ pasteKeepStyles?: (this: Editor, node: KNode) => KNodeStylesType;
147
+ /**
148
+ * 视频更新前回调
149
+ */
150
+ beforeUpdateView?: (this: Editor) => void;
151
+ /**
152
+ * 视图更新后回调
153
+ */
154
+ afterUpdateView?: (this: Editor) => void;
155
+ /**
156
+ * 在删除和换行操作中块节点节点从其父节点中抽离出去成为与父节点同级的节点后触发,如果返回true则表示继续使用默认逻辑,会将该节点转为段落,返回false则不走默认逻辑,需要自定义处理
157
+ */
158
+ onDetachMentBlockFromParentCallback?: (this: Editor, node: KNode) => boolean;
159
+ /**
160
+ * 编辑器updateView执行时,通过比对新旧节点数组获取需要格式化的节点,在这些节点被格式化前,触发此方法,回调参数即当前需要被格式化的节点,该方法返回一个节点,返回的节点将会被格式化,如果你不需要任何特殊处理,返回入参提供的节点即可
161
+ */
162
+ beforePatchNodeToFormat?: (this: Editor, node: KNode) => KNode;
163
+ /**
164
+ * 自定义命令
165
+ */
166
+ addCommands?: (this: Editor) => EditorCommandsType;
167
+ constructor(name: string);
168
+ /**
169
+ * 创建扩展
170
+ */
171
+ static create(options: ExtensionCreateOptionType): Extension;
172
+ }
@@ -0,0 +1,10 @@
1
+ import { Extension } from '../Extension';
2
+ export type AlignValueType = 'left' | 'right' | 'center' | 'justify';
3
+ declare module '../../model' {
4
+ interface EditorCommandsType {
5
+ isAlign?: (value: AlignValueType) => boolean;
6
+ setAlign?: (value: AlignValueType) => Promise<void>;
7
+ unsetAlign?: (value: AlignValueType) => Promise<void>;
8
+ }
9
+ }
10
+ export declare const AlignExtension: () => Extension;
@@ -0,0 +1,29 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ export type SetAttachmentOptionType = {
4
+ url: string;
5
+ text: string;
6
+ icon?: string;
7
+ };
8
+ export type UpdateAttachmentOptionType = {
9
+ url?: string;
10
+ text?: string;
11
+ icon?: string;
12
+ };
13
+ export type AttachmentExtensionPropsType = {
14
+ icon: string;
15
+ };
16
+ declare module '../../model' {
17
+ interface EditorCommandsType {
18
+ getAttachment?: () => KNode | null;
19
+ hasAttachment?: () => boolean;
20
+ setAttachment?: (options: SetAttachmentOptionType) => Promise<void>;
21
+ updateAttachment?: (options: UpdateAttachmentOptionType) => Promise<void>;
22
+ getAttachmentInfo?: () => {
23
+ url: string;
24
+ text: string;
25
+ icon: string;
26
+ } | null;
27
+ }
28
+ }
29
+ export declare const AttachmentExtension: (props?: AttachmentExtensionPropsType) => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isBackColor?: (value: string) => boolean;
5
+ setBackColor?: (value: string) => Promise<void>;
6
+ unsetBackColor?: (value: string) => Promise<void>;
7
+ }
8
+ }
9
+ export declare const BackColorExtension: () => Extension;
@@ -0,0 +1,12 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ declare module '../../model' {
4
+ interface EditorCommandsType {
5
+ getBlockquote?: () => KNode | null;
6
+ hasBlockquote?: () => boolean;
7
+ allBlockquote?: () => boolean;
8
+ setBlockquote?: () => Promise<void>;
9
+ unsetBlockquote?: () => Promise<void>;
10
+ }
11
+ }
12
+ export declare const BlockquoteExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isBold?: () => boolean;
5
+ setBold?: () => Promise<void>;
6
+ unsetBold?: () => Promise<void>;
7
+ }
8
+ }
9
+ export declare const BoldExtension: () => Extension;
@@ -0,0 +1,12 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ declare module '../../model' {
4
+ interface EditorCommandsType {
5
+ getCode?: () => KNode | null;
6
+ hasCode?: () => boolean;
7
+ allCode?: () => boolean;
8
+ setCode?: () => Promise<void>;
9
+ unsetCode?: () => Promise<void>;
10
+ }
11
+ }
12
+ export declare const CodeExtension: () => Extension;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * 支持的语言列表
3
+ */
4
+ export declare const HljsLanguages: readonly ["plaintext", "json", "javascript", "java", "typescript", "python", "php", "css", "less", "scss", "html", "markdown", "objectivec", "swift", "dart", "nginx", "http", "go", "ruby", "c", "cpp", "csharp", "sql", "shell", "r", "kotlin", "rust"];
5
+ /**
6
+ * 语言类型
7
+ */
8
+ export type HljsLanguageType = (typeof HljsLanguages)[number];
9
+ /**
10
+ * 获取经过hljs处理的html元素
11
+ */
12
+ export declare const getHljsHtml: (code: string, language: string) => string;
@@ -0,0 +1,15 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ import { HljsLanguageType } from './hljs';
4
+ declare module '../../model' {
5
+ interface EditorCommandsType {
6
+ getCodeBlock?: () => KNode | null;
7
+ hasCodeBlock?: () => boolean;
8
+ allCodeBlock?: () => boolean;
9
+ setCodeBlock?: () => Promise<void>;
10
+ unsetCodeBlock?: () => Promise<void>;
11
+ updateCodeBlockLanguage?: (language: HljsLanguageType) => Promise<void>;
12
+ }
13
+ }
14
+ export declare const CodeBlockExtension: () => Extension;
15
+ export * from './hljs';
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isColor?: (value: string) => boolean;
5
+ setColor?: (value: string) => Promise<void>;
6
+ unsetColor?: (value: string) => Promise<void>;
7
+ }
8
+ }
9
+ export declare const ColorExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isFontFamily?: (value: string) => boolean;
5
+ setFontFamily?: (value: string) => Promise<void>;
6
+ unsetFontFamily?: (value: string) => Promise<void>;
7
+ }
8
+ }
9
+ export declare const FontFamilyExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isFontSize?: (value: string) => boolean;
5
+ setFontSize?: (value: string) => Promise<void>;
6
+ unsetFontSize?: (value: string) => Promise<void>;
7
+ }
8
+ }
9
+ export declare const FontSizeExtension: () => Extension;
@@ -0,0 +1,13 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ export type HeadingLevelType = 0 | 1 | 2 | 3 | 4 | 5 | 6;
4
+ declare module '../../model' {
5
+ interface EditorCommandsType {
6
+ getHeading?: (level: HeadingLevelType) => KNode | null;
7
+ hasHeading?: (level: HeadingLevelType) => boolean;
8
+ allHeading?: (level: HeadingLevelType) => boolean;
9
+ setHeading?: (level: HeadingLevelType) => Promise<void>;
10
+ unsetHeading?: (level: HeadingLevelType) => Promise<void>;
11
+ }
12
+ }
13
+ export declare const HeadingExtension: () => Extension;
@@ -0,0 +1,10 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ canUndo?: () => boolean;
5
+ canRedo?: () => boolean;
6
+ undo?: () => Promise<void>;
7
+ redo?: () => Promise<void>;
8
+ }
9
+ }
10
+ export declare const HistoryExtension: () => Extension;
@@ -0,0 +1,7 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ setHorizontal?: () => Promise<void>;
5
+ }
6
+ }
7
+ export declare const HorizontalExtension: () => Extension;
@@ -0,0 +1,26 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ /**
4
+ * 插入图片方法入参类型
5
+ */
6
+ export type SetImageOptionType = {
7
+ src: string;
8
+ alt?: string;
9
+ width?: string;
10
+ };
11
+ /**
12
+ * 更新图片方法入参类型
13
+ */
14
+ export type UpdateImageOptionType = {
15
+ src?: string;
16
+ alt?: string;
17
+ };
18
+ declare module '../../model' {
19
+ interface EditorCommandsType {
20
+ getImage?: () => KNode | null;
21
+ hasImage?: () => boolean;
22
+ setImage?: (options: SetImageOptionType) => Promise<void>;
23
+ updateImage?: (options: UpdateImageOptionType) => Promise<void>;
24
+ }
25
+ }
26
+ export declare const ImageExtension: () => Extension;
@@ -0,0 +1,8 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ setIncreaseIndent?: () => Promise<void>;
5
+ setDecreaseIndent?: () => Promise<void>;
6
+ }
7
+ }
8
+ export declare const IndentExtension: () => Extension;
@@ -0,0 +1,29 @@
1
+ export * from './Extension';
2
+ export * from './text';
3
+ export * from './history';
4
+ export * from './image';
5
+ export * from './video';
6
+ export * from './bold';
7
+ export * from './italic';
8
+ export * from './strikethrough';
9
+ export * from './underline';
10
+ export * from './superscript';
11
+ export * from './subscript';
12
+ export * from './code';
13
+ export * from './font-size';
14
+ export * from './font-family';
15
+ export * from './color';
16
+ export * from './back-color';
17
+ export * from './link';
18
+ export * from './align';
19
+ export * from './line-height';
20
+ export * from './indent';
21
+ export * from './horizontal';
22
+ export * from './blockquote';
23
+ export * from './heading';
24
+ export * from './list';
25
+ export * from './task';
26
+ export * from './math';
27
+ export * from './code-block';
28
+ export * from './attachment';
29
+ export * from './table';
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isItalic?: () => boolean;
5
+ setItalic?: () => Promise<void>;
6
+ unsetItalic?: () => Promise<void>;
7
+ }
8
+ }
9
+ export declare const ItalicExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isLineHeight?: (value: string | number) => boolean;
5
+ setLineHeight?: (value: string | number) => Promise<void>;
6
+ unsetLineHeight?: (value: string | number) => Promise<void>;
7
+ }
8
+ }
9
+ export declare const LineHeightExtension: () => Extension;
@@ -0,0 +1,27 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ /**
4
+ * 插入链接方法入参类型
5
+ */
6
+ export type SetLinkOptionType = {
7
+ href: string;
8
+ text?: string;
9
+ newOpen?: boolean;
10
+ };
11
+ /**
12
+ * 更新链接方法入参类型
13
+ */
14
+ export type UpdateLinkOptionType = {
15
+ href?: string;
16
+ newOpen?: boolean;
17
+ };
18
+ declare module '../../model' {
19
+ interface EditorCommandsType {
20
+ getLink?: () => KNode | null;
21
+ hasLink?: () => boolean;
22
+ setLink?: (options: SetLinkOptionType) => Promise<void>;
23
+ updateLink?: (options: UpdateLinkOptionType) => Promise<void>;
24
+ unsetLink?: () => Promise<void>;
25
+ }
26
+ }
27
+ export declare const LinkExtension: () => Extension;
@@ -0,0 +1,18 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ export type OrderedListType = 'decimal' | 'lower-alpha' | 'upper-alpha' | 'lower-roman' | 'upper-roman' | 'lower-greek' | 'cjk-ideographic';
4
+ export type UnorderListType = 'disc' | 'circle' | 'square';
5
+ export type ListOptionsType = {
6
+ ordered?: boolean;
7
+ listType?: OrderedListType | UnorderListType;
8
+ };
9
+ declare module '../../model' {
10
+ interface EditorCommandsType {
11
+ getList?: (options: ListOptionsType) => KNode | null;
12
+ hasList?: (options: ListOptionsType) => boolean;
13
+ allList?: (options: ListOptionsType) => boolean;
14
+ setList?: (options: ListOptionsType) => Promise<void>;
15
+ unsetList?: (options: ListOptionsType) => Promise<void>;
16
+ }
17
+ }
18
+ export declare const ListExtension: () => Extension;
@@ -0,0 +1,11 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ declare module '../../model' {
4
+ interface EditorCommandsType {
5
+ getMath?: () => KNode | null;
6
+ hasMath?: () => boolean;
7
+ setMath?: (value: string) => Promise<void>;
8
+ updateMath?: (value: string) => Promise<void>;
9
+ }
10
+ }
11
+ export declare const MathExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isStrikethrough?: () => boolean;
5
+ setStrikethrough?: () => Promise<void>;
6
+ unsetStrikethrough?: () => Promise<void>;
7
+ }
8
+ }
9
+ export declare const StrikethroughExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isSubscript?: () => boolean;
5
+ setSubscript?: () => Promise<void>;
6
+ unsetSubscript?: () => Promise<void>;
7
+ }
8
+ }
9
+ export declare const SubscriptExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isSuperscript?: () => boolean;
5
+ setSuperscript?: () => Promise<void>;
6
+ unsetSuperscript?: () => Promise<void>;
7
+ }
8
+ }
9
+ export declare const SuperscriptExtension: () => Extension;
@@ -0,0 +1,21 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ export type TableCellsMergeDirectionType = 'left' | 'top' | 'right' | 'bottom';
4
+ declare module '../../model' {
5
+ interface EditorCommandsType {
6
+ getTable?: () => KNode | null;
7
+ hasTable?: () => boolean;
8
+ canMergeTableCells?: (direction: TableCellsMergeDirectionType) => boolean;
9
+ setTable?: ({ rows, columns }: {
10
+ rows: number;
11
+ columns: number;
12
+ }) => Promise<void>;
13
+ unsetTable?: () => Promise<void>;
14
+ mergeTableCell?: (direction: TableCellsMergeDirectionType) => Promise<void>;
15
+ addTableRow?: (direction: 'top' | 'bottom') => Promise<void>;
16
+ deleteTableRow?: () => Promise<void>;
17
+ addTableColumn?: (direction: 'left' | 'right') => Promise<void>;
18
+ deleteTableColumn?: () => Promise<void>;
19
+ }
20
+ }
21
+ export declare const TableExtension: () => Extension;
@@ -0,0 +1,12 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ declare module '../../model' {
4
+ interface EditorCommandsType {
5
+ getTask?: () => KNode | null;
6
+ hasTask?: () => boolean;
7
+ allTask?: () => boolean;
8
+ setTask?: () => Promise<void>;
9
+ unsetTask?: () => Promise<void>;
10
+ }
11
+ }
12
+ export declare const TaskExtension: () => Extension;
@@ -0,0 +1,14 @@
1
+ import { KNodeMarksType, KNodeStylesType } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ declare module '../../model' {
4
+ interface EditorCommandsType {
5
+ isTextStyle?: (styleName: string, styleValue?: string | number) => boolean;
6
+ isTextMark?: (markName: string, markValue?: string | number) => boolean;
7
+ setTextStyle?: (styles: KNodeStylesType, updateView?: boolean) => Promise<void>;
8
+ setTextMark?: (marks: KNodeMarksType, updateView?: boolean) => Promise<void>;
9
+ removeTextStyle?: (styleNames?: string[], updateView?: boolean) => Promise<void>;
10
+ removeTextMark?: (markNames?: string[], updateView?: boolean) => Promise<void>;
11
+ clearFormat?: () => Promise<void>;
12
+ }
13
+ }
14
+ export declare const TextExtension: () => Extension;
@@ -0,0 +1,9 @@
1
+ import { Extension } from '../Extension';
2
+ declare module '../../model' {
3
+ interface EditorCommandsType {
4
+ isUnderline?: () => boolean;
5
+ setUnderline?: () => Promise<void>;
6
+ unsetUnderline?: () => Promise<void>;
7
+ }
8
+ }
9
+ export declare const UnderlineExtension: () => Extension;
@@ -0,0 +1,27 @@
1
+ import { KNode } from '../../model';
2
+ import { Extension } from '../Extension';
3
+ /**
4
+ * 插入视频方法入参类型
5
+ */
6
+ export type SetVideoOptionType = {
7
+ src: string;
8
+ width?: string;
9
+ autoplay?: boolean;
10
+ };
11
+ /**
12
+ * 更新视频方法入参类型
13
+ */
14
+ export type UpdateVideoOptionType = {
15
+ controls?: boolean;
16
+ muted?: boolean;
17
+ loop?: boolean;
18
+ };
19
+ declare module '../../model' {
20
+ interface EditorCommandsType {
21
+ getVideo?: () => KNode | null;
22
+ hasVideo?: () => boolean;
23
+ setVideo?: (options: SetVideoOptionType) => Promise<void>;
24
+ updateVideo?: (options: UpdateVideoOptionType) => Promise<void>;
25
+ }
26
+ }
27
+ export declare const VideoExtension: () => Extension;
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './model';
2
+ export * from './extensions';
3
+ export * from './view';