@officesdk/editor-sdk-core 0.0.0-2 → 0.0.0-20

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 (177) hide show
  1. package/cjs/diagram/index.js +16 -1
  2. package/cjs/diagram/sdk.js +1 -1
  3. package/cjs/docs/index.js +21 -0
  4. package/cjs/docs/info.js +3 -0
  5. package/cjs/docs/range.js +7 -0
  6. package/cjs/docs/sdk.js +28 -0
  7. package/cjs/docs/selection.js +3 -0
  8. package/cjs/docx/context-menu.js +3 -0
  9. package/cjs/docx/index.js +16 -1
  10. package/cjs/docx/info.js +1 -1
  11. package/cjs/docx/menu.js +1 -1
  12. package/cjs/docx/sdk.js +1 -1
  13. package/cjs/docx/selection.js +1 -1
  14. package/cjs/docx/theme.js +1 -1
  15. package/cjs/docx/toolbar.js +3 -0
  16. package/cjs/docx/window.js +1 -1
  17. package/cjs/index.js +23 -14
  18. package/cjs/pdf/index.js +16 -1
  19. package/cjs/pdf/menu.js +1 -1
  20. package/cjs/pdf/selection.js +1 -1
  21. package/cjs/presentation/export.js +14 -0
  22. package/cjs/presentation/index.js +19 -2
  23. package/cjs/presentation/menu.js +1 -1
  24. package/cjs/presentation/sdk.js +1 -1
  25. package/cjs/presentation/toolbar.js +3 -0
  26. package/cjs/shared/attachment.js +3 -0
  27. package/cjs/shared/checkpoints.js +19 -0
  28. package/cjs/shared/collaboration.js +3 -0
  29. package/cjs/shared/collaborators.js +3 -0
  30. package/cjs/shared/comments.js +1 -1
  31. package/cjs/shared/content.js +1 -1
  32. package/cjs/shared/context-menu.js +3 -0
  33. package/cjs/shared/decryption.js +3 -0
  34. package/cjs/shared/download.js +3 -0
  35. package/cjs/shared/editor.js +1 -1
  36. package/cjs/shared/export.js +3 -0
  37. package/cjs/shared/feature.js +3 -0
  38. package/cjs/shared/file-picker.js +3 -0
  39. package/cjs/shared/file.js +50 -0
  40. package/cjs/shared/follow-mode.js +3 -0
  41. package/cjs/shared/history.js +3 -0
  42. package/cjs/shared/index.js +5 -2
  43. package/cjs/shared/link.js +1 -1
  44. package/cjs/shared/mention.js +3 -0
  45. package/cjs/shared/menu.js +1 -1
  46. package/cjs/shared/performance.js +3 -0
  47. package/cjs/shared/print.js +1 -1
  48. package/cjs/shared/render.js +3 -0
  49. package/cjs/shared/tool-box.js +40 -0
  50. package/cjs/shared/toolbar.js +1 -1
  51. package/cjs/shared/ui.js +18 -0
  52. package/cjs/shared/uploader.js +22 -0
  53. package/cjs/shared/user.js +1 -1
  54. package/cjs/shared/version.js +3 -0
  55. package/cjs/sheet/cell.js +29 -1
  56. package/cjs/sheet/chart.js +3 -0
  57. package/cjs/sheet/checklist.js +3 -0
  58. package/cjs/sheet/combine-sheets.js +3 -0
  59. package/cjs/sheet/comments.js +3 -0
  60. package/cjs/sheet/data-transfer.js +3 -0
  61. package/cjs/sheet/export.js +3 -0
  62. package/cjs/sheet/font.js +3 -0
  63. package/cjs/sheet/form.js +3 -0
  64. package/cjs/sheet/import-formula.js +3 -0
  65. package/cjs/sheet/index.js +19 -2
  66. package/cjs/sheet/lock.js +14 -0
  67. package/cjs/sheet/mention.js +13 -0
  68. package/cjs/sheet/menu.js +1 -1
  69. package/cjs/sheet/range.js +1 -1
  70. package/cjs/sheet/render.js +3 -0
  71. package/cjs/sheet/sdk.js +1 -1
  72. package/cjs/sheet/sensitization.js +3 -0
  73. package/cjs/sheet/sheet2table.js +3 -0
  74. package/cjs/sheet/toolbar.js +3 -0
  75. package/cjs/sheet/worksheet.js +1 -1
  76. package/cjs/table/content.js +3 -0
  77. package/cjs/table/index.js +23 -0
  78. package/cjs/table/resource.js +3 -0
  79. package/cjs/table/sdk.js +11 -0
  80. package/cjs/table/selection.js +21 -0
  81. package/cjs/table/table.js +3 -0
  82. package/esm/diagram/index.js +2 -1
  83. package/esm/diagram/sdk.js +1 -1
  84. package/esm/docs/index.js +3 -0
  85. package/esm/docs/info.js +2 -0
  86. package/esm/docs/range.js +6 -0
  87. package/esm/docs/sdk.js +25 -0
  88. package/esm/docs/selection.js +2 -0
  89. package/esm/docx/context-menu.js +2 -0
  90. package/esm/docx/index.js +2 -1
  91. package/esm/docx/info.js +1 -1
  92. package/esm/docx/menu.js +1 -1
  93. package/esm/docx/sdk.js +1 -1
  94. package/esm/docx/selection.js +1 -1
  95. package/esm/docx/theme.js +1 -1
  96. package/esm/docx/toolbar.js +2 -0
  97. package/esm/docx/window.js +1 -1
  98. package/esm/index.js +9 -7
  99. package/esm/pdf/index.js +2 -1
  100. package/esm/pdf/menu.js +1 -1
  101. package/esm/pdf/selection.js +1 -1
  102. package/esm/presentation/export.js +11 -0
  103. package/esm/presentation/index.js +3 -1
  104. package/esm/presentation/menu.js +1 -1
  105. package/esm/presentation/sdk.js +1 -1
  106. package/esm/presentation/toolbar.js +2 -0
  107. package/esm/shared/attachment.js +2 -0
  108. package/esm/shared/checkpoints.js +16 -0
  109. package/esm/shared/collaboration.js +2 -0
  110. package/esm/shared/collaborators.js +2 -0
  111. package/esm/shared/comments.js +1 -1
  112. package/esm/shared/content.js +1 -1
  113. package/esm/shared/context-menu.js +2 -0
  114. package/esm/shared/decryption.js +2 -0
  115. package/esm/shared/download.js +2 -0
  116. package/esm/shared/editor.js +1 -1
  117. package/esm/shared/export.js +2 -0
  118. package/esm/shared/feature.js +2 -0
  119. package/esm/shared/file-picker.js +2 -0
  120. package/esm/shared/file.js +47 -0
  121. package/esm/shared/follow-mode.js +2 -0
  122. package/esm/shared/history.js +2 -0
  123. package/esm/shared/index.js +2 -1
  124. package/esm/shared/link.js +1 -1
  125. package/esm/shared/mention.js +2 -0
  126. package/esm/shared/menu.js +1 -1
  127. package/esm/shared/performance.js +2 -0
  128. package/esm/shared/print.js +1 -1
  129. package/esm/shared/render.js +2 -0
  130. package/esm/shared/tool-box.js +37 -0
  131. package/esm/shared/toolbar.js +1 -1
  132. package/esm/shared/ui.js +15 -0
  133. package/esm/shared/uploader.js +19 -0
  134. package/esm/shared/user.js +1 -1
  135. package/esm/shared/version.js +2 -0
  136. package/esm/sheet/cell.js +28 -2
  137. package/esm/sheet/chart.js +2 -0
  138. package/esm/sheet/checklist.js +2 -0
  139. package/esm/sheet/combine-sheets.js +2 -0
  140. package/esm/sheet/comments.js +2 -0
  141. package/esm/sheet/data-transfer.js +2 -0
  142. package/esm/sheet/export.js +2 -0
  143. package/esm/sheet/font.js +2 -0
  144. package/esm/sheet/form.js +2 -0
  145. package/esm/sheet/import-formula.js +2 -0
  146. package/esm/sheet/index.js +3 -1
  147. package/esm/sheet/lock.js +11 -0
  148. package/esm/sheet/mention.js +10 -0
  149. package/esm/sheet/menu.js +1 -1
  150. package/esm/sheet/range.js +1 -1
  151. package/esm/sheet/render.js +2 -0
  152. package/esm/sheet/sdk.js +1 -1
  153. package/esm/sheet/sensitization.js +2 -0
  154. package/esm/sheet/sheet2table.js +2 -0
  155. package/esm/sheet/toolbar.js +2 -0
  156. package/esm/sheet/worksheet.js +1 -1
  157. package/esm/table/content.js +2 -0
  158. package/esm/table/index.js +4 -0
  159. package/esm/table/resource.js +2 -0
  160. package/esm/table/sdk.js +8 -0
  161. package/esm/table/selection.js +18 -0
  162. package/esm/table/table.js +2 -0
  163. package/package.json +75 -7
  164. package/types/combine.d.ts +5159 -0
  165. package/types/diagram.d.ts +2126 -0
  166. package/types/docs.d.ts +2253 -0
  167. package/{docx.d.ts → types/docx.d.ts} +1536 -311
  168. package/types/pdf.d.ts +2335 -0
  169. package/types/presentation.d.ts +2394 -0
  170. package/types/shared.d.ts +2061 -0
  171. package/types/sheet.d.ts +2885 -0
  172. package/types/table.d.ts +2381 -0
  173. package/diagram.d.ts +0 -358
  174. package/pdf.d.ts +0 -755
  175. package/presentation.d.ts +0 -1281
  176. package/shared.d.ts +0 -1066
  177. package/sheet.d.ts +0 -1370
@@ -1,16 +1,12 @@
1
1
  export declare abstract class AbstractedDocxSDK extends EditorSDK {
2
2
  /**
3
- * 打印文档
4
- */
5
- abstract print(): Promise<void>;
6
- /**
7
- * 跳转到某个位置
3
+ * 文档准备就绪
8
4
  */
9
- abstract goto(options: DocxGotoOptions): boolean;
5
+ abstract ready(): Promise<void>;
10
6
  /**
11
- * 文档缩放接口
12
- * @param scale
7
+ * 打印文档
13
8
  */
9
+ abstract print(): Promise<void>;
14
10
  /**
15
11
  * 文档目录集合接口,
16
12
  * 一个文档中可以存在多个目录,这个接口是用来管理文档中的所有目录的。
@@ -46,6 +42,105 @@ export declare abstract class AbstractedDocxSDK extends EditorSDK {
46
42
  abstract get search(): DocxSearch;
47
43
  }
48
44
 
45
+ export declare abstract class AbstractedEditorFileUploader {
46
+ /**
47
+ * 开始上传
48
+ * @param options
49
+ */
50
+ abstract start(options: EditorUploadStartOptions): EditorUploadTaskInfo[];
51
+ /**
52
+ * 暂停上传,不传参数则取消所有上传任务
53
+ * @param taskIds
54
+ */
55
+ abstract pause(taskIds?: string[]): void;
56
+ /**
57
+ * 暂停上传,不传参数则暂停所有上传任务
58
+ * @param taskIds
59
+ */
60
+ abstract abort(taskIds?: string[]): void;
61
+ /**
62
+ * 恢复上传,不传参数则恢复所有上传任务
63
+ * @param taskIds
64
+ */
65
+ abstract resume(taskIds?: string[]): void;
66
+ }
67
+
68
+ export declare type CheckLimitationResult = {
69
+ status: 'limited';
70
+ /**
71
+ * 被限制原因
72
+ */
73
+ reason?: string;
74
+ } | {
75
+ status: 'unlimited';
76
+ };
77
+
78
+ /**
79
+ * 协作者信息接口
80
+ */
81
+ export declare interface CollaboratorInfo {
82
+ /** 协作者唯一标识 */
83
+ id: number;
84
+ /** 协作者名称 */
85
+ name: string;
86
+ /** 协作者头像URL */
87
+ avatar: string;
88
+ }
89
+
90
+ export declare interface ConfirmButtonConfig {
91
+ /**
92
+ * 按钮文本
93
+ */
94
+ label?: string;
95
+ /**
96
+ * 是否隐藏
97
+ */
98
+ hidden?: boolean;
99
+ /**
100
+ * 按钮点击回调
101
+ */
102
+ onClick?: () => void;
103
+ }
104
+
105
+ /**
106
+ * 传统文档右键菜单功能按钮
107
+ */
108
+ export declare type DocxContextMenuFeatureButtonName =
109
+ /**
110
+ * 剪切
111
+ */
112
+ 'cut'
113
+ /**
114
+ * 复制
115
+ */
116
+ | 'copy'
117
+ /**
118
+ * 粘贴
119
+ */
120
+ | 'paste'
121
+ /**
122
+ * 删除
123
+ */
124
+ | 'delete'
125
+ /**
126
+ * 字体
127
+ */
128
+ | 'font'
129
+ /**
130
+ * 段落
131
+ */
132
+ | 'paragraph'
133
+ /**
134
+ * 下载附件
135
+ */
136
+ | 'downloadAttachment'
137
+ /**
138
+ * 转换PDF
139
+ */
140
+ | 'transformPDF';
141
+
142
+ export declare type DocxContextMenuOptions = EditorContextMenuOptions<DocxContextMenuFeatureButtonName>;
143
+
49
144
  export declare type DocxFontFace = Omit<EditorFontFace, 'meta'> & {
50
145
  meta: DocxFontMeta;
51
146
  };
@@ -117,40 +212,6 @@ export declare interface DocxFontsOptions {
117
212
  list: DocxFontsList;
118
213
  }
119
214
 
120
- export declare type DocxGotoOptions = {
121
- /**
122
- * 区域,跳转到对应区域位置
123
- */
124
- type: 'range';
125
- /**
126
- * 区域值,这个值可以通过 DocxSelection 的 getRange 方法拿到
127
- */
128
- range: string;
129
- } | {
130
- /**
131
- * 页码,跳转到对应页码位置
132
- */
133
- type: 'page';
134
- /**
135
- * 页码
136
- */
137
- page: number;
138
- } | {
139
- /**
140
- * 顶部,跳转到文档顶部
141
- */
142
- type: 'top';
143
- } | {
144
- /**
145
- * 跳转到某个评论
146
- */
147
- type: 'comment';
148
- /**
149
- * 评论 ID
150
- */
151
- commentId: string;
152
- };
153
-
154
215
  /**
155
216
  * 图片水印属性值
156
217
  */
@@ -180,23 +241,36 @@ export declare interface DocxInfoOptions {
180
241
  time?: number;
181
242
  author?: string;
182
243
  };
244
+ id: string;
245
+ name: string;
183
246
  }
184
247
 
185
248
  /**
186
- * 传统文档工具栏一级菜单
249
+ * 传统文档菜单栏自定义菜单
250
+ * 可以通过指定泛型T来指定自定义菜单的类型,自定义菜单目前只支持button和link两种类型
187
251
  */
188
- export declare type DocxMenuEntryConfig = EditorMenuEntryConfig<DocxMenuFeatureButtonName>;
252
+ export declare type DocxMenuCustomConfig<T extends 'button' | 'link' = 'button' | 'link'> = (EditorMenuButtonMenuItemConfig<string> | EditorMenuLinkMenuItemConfig<string>) & {
253
+ type: T;
254
+ };
189
255
 
190
256
  /**
191
- * 传统文档工具栏功能按钮
257
+ * 传统文档菜单栏一级菜单
258
+ * 可以通过指定泛型T来指定一级菜单的类型,例如DocxMenuEntryConfig<'button'>,不指定则默认为所有类型都有可能
192
259
  */
193
- export declare type DocxMenuFeatureButtonConfig = EditorMenuFeatureButtonConfig<DocxMenuFeatureButtonName>;
260
+ export declare type DocxMenuEntryConfig<T extends EditorMenuItemType = EditorMenuItemType> = EditorMenuEntryConfig<DocxMenuFeatureButtonName> & {
261
+ type: T;
262
+ };
194
263
 
195
264
  /**
196
- * 传统文档工具栏内置功能按钮
265
+ * 传统文档菜单栏内置功能按钮
197
266
  */
198
- export declare type DocxMenuFeatureButtonName = 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'export' | 'saveTemplate' | 'viewHistory' | 'saveHistory' | 'attachment' | 'cloudFile' | 'signature' | 'image';
267
+ export declare type DocxMenuFeatureButtonName = 'file' | 'edit' | 'insert' | 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'export' | 'saveTemplate' | 'viewHistory' | 'saveHistory' | 'exportWord' | 'exportImage' | 'exportPDF' | 'exportWPS' | 'exportImagePDF' | 'insertAttachment' | 'insertFilesFromDrive' | 'insertSignature' | 'insertImage' | 'insertImageFromLocal' | 'insertImageFromUrl';
199
268
 
269
+ export declare type DocxMenuFeatureConfig = EditorMenuFeatureConfig;
270
+
271
+ /**
272
+ * 传统文档菜单栏相关配置,目前菜单栏不是所有套件都支持,
273
+ */
200
274
  export declare type DocxMenuOptions = EditorMenuOptions<DocxMenuFeatureButtonName>;
201
275
 
202
276
  /**
@@ -363,6 +437,10 @@ export declare interface DocxSDKOptions extends EditorOptions {
363
437
  * 菜单栏相关设置
364
438
  */
365
439
  menu?: DocxMenuOptions;
440
+ /**
441
+ * 右键菜单相关设置
442
+ */
443
+ contextMenu?: DocxContextMenuOptions;
366
444
  /**
367
445
  * Pdf 大纲目录设置
368
446
  */
@@ -379,6 +457,10 @@ export declare interface DocxSDKOptions extends EditorOptions {
379
457
  * 主题字体相关配置
380
458
  */
381
459
  theme?: DocxThemeOptions;
460
+ /**
461
+ * 工具栏设置
462
+ */
463
+ toolbar?: DocxToolbarOptions;
382
464
  }
383
465
 
384
466
  /**
@@ -481,6 +563,24 @@ export declare interface DocxSelection {
481
563
  * @returns
482
564
  */
483
565
  addRangeListener: (listener: (value: DocxRangeValue | null) => void) => void;
566
+ /**
567
+ * 获取文档全部选区范围。
568
+ * @returns
569
+ */
570
+ getWholeRange: () => DocxRange;
571
+ /**
572
+ * 向当前选区位置插入文本,
573
+ * 返回插入后当前选区位置
574
+ * @param text
575
+ * @returns
576
+ */
577
+ insertText: (text: string) => DocxRangeValue;
578
+ /**
579
+ * 向当前选区位置插入 HTML 内容,
580
+ * 返回插入后当前选区位置
581
+ * @param html
582
+ */
583
+ insertHtml: (html: string) => DocxRangeValue;
484
584
  }
485
585
 
486
586
  /**
@@ -566,9 +666,11 @@ export declare interface DocxThemeFontsSchemeItem {
566
666
  * 其他单独字体配置
567
667
  * key 表示script值
568
668
  * 例如:
569
- * <a:font script="Hans" typeface="黑体"/>
570
- * <a:font script="Jpan" typeface="HG明朝B"/>
571
- * <a:font script="Arab" typeface="Times New Roman"/>
669
+ * ```xml
670
+ * <a:font script="Hans" typeface="黑体"/\>
671
+ * <a:font script="Jpan" typeface="HG明朝B"/\>
672
+ * <a:font script="Arab" typeface="Times New Roman"/\>
673
+ * ```
572
674
  */
573
675
  font: Record<string, DocxThemeFont>;
574
676
  }
@@ -719,6 +821,94 @@ export declare interface DocxTOCs {
719
821
  }) => Promise<boolean>;
720
822
  }
721
823
 
824
+ /**
825
+ * 传统文档工具栏功能按钮
826
+ */
827
+ export declare type DocxToolbarFeatureButton = EditorToolbarFeatureButton<DocxToolbarFeatureButtonName>;
828
+
829
+ /**
830
+ * 传统文档工具栏功能按钮配置
831
+ */
832
+ export declare type DocxToolbarFeatureButtonConfig = EditorToolbarFeatureButtonConfig<DocxToolbarFeatureButtonName>;
833
+
834
+ /**
835
+ * Docx 工具栏按钮名称类型
836
+ */
837
+ export declare type DocxToolbarFeatureButtonName =
838
+ /** 撤销 */
839
+ 'undo'
840
+ /** 重做 */
841
+ | 'redo'
842
+ /** 格式刷 */
843
+ | 'formatPainter'
844
+ /** 清除格式 */
845
+ | 'clearFormat'
846
+ /** 缩放 */
847
+ | 'zoom'
848
+ /** 样式 */
849
+ | 'styles'
850
+ /** 字体 */
851
+ | 'font'
852
+ /** 字号 */
853
+ | 'fontSize'
854
+ /** 增加字号 */
855
+ | 'increaseFontSize'
856
+ /** 减少字号 */
857
+ | 'decreaseFontSize'
858
+ /** 粗体 */
859
+ | 'bold'
860
+ /** 斜体 */
861
+ | 'italic'
862
+ /** 下划线 */
863
+ | 'underline'
864
+ /** 删除线 */
865
+ | 'strikeThrough'
866
+ /** 文字颜色 */
867
+ | 'textColor'
868
+ /** 高亮颜色 */
869
+ | 'highlightColor'
870
+ /** 上标 */
871
+ | 'superScript'
872
+ /** 下标 */
873
+ | 'subScript'
874
+ /** 左对齐 */
875
+ | 'leftAlign'
876
+ /** 居中 */
877
+ | 'center'
878
+ /** 右对齐 */
879
+ | 'rightAlign'
880
+ /** 两端对齐 */
881
+ | 'justify'
882
+ /** 编号列表 */
883
+ | 'numberedList'
884
+ /** 项目符号列表 */
885
+ | 'bulletedList'
886
+ /** 增加缩进 */
887
+ | 'increaseIndent'
888
+ /** 减少缩进 */
889
+ | 'decreaseIndent'
890
+ /** 行距 */
891
+ | 'lineSpacing'
892
+ /** 插入图片 */
893
+ | 'insertImage'
894
+ /** 插入图片-从本地 */
895
+ | 'insertImageFromLocal'
896
+ /** 插入图片-来自链接 */
897
+ | 'insertImageFromURL'
898
+ /** 插入表格 */
899
+ | 'insertTable'
900
+ /** 链接 */
901
+ | 'insertLink'
902
+ /** 开启限制编辑 */
903
+ | 'enableEditingRestriction'
904
+ /** 添加评论 */
905
+ | 'addComments';
906
+
907
+ /**
908
+ * 传统文档工具栏配置
909
+ */
910
+ export declare type DocxToolbarOptions = EditorToolbarOptions<DocxToolbarFeatureButtonName>;
911
+
722
912
  /**
723
913
  * 文本水印操作接口,
724
914
  * 水印属于文档的一种特殊业务,水印是 OOXML 是形状的一种业务形态封装,
@@ -812,12 +1002,21 @@ export declare type DocxWatermarkOptions = EditorWatermarkOptions;
812
1002
  * 文档窗口接口
813
1003
  */
814
1004
  export declare interface DocxWindow {
1005
+ /**
1006
+ * 获取当前文档滚动位置,
1007
+ * 返回值为当前文档滚动位置的偏移量,
1008
+ * 这个偏移量是基于文档的左上角为原点,向右向下为正方向
1009
+ * @returns
1010
+ */
1011
+ getScrollPosition: () => {
1012
+ x: number;
1013
+ y: number;
1014
+ };
815
1015
  /**
816
1016
  * 滚动到指定位置
817
- * @param x
818
- * @param y
1017
+ * @param params 滚动参数
819
1018
  */
820
- scrollTo: (x: number, y: number) => void;
1019
+ scrollTo: (params: DocxWindowScrollParams) => void;
821
1020
  /**
822
1021
  * 滚动到指定页面
823
1022
  * @param page
@@ -827,7 +1026,7 @@ export declare interface DocxWindow {
827
1026
  * 将传入的区域滚动到可视区域
828
1027
  * @param range
829
1028
  */
830
- scrollIntoView: (range: DocxRangeValue) => void;
1029
+ scrollIntoView: (range: DocxRangeValue, options?: DocxWindowScrollIntoViewOptions) => void;
831
1030
  /**
832
1031
  * 添加滚动监听器
833
1032
  * @param listener
@@ -838,6 +1037,79 @@ export declare interface DocxWindow {
838
1037
  }) => void) => () => void;
839
1038
  }
840
1039
 
1040
+ /**
1041
+ * 滚动到指定区域的选项
1042
+ */
1043
+ export declare interface DocxWindowScrollIntoViewOptions {
1044
+ /**
1045
+ * 滚动到指定区域的位置,默认是start
1046
+ */
1047
+ position?: 'start' | 'end';
1048
+ /**
1049
+ * 是否将滚动到的区域置于文档可见范围的顶部。默认为bottom
1050
+ */
1051
+ alignment?: 'top' | 'bottom';
1052
+ }
1053
+
1054
+ export declare type DocxWindowScrollParams = {
1055
+ /**
1056
+ * 区域,跳转到对应区域位置
1057
+ */
1058
+ type: 'range';
1059
+ /**
1060
+ * 区域值,这个值可以通过 DocxSelection 的 getRange 方法拿到,取start或者end
1061
+ */
1062
+ range: string;
1063
+ } | {
1064
+ /**
1065
+ * 页码,跳转到对应页码位置
1066
+ */
1067
+ type: 'page';
1068
+ /**
1069
+ * 页码
1070
+ */
1071
+ page: number;
1072
+ } | {
1073
+ /**
1074
+ * 顶部,跳转到文档顶部
1075
+ */
1076
+ type: 'top';
1077
+ } | {
1078
+ /**
1079
+ * 滚动到某个位置,
1080
+ * 这个位置是基于文档的左上角为原点,向右向下为正方向
1081
+ */
1082
+ type: 'position';
1083
+ /**
1084
+ * 位置
1085
+ */
1086
+ position: {
1087
+ x: number;
1088
+ y: number;
1089
+ };
1090
+ } | {
1091
+ /**
1092
+ * 偏移量,跳转到对应偏移量位置
1093
+ */
1094
+ type: 'offset';
1095
+ /**
1096
+ * 偏移量
1097
+ */
1098
+ offset: {
1099
+ x: number;
1100
+ y: number;
1101
+ };
1102
+ } | {
1103
+ /**
1104
+ * 跳转到某个评论
1105
+ */
1106
+ type: 'comment';
1107
+ /**
1108
+ * 评论 ID
1109
+ */
1110
+ commentId: string;
1111
+ };
1112
+
841
1113
  /**
842
1114
  * 文档缩放接口
843
1115
  */
@@ -876,10 +1148,25 @@ export declare interface DocxZoom {
876
1148
  zoomOut: () => void;
877
1149
  }
878
1150
 
1151
+ /**
1152
+ * 匿名用户信息
1153
+ * 当前用户信息未知时的缺省值
1154
+ */
1155
+ export declare interface EditorAnonymousOptions {
1156
+ /**
1157
+ * 匿名用户默认显示名称
1158
+ */
1159
+ name: string;
1160
+ /**
1161
+ * 匿名用户默认头像
1162
+ */
1163
+ avatar: string;
1164
+ }
1165
+
879
1166
  /**
880
1167
  * 编辑器内部资源请求配置
881
1168
  */
882
- declare interface EditorAssetsOptions {
1169
+ export declare interface EditorAssetsOptions {
883
1170
  /**
884
1171
  * 通用资源请求代理配置,
885
1172
  * 用于套件内部资源请求时代理请求
@@ -898,7 +1185,7 @@ declare interface EditorAssetsOptions {
898
1185
  /**
899
1186
  * 基于对象存储的图片处理抽象
900
1187
  */
901
- declare interface EditorAssetsOssImageProcessing {
1188
+ export declare interface EditorAssetsOssImageProcessing {
902
1189
  /**
903
1190
  * 压缩图片的方法
904
1191
  * @param imageUrl 图片的 URL
@@ -925,7 +1212,7 @@ declare interface EditorAssetsOssImageProcessing {
925
1212
  }) => Promise<string>;
926
1213
  }
927
1214
 
928
- declare interface EditorAssetsResolver {
1215
+ export declare interface EditorAssetsResolver {
929
1216
  /**
930
1217
  * 将资源文件 ID 转换为 URL 的方法
931
1218
  * @param assetId 资源文件 ID
@@ -948,82 +1235,267 @@ declare interface EditorAssetsResolver {
948
1235
  }
949
1236
 
950
1237
  /**
951
- * 品牌相关设置,
952
- * 用于在套件中展示品牌外露信息
1238
+ * 编辑器附件限制配置,sdk中会使用在不同的场景下使用不同的限制规则组合
953
1239
  */
954
- declare interface EditorBrandOptions {
1240
+ export declare interface EditorAttachmentLimitationOptions {
955
1241
  /**
956
- * 需要显示在品牌展示位的内容,按数组顺序显示
1242
+ * 检查附件大小的规则
1243
+ * @param file
1244
+ * @returns
957
1245
  */
958
- content: Array<{
959
- type: 'image';
960
- src: string;
1246
+ checkFile: (params: EditorAttachmentLimitationOptionsCheckFunctionParams) => Promise<{
1247
+ limited: true;
1248
+ message: string;
961
1249
  } | {
962
- type: 'text';
963
- content: string;
964
- color?: string;
1250
+ limited: false;
965
1251
  }>;
966
- /**
967
- * 品牌展示位的布局信息
968
- */
969
- layout: {
970
- width: string;
971
- height: string;
972
- };
973
1252
  }
974
1253
 
975
1254
  /**
976
- * 单条评论数据
1255
+ * 编辑器附件限制配置检查函数参数
977
1256
  */
978
- declare interface EditorCommentItem {
1257
+ export declare interface EditorAttachmentLimitationOptionsCheckFunctionParams {
979
1258
  /**
980
- * 评论 ID
1259
+ * 文件名称,带后缀名
981
1260
  */
982
- id: string;
1261
+ name: string;
983
1262
  /**
984
- * 评论用户信息
1263
+ * 文件大小,单位为Byte
985
1264
  */
986
- user: {
987
- id: string;
988
- name: string;
989
- };
990
- content: {
991
- text: string;
992
- };
993
- }
994
-
995
- declare interface EditorComments {
1265
+ size: number;
996
1266
  /**
997
- * 检查是否有评论
998
- * @returns
1267
+ * 文件的mime类型,例如image/jpeg、application/vnd.ms-excel等
999
1268
  */
1000
- hasAny: () => Promise<boolean>;
1269
+ mime?: string;
1270
+ }
1271
+
1272
+ /**
1273
+ * 编辑器附件限制配置
1274
+ * @deprecated 使用limitations代替
1275
+ */
1276
+ export declare interface EditorAttachmentMaxSizeOptions {
1001
1277
  /**
1002
- * 获取评论列表
1003
- * @returns
1278
+ * 图片大小上限值,单位为Byte
1279
+ * 设置为Infinity时表示不限制图片大小
1004
1280
  */
1005
- getAll: () => Promise<EditorCommentItem[]>;
1281
+ value?: number;
1006
1282
  /**
1007
- * 获取单个评论
1008
- * @param commentId
1009
- * @returns
1283
+ * 超限警告相关配置
1010
1284
  */
1011
- getOne: (commentId: string) => Promise<EditorCommentItem | null>;
1285
+ warning?: {
1286
+ /**
1287
+ * 超限警告文本
1288
+ */
1289
+ text?: string;
1290
+ };
1291
+ }
1292
+
1293
+ /**
1294
+ * 编辑器附件信息
1295
+ */
1296
+ export declare interface EditorAttachmentOptions {
1297
+ picker?: EditorFilePicker;
1298
+ uploader?: AbstractedEditorFileUploader;
1299
+ download?: (url: string) => void;
1012
1300
  /**
1013
- * 添加内容
1014
- * @param options
1015
- * @returns
1301
+ * 图片附件相关配置
1016
1302
  */
1017
- add: (options: {
1303
+ image?: {
1018
1304
  /**
1019
- * 评论内容
1305
+ * 图片大小上限相关配置
1306
+ * @deprecated 使用limitations代替
1020
1307
  */
1021
- text: string;
1308
+ maxSize?: EditorAttachmentMaxSizeOptions;
1022
1309
  /**
1023
- * 默认评论是添加到当前选区上,也可以指定一个区域
1310
+ * 支持的图片格式列表,例如jpg,png等
1024
1311
  */
1025
- range?: string;
1026
- }) => Promise<string | null>;
1312
+ supportTypes?: string[];
1313
+ /**
1314
+ * 图片附件的限制配置
1315
+ */
1316
+ limitations?: EditorAttachmentLimitationOptions;
1317
+ };
1318
+ /**
1319
+ * 其他附件相关配置
1320
+ */
1321
+ attachment?: {
1322
+ /**
1323
+ * 图片大小上限相关配置
1324
+ * @deprecated 使用limitations代替
1325
+ */
1326
+ maxSize?: EditorAttachmentMaxSizeOptions;
1327
+ /**
1328
+ * 支持的附件格式列表,例如doc,docx等
1329
+ */
1330
+ supportTypes?: string[];
1331
+ /**
1332
+ * 附件的限制配置
1333
+ */
1334
+ limitations?: EditorAttachmentLimitationOptions;
1335
+ };
1336
+ }
1337
+
1338
+ /**
1339
+ * 基础文件属性
1340
+ */
1341
+ export declare interface EditorBaseUploadableFile {
1342
+ secretly?: boolean;
1343
+ bucket: 'images' | 'attachments';
1344
+ encrypt: string;
1345
+ fileGuid: string;
1346
+ }
1347
+
1348
+ /**
1349
+ * 品牌相关设置,
1350
+ * 用于在套件中展示品牌外露信息
1351
+ */
1352
+ export declare interface EditorBrandOptions {
1353
+ /**
1354
+ * 需要显示在品牌展示位的内容,按数组顺序显示
1355
+ */
1356
+ content: Array<{
1357
+ type: 'image';
1358
+ src: string;
1359
+ } | {
1360
+ type: 'text';
1361
+ content: string;
1362
+ color?: string;
1363
+ }>;
1364
+ /**
1365
+ * 品牌展示位的布局信息
1366
+ */
1367
+ layout: {
1368
+ width: string;
1369
+ height: string;
1370
+ };
1371
+ }
1372
+
1373
+ export declare interface EditorCheckpointsOptions {
1374
+ /**
1375
+ * 获取功能卡点限制
1376
+ * undefined代表无限制
1377
+ */
1378
+ getFeatureLimitation?: (key: string) => Limitation | undefined;
1379
+ /**
1380
+ * 检查是否超限
1381
+ * @param key 功能卡点key
1382
+ * @param value 功能卡点检查值,如文件大小/行列数量等
1383
+ */
1384
+ checkFeatureLimitation?: (key: string, value: number) => CheckLimitationResult;
1385
+ /**
1386
+ * 获取功能卡点状态,如某功能入口是否开启
1387
+ */
1388
+ getFeatureStatus?: (key: string) => FeatureStatus;
1389
+ }
1390
+
1391
+ export declare interface EditorCollaborationOptions {
1392
+ /**
1393
+ * 是否允许离线编辑
1394
+ */
1395
+ offlineEditable: boolean;
1396
+ /**
1397
+ * 保存状态外部接口委托
1398
+ */
1399
+ saveStatus: SaveStatusDelegation;
1400
+ /**
1401
+ * 同步状态外部接口委托(部分套件不支持离线编辑)
1402
+ */
1403
+ syncStatus?: SyncStatusDelegation;
1404
+ /**
1405
+ * 是否使用严格的长度校验规则,默认关闭,在开启后如果出现长度校验失败会立刻禁止编辑器继续编写,并将保存状态设置为错误状态
1406
+ */
1407
+ strictCLC?: boolean;
1408
+ }
1409
+
1410
+ /**
1411
+ * 编辑器协作者管理接口
1412
+ */
1413
+ export declare interface EditorCollaborators {
1414
+ /**
1415
+ * 获取当前所有协作者列表
1416
+ * @returns 返回所有协作者信息数组
1417
+ */
1418
+ getCollaborators: () => CollaboratorInfo[];
1419
+ /**
1420
+ * 开始监听协作者状态变化
1421
+ * 调用此方法后,将开始接收协作者进入/离开的事件
1422
+ */
1423
+ start: () => void;
1424
+ /**
1425
+ * 停止监听协作者状态变化
1426
+ * 调用此方法后,将不再接收协作者进入/离开的事件
1427
+ */
1428
+ stop: () => void;
1429
+ /**
1430
+ * 添加协作者进入事件监听器
1431
+ * @param listener - 监听器回调函数,参数如下:
1432
+ * - allUsers: 当前所有协作者列表
1433
+ * - enteredUsers: 新进入的协作者列表
1434
+ * @returns 返回一个函数,调用该函数可以移除监听器
1435
+ */
1436
+ addUserEnterListener: (listener: (allUsers: CollaboratorInfo[], enteredUsers: CollaboratorInfo[]) => void) => () => void;
1437
+ /**
1438
+ * 添加协作者离开事件监听器
1439
+ * @param listener - 监听器回调函数
1440
+ * - allUsers: 当前所有协作者列表
1441
+ * - leftUsers: 离开的协作者列表
1442
+ * @returns 返回一个函数,调用该函数可以移除监听器
1443
+ */
1444
+ addUserLeaveListener: (listener: (allUsers: CollaboratorInfo[], leftUsers: CollaboratorInfo[]) => void) => () => void;
1445
+ }
1446
+
1447
+ /**
1448
+ * 单条评论数据
1449
+ */
1450
+ export declare interface EditorCommentItem {
1451
+ /**
1452
+ * 评论 ID
1453
+ */
1454
+ id: string;
1455
+ /**
1456
+ * 评论用户信息
1457
+ */
1458
+ user: {
1459
+ id: string;
1460
+ name: string;
1461
+ };
1462
+ content: {
1463
+ text: string;
1464
+ };
1465
+ }
1466
+
1467
+ export declare interface EditorComments {
1468
+ /**
1469
+ * 检查是否有评论
1470
+ * @returns
1471
+ */
1472
+ hasAny: () => Promise<boolean>;
1473
+ /**
1474
+ * 获取评论列表
1475
+ * @returns
1476
+ */
1477
+ getAll: () => Promise<EditorCommentItem[]>;
1478
+ /**
1479
+ * 获取单个评论
1480
+ * @param commentId
1481
+ * @returns
1482
+ */
1483
+ getOne: (commentId: string) => Promise<EditorCommentItem | null>;
1484
+ /**
1485
+ * 添加内容
1486
+ * @param options
1487
+ * @returns
1488
+ */
1489
+ add: (options: {
1490
+ /**
1491
+ * 评论内容
1492
+ */
1493
+ text: string;
1494
+ /**
1495
+ * 默认评论是添加到当前选区上,也可以指定一个区域
1496
+ */
1497
+ range?: string;
1498
+ }) => Promise<string | null>;
1027
1499
  /**
1028
1500
  * 删除所有评论
1029
1501
  * @returns
@@ -1038,7 +1510,7 @@ declare interface EditorComments {
1038
1510
  /**
1039
1511
  * 编辑器评论初始化配置
1040
1512
  */
1041
- declare interface EditorCommentsOptions {
1513
+ export declare interface EditorCommentsOptions extends EditorFeatureConfig {
1042
1514
  /**
1043
1515
  * 评论作者信息,如果这里的信息为空,将会使用 user 信息
1044
1516
  */
@@ -1067,9 +1539,15 @@ declare interface EditorCommentsOptions {
1067
1539
  */
1068
1540
  mode: 'none' | 'card';
1069
1541
  };
1542
+ /**
1543
+ * 评论变化监听
1544
+ * @param listener
1545
+ * @returns 返回一个函数,调用该函数可以移除监听器
1546
+ */
1547
+ addChangedListener?: (listener: (type: 'create' | 'update' | 'close', data: EditorCommentItem) => void) => () => void;
1070
1548
  }
1071
1549
 
1072
- declare interface EditorContent {
1550
+ export declare interface EditorContent<Delta = EditorDelta> {
1073
1551
  /**
1074
1552
  * 设置编辑器内容
1075
1553
  * @param content
@@ -1078,15 +1556,34 @@ declare interface EditorContent {
1078
1556
  /**
1079
1557
  * 获取编辑器内容
1080
1558
  */
1081
- getContent: () => Promise<EditorDelta>;
1559
+ getContent: () => Promise<Delta>;
1082
1560
  /**
1083
1561
  * 添加监听,当内容发生变化时触发监听,传入 Delta
1084
1562
  * @param listener
1085
1563
  */
1086
- addChangeListener: (listener: (change: EditorDelta) => void) => () => void;
1564
+ addChangeListener: (listener: (change: Delta) => void) => () => void;
1087
1565
  }
1088
1566
 
1089
- declare interface EditorDelta {
1567
+ /**
1568
+ * 右键菜单栏相关配置
1569
+ * 右键菜单栏是指的编辑器中点击右键弹出的菜单栏。目前等于菜单栏配置,可扩展
1570
+ */
1571
+ export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
1572
+
1573
+ /**
1574
+ * 编辑器解密选项接口
1575
+ * 用于配置编辑器中需要解密的内容的相关选项
1576
+ */
1577
+ export declare interface EditorDecryptionOptions {
1578
+ /**
1579
+ * 图片附件解密函数
1580
+ * @param buffer - 需要解密的二进制数据
1581
+ * @returns 解密后的二进制数据
1582
+ */
1583
+ decrypt?: (buffer: ArrayBuffer) => ArrayBuffer;
1584
+ }
1585
+
1586
+ export declare interface EditorDelta {
1090
1587
  compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
1091
1588
  transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
1092
1589
  stringify: () => string;
@@ -1096,7 +1593,7 @@ declare interface EditorDelta {
1096
1593
  /**
1097
1594
  * 编辑器嵌入对象
1098
1595
  */
1099
- declare interface EditorEmbeddedObject {
1596
+ export declare interface EditorEmbeddedObject {
1100
1597
  /**
1101
1598
  * 嵌入的对象 url
1102
1599
  */
@@ -1114,7 +1611,7 @@ declare interface EditorEmbeddedObject {
1114
1611
  /**
1115
1612
  * 编辑器嵌入对象抽象类
1116
1613
  */
1117
- declare interface EditorEmbeddedObjectOptions {
1614
+ export declare interface EditorEmbeddedObjectOptions {
1118
1615
  /**
1119
1616
  * 执行打开嵌入对象操作,
1120
1617
  * 如果已经处理了打开操作,返回 true,否则返回 false,
@@ -1142,7 +1639,85 @@ declare interface EditorEmbeddedObjectOptions {
1142
1639
  };
1143
1640
  }
1144
1641
 
1145
- declare interface EditorFontFace {
1642
+ export declare interface EditorExportOptions {
1643
+ /**
1644
+ * 可导出类型
1645
+ */
1646
+ supportedTypes?: string[];
1647
+ /**
1648
+ * 导出文件
1649
+ */
1650
+ exportFile: (type: string) => Promise<void>;
1651
+ }
1652
+
1653
+ export declare interface EditorFeatureConfig {
1654
+ /**
1655
+ * 功能是否被禁用(入口还在)
1656
+ */
1657
+ disabled?: boolean;
1658
+ /**
1659
+ * 功能入口是否被隐藏
1660
+ */
1661
+ hidden?: boolean;
1662
+ }
1663
+
1664
+ export declare interface EditorFileOptions {
1665
+ /**
1666
+ * 文件guid
1667
+ */
1668
+ guid: string;
1669
+ /**
1670
+ * 文件名
1671
+ */
1672
+ name?: string;
1673
+ }
1674
+
1675
+ export declare interface EditorFilePicker {
1676
+ open: (option: EditorFilePickerOpenOptions) => Promise<EditorPickedFile[]>;
1677
+ }
1678
+
1679
+ export declare interface EditorFilePickerOpenOptions {
1680
+ mimeTypes?: string[];
1681
+ maxSize?: number;
1682
+ extensions?: string[];
1683
+ multiple?: boolean;
1684
+ directory?: boolean;
1685
+ }
1686
+
1687
+ export declare interface EditorFollowMode {
1688
+ /**
1689
+ * 演讲者/跟随者进入跟随模式
1690
+ * 当演讲者调用此方法时,其他用户将可以开始跟随该演讲者
1691
+ */
1692
+ enter: () => void;
1693
+ /**
1694
+ * 当前是否处于跟随模式
1695
+ * @returns 返回布尔值,true表示正在跟随,false表示未在跟随
1696
+ */
1697
+ isFollowModeActive: () => boolean;
1698
+ /**
1699
+ * 获取当前演讲者信息
1700
+ * @returns 返回包含演讲者ID、姓名和头像信息的对象
1701
+ */
1702
+ getSpeaker: () => Speaker;
1703
+ /**
1704
+ * 添加跟随状态变化的监听器
1705
+ * @param listener 状态变化时的回调函数
1706
+ * @returns 返回一个用于移除监听器的函数
1707
+ */
1708
+ addChangedListener: (listener: () => void) => () => void;
1709
+ }
1710
+
1711
+ export declare interface EditorFollowModeOptions extends EditorFeatureConfig {
1712
+ /**
1713
+ * 推送跟随消息的 socket 对象
1714
+ * 实际类型为socketIO.client
1715
+ * TODO: 抽象为接口
1716
+ */
1717
+ socket?: unknown;
1718
+ }
1719
+
1720
+ export declare interface EditorFontFace {
1146
1721
  /**
1147
1722
  * 字体的名称,用于在用户界面上显示的名称
1148
1723
  */
@@ -1168,7 +1743,7 @@ declare interface EditorFontFace {
1168
1743
  /**
1169
1744
  * 字体元数据
1170
1745
  */
1171
- declare interface EditorFontMeta {
1746
+ export declare interface EditorFontMeta {
1172
1747
  head: {
1173
1748
  unitsPerEm: number;
1174
1749
  };
@@ -1202,10 +1777,41 @@ declare interface EditorFontMeta {
1202
1777
  };
1203
1778
  }
1204
1779
 
1780
+ /**
1781
+ * 字体列表
1782
+ */
1783
+ export declare interface EditorFontsList {
1784
+ /**
1785
+ * 返回解析为字体的列表的 Promise。
1786
+ */
1787
+ getAll: () => Promise<EditorFontFace[]>;
1788
+ }
1789
+
1790
+ export declare interface EditorFontsOptions {
1791
+ /**
1792
+ * 服务器字体列表,用于获取服务器端配置的字体列表,
1793
+ * 并提供可用于字体的加载 URL 和字体元数据。
1794
+ */
1795
+ list: EditorFontsList;
1796
+ }
1797
+
1798
+ export declare interface EditorHistory {
1799
+ /**
1800
+ * 显示历史记录侧边栏
1801
+ */
1802
+ showSidebar: () => void;
1803
+ /**
1804
+ * 隐藏历史记录侧边栏
1805
+ */
1806
+ hideSidebar: () => void;
1807
+ }
1808
+
1809
+ export declare type EditorHistoryOptions = EditorFeatureConfig;
1810
+
1205
1811
  /**
1206
1812
  * i18n 相关设置
1207
1813
  */
1208
- declare interface EditorI18nOptions {
1814
+ export declare interface EditorI18nOptions {
1209
1815
  /**
1210
1816
  * 语言,默认使用浏览器当前环境中的语言
1211
1817
  */
@@ -1216,160 +1822,220 @@ declare interface EditorI18nOptions {
1216
1822
  direction?: 'ltr' | 'rtl';
1217
1823
  }
1218
1824
 
1219
- declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'center' | 'east' | 'sw' | 'south' | 'se';
1825
+ export declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'center' | 'east' | 'sw' | 'south' | 'se';
1220
1826
 
1221
1827
  /**
1222
1828
  * 链接配置,抽象打开链接等操作
1223
1829
  */
1224
- declare interface EditorLinkOptions {
1830
+ export declare interface EditorLinkOptions {
1831
+ /**
1832
+ * 链接识别配置
1833
+ */
1834
+ detection?: {
1835
+ /**
1836
+ * 支持识别的链接格式
1837
+ */
1838
+ pattern?: string | RegExp | (string | RegExp)[];
1839
+ /**
1840
+ * 是否启用链接识别,默认关闭
1841
+ */
1842
+ enabled?: boolean;
1843
+ };
1225
1844
  /**
1226
1845
  * 打开链接,如果取消了打开链接操作,返回 false
1227
1846
  * @param url
1228
1847
  * @param target
1229
1848
  * @returns
1230
1849
  */
1231
- open: (url: string, target: string) => Promise<boolean>;
1232
- }
1233
-
1234
- /**
1235
- * 菜单栏自定义按钮配置
1236
- */
1237
- declare type EditorMenuCustomButton = {
1850
+ open?: (url: string, target: string) => Promise<boolean>;
1238
1851
  /**
1239
- * 按钮名称
1852
+ * 根据文件guid以及其他参数生成链接
1240
1853
  */
1241
- name: string;
1854
+ generate?: (params: FileLinkParams) => Promise<string>;
1242
1855
  /**
1243
- * 链接
1856
+ * 从文档链接中解析得到文件guid等参数
1244
1857
  */
1245
- type: 'link';
1858
+ parse?: (url: string) => Promise<FileLinkParams | undefined>;
1246
1859
  /**
1247
- * 按钮文本
1860
+ * 生成sdk2.0内部链接
1861
+ * 使用场景:专业表格跨表格引用
1248
1862
  */
1249
- text: string;
1863
+ generateInternal?: (params: FileLinkParams) => Promise<string>;
1864
+ }
1865
+
1866
+ /**
1867
+ * 可上传文件
1868
+ */
1869
+ export declare interface EditorLocalUploadableFile extends EditorBaseUploadableFile {
1870
+ name: string;
1871
+ size: number;
1872
+ mime: string;
1873
+ raw: File;
1874
+ }
1875
+
1876
+ /**
1877
+ * 基础菜单项配置,所有菜单项类型都包含这些属性
1878
+ */
1879
+ export declare interface EditorMenuBaseMenuItemConfig<TName extends string> {
1250
1880
  /**
1251
- * 链接地址
1881
+ * 菜单项的唯一标识,用以确定配置的是哪个菜单
1252
1882
  */
1253
- url: string;
1254
- } | {
1883
+ name: TName;
1255
1884
  /**
1256
- * 按钮名称
1885
+ * 菜单项类型
1257
1886
  */
1258
- name: string;
1887
+ type: EditorMenuItemType;
1888
+ }
1889
+
1890
+ /**
1891
+ * 按钮菜单项配置
1892
+ */
1893
+ export declare interface EditorMenuButtonMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1894
+ type: 'button';
1259
1895
  /**
1260
- * 按钮,点击后触发 callback 回调
1896
+ * 是否禁用菜单项,禁用后菜单项依旧显示不过变为灰色,不可点击
1261
1897
  */
1262
- type: 'button';
1898
+ disabled?: boolean;
1263
1899
  /**
1264
- * 按钮文本
1900
+ * 菜单项显示文本,修改该值可以替换此菜单项默认显示文案
1265
1901
  */
1266
- label: string;
1902
+ label?: string;
1267
1903
  /**
1268
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1904
+ * 菜单项图标,可以是 base64 的图片信息,也可以是图片 url
1905
+ * 配置为空字符串则可以隐藏菜单项默认的图标
1269
1906
  */
1270
1907
  icon?: string;
1271
1908
  /**
1272
- * 按钮点击事件
1909
+ * 菜单项点击事件,接受一个函数,可以自定义点击事件
1273
1910
  */
1274
- callback: () => void;
1275
- };
1911
+ callback?: () => void;
1912
+ }
1913
+
1914
+ /**
1915
+ * 编辑器菜单配置类型
1916
+ * 联合类型,表示可以是任意一种菜单项配置
1917
+ */
1918
+ export declare type EditorMenuEntryConfig<TName extends string> = EditorMenuHiddenMenuItemConfig<TName> | EditorMenuButtonMenuItemConfig<TName> | EditorMenuLinkMenuItemConfig<TName> | EditorMenuEntryMenuItemConfig<TName>;
1276
1919
 
1277
1920
  /**
1278
- * 菜单栏二级以下的菜单入口
1921
+ * 子菜单入口配置
1279
1922
  */
1280
- declare interface EditorMenuEntryButton {
1923
+ export declare interface EditorMenuEntryMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1281
1924
  type: 'entry';
1282
1925
  /**
1283
- * 菜单名称
1926
+ * 是否禁用菜单项,禁用后菜单项依旧显示不过变为灰色,不可点击
1284
1927
  */
1285
- name: string;
1928
+ disabled?: boolean;
1929
+ /**
1930
+ * 菜单项显示文本,修改该值可以替换此菜单项默认显示文案
1931
+ */
1932
+ label?: string;
1286
1933
  /**
1287
- * 菜单图标
1934
+ * 菜单项图标,可以是 base64 的图片信息,也可以是图片 url
1935
+ * 配置为空字符串则可以隐藏菜单项默认的图标
1288
1936
  */
1289
1937
  icon?: string;
1938
+ /**
1939
+ * 下一级菜单配置,下一级菜单配置项和上一级相同
1940
+ * 如果下一级仍然是 entry 类型,可以无限向下扩展
1941
+ */
1942
+ children?: EditorMenuEntryConfig<TName>[];
1290
1943
  }
1291
1944
 
1292
1945
  /**
1293
- * 菜单栏一级菜单配置,此处用于定义一级菜单的操作入口,
1294
- * 一级菜单在鼠标悬停时展示二级列表
1946
+ * 菜单功能按钮配置
1295
1947
  */
1296
- declare interface EditorMenuEntryConfig<TName extends string> {
1948
+ export declare interface EditorMenuFeatureConfig extends EditorFeatureConfig {
1297
1949
  /**
1298
- * 一级菜单名称
1950
+ * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
1299
1951
  */
1300
- name: string;
1952
+ label?: string;
1301
1953
  /**
1302
- * 二级菜单定义,定一个二维数组,用于定义二级菜单的结构,
1303
- * 将第一层数组中的所有按钮放到一个区域内用分隔符隔开,
1304
- * 第二层数组为按钮的定义,可以是功能按钮也可以是一个下拉入口。
1954
+ * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1305
1955
  */
1306
- children: Array<EditorMenuFeatureButton<TName> | EditorMenuEntryButton>[];
1956
+ icon?: string;
1957
+ /**
1958
+ * 按钮点击事件.接受一个函数,可以自定义点击事件。
1959
+ */
1960
+ callback?: () => void;
1961
+ /**
1962
+ * 按钮提示文本,鼠标悬浮到按钮上时显示的tooltip文字
1963
+ */
1964
+ tooltip?: string;
1965
+ /**
1966
+ * 按钮在工具栏中位置,不设置则按照默认位置
1967
+ */
1968
+ index?: number;
1307
1969
  }
1308
1970
 
1309
1971
  /**
1310
- * 菜单栏功能按钮配置
1972
+ * 隐藏菜单项配置
1311
1973
  */
1312
- declare type EditorMenuFeatureButton<TName extends string> = {
1313
- /**
1314
- * 隐藏按钮,用作在需要隐藏菜单栏时定义
1315
- */
1974
+ export declare interface EditorMenuHiddenMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1316
1975
  type: 'hidden';
1976
+ }
1977
+
1978
+ /**
1979
+ * 菜单项类型
1980
+ */
1981
+ export declare type EditorMenuItemType = 'hidden' | 'button' | 'link' | 'entry';
1982
+
1983
+ /**
1984
+ * 链接菜单项配置
1985
+ */
1986
+ export declare interface EditorMenuLinkMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1987
+ type: 'link';
1317
1988
  /**
1318
- * 按钮名称
1989
+ * 是否禁用菜单项,禁用后菜单项依旧显示不过变为灰色,不可点击
1319
1990
  */
1320
- name: TName;
1321
- } | {
1322
- type: 'button';
1991
+ disabled?: boolean;
1323
1992
  /**
1324
- * 按钮名称
1993
+ * 菜单项显示文本,修改该值可以替换此菜单项默认显示文案
1325
1994
  */
1326
- name: TName;
1995
+ text?: string;
1327
1996
  /**
1328
- * 按钮标签(显示文本)
1997
+ * 菜单项图标,可以是 base64 的图片信息,也可以是图片 url
1998
+ * 配置为空字符串则可以隐藏菜单项默认的图标
1329
1999
  */
1330
- label: string;
2000
+ icon?: string;
1331
2001
  /**
1332
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
2002
+ * 跳转链接地址
1333
2003
  */
1334
- icon?: string;
1335
- };
1336
-
1337
- /**
1338
- * 菜单栏按钮配置
1339
- */
1340
- declare type EditorMenuFeatureButtonConfig<TName extends string> = Record<TName, EditorMenuFeatureButton<TName>>;
2004
+ url?: string;
2005
+ }
1341
2006
 
1342
2007
  /**
1343
2008
  * 菜单栏相关配置,目前菜单栏不是所有套件都支持,
1344
2009
  * 菜单栏是指的编辑器最上放可以展开二级菜单的那一栏。
1345
2010
  */
1346
- declare interface EditorMenuOptions<TName extends string> {
2011
+ export declare interface EditorMenuOptions<TName extends string> {
1347
2012
  /**
1348
- * 菜单栏是否显示
2013
+ * 菜单栏是否隐藏,设置为true, 则整个菜单栏不显示
1349
2014
  */
1350
- visible?: boolean;
2015
+ hidden?: boolean;
1351
2016
  /**
1352
- * 是否禁用菜单栏所有功能
2017
+ * 是否禁用菜单栏所有功能。设置为true,菜单栏依旧显示,但所有菜单项为灰色不可点击
1353
2018
  */
1354
2019
  disabled?: boolean;
1355
2020
  /**
1356
- * 菜单栏一级菜单配置
2021
+ * 菜单栏一级菜单配置,指显示在菜单栏上的菜单项。
1357
2022
  */
1358
2023
  entries?: EditorMenuEntryConfig<TName>[];
1359
2024
  /**
1360
2025
  * 菜单栏功能按钮配置
2026
+ * 更加间接的配置项
1361
2027
  */
1362
- features?: Partial<EditorMenuFeatureButtonConfig<TName>>;
2028
+ features?: Partial<Record<TName, EditorMenuFeatureConfig>>;
1363
2029
  /**
1364
2030
  * 自定义按钮配置
1365
2031
  */
1366
- custom?: EditorMenuCustomButton[];
2032
+ custom?: (EditorMenuButtonMenuItemConfig<string> | EditorMenuLinkMenuItemConfig<string>)[];
1367
2033
  }
1368
2034
 
1369
2035
  /**
1370
2036
  * 编辑器基础模式接口
1371
2037
  */
1372
- declare interface EditorMode {
2038
+ export declare interface EditorMode {
1373
2039
  /**
1374
2040
  * 获取当前编辑器模式
1375
2041
  */
@@ -1388,7 +2054,7 @@ declare interface EditorMode {
1388
2054
  /**
1389
2055
  * 编辑器初始化的时相关的模式配置
1390
2056
  */
1391
- declare type EditorModeOptions = {
2057
+ export declare type EditorModeOptions = {
1392
2058
  type: 'standard';
1393
2059
  /**
1394
2060
  * 当 mode 为 `standard` 时,可以设置当前编辑器的权限模式
@@ -1406,12 +2072,12 @@ declare type EditorModeOptions = {
1406
2072
  * - `preview` 预览模式,只能查看内容
1407
2073
  * - `presentation` 演示模式,用作演示场景,演示模式下部分套件可以进行一些简单的编辑操作
1408
2074
  */
1409
- declare type EditorModeType = 'standard' | 'preview' | 'presentation';
2075
+ export declare type EditorModeType = 'standard' | 'preview' | 'presentation';
1410
2076
 
1411
2077
  /**
1412
2078
  * 编辑器初始化通用参数
1413
2079
  */
1414
- declare interface EditorOptions {
2080
+ export declare interface EditorOptions {
1415
2081
  /**
1416
2082
  * 编辑器初始化内容,可以是 string 或者 ArrayBuffer,
1417
2083
  * 也可以通过异步 Promise 加载
@@ -1425,6 +2091,14 @@ declare interface EditorOptions {
1425
2091
  * 当前操作编辑器的用户信息
1426
2092
  */
1427
2093
  user?: EditorUserOptions;
2094
+ /**
2095
+ * 匿名用户的缺省信息
2096
+ */
2097
+ anonymous?: EditorAnonymousOptions;
2098
+ /**
2099
+ * 当前文件信息
2100
+ */
2101
+ file?: EditorFileOptions;
1428
2102
  /**
1429
2103
  * i18n 相关设置
1430
2104
  */
@@ -1432,17 +2106,13 @@ declare interface EditorOptions {
1432
2106
  /**
1433
2107
  * 品牌相关设置
1434
2108
  */
1435
- brand?: EditorBrandOptions;
1436
- /**
1437
- * 工具栏相关设置
1438
- */
1439
- toolbar?: EditorToolbarOptions;
2109
+ brand?: MaybePromiseValue<EditorBrandOptions>;
1440
2110
  /**
1441
2111
  * 编辑器内部资源请求配置
1442
2112
  */
1443
2113
  assets?: EditorAssetsOptions;
1444
2114
  /**
1445
- * 编辑器内部超链接设置
2115
+ * 编辑器链接相关配置
1446
2116
  */
1447
2117
  link?: EditorLinkOptions;
1448
2118
  /**
@@ -1461,12 +2131,52 @@ declare interface EditorOptions {
1461
2131
  * 编辑器评论设置
1462
2132
  */
1463
2133
  comments?: EditorCommentsOptions;
2134
+ /**
2135
+ * 附件设置
2136
+ */
2137
+ attachment?: EditorAttachmentOptions;
2138
+ /**
2139
+ * 导出设置
2140
+ */
2141
+ export?: EditorExportOptions;
2142
+ /**
2143
+ * 解密设置
2144
+ */
2145
+ decryption?: EditorDecryptionOptions;
2146
+ /**
2147
+ * 网络请求设置
2148
+ */
2149
+ http?: HTTPProxy;
2150
+ /**
2151
+ * 编辑器渲染设置项
2152
+ */
2153
+ render?: EditorRenderOptions;
2154
+ /**
2155
+ * 编辑器 UI 相关
2156
+ */
2157
+ ui?: EditorUiOptions;
2158
+ /**
2159
+ * 编辑器卡点限制
2160
+ */
2161
+ checkpoints?: EditorCheckpointsOptions;
2162
+ /**
2163
+ * 编辑器工具箱设置
2164
+ */
2165
+ toolbox?: EditorToolboxOptions;
2166
+ /**
2167
+ * 编辑器历史设置
2168
+ */
2169
+ history?: EditorHistoryOptions;
2170
+ /**
2171
+ * 编辑器协作相关
2172
+ */
2173
+ collaboration?: EditorCollaborationOptions;
1464
2174
  }
1465
2175
 
1466
2176
  /**
1467
2177
  * 大纲目录接口
1468
2178
  */
1469
- declare interface EditorOutline<Content = unknown> {
2179
+ export declare interface EditorOutline<Content = unknown> {
1470
2180
  /**
1471
2181
  * 设置大纲目录是否可见
1472
2182
  * @param visible 是否可见
@@ -1494,7 +2204,7 @@ declare interface EditorOutline<Content = unknown> {
1494
2204
  /**
1495
2205
  * 大纲目录项条目
1496
2206
  */
1497
- declare interface EditorOutlineItem<Content = unknown> {
2207
+ export declare interface EditorOutlineItem<Content = unknown> {
1498
2208
  /**
1499
2209
  * 目录项 ID
1500
2210
  */
@@ -1513,7 +2223,7 @@ declare interface EditorOutlineItem<Content = unknown> {
1513
2223
  * 大纲目录初始化参数,
1514
2224
  * 用于配置大纲目录的行为和外观。
1515
2225
  */
1516
- declare interface EditorOutlineOptions {
2226
+ export declare interface EditorOutlineOptions {
1517
2227
  /**
1518
2228
  * 初始化编辑器时是否显示大纲目录,
1519
2229
  * 默认为 false。
@@ -1521,10 +2231,33 @@ declare interface EditorOutlineOptions {
1521
2231
  visible?: boolean;
1522
2232
  }
1523
2233
 
2234
+ export declare interface EditorPickedFile {
2235
+ /**
2236
+ * 文件大小
2237
+ */
2238
+ size: number;
2239
+ /**
2240
+ * 文件名
2241
+ */
2242
+ name: string;
2243
+ /**
2244
+ * 文件路径,仅显示有意义的相对路径,可用在上传文件夹和识别文件使用
2245
+ */
2246
+ path?: string;
2247
+ /**
2248
+ * 文件类型,mime-type
2249
+ */
2250
+ type: string;
2251
+ /**
2252
+ * 文件原始数据,用于给上传控件使用
2253
+ */
2254
+ raw: File;
2255
+ }
2256
+
1524
2257
  /**
1525
2258
  * 编辑器打印设置
1526
2259
  */
1527
- declare interface EditorPrintOptions {
2260
+ export declare interface EditorPrintOptions extends EditorFeatureConfig {
1528
2261
  /**
1529
2262
  * 部分套件如果绕过了编辑器预设的打印接口,直接通过拉起了浏览器的打印页面,这时打印页面无法获取到编辑器的内容,
1530
2263
  * 这种情况下就会 fallback 到这个 options 上,显示一个提示信息。
@@ -1532,16 +2265,30 @@ declare interface EditorPrintOptions {
1532
2265
  fallback?: {
1533
2266
  message: string;
1534
2267
  };
2268
+ }
2269
+
2270
+ /**
2271
+ * 远程文件上传
2272
+ */
2273
+ export declare interface EditorRemoteUploadableFile extends EditorBaseUploadableFile {
2274
+ src: string;
2275
+ name?: never;
2276
+ size?: never;
2277
+ mime?: never;
2278
+ raw?: never;
2279
+ }
2280
+
2281
+ export declare interface EditorRenderOptions {
1535
2282
  /**
1536
- * 是否禁用打印功能
2283
+ * 渲染的容器
1537
2284
  */
1538
- disabled?: boolean;
2285
+ container?: HTMLElement;
1539
2286
  }
1540
2287
 
1541
2288
  /**
1542
2289
  * 编辑器通用接口
1543
2290
  */
1544
- declare abstract class EditorSDK {
2291
+ export declare abstract class EditorSDK {
1545
2292
  protected options: EditorOptions;
1546
2293
  constructor(options: EditorOptions);
1547
2294
  /**
@@ -1557,38 +2304,103 @@ declare abstract class EditorSDK {
1557
2304
  * mount 应该在 init 之后调用。
1558
2305
  * @param root
1559
2306
  */
1560
- abstract mount(root: HTMLElement): Promise<void>;
2307
+ abstract mount(root: HTMLElement): Promise<void>;
2308
+ /**
2309
+ * 从根节点卸载编辑器,对应 `mount` 操作
2310
+ */
2311
+ abstract unmount(): Promise<void>;
2312
+ /**
2313
+ * 编辑器内容相关接口
2314
+ */
2315
+ abstract get content(): EditorContent;
2316
+ /**
2317
+ * 编辑器模式相关接口
2318
+ */
2319
+ abstract get mode(): EditorMode;
2320
+ /**
2321
+ * 编辑器评论相关接口
2322
+ * 部分环境不存在,如离线客户端
2323
+ */
2324
+ abstract get comments(): EditorComments | undefined;
2325
+ /**
2326
+ * 编辑器协作者相关接口
2327
+ * 部分环境不存在,如离线客户端
2328
+ */
2329
+ abstract get collaborators(): EditorCollaborators | undefined;
2330
+ /**
2331
+ * 编辑器历史相关接口
2332
+ * 部分环境不存在,如离线客户端
2333
+ */
2334
+ abstract get history(): EditorHistory | undefined;
2335
+ /**
2336
+ * 编辑器版本相关接口
2337
+ * 部分环境不存在,如离线客户端
2338
+ */
2339
+ abstract get version(): EditorVersion | undefined;
2340
+ }
2341
+
2342
+ /**
2343
+ * 编辑器在 `standard` 模式下的权限模式
2344
+ * - `editor` 编辑模式
2345
+ * - `viewer` 阅读模式
2346
+ * - `reviewer` 评论模式
2347
+ */
2348
+ export declare type EditorStandardRole = 'editor' | 'viewer' | 'reviewer';
2349
+
2350
+ /**
2351
+ * 上传任务回调
2352
+ */
2353
+ export declare interface EditorTaskCallbacks {
2354
+ /**
2355
+ * 上传进度回调
2356
+ * @param taskId
2357
+ * @param loaded
2358
+ * @param total
2359
+ * @param progress
2360
+ * @param data
2361
+ * @returns
2362
+ */
2363
+ onProgress?: (taskId: string, loaded: number, total: number, progress: number, data?: unknown) => void;
2364
+ /**
2365
+ * 上传错误回调
2366
+ * @param taskId
2367
+ * @param error
2368
+ * @returns
2369
+ */
2370
+ onError?: (taskId: string, error: Error) => void;
1561
2371
  /**
1562
- * 从根节点卸载编辑器,对应 `mount` 操作
2372
+ * 上传暂停回调
2373
+ * @param taskId
2374
+ * @returns
1563
2375
  */
1564
- abstract unmount(): Promise<void>;
2376
+ onPause?: (taskId: string) => void;
1565
2377
  /**
1566
- * 编辑器内容相关接口
2378
+ * 上传取消
2379
+ * @param taskId
2380
+ * @returns
1567
2381
  */
1568
- abstract get content(): EditorContent;
2382
+ onAbort?: (taskId: string) => void;
1569
2383
  /**
1570
- * 编辑器模式相关接口
2384
+ * 上传恢复
2385
+ * @param taskId
2386
+ * @returns
1571
2387
  */
1572
- abstract get mode(): EditorMode;
2388
+ onResume?: (taskId: string) => void;
1573
2389
  /**
1574
- * 编辑器评论相关接口
2390
+ * 上传完成回调
2391
+ * @param taskId
2392
+ * @param status
2393
+ * @param data
2394
+ * @returns
1575
2395
  */
1576
- abstract get comments(): EditorComments;
2396
+ onEnd?: (taskId: string, status: 'Error' | 'Finished' | 'Canceled', data: unknown) => void;
1577
2397
  }
1578
2398
 
1579
- /**
1580
- * 编辑器在 `standard` 模式下的权限模式
1581
- * - `editor` 编辑模式
1582
- * - `viewer` 阅读模式
1583
- * - `reviewer` 评论模式
1584
- */
1585
- declare type EditorStandardRole = 'editor' | 'viewer' | 'reviewer';
1586
-
1587
2399
  /**
1588
2400
  * 文本格式接口,
1589
2401
  * 包括设置、读取选区内文本的 BIUS、family、大小、颜色等
1590
2402
  */
1591
- declare interface EditorText<Color = string, TRangeValue = unknown> {
2403
+ export declare interface EditorText<Color = string, TRangeValue = unknown> {
1592
2404
  /**
1593
2405
  * 获取当前选区或指定选区内的文本格式状态
1594
2406
  */
@@ -1612,7 +2424,7 @@ declare interface EditorText<Color = string, TRangeValue = unknown> {
1612
2424
  /**
1613
2425
  * 文本格式状态
1614
2426
  */
1615
- declare interface EditorTextFormat<Color = string> {
2427
+ export declare interface EditorTextFormat<Color = string> {
1616
2428
  /**
1617
2429
  * 粗体
1618
2430
  */
@@ -1650,7 +2462,7 @@ declare interface EditorTextFormat<Color = string> {
1650
2462
  /**
1651
2463
  * 文本格式初始化选项
1652
2464
  */
1653
- declare interface EditorTextOptions<Color = string> {
2465
+ export declare interface EditorTextOptions<Color = string> {
1654
2466
  /**
1655
2467
  * 当前编辑器默认的文本格式
1656
2468
  */
@@ -1658,43 +2470,15 @@ declare interface EditorTextOptions<Color = string> {
1658
2470
  }
1659
2471
 
1660
2472
  /**
1661
- * 工具栏自定义按钮配置
1662
- */
1663
- declare interface EditorToolbarCustomButton extends Omit<EditorToolbarFeatureButton, 'name'> {
1664
- /**
1665
- * 自定义按钮名称
1666
- */
1667
- name: string;
1668
- /**
1669
- * 按钮点击事件
1670
- */
1671
- callback: () => void;
1672
- /**
1673
- * 按钮在工具栏中的位置,默认添加到工具栏所有按钮后面
1674
- */
1675
- index?: number;
1676
- }
1677
-
1678
- /**
1679
- * 工具栏自定义按钮配置
1680
- */
1681
- declare interface EditorToolbarCustomButtonConfig {
1682
- /**
1683
- * 按钮配置
1684
- */
1685
- [key: string]: EditorToolbarCustomButton;
1686
- }
1687
-
1688
- /**
1689
- * 工具栏内置功能按钮配置
2473
+ * 工具栏功能按钮配置(包括内置按钮和自定义按钮)
1690
2474
  */
1691
- declare interface EditorToolbarFeatureButton {
2475
+ export declare interface EditorToolbarFeatureButton<TName extends string> extends EditorFeatureConfig {
1692
2476
  /**
1693
- * 按钮类型
2477
+ * 按钮的唯一标识,用以确定配置的是哪个按钮。
1694
2478
  */
1695
- name: EditorToolbarFeatureButtonName;
2479
+ name?: TName;
1696
2480
  /**
1697
- * 按钮标签(显示文本)
2481
+ * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
1698
2482
  */
1699
2483
  label?: string;
1700
2484
  /**
@@ -1702,63 +2486,34 @@ declare interface EditorToolbarFeatureButton {
1702
2486
  */
1703
2487
  icon?: string;
1704
2488
  /**
1705
- * 按钮是否禁用
2489
+ * 按钮点击事件.接受一个函数,可以自定义点击事件。
1706
2490
  */
1707
- disabled?: boolean;
2491
+ callback?: () => void;
1708
2492
  /**
1709
- * 按钮提示文本
2493
+ * 按钮提示文本,鼠标悬浮到按钮上时显示的tooltip文字
1710
2494
  */
1711
2495
  tooltip?: string;
2496
+ /**
2497
+ * 按钮在工具栏中位置,不设置则按照默认位置
2498
+ */
2499
+ index?: number;
1712
2500
  }
1713
2501
 
1714
2502
  /**
1715
2503
  * 工具栏内置功能按钮配置
1716
2504
  */
1717
- declare type EditorToolbarFeatureButtonConfig = {
1718
- [key in EditorToolbarFeatureButtonName]?: EditorToolbarFeatureButton;
2505
+ export declare type EditorToolbarFeatureButtonConfig<TName extends string> = {
2506
+ [key in TName]?: EditorToolbarFeatureButton<key>;
1719
2507
  };
1720
2508
 
1721
- /**
1722
- * 工具栏内置功能按钮
1723
- */
1724
- declare type EditorToolbarFeatureButtonName =
1725
- /**
1726
- * 加粗
1727
- */
1728
- 'bold'
1729
- /**
1730
- * 斜体
1731
- */
1732
- | 'italic'
1733
- /**
1734
- * 下划线
1735
- */
1736
- | 'underline'
1737
- /**
1738
- * 删除线
1739
- */
1740
- | 'strikethrough'
1741
- /**
1742
- * 插入图片
1743
- */
1744
- | 'insertImage'
1745
- /**
1746
- * 插入链接
1747
- */
1748
- | 'insertLink'
1749
- /**
1750
- * 限制编辑
1751
- */
1752
- | 'restriction';
1753
-
1754
2509
  /**
1755
2510
  * 工具栏相关设置,可以控制工具栏的显示内容
1756
2511
  */
1757
- declare interface EditorToolbarOptions {
2512
+ export declare interface EditorToolbarOptions<TName extends string> {
1758
2513
  /**
1759
2514
  * 控制工具栏显隐状态
1760
2515
  */
1761
- visible?: boolean;
2516
+ hidden?: boolean;
1762
2517
  /**
1763
2518
  * 是否禁用工具栏所有功能
1764
2519
  */
@@ -1766,17 +2521,142 @@ declare interface EditorToolbarOptions {
1766
2521
  /**
1767
2522
  * 现有按钮的功能配置
1768
2523
  */
1769
- features?: EditorToolbarFeatureButtonConfig;
2524
+ features?: EditorToolbarFeatureButtonConfig<TName>;
1770
2525
  /**
1771
2526
  * 自定义按钮
1772
2527
  */
1773
- custom?: EditorToolbarCustomButtonConfig;
2528
+ custom?: EditorToolbarFeatureButtonConfig<string>;
2529
+ }
2530
+
2531
+ /**
2532
+ * 编辑器工具箱配置选项接口
2533
+ */
2534
+ export declare interface EditorToolboxOptions {
2535
+ /**
2536
+ * 获取工具箱配置
2537
+ * @param attachGuidList - 附件GUID列表
2538
+ * @returns 返回工具箱工具项列表
2539
+ */
2540
+ getToolbox?: (attachGuidList: string[]) => Promise<{
2541
+ tools: ToolboxToolItem[];
2542
+ }>;
2543
+ }
2544
+
2545
+ /**
2546
+ * 编辑器UI选项接口
2547
+ * 定义了编辑器可以使用的UI相关功能
2548
+ */
2549
+ export declare interface EditorUiOptions {
2550
+ /**
2551
+ * 侧边栏
2552
+ */
2553
+ sidebar?: {
2554
+ /**
2555
+ * 打开使用指南/快捷键侧边栏
2556
+ */
2557
+ open?: (activeKey: 'userGuide' | 'shortcut') => void;
2558
+ };
2559
+ /**
2560
+ * 升级弹窗
2561
+ */
2562
+ upgrade?: {
2563
+ /**
2564
+ * 显示升级弹窗
2565
+ */
2566
+ showModal?: (options: ShowUpgradeModalProps) => Promise<ShowUpgradeModalResponse>;
2567
+ };
2568
+ notification?: {
2569
+ /**
2570
+ * 渲染通知条
2571
+ */
2572
+ render?: (params: RenderNotificationProps) => void;
2573
+ };
2574
+ /**
2575
+ * 用户名片
2576
+ */
2577
+ userCard?: {
2578
+ /**
2579
+ * 需要排除的用户卡片字段(不会在用户卡片中展示)
2580
+ */
2581
+ excludeFields?: string[];
2582
+ /**
2583
+ * 渲染用户卡片
2584
+ */
2585
+ render?: (params: RenderUserCardProps) => RenderUserCardResult;
2586
+ };
2587
+ /**
2588
+ * toast
2589
+ */
2590
+ toast?: {
2591
+ /**
2592
+ * 显示自定义toast
2593
+ */
2594
+ show?: (options: ShowToastOptions) => void;
2595
+ /**
2596
+ * 是否禁用toast
2597
+ */
2598
+ disabled?: boolean;
2599
+ };
2600
+ /**
2601
+ * confirm
2602
+ */
2603
+ confirm?: {
2604
+ /**
2605
+ * 显示自定义confirm
2606
+ */
2607
+ show?: (options: ShowConfirmOptions) => void;
2608
+ /**
2609
+ * 是否禁用confirm
2610
+ */
2611
+ disabled?: boolean;
2612
+ };
2613
+ }
2614
+
2615
+ export declare type EditorUploadableFile = EditorLocalUploadableFile;
2616
+
2617
+ /**
2618
+ * 文件开始上传入参
2619
+ */
2620
+ export declare interface EditorUploadStartOptions extends EditorUploadTaskCallbacks {
2621
+ files: EditorUploadableFile[];
2622
+ }
2623
+
2624
+ /**
2625
+ * 上传状态
2626
+ */
2627
+ export declare enum EditorUploadStatus {
2628
+ Waiting = "Waiting",
2629
+ Uploading = "Uploading",
2630
+ Paused = "Paused",
2631
+ Canceled = "Canceled",
2632
+ Error = "Error",
2633
+ Finished = "Finished"
2634
+ }
2635
+
2636
+ export declare type EditorUploadTaskCallbacks = Omit<EditorTaskCallbacks, 'onEnd'> & {
2637
+ onLoadend: (results: {
2638
+ taskId: string;
2639
+ status: 'Error' | 'Finished' | 'Canceled';
2640
+ data?: unknown;
2641
+ }[]) => void;
2642
+ };
2643
+
2644
+ /**
2645
+ * 上传任务信息
2646
+ */
2647
+ export declare interface EditorUploadTaskInfo {
2648
+ taskId: string;
2649
+ fileInfo: EditorUploadableFile;
2650
+ total: number;
2651
+ readonly loaded: number;
2652
+ readonly progress: number;
2653
+ readonly status: EditorUploadStatus;
1774
2654
  }
1775
2655
 
1776
2656
  /**
1777
2657
  * 操作当前编辑器的用户信息
1778
2658
  */
1779
- declare interface EditorUserOptions {
2659
+ export declare interface EditorUserOptions {
1780
2660
  /**
1781
2661
  * 用户 ID,用于标识用户
1782
2662
  */
@@ -1789,12 +2669,23 @@ declare interface EditorUserOptions {
1789
2669
  * 用户头像
1790
2670
  */
1791
2671
  avatar?: string;
2672
+ /**
2673
+ * 用户默认头像,当用户未设置头像时显示
2674
+ */
2675
+ defaultAvatar?: string;
2676
+ }
2677
+
2678
+ export declare interface EditorVersion {
2679
+ /**
2680
+ * 保存版本
2681
+ */
2682
+ createRevision: () => void;
1792
2683
  }
1793
2684
 
1794
2685
  /**
1795
2686
  * 编辑器外部水印信息
1796
2687
  */
1797
- declare interface EditorWatermarkOptions {
2688
+ export declare interface EditorWatermarkOptions {
1798
2689
  /**
1799
2690
  * 获取用作初始化使用的默认水印
1800
2691
  */
@@ -1806,7 +2697,7 @@ declare interface EditorWatermarkOptions {
1806
2697
  required?: boolean;
1807
2698
  }
1808
2699
 
1809
- declare type EditorWatermarkResource = {
2700
+ export declare type EditorWatermarkResource = {
1810
2701
  type: 'data-url';
1811
2702
  url: string;
1812
2703
  } | {
@@ -1814,21 +2705,101 @@ declare type EditorWatermarkResource = {
1814
2705
  url: string;
1815
2706
  };
1816
2707
 
2708
+ export declare enum FeatureStatus {
2709
+ /**
2710
+ * 隐藏
2711
+ */
2712
+ Hidden = 0,
2713
+ /**
2714
+ * 正常
2715
+ */
2716
+ Normal = 1,
2717
+ /**
2718
+ * 禁用
2719
+ */
2720
+ Disabled = 2
2721
+ }
2722
+
2723
+ export declare interface FileLinkParams {
2724
+ /**
2725
+ * 文件guid
2726
+ */
2727
+ fileGuid: string;
2728
+ /**
2729
+ * 文件类型,如docs,sheets
2730
+ */
2731
+ type: string;
2732
+ /**
2733
+ * 用于定位到 mention、评论等位置。
2734
+ */
2735
+ hash?: string;
2736
+ /**
2737
+ * 其他自定义字段
2738
+ */
2739
+ [key: string]: unknown;
2740
+ }
2741
+
2742
+ /**
2743
+ * 文件子类型枚举
2744
+ */
2745
+ export declare enum FileSubtype {
2746
+ /** 专业版幻灯片 */
2747
+ ProSlide = -10,
2748
+ /** 白板 */
2749
+ Whiteboard = -9,
2750
+ /** 表单 */
2751
+ Form = -8,
2752
+ /** 思维导图 */
2753
+ Mind = -7,
2754
+ /** 专业文档 */
2755
+ ProDoc = -6,
2756
+ /** 幻灯片 */
2757
+ Slide = -5,
2758
+ /** 新表格 */
2759
+ NewSheet = -4,
2760
+ /** 老表格 */
2761
+ Sheet = -3,
2762
+ /** 新文档 */
2763
+ NewDoc = -2,
2764
+ /** 老老表格 */
2765
+ OldSheet = -1,
2766
+ /** 旧文档 */
2767
+ OldDoc = 0,
2768
+ /** 文件夹 */
2769
+ Folder = 1,
2770
+ /** 协作 */
2771
+ Collaboration = 2
2772
+ }
2773
+
2774
+ /**
2775
+ * 文件类型枚举
2776
+ */
2777
+ export declare enum FileType {
2778
+ /** 未知类型 */
2779
+ Unknown = 0,
2780
+ /** 文件夹或空间 */
2781
+ FolderOrSpace = 1,
2782
+ /** 石墨文件 */
2783
+ ShimoFile = 2,
2784
+ /** 云文件 */
2785
+ CloudFile = 3
2786
+ }
2787
+
1817
2788
  /**
1818
2789
  * 请求、响应头
1819
2790
  */
1820
- declare type HTTPHeaders = Record<string, string | number | boolean | undefined>;
2791
+ export declare type HTTPHeaders = Record<string, string | number | boolean | undefined>;
1821
2792
 
1822
2793
  /**
1823
2794
  * 请求方法
1824
2795
  */
1825
- declare type HTTPMethod = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH';
2796
+ export declare type HTTPMethod = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH';
1826
2797
 
1827
2798
  /**
1828
2799
  * HTTP 代理,用于抽象 HTTP 请求,
1829
2800
  * 将请求代理编辑器外部
1830
2801
  */
1831
- declare interface HTTPProxy {
2802
+ export declare interface HTTPProxy {
1832
2803
  /**
1833
2804
  * 发送请求,如果需要做请求、响应拦截,需要在 proxy.interceptors 中实现,
1834
2805
  * 套件内使用 proxy 发送请求的方式应该为类似如下方式:
@@ -1875,7 +2846,7 @@ declare interface HTTPProxy {
1875
2846
  /**
1876
2847
  * 请求配置
1877
2848
  */
1878
- declare interface HTTPRequestConfig<Data = unknown> {
2849
+ export declare interface HTTPRequestConfig<Data = unknown> {
1879
2850
  /**
1880
2851
  * 请求地址
1881
2852
  */
@@ -1901,7 +2872,7 @@ declare interface HTTPRequestConfig<Data = unknown> {
1901
2872
  /**
1902
2873
  * 响应数据
1903
2874
  */
1904
- declare interface HTTPResponse<Data = unknown> {
2875
+ export declare interface HTTPResponse<Data = unknown> {
1905
2876
  /**
1906
2877
  * 响应数据 body
1907
2878
  */
@@ -1919,8 +2890,262 @@ declare interface HTTPResponse<Data = unknown> {
1919
2890
  /**
1920
2891
  * 请求返回类型
1921
2892
  */
1922
- declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
2893
+ export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
2894
+
2895
+ export declare interface Limitation {
2896
+ /**
2897
+ * 限制原因(错误码)
2898
+ */
2899
+ code?: number;
2900
+ /**
2901
+ * 单位(不参与计算,仅作显示)
2902
+ * minutes、MB
2903
+ */
2904
+ unit?: string;
2905
+ /**
2906
+ * 描述
2907
+ */
2908
+ desc?: string;
2909
+ /**
2910
+ * min/max int64 默认表示 MB/个/分钟/行
2911
+ */
2912
+ max?: number;
2913
+ min?: number;
2914
+ }
2915
+
2916
+ export declare type MaybePromiseValue<T> = T | Promise<T>;
2917
+
2918
+ /**
2919
+ * 升级弹窗类型
2920
+ * 个人版或企业版
2921
+ */
2922
+ export declare type OpenType = 'personal' | 'enterprise';
2923
+
2924
+ export declare interface RenderNotificationProps {
2925
+ /**
2926
+ * 渲染的容器
2927
+ */
2928
+ container: HTMLElement;
2929
+ /**
2930
+ * 自定义样式,实际类型为React.CSSProperties
2931
+ */
2932
+ style?: Record<string, string | number>;
2933
+ }
2934
+
2935
+ export declare interface RenderUserCardProps {
2936
+ uid: string | number;
2937
+ rect: {
2938
+ left: number;
2939
+ top: number;
2940
+ width: number;
2941
+ height: number;
2942
+ hasReducedHeaderHeight?: boolean;
2943
+ };
2944
+ position?: 'top' | 'left' | 'right' | 'bottom' | 'left_top' | 'left_bottom' | 'right_top' | 'bottom_top' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right';
2945
+ trigger: 'hover' | 'click';
2946
+ }
2947
+
2948
+ export declare interface RenderUserCardResult {
2949
+ /**
2950
+ * 关闭用户卡片
2951
+ */
2952
+ close: (force?: boolean) => void;
2953
+ }
2954
+
2955
+ /**
2956
+ * 升级操作结果类型枚举
2957
+ */
2958
+ export declare enum ResultType {
2959
+ /** 操作成功 */
2960
+ Success = "success",
2961
+ /** 用户取消操作 */
2962
+ Cancel = "cancel",
2963
+ /** 发生错误 */
2964
+ Error = "error",
2965
+ /** 跳转(目前仅在企业版用户过期时返回) */
2966
+ Redirect = "redirect"
2967
+ }
2968
+
2969
+ export declare interface SaveContext {
2970
+ clientId: string;
2971
+ }
2972
+
2973
+ export declare interface SaveStatusDelegation {
2974
+ /**
2975
+ * 保存状态发生变化时触发回调
2976
+ * @param state
2977
+ * @returns
2978
+ */
2979
+ onChangeState: (state: unknown, context: SaveContext) => void;
2980
+ /**
2981
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
2982
+ * @param error
2983
+ * @returns
2984
+ */
2985
+ onError: (error: unknown, context: SaveContext) => void;
2986
+ }
2987
+
2988
+ /**
2989
+ * 付费场景类型
2990
+ */
2991
+ export declare type Scene = 'history' | 'version' | 'public' | 'search' | 'attachments';
2992
+
2993
+ export declare interface ShowConfirmOptions {
2994
+ /**
2995
+ * 确认框标题
2996
+ */
2997
+ title: string;
2998
+ /**
2999
+ * 确认框描述
3000
+ */
3001
+ description: string;
3002
+ /**
3003
+ * 确认按钮配置
3004
+ */
3005
+ confirmButton?: ConfirmButtonConfig;
3006
+ /**
3007
+ * 取消按钮配置
3008
+ */
3009
+ cancelButton?: ConfirmButtonConfig;
3010
+ }
3011
+
3012
+ export declare interface ShowToastOptions {
3013
+ /**
3014
+ * toast标题
3015
+ */
3016
+ title: string;
3017
+ /**
3018
+ * toast类型
3019
+ */
3020
+ type: 'success' | 'error' | 'warn' | 'info';
3021
+ /**
3022
+ * 显示时长,默认3s
3023
+ */
3024
+ duration?: number;
3025
+ /**
3026
+ * 是否自动隐藏,默认true
3027
+ */
3028
+ autoHide?: boolean;
3029
+ }
3030
+
3031
+ /**
3032
+ * 升级弹窗配置选项接口
3033
+ */
3034
+ export declare interface ShowUpgradeModalProps {
3035
+ /** 打开个人升级弹窗还是企业弹窗 */
3036
+ openType: OpenType;
3037
+ /** 触发功能的Key值 */
3038
+ serviceKey: string;
3039
+ /** 文件类型(如果业务能够获取到则为必传) */
3040
+ fileType?: FileType;
3041
+ /** 文件子类型(如果业务能够获取到则为必传) */
3042
+ fileSubtype?: FileSubtype;
3043
+ /** 付费场景,用于升级弹窗的定制化文案显示 */
3044
+ scene?: Scene;
3045
+ }
3046
+
3047
+ /**
3048
+ * 升级弹窗响应接口
3049
+ */
3050
+ export declare interface ShowUpgradeModalResponse {
3051
+ /** 操作结果 */
3052
+ result: ResultType;
3053
+ /** 错误信息(供开发人员查看) */
3054
+ errorMsg?: string;
3055
+ }
3056
+
3057
+ /**
3058
+ * 演讲者信息接口
3059
+ * 包含演讲者的基本信息
3060
+ */
3061
+ export declare interface Speaker {
3062
+ /** 演讲者ID */
3063
+ id: number;
3064
+ /** 演讲者姓名 */
3065
+ name: string;
3066
+ /** 演讲者头像URL */
3067
+ avatar: string;
3068
+ }
3069
+
3070
+ export declare interface SyncContext {
3071
+ clientId: string;
3072
+ timestamp: number;
3073
+ }
3074
+
3075
+ export declare interface SyncStatusDelegation {
3076
+ /**
3077
+ * 同步状态发生变化时触发回调
3078
+ * @param state
3079
+ * @param context
3080
+ * @returns
3081
+ */
3082
+ onChangeState: (state: unknown, context: SyncContext) => void;
3083
+ /**
3084
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
3085
+ * @param error
3086
+ * @param context
3087
+ * @returns
3088
+ */
3089
+ onError: (error: unknown, context: SyncContext) => void;
3090
+ }
3091
+
3092
+ /**
3093
+ * 工具箱工具项接口
3094
+ */
3095
+ export declare interface ToolboxToolItem {
3096
+ /** 工具类型 */
3097
+ type: ToolTypes;
3098
+ /** 工具名称 */
3099
+ name: string;
3100
+ /** 工具图标 */
3101
+ icon: string;
3102
+ /** 工具分组 */
3103
+ group: ToolGroupTypes;
3104
+ /** 分组名称 */
3105
+ groupName: string;
3106
+ /** 是否为测试版功能 */
3107
+ isBeta: boolean;
3108
+ /** 工具回调函数 */
3109
+ callback: () => Promise<{
3110
+ result: 'success' | 'failed';
3111
+ error?: unknown;
3112
+ }>;
3113
+ }
3114
+
3115
+ /**
3116
+ * 工具分组类型枚举
3117
+ */
3118
+ export declare enum ToolGroupTypes {
3119
+ /** 转换工具组 */
3120
+ Convert = "convert",
3121
+ /** 处理工具组 */
3122
+ Processing = "processing",
3123
+ /** 智能工具组 */
3124
+ Intelligent = "intelligent"
3125
+ }
1923
3126
 
1924
- declare type MaybePromiseValue<T> = T | Promise<T>;
3127
+ /**
3128
+ * 工具类型枚举
3129
+ */
3130
+ export declare enum ToolTypes {
3131
+ /** PDF转Word */
3132
+ PdfToWord = "pdfToWord",
3133
+ /** PDF转Excel */
3134
+ PdfToExcel = "pdfToExcel",
3135
+ /** PDF转PPT */
3136
+ PdfToPpt = "pdfToPpt",
3137
+ /** 图片转PDF */
3138
+ ImgToPdf = "imgToPdf",
3139
+ /** PDF合并 */
3140
+ PdfMerge = "pdfMerge",
3141
+ /** PDF拆分 */
3142
+ PdfSplit = "pdfSplit",
3143
+ /** 文件内容提取 */
3144
+ FileContentExtraction = "fileContentExtraction",
3145
+ /** 图片转文字 */
3146
+ COR = "imgToText",
3147
+ /** 音频转文字 */
3148
+ STT = "audioToText"
3149
+ }
1925
3150
 
1926
3151
  export { }