@officesdk/editor-sdk-core 0.0.0-22 → 0.0.0-23

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 (259) hide show
  1. package/cjs/docs/sdk.js +1 -1
  2. package/cjs/docx/index.js +1 -1
  3. package/cjs/docx/menu.js +1 -1
  4. package/cjs/docx/outline.js +1 -1
  5. package/cjs/docx/pages.js +17 -1
  6. package/cjs/docx/paragraphs.js +3 -0
  7. package/cjs/docx/revisions.js +3 -0
  8. package/cjs/docx/sdk.js +1 -1
  9. package/cjs/docx/signature.js +3 -0
  10. package/cjs/docx/statistic.js +3 -0
  11. package/cjs/docx/theme.js +1 -1
  12. package/cjs/docx/ui.js +3 -0
  13. package/cjs/form/feature.js +3 -0
  14. package/cjs/form/index.js +21 -0
  15. package/cjs/form/link.js +3 -0
  16. package/cjs/form/publish.js +3 -0
  17. package/cjs/form/sdk.js +28 -0
  18. package/cjs/form/sheet.js +3 -0
  19. package/cjs/form/table.js +3 -0
  20. package/cjs/form/ui.js +3 -0
  21. package/cjs/pdf/pages.js +1 -1
  22. package/cjs/presentation/anonymous.js +3 -0
  23. package/cjs/presentation/assistant.js +3 -0
  24. package/cjs/presentation/chart.js +3 -0
  25. package/cjs/presentation/comments.js +3 -0
  26. package/cjs/presentation/diagram.js +3 -0
  27. package/cjs/presentation/event-subscription.js +3 -0
  28. package/cjs/presentation/export.js +1 -1
  29. package/cjs/presentation/fonts.js +1 -1
  30. package/cjs/presentation/index.js +1 -1
  31. package/cjs/presentation/presentation.js +3 -0
  32. package/cjs/presentation/remote-live.js +3 -0
  33. package/cjs/presentation/sdk.js +1 -1
  34. package/cjs/presentation/slides-pane.js +3 -0
  35. package/cjs/presentation/theme.js +3 -0
  36. package/cjs/shared/assets.js +1 -1
  37. package/cjs/shared/attachment.js +1 -1
  38. package/cjs/shared/brand.js +1 -1
  39. package/cjs/shared/collaborators.js +1 -1
  40. package/cjs/shared/comments.js +1 -1
  41. package/cjs/shared/copy.js +3 -0
  42. package/cjs/shared/device.js +3 -0
  43. package/cjs/shared/download.js +1 -2
  44. package/cjs/shared/drag-n-drop.js +6 -0
  45. package/cjs/shared/duplicate.js +6 -0
  46. package/cjs/shared/edit.js +2 -0
  47. package/cjs/shared/editor.js +1 -1
  48. package/cjs/shared/export.js +1 -1
  49. package/cjs/shared/feature.js +1 -1
  50. package/cjs/shared/file.js +1 -1
  51. package/cjs/shared/follow-mode.js +1 -1
  52. package/cjs/shared/fonts.js +1 -1
  53. package/cjs/shared/guides.js +3 -0
  54. package/cjs/shared/history.js +1 -1
  55. package/cjs/shared/import.js +1 -1
  56. package/cjs/shared/index.js +1 -1
  57. package/cjs/shared/link.js +1 -1
  58. package/cjs/shared/logs.js +3 -0
  59. package/cjs/shared/mention.js +1 -1
  60. package/cjs/shared/menu.js +1 -1
  61. package/cjs/shared/mode.js +1 -1
  62. package/cjs/shared/outline.js +1 -1
  63. package/cjs/shared/paste.js +3 -0
  64. package/cjs/shared/presentation.js +3 -0
  65. package/cjs/shared/render.js +3 -0
  66. package/cjs/shared/share.js +3 -0
  67. package/cjs/shared/shortcut.js +3 -0
  68. package/cjs/shared/socket.js +3 -0
  69. package/cjs/shared/toolbar.js +1 -1
  70. package/cjs/shared/ui.js +1 -1
  71. package/cjs/shared/uploader.js +1 -1
  72. package/cjs/shared/version.js +1 -1
  73. package/cjs/shared/watermark.js +1 -1
  74. package/cjs/sheet/combine-sheets.js +1 -1
  75. package/cjs/sheet/date-mention.js +3 -0
  76. package/cjs/sheet/event-subscription.js +3 -0
  77. package/cjs/sheet/export.js +1 -1
  78. package/cjs/sheet/follow-selection.js +3 -0
  79. package/cjs/sheet/form.js +1 -1
  80. package/cjs/sheet/formula.js +1 -1
  81. package/cjs/sheet/import-range.js +1 -1
  82. package/cjs/sheet/import.js +3 -0
  83. package/cjs/sheet/independent-viewport.js +3 -0
  84. package/cjs/sheet/index.js +1 -1
  85. package/cjs/sheet/lock.js +1 -1
  86. package/cjs/sheet/ole.js +3 -0
  87. package/cjs/sheet/paste.js +3 -0
  88. package/cjs/sheet/render.js +1 -1
  89. package/cjs/sheet/sdk.js +1 -1
  90. package/cjs/sheet/sheet-tab.js +3 -0
  91. package/cjs/sheet/ui.js +3 -0
  92. package/cjs/sheet/worksheet.js +1 -1
  93. package/cjs/table/combine-tables.js +3 -0
  94. package/cjs/table/copy.js +3 -0
  95. package/cjs/table/dashboard.js +3 -0
  96. package/cjs/table/explain-page.js +3 -0
  97. package/cjs/table/export.js +3 -0
  98. package/cjs/table/field.js +3 -0
  99. package/cjs/table/form.js +3 -0
  100. package/cjs/table/formula.js +3 -0
  101. package/cjs/table/history.js +3 -0
  102. package/cjs/table/import.js +3 -0
  103. package/cjs/table/index.js +6 -2
  104. package/cjs/table/list-bar-context-menu.js +3 -0
  105. package/cjs/table/mention.js +3 -0
  106. package/cjs/table/motable.js +16 -0
  107. package/cjs/table/paste.js +3 -0
  108. package/cjs/table/render.js +3 -0
  109. package/cjs/table/resource.js +1 -1
  110. package/cjs/table/sdk.js +1 -1
  111. package/cjs/table/shortcuts.js +3 -0
  112. package/cjs/table/snapshot.js +3 -0
  113. package/cjs/table/subscription.js +25 -0
  114. package/cjs/table/table.js +1 -1
  115. package/cjs/table/template.js +3 -0
  116. package/cjs/table/toolbar.js +1 -1
  117. package/cjs/table/toolbox.js +3 -0
  118. package/cjs/table/ui.js +3 -0
  119. package/cjs/table/version.js +3 -0
  120. package/cjs/table/view.js +26 -0
  121. package/cjs/table/window.js +3 -0
  122. package/esm/docs/sdk.js +1 -1
  123. package/esm/docx/index.js +1 -1
  124. package/esm/docx/menu.js +1 -1
  125. package/esm/docx/outline.js +1 -1
  126. package/esm/docx/pages.js +15 -2
  127. package/esm/docx/paragraphs.js +2 -0
  128. package/esm/docx/revisions.js +2 -0
  129. package/esm/docx/sdk.js +1 -1
  130. package/esm/docx/signature.js +2 -0
  131. package/esm/docx/statistic.js +2 -0
  132. package/esm/docx/theme.js +1 -1
  133. package/esm/docx/ui.js +2 -0
  134. package/esm/form/feature.js +2 -0
  135. package/esm/form/index.js +3 -0
  136. package/esm/form/link.js +2 -0
  137. package/esm/form/publish.js +2 -0
  138. package/esm/form/sdk.js +25 -0
  139. package/esm/form/sheet.js +2 -0
  140. package/esm/form/table.js +2 -0
  141. package/esm/form/ui.js +2 -0
  142. package/esm/pdf/pages.js +1 -1
  143. package/esm/presentation/anonymous.js +2 -0
  144. package/esm/presentation/assistant.js +2 -0
  145. package/esm/presentation/chart.js +2 -0
  146. package/esm/presentation/comments.js +2 -0
  147. package/esm/presentation/diagram.js +2 -0
  148. package/esm/presentation/event-subscription.js +2 -0
  149. package/esm/presentation/export.js +1 -1
  150. package/esm/presentation/fonts.js +1 -1
  151. package/esm/presentation/index.js +1 -1
  152. package/esm/presentation/presentation.js +2 -0
  153. package/esm/presentation/remote-live.js +2 -0
  154. package/esm/presentation/sdk.js +1 -1
  155. package/esm/presentation/slides-pane.js +2 -0
  156. package/esm/presentation/theme.js +2 -0
  157. package/esm/shared/assets.js +1 -1
  158. package/esm/shared/attachment.js +1 -1
  159. package/esm/shared/brand.js +1 -1
  160. package/esm/shared/collaborators.js +1 -1
  161. package/esm/shared/comments.js +1 -1
  162. package/esm/shared/copy.js +2 -0
  163. package/esm/shared/device.js +2 -0
  164. package/esm/shared/download.js +2 -2
  165. package/esm/shared/drag-n-drop.js +5 -0
  166. package/esm/shared/duplicate.js +5 -0
  167. package/esm/shared/edit.js +2 -0
  168. package/esm/shared/editor.js +1 -1
  169. package/esm/shared/export.js +1 -1
  170. package/esm/shared/feature.js +1 -1
  171. package/esm/shared/file.js +1 -1
  172. package/esm/shared/follow-mode.js +1 -1
  173. package/esm/shared/fonts.js +1 -1
  174. package/esm/shared/guides.js +2 -0
  175. package/esm/shared/history.js +1 -1
  176. package/esm/shared/import.js +1 -1
  177. package/esm/shared/index.js +1 -1
  178. package/esm/shared/link.js +1 -1
  179. package/esm/shared/logs.js +2 -0
  180. package/esm/shared/mention.js +1 -1
  181. package/esm/shared/menu.js +1 -1
  182. package/esm/shared/mode.js +1 -1
  183. package/esm/shared/outline.js +1 -1
  184. package/esm/shared/paste.js +2 -0
  185. package/esm/shared/presentation.js +2 -0
  186. package/esm/shared/render.js +2 -0
  187. package/esm/shared/share.js +2 -0
  188. package/esm/shared/shortcut.js +2 -0
  189. package/esm/shared/socket.js +2 -0
  190. package/esm/shared/toolbar.js +1 -1
  191. package/esm/shared/ui.js +1 -1
  192. package/esm/shared/uploader.js +1 -1
  193. package/esm/shared/version.js +1 -1
  194. package/esm/shared/watermark.js +1 -1
  195. package/esm/sheet/combine-sheets.js +1 -1
  196. package/esm/sheet/date-mention.js +2 -0
  197. package/esm/sheet/event-subscription.js +2 -0
  198. package/esm/sheet/export.js +1 -1
  199. package/esm/sheet/follow-selection.js +2 -0
  200. package/esm/sheet/form.js +1 -1
  201. package/esm/sheet/formula.js +1 -1
  202. package/esm/sheet/import-range.js +1 -1
  203. package/esm/sheet/import.js +2 -0
  204. package/esm/sheet/independent-viewport.js +2 -0
  205. package/esm/sheet/index.js +1 -1
  206. package/esm/sheet/lock.js +1 -1
  207. package/esm/sheet/ole.js +2 -0
  208. package/esm/sheet/paste.js +2 -0
  209. package/esm/sheet/render.js +1 -1
  210. package/esm/sheet/sdk.js +1 -1
  211. package/esm/sheet/sheet-tab.js +2 -0
  212. package/esm/sheet/ui.js +2 -0
  213. package/esm/sheet/worksheet.js +1 -1
  214. package/esm/table/combine-tables.js +2 -0
  215. package/esm/table/copy.js +2 -0
  216. package/esm/table/dashboard.js +2 -0
  217. package/esm/table/explain-page.js +2 -0
  218. package/esm/table/export.js +2 -0
  219. package/esm/table/field.js +2 -0
  220. package/esm/table/form.js +2 -0
  221. package/esm/table/formula.js +2 -0
  222. package/esm/table/history.js +2 -0
  223. package/esm/table/import.js +2 -0
  224. package/esm/table/index.js +3 -1
  225. package/esm/table/list-bar-context-menu.js +2 -0
  226. package/esm/table/mention.js +2 -0
  227. package/esm/table/motable.js +13 -0
  228. package/esm/table/paste.js +2 -0
  229. package/esm/table/render.js +2 -0
  230. package/esm/table/resource.js +1 -1
  231. package/esm/table/sdk.js +1 -1
  232. package/esm/table/shortcuts.js +2 -0
  233. package/esm/table/snapshot.js +2 -0
  234. package/esm/table/subscription.js +22 -0
  235. package/esm/table/table.js +1 -1
  236. package/esm/table/template.js +2 -0
  237. package/esm/table/toolbar.js +1 -1
  238. package/esm/table/toolbox.js +2 -0
  239. package/esm/table/ui.js +2 -0
  240. package/esm/table/version.js +2 -0
  241. package/esm/table/view.js +23 -0
  242. package/esm/table/window.js +2 -0
  243. package/package.json +1 -1
  244. package/types/combine.d.ts +2985 -265
  245. package/types/diagram.d.ts +823 -115
  246. package/types/docs.d.ts +850 -115
  247. package/types/docx.d.ts +1096 -119
  248. package/types/form.d.ts +3027 -0
  249. package/types/pdf.d.ts +829 -115
  250. package/types/presentation.d.ts +1088 -129
  251. package/types/shared.d.ts +823 -115
  252. package/types/sheet.d.ts +1112 -161
  253. package/types/table.d.ts +2097 -173
  254. package/cjs/shared/checkpoints.js +0 -19
  255. package/cjs/sheet/comments.js +0 -3
  256. package/cjs/sheet/font.js +0 -3
  257. package/esm/shared/checkpoints.js +0 -16
  258. package/esm/sheet/comments.js +0 -2
  259. package/esm/sheet/font.js +0 -2
@@ -51,17 +51,19 @@ export declare abstract class AbstractedPresentationSDK extends EditorSDK {
51
51
  * 文本格式接口
52
52
  */
53
53
  abstract get text(): PresentationText;
54
- }
55
-
56
- export declare type CheckLimitationResult = {
57
- status: 'limited';
58
54
  /**
59
- * 被限制原因
55
+ * 幻灯片评论接口
60
56
  */
61
- reason?: string;
62
- } | {
63
- status: 'unlimited';
64
- };
57
+ abstract get comments(): PresentationComments;
58
+ /**
59
+ * 事件订阅接口
60
+ */
61
+ abstract get eventSubscription(): PresentationEventSubscription;
62
+ /**
63
+ * 幻灯片演示模式接口
64
+ */
65
+ abstract get presentation(): PresentationOfPresentation;
66
+ }
65
67
 
66
68
  /**
67
69
  * 协作者信息接口
@@ -138,7 +140,7 @@ export declare interface EditorAssetsOssImageProcessing {
138
140
  quality?: number;
139
141
  maxWidth?: number;
140
142
  maxHeight?: number;
141
- }) => Promise<string>;
143
+ }) => string;
142
144
  /**
143
145
  * 裁切图片的方法
144
146
  * @param imageUrl 图片的 URL
@@ -146,12 +148,12 @@ export declare interface EditorAssetsOssImageProcessing {
146
148
  * @returns 裁切后的图片 URL
147
149
  */
148
150
  crop: (imageUrl: string, cropOptions: {
149
- x?: number;
150
- y?: number;
151
+ x: number;
152
+ y: number;
151
153
  w: number;
152
154
  h: number;
153
- g?: EditorImageCropPoint;
154
- }) => Promise<string>;
155
+ g: EditorImageCropPoint;
156
+ }) => string;
155
157
  }
156
158
 
157
159
  export declare interface EditorAssetsResolver {
@@ -160,13 +162,13 @@ export declare interface EditorAssetsResolver {
160
162
  * @param assetId 资源文件 ID
161
163
  * @returns 转换后的资源 URL ,如果无法转换则返回 null
162
164
  */
163
- resolveUrl: (assetId: string) => Promise<string | null>;
165
+ resolveUrl: (assetId: string) => string | null;
164
166
  /**
165
167
  * 从 URL 中解析资源文件 ID 的方法
166
168
  * @param url 资源 URL
167
169
  * @returns 解析出的资源文件 ID
168
170
  */
169
- parseId: (url: string) => Promise<string | null>;
171
+ parseId: (url: string) => string | null;
170
172
  /**
171
173
  * 检查资源文件 ID 对应的文件是否准备就绪,
172
174
  * 在部分环境中,资源文件需要异步导入,在编辑器加载的时候可能还未准备就绪
@@ -176,6 +178,28 @@ export declare interface EditorAssetsResolver {
176
178
  checkAssetReady: (assetId: string) => Promise<boolean> | boolean;
177
179
  }
178
180
 
181
+ /**
182
+ * 编辑器附件下载配置
183
+ */
184
+ export declare interface EditorAttachmentDownloadOptions {
185
+ /**
186
+ * 是否禁用下载
187
+ */
188
+ disabled?: boolean;
189
+ /**
190
+ * 是否跳过验证
191
+ */
192
+ skipValidate?: boolean;
193
+ /**
194
+ * 下载附件
195
+ */
196
+ download?: (url: string) => void;
197
+ /**
198
+ * 获取附件下载地址
199
+ */
200
+ getDownloadUrl?: (url: string) => Promise<string>;
201
+ }
202
+
179
203
  /**
180
204
  * 编辑器附件限制配置,sdk中会使用在不同的场景下使用不同的限制规则组合
181
205
  */
@@ -185,9 +209,9 @@ export declare interface EditorAttachmentLimitationOptions {
185
209
  * @param file
186
210
  * @returns
187
211
  */
188
- checkFile: (params: EditorAttachmentLimitationOptionsCheckFunctionParams) => Promise<{
212
+ checkFile?: (params: EditorAttachmentLimitationOptionsCheckFunctionParams) => Promise<{
189
213
  limited: true;
190
- message: string;
214
+ message?: string;
191
215
  } | {
192
216
  limited: false;
193
217
  }>;
@@ -236,9 +260,24 @@ export declare interface EditorAttachmentMaxSizeOptions {
236
260
  * 编辑器附件信息
237
261
  */
238
262
  export declare interface EditorAttachmentOptions {
263
+ /**
264
+ * 附件选择器
265
+ */
239
266
  picker?: EditorFilePicker;
267
+ /**
268
+ * 附件上传器
269
+ */
240
270
  uploader?: AbstractedEditorFileUploader;
271
+ /**
272
+ * 下载
273
+ * @deprecated, 使用不同类型附件的download配置
274
+ */
241
275
  download?: (url: string) => void;
276
+ /**
277
+ * 预览
278
+ * @deprecated, 使用不同类型附件的preview配置
279
+ */
280
+ preview?: (url: string) => void;
242
281
  /**
243
282
  * 图片附件相关配置
244
283
  */
@@ -256,9 +295,27 @@ export declare interface EditorAttachmentOptions {
256
295
  * 图片附件的限制配置
257
296
  */
258
297
  limitations?: EditorAttachmentLimitationOptions;
298
+ /**
299
+ * 禁止预览
300
+ * @deprecated 使用preview.disabled代替
301
+ */
302
+ disablePreview?: boolean;
303
+ /**
304
+ * 预览
305
+ */
306
+ preview?: EditorAttachmentPreviewOptions;
307
+ /**
308
+ * 下载
309
+ */
310
+ download?: EditorAttachmentDownloadOptions;
311
+ /**
312
+ * 是否禁用缩略图
313
+ * 桌面客户端/极速sdk需要禁用
314
+ */
315
+ disableThumbnail?: boolean;
259
316
  };
260
317
  /**
261
- * 其他附件相关配置
318
+ * 附件相关配置
262
319
  */
263
320
  attachment?: {
264
321
  /**
@@ -274,7 +331,92 @@ export declare interface EditorAttachmentOptions {
274
331
  * 附件的限制配置
275
332
  */
276
333
  limitations?: EditorAttachmentLimitationOptions;
334
+ /**
335
+ * 禁止预览
336
+ * @deprecated 使用preview.disabled代替
337
+ */
338
+ disablePreview?: boolean;
339
+ /**
340
+ * 预览
341
+ */
342
+ preview?: EditorAttachmentPreviewOptions;
343
+ /**
344
+ * 下载
345
+ */
346
+ download?: EditorAttachmentDownloadOptions;
347
+ };
348
+ /**
349
+ * 视频相关配置
350
+ */
351
+ video?: {
352
+ /**
353
+ * 支持的视频格式
354
+ */
355
+ supportTypes?: string[];
356
+ /**
357
+ * 视频的限制配置
358
+ */
359
+ limitations?: EditorAttachmentLimitationOptions;
360
+ /**
361
+ * 预览
362
+ */
363
+ preview?: EditorAttachmentPreviewOptions;
364
+ /**
365
+ * 下载
366
+ */
367
+ download?: EditorAttachmentDownloadOptions;
368
+ };
369
+ /**
370
+ * 音频相关配置
371
+ */
372
+ audio?: {
373
+ /**
374
+ * 支持的音频
375
+ */
376
+ supportTypes?: string[];
377
+ /**
378
+ * 音频的限制配置
379
+ */
380
+ limitations?: EditorAttachmentLimitationOptions;
381
+ /**
382
+ * 预览
383
+ */
384
+ preview?: EditorAttachmentPreviewOptions;
385
+ /**
386
+ * 下载
387
+ */
388
+ download?: EditorAttachmentDownloadOptions;
277
389
  };
390
+ /**
391
+ * 云文件附件相关配置
392
+ */
393
+ cloudFile?: {
394
+ /**
395
+ * 是否禁用云文件
396
+ */
397
+ disabled?: boolean;
398
+ };
399
+ }
400
+
401
+ /**
402
+ * 编辑器附件预览配置
403
+ */
404
+ export declare interface EditorAttachmentPreviewOptions {
405
+ /**
406
+ * 预览附件
407
+ * app, 桌面客户端需提供
408
+ */
409
+ preview?: (url: string) => void;
410
+ /**
411
+ * 获取附件预览url,saas、sdk、极速sdk需要提供
412
+ * @param id 文件url
413
+ * @returns 预览url
414
+ */
415
+ getPreviewUrl?: (url: string) => Promise<string>;
416
+ /**
417
+ * 是否禁用预览
418
+ */
419
+ disabled?: boolean;
278
420
  }
279
421
 
280
422
  /**
@@ -287,11 +429,19 @@ export declare interface EditorBaseUploadableFile {
287
429
  fileGuid: string;
288
430
  }
289
431
 
432
+ /**
433
+ * 品牌设置
434
+ */
435
+ export declare interface EditorBrandOptions {
436
+ enable: boolean;
437
+ getSettings: () => Promise<EditorBrandSetting | null>;
438
+ }
439
+
290
440
  /**
291
441
  * 品牌相关设置,
292
442
  * 用于在套件中展示品牌外露信息
293
443
  */
294
- export declare interface EditorBrandOptions {
444
+ export declare interface EditorBrandSetting {
295
445
  /**
296
446
  * 需要显示在品牌展示位的内容,按数组顺序显示
297
447
  */
@@ -312,24 +462,6 @@ export declare interface EditorBrandOptions {
312
462
  };
313
463
  }
314
464
 
315
- export declare interface EditorCheckpointsOptions {
316
- /**
317
- * 获取功能卡点限制
318
- * undefined代表无限制
319
- */
320
- getFeatureLimitation?: (key: string) => Limitation | undefined;
321
- /**
322
- * 检查是否超限
323
- * @param key 功能卡点key
324
- * @param value 功能卡点检查值,如文件大小/行列数量等
325
- */
326
- checkFeatureLimitation?: (key: string, value: number) => CheckLimitationResult;
327
- /**
328
- * 获取功能卡点状态,如某功能入口是否开启
329
- */
330
- getFeatureStatus?: (key: string) => FeatureStatus;
331
- }
332
-
333
465
  export declare interface EditorCollaborationOptions {
334
466
  /**
335
467
  * 是否允许离线编辑
@@ -371,23 +503,36 @@ export declare interface EditorCollaborators {
371
503
  * 停止监听协作者状态变化
372
504
  * 调用此方法后,将不再接收协作者进入/离开的事件
373
505
  */
374
- stop: () => void;
506
+ quit: () => void;
507
+ /**
508
+ * 监听事件
509
+ */
510
+ on: (event: string, callback: (...args: unknown[]) => void) => unknown;
511
+ /**
512
+ * 监听事件, 只监听一次
513
+ */
514
+ once: (event: string, callback: (...args: unknown[]) => void) => unknown;
515
+ /**
516
+ * 移除事件
517
+ */
518
+ off: (event: string, callback: (...args: unknown[]) => void) => unknown;
519
+ /**
520
+ * 发送事件
521
+ */
522
+ emit: (event: string, ...args: unknown[]) => unknown;
523
+ }
524
+
525
+ export declare interface EditorCollaboratorsOptions {
375
526
  /**
376
- * 添加协作者进入事件监听器
377
- * @param listener - 监听器回调函数,参数如下:
378
- * - allUsers: 当前所有协作者列表
379
- * - enteredUsers: 新进入的协作者列表
380
- * @returns 返回一个函数,调用该函数可以移除监听器
527
+ * 是否禁用
381
528
  */
382
- addUserEnterListener: (listener: (allUsers: CollaboratorInfo[], enteredUsers: CollaboratorInfo[]) => void) => () => void;
529
+ disabled?: boolean;
383
530
  /**
384
- * 添加协作者离开事件监听器
385
- * @param listener - 监听器回调函数
386
- * - allUsers: 当前所有协作者列表
387
- * - leftUsers: 离开的协作者列表
388
- * @returns 返回一个函数,调用该函数可以移除监听器
531
+ * 推送协作者socket 对象
532
+ * 实际类型为socketIO.client
533
+ * TODO: 抽象为接口
389
534
  */
390
- addUserLeaveListener: (listener: (allUsers: CollaboratorInfo[], leftUsers: CollaboratorInfo[]) => void) => () => void;
535
+ socket?: EditorSocket;
391
536
  }
392
537
 
393
538
  /**
@@ -451,6 +596,14 @@ export declare interface EditorComments {
451
596
  * 删除单条评论
452
597
  */
453
598
  deleteOne: (commentId: string) => Promise<boolean>;
599
+ /**
600
+ * 显示评论(侧边栏或其他形式)
601
+ */
602
+ show?: () => void;
603
+ /**
604
+ * 隐藏评论(侧边栏或其他形式)
605
+ */
606
+ hide?: () => void;
454
607
  }
455
608
 
456
609
  /**
@@ -486,11 +639,22 @@ export declare interface EditorCommentsOptions extends EditorFeatureConfig {
486
639
  mode: 'none' | 'card';
487
640
  };
488
641
  /**
489
- * 评论变化监听
490
- * @param listener
491
- * @returns 返回一个函数,调用该函数可以移除监听器
642
+ * 推送评论的 socket 对象
643
+ */
644
+ socket?: EditorSocket;
645
+ /**
646
+ * 评论相关功能配置
492
647
  */
493
- addChangedListener?: (listener: (type: 'create' | 'update' | 'close', data: EditorCommentItem) => void) => () => void;
648
+ features?: {
649
+ /**
650
+ * 添加评论
651
+ */
652
+ addComment?: EditorFeatureConfig;
653
+ /**
654
+ * 评论列表
655
+ */
656
+ commentList?: EditorFeatureConfig;
657
+ };
494
658
  }
495
659
 
496
660
  export declare interface EditorContent<Delta = EditorDelta> {
@@ -516,6 +680,11 @@ export declare interface EditorContent<Delta = EditorDelta> {
516
680
  */
517
681
  export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
518
682
 
683
+ /**
684
+ * 粘贴相关设置
685
+ */
686
+ export declare type EditorCopyOptions = EditorLogicFeatureConfig;
687
+
519
688
  /**
520
689
  * 编辑器解密选项接口
521
690
  * 用于配置编辑器中需要解密的内容的相关选项
@@ -536,6 +705,28 @@ export declare interface EditorDelta {
536
705
  length: number;
537
706
  }
538
707
 
708
+ export declare type EditorDeviceMode = 'desktop' | 'mobile' | 'tablet';
709
+
710
+ /**
711
+ * 编辑器设备相关设置
712
+ */
713
+ export declare interface EditorDeviceOptions {
714
+ /**
715
+ * 设备模式
716
+ */
717
+ mode?: EditorDeviceMode;
718
+ }
719
+
720
+ /**
721
+ * 编辑器拖放配置
722
+ */
723
+ export declare type EditorDragNDropOptions = EditorFeatureConfig;
724
+
725
+ /**
726
+ * 编辑器创建副本配置
727
+ */
728
+ export declare type EditorDuplicateOptions = EditorFeatureConfig;
729
+
539
730
  /**
540
731
  * 编辑器嵌入对象
541
732
  */
@@ -585,15 +776,20 @@ export declare interface EditorEmbeddedObjectOptions {
585
776
  };
586
777
  }
587
778
 
588
- export declare interface EditorExportOptions {
779
+ export declare interface EditorExportOptions extends EditorFeatureConfig {
589
780
  /**
590
- * 可导出类型
781
+ * 可导出类型, undefined 表示对可导出类型无限制
782
+ * 导出由接口 + 本地实现
783
+ */
784
+ types?: string[];
785
+ /**
786
+ * 接口支持的导出类型
591
787
  */
592
788
  supportedTypes?: string[];
593
789
  /**
594
- * 导出文件
790
+ * 导出文件,调用接口实现
595
791
  */
596
- exportFile: (type: string) => Promise<void>;
792
+ exportFile?: (type: string) => Promise<void>;
597
793
  }
598
794
 
599
795
  export declare interface EditorFeatureConfig {
@@ -607,6 +803,28 @@ export declare interface EditorFeatureConfig {
607
803
  hidden?: boolean;
608
804
  }
609
805
 
806
+ export declare interface EditorFeaturesOptions {
807
+ /**
808
+ * 禁用特性入口
809
+ */
810
+ disabled?: boolean;
811
+ /**
812
+ * 对应/features接口,返回所有功能key
813
+ */
814
+ getFeatures?: () => Promise<string[]>;
815
+ }
816
+
817
+ /**
818
+ * 文件限制
819
+ */
820
+ export declare interface EditorFileLimitationOptions {
821
+ /**
822
+ * 获取最大文件大小,单位为MB
823
+ * 超过该上限后禁止编辑
824
+ */
825
+ getMaxFileSize?: () => number | undefined;
826
+ }
827
+
610
828
  export declare interface EditorFileOptions {
611
829
  /**
612
830
  * 文件guid
@@ -616,6 +834,18 @@ export declare interface EditorFileOptions {
616
834
  * 文件名
617
835
  */
618
836
  name?: string;
837
+ /**
838
+ * 创建者,以id标识
839
+ */
840
+ creator?: number;
841
+ /**
842
+ * 创建时间, 毫秒级时间戳
843
+ */
844
+ createdAt?: number;
845
+ /**
846
+ * 文件限制
847
+ */
848
+ limitations?: EditorFileLimitationOptions;
619
849
  }
620
850
 
621
851
  export declare interface EditorFilePicker {
@@ -645,7 +875,7 @@ export declare interface EditorFollowMode {
645
875
  * 获取当前演讲者信息
646
876
  * @returns 返回包含演讲者ID、姓名和头像信息的对象
647
877
  */
648
- getSpeaker: () => Speaker;
878
+ getSpeaker: () => Speaker | undefined;
649
879
  /**
650
880
  * 添加跟随状态变化的监听器
651
881
  * @param listener 状态变化时的回调函数
@@ -660,7 +890,7 @@ export declare interface EditorFollowModeOptions extends EditorFeatureConfig {
660
890
  * 实际类型为socketIO.client
661
891
  * TODO: 抽象为接口
662
892
  */
663
- socket?: unknown;
893
+ socket?: EditorSocket;
664
894
  }
665
895
 
666
896
  export declare interface EditorFontFace {
@@ -739,17 +969,35 @@ export declare interface EditorFontsOptions {
739
969
  * 并提供可用于字体的加载 URL 和字体元数据。
740
970
  */
741
971
  list: EditorFontsList;
972
+ /**
973
+ * 是否只使用本地字体,如果为 true,则不会从服务器获取字体列表。
974
+ */
975
+ useLocalFontsOnly?: boolean;
976
+ }
977
+
978
+ /**
979
+ * 功能引导设置
980
+ */
981
+ export declare interface EditorGuidesOptions {
982
+ /**
983
+ * 是否禁用
984
+ */
985
+ disabled?: boolean;
986
+ /**
987
+ * 获取引导数据
988
+ */
989
+ data?: <T = GuideData>() => Promise<T>;
742
990
  }
743
991
 
744
992
  export declare interface EditorHistory {
745
993
  /**
746
- * 显示历史记录侧边栏
994
+ * 显示历史记录(侧边栏或其他形式)
747
995
  */
748
- showSidebar: () => void;
996
+ show: () => void;
749
997
  /**
750
- * 隐藏历史记录侧边栏
998
+ * 隐藏历史记录(侧边栏或其他形式)
751
999
  */
752
- hideSidebar: () => void;
1000
+ hide: () => void;
753
1001
  }
754
1002
 
755
1003
  export declare type EditorHistoryOptions = EditorFeatureConfig;
@@ -772,7 +1020,12 @@ export declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'cen
772
1020
 
773
1021
  export declare interface EditorImportOptions {
774
1022
  /**
775
- * 获取导入状态,没有contentUrl时需要显示导入进度
1023
+ * 当前文件是否正在导入中
1024
+ * 用于初始化时判断是否需要显示导入进度
1025
+ */
1026
+ isImporting?: boolean;
1027
+ /**
1028
+ * 获取当前文件导入状态,没有contentUrl时需要显示导入进度
776
1029
  * 待导入完成后再渲染
777
1030
  */
778
1031
  getImportStatus?: () => Promise<{
@@ -789,15 +1042,19 @@ export declare interface EditorImportOptions {
789
1042
  * 导入完成
790
1043
  */
791
1044
  status: 'completed';
1045
+ /**
1046
+ * 导入完成后的内容URL
1047
+ */
1048
+ contentUrl: string;
792
1049
  } | {
793
1050
  /**
794
1051
  * 导入失败
795
1052
  */
796
1053
  status: 'failed';
797
1054
  /**
798
- * 导入失败错误信息
1055
+ * 导入失败报错
799
1056
  */
800
- errorMessage?: string;
1057
+ error?: unknown;
801
1058
  }>;
802
1059
  }
803
1060
 
@@ -850,6 +1107,74 @@ export declare interface EditorLocalUploadableFile extends EditorBaseUploadableF
850
1107
  raw: File;
851
1108
  }
852
1109
 
1110
+ /**
1111
+ * 纯逻辑功能配置。
1112
+ * 不包含 UI 相关配置,仅用于逻辑判断。
1113
+ * 如:权限判断、功能开关等。
1114
+ * 所以不需要hidden,只使用disabled来判断
1115
+ */
1116
+ export declare type EditorLogicFeatureConfig = Omit<EditorFeatureConfig, 'hidden'>;
1117
+
1118
+ export declare interface EditorLogsOptions {
1119
+ /**
1120
+ * 是否禁用审计日志
1121
+ * sdk2.0需要禁用
1122
+ */
1123
+ isAuditLogDisabled?: boolean;
1124
+ /**
1125
+ * 是否禁用日志
1126
+ */
1127
+ disabled?: boolean;
1128
+ }
1129
+
1130
+ export declare interface EditorMentionOptions extends EditorFeatureConfig {
1131
+ /**
1132
+ * mention api url前缀
1133
+ * @shimo/mention-suggestion 需要用到
1134
+ * 对应环境变量 SDK_V2_PATH_PREFIX
1135
+ */
1136
+ apiUrlPrefix?: string;
1137
+ /**
1138
+ * mention文件卡片禁用设置
1139
+ */
1140
+ disableFileCard?: boolean;
1141
+ /**
1142
+ * mention日期卡片禁用设置
1143
+ */
1144
+ disableDateCard?: boolean;
1145
+ /**
1146
+ * mention用户卡片禁用设置
1147
+ */
1148
+ disableUserCard?: boolean;
1149
+ /**
1150
+ * mention点击回调
1151
+ */
1152
+ onMentionClick?: (payload: MentionEventPayload) => void;
1153
+ /**
1154
+ * mention文件选择弹窗支持的tab类型
1155
+ */
1156
+ mentionFilePanelTabs?: ('mine' | 'recent' | 'space')[];
1157
+ /**
1158
+ * mention弹窗底部支持的tab类型
1159
+ */
1160
+ mentionPopoverTabs?: ('contacts' | 'file' | 'calendar')[];
1161
+ /**
1162
+ * 是否禁止检查组织架构成员可见性
1163
+ * 该属性需要各套件对接最新版本@shimo/mention-suggestion(没用到的话可忽略)
1164
+ */
1165
+ disableCheckStaffVisibility?: boolean;
1166
+ }
1167
+
1168
+ /**
1169
+ * 编辑器菜单api
1170
+ */
1171
+ export declare interface EditorMenu {
1172
+ /**
1173
+ * 菜单功能api
1174
+ */
1175
+ features: EditorMenuFeatures;
1176
+ }
1177
+
853
1178
  /**
854
1179
  * 基础菜单项配置,所有菜单项类型都包含这些属性
855
1180
  */
@@ -950,6 +1275,38 @@ export declare interface EditorMenuFeatureConfig extends EditorFeatureConfig {
950
1275
  index?: number;
951
1276
  }
952
1277
 
1278
+ /**
1279
+ * 编辑器菜单功能api
1280
+ *
1281
+ * 提供对菜单项的显示、隐藏、启用和禁用等操作
1282
+ */
1283
+ export declare interface EditorMenuFeatures {
1284
+ /**
1285
+ * 显示菜单项
1286
+ * @param name 菜单项名称
1287
+ */
1288
+ showFeature: (name: string) => void;
1289
+ /**
1290
+ * 隐藏菜单项
1291
+ * @param name 菜单项名称
1292
+ */
1293
+ hideFeature: (name: string) => void;
1294
+ /**
1295
+ * 启用菜单项
1296
+ * @param name 菜单项名称
1297
+ */
1298
+ enableFeature: (name: string) => void;
1299
+ /**
1300
+ * 禁用菜单项
1301
+ * @param name 菜单项名称
1302
+ */
1303
+ disableFeature: (name: string) => void;
1304
+ /**
1305
+ * 恢复菜单项到默认状态,即根据配置项确定如何渲染菜单项。
1306
+ */
1307
+ resetFeature: (name: string) => void;
1308
+ }
1309
+
953
1310
  /**
954
1311
  * 隐藏菜单项配置
955
1312
  */
@@ -1016,7 +1373,7 @@ export declare interface EditorMenuOptions<TName extends EditorMenuName> {
1016
1373
  * 更加间接的配置项
1017
1374
  * 仅在 TName 为字符串类型时有效
1018
1375
  */
1019
- features?: TName extends string ? Partial<Record<TName, EditorMenuFeatureConfig>> : never;
1376
+ features?: [TName] extends [string] ? Partial<Record<TName, EditorMenuFeatureConfig>> : never;
1020
1377
  /**
1021
1378
  * 自定义按钮配置
1022
1379
  */
@@ -1052,9 +1409,25 @@ export declare type EditorModeOptions = {
1052
1409
  */
1053
1410
  role?: EditorStandardRole;
1054
1411
  } | {
1412
+ /**
1413
+ * 预览模式
1414
+ */
1055
1415
  type: 'preview';
1056
1416
  } | {
1417
+ /**
1418
+ * 演示模式
1419
+ */
1057
1420
  type: 'presentation';
1421
+ } | {
1422
+ /**
1423
+ * 历史模式
1424
+ */
1425
+ type: 'history';
1426
+ } | {
1427
+ /**
1428
+ * 嵌入模式
1429
+ */
1430
+ type: 'embedded';
1058
1431
  };
1059
1432
 
1060
1433
  /**
@@ -1062,8 +1435,9 @@ export declare type EditorModeOptions = {
1062
1435
  * - `standard` 标准模式,会根据用户权限配置不同的功能
1063
1436
  * - `preview` 预览模式,只能查看内容
1064
1437
  * - `presentation` 演示模式,用作演示场景,演示模式下部分套件可以进行一些简单的编辑操作
1438
+ * - `history` 历史模式,用作查看历史版本场景
1065
1439
  */
1066
- export declare type EditorModeType = 'standard' | 'preview' | 'presentation';
1440
+ export declare type EditorModeType = 'standard' | 'preview' | 'presentation' | 'history' | 'embedded';
1067
1441
 
1068
1442
  /**
1069
1443
  * 编辑器初始化通用参数
@@ -1087,7 +1461,7 @@ export declare interface EditorOptions {
1087
1461
  */
1088
1462
  anonymous?: EditorAnonymousOptions;
1089
1463
  /**
1090
- * 当前文件信息
1464
+ * 当前文件信息 & 配置
1091
1465
  */
1092
1466
  file?: EditorFileOptions;
1093
1467
  /**
@@ -1097,7 +1471,7 @@ export declare interface EditorOptions {
1097
1471
  /**
1098
1472
  * 品牌相关设置
1099
1473
  */
1100
- brand?: MaybePromiseValue<EditorBrandOptions>;
1474
+ brand?: EditorBrandOptions;
1101
1475
  /**
1102
1476
  * 编辑器内部资源请求配置
1103
1477
  */
@@ -1146,10 +1520,6 @@ export declare interface EditorOptions {
1146
1520
  * 编辑器 UI 相关
1147
1521
  */
1148
1522
  ui?: EditorUiOptions;
1149
- /**
1150
- * 编辑器卡点限制
1151
- */
1152
- checkpoints?: EditorCheckpointsOptions;
1153
1523
  /**
1154
1524
  * 编辑器工具箱设置
1155
1525
  */
@@ -1162,26 +1532,74 @@ export declare interface EditorOptions {
1162
1532
  * 编辑器协作相关
1163
1533
  */
1164
1534
  collaboration?: EditorCollaborationOptions;
1165
- }
1166
-
1167
- /**
1168
- * 大纲目录接口
1169
- */
1170
- export declare interface EditorOutline<Content = unknown> {
1171
1535
  /**
1172
- * 设置大纲目录是否可见
1173
- * @param visible 是否可见
1536
+ * 编辑器功能相关设置
1174
1537
  */
1175
- setVisible: (visible: boolean) => void;
1538
+ features?: EditorFeaturesOptions;
1176
1539
  /**
1177
- * 获取目录信息
1178
- * @returns 目录信息
1540
+ * 编辑器版本相关设置
1179
1541
  */
1180
- getContent: () => Promise<EditorOutlineItem<Content>[]>;
1542
+ version?: EditorVersionOptions;
1181
1543
  /**
1182
- * 添加目录信息改变时的监听器
1183
- * @param listener 监听器
1184
- * @returns 取消监听器的函数
1544
+ * 编辑器日志相关设置
1545
+ */
1546
+ logs?: EditorLogsOptions;
1547
+ /**
1548
+ * 编辑器快捷键相关设置
1549
+ */
1550
+ shortcuts?: EditorShortcutOptions;
1551
+ /**
1552
+ * 提及相关设置
1553
+ */
1554
+ mention?: EditorMentionOptions;
1555
+ /**
1556
+ * 编辑器拖放相关配置
1557
+ */
1558
+ dragNDrop?: EditorDragNDropOptions;
1559
+ /**
1560
+ * 编辑器引导相关设置
1561
+ */
1562
+ guides?: EditorGuidesOptions;
1563
+ /**
1564
+ * 编辑器复制相关设置
1565
+ */
1566
+ copy?: EditorCopyOptions;
1567
+ /**
1568
+ * 编辑器粘贴相关设置
1569
+ */
1570
+ paste?: EditorPasteOptions;
1571
+ /**
1572
+ * 编辑器设备信息相关设置
1573
+ */
1574
+ device?: EditorDeviceOptions;
1575
+ /**
1576
+ * 编辑器副本相关配置
1577
+ */
1578
+ duplicate?: EditorDuplicateOptions;
1579
+ /**
1580
+ * 分享相关接口
1581
+ */
1582
+ share?: EditorShareOptions;
1583
+ }
1584
+
1585
+ /**
1586
+ * 大纲目录接口
1587
+ */
1588
+ export declare interface EditorOutline<Content = unknown> {
1589
+ /**
1590
+ * 设置大纲目录是否可见
1591
+ * @param visible 是否可见
1592
+ */
1593
+ setVisible: (visible: boolean) => void;
1594
+ /**
1595
+ * 获取目录信息
1596
+ * @returns 目录信息
1597
+ */
1598
+ getContent: () => Promise<EditorOutlineItem<Content>[]>;
1599
+ /**
1600
+ * 添加目录信息改变时的监听器
1601
+ * @param listener 监听器
1602
+ * @returns 取消监听器的函数
1185
1603
  */
1186
1604
  addChangedListener: (listener: (content: EditorOutlineItem<Content>[]) => void) => () => void;
1187
1605
  /**
@@ -1214,7 +1632,7 @@ export declare interface EditorOutlineItem<Content = unknown> {
1214
1632
  * 大纲目录初始化参数,
1215
1633
  * 用于配置大纲目录的行为和外观。
1216
1634
  */
1217
- export declare interface EditorOutlineOptions {
1635
+ export declare interface EditorOutlineOptions extends EditorLogicFeatureConfig {
1218
1636
  /**
1219
1637
  * 初始化编辑器时是否显示大纲目录,
1220
1638
  * 默认为 false。
@@ -1222,6 +1640,50 @@ export declare interface EditorOutlineOptions {
1222
1640
  visible?: boolean;
1223
1641
  }
1224
1642
 
1643
+ export declare interface EditorPasteLimitationOptions {
1644
+ /**
1645
+ * 检查粘贴内容的规则
1646
+ * @param content
1647
+ * @returns
1648
+ */
1649
+ checkContent?: (params: EditorPasteLimitationOptionsCheckFunctionParams) => Promise<{
1650
+ limited: true;
1651
+ message: string;
1652
+ } | {
1653
+ limited: false;
1654
+ }>;
1655
+ /**
1656
+ * 获取最大粘贴数据大小,单位为MB
1657
+ */
1658
+ getMaxDataSize?: () => Promise<number | undefined>;
1659
+ }
1660
+
1661
+ export declare interface EditorPasteLimitationOptionsCheckFunctionParams {
1662
+ content: string;
1663
+ }
1664
+
1665
+ /**
1666
+ * 粘贴相关设置
1667
+ */
1668
+ export declare interface EditorPasteOptions extends EditorFeatureConfig {
1669
+ /**
1670
+ * 是否禁用远程图片粘贴, turbo暂时不支持远程图片粘贴
1671
+ */
1672
+ isRemoteImgDisabled?: boolean;
1673
+ /**
1674
+ * 粘贴内容限制规则
1675
+ */
1676
+ limitations?: EditorPasteLimitationOptions;
1677
+ }
1678
+
1679
+ export declare interface EditorPerformanceOptions {
1680
+ /**
1681
+ * 记录性能指标
1682
+ * @param mark 性能指标名称
1683
+ */
1684
+ record?: (mark: 'first_page' | 'first_editable_page') => void;
1685
+ }
1686
+
1225
1687
  export declare interface EditorPickedFile {
1226
1688
  /**
1227
1689
  * 文件大小
@@ -1245,6 +1707,17 @@ export declare interface EditorPickedFile {
1245
1707
  raw: File;
1246
1708
  }
1247
1709
 
1710
+ export declare interface EditorPresentation {
1711
+ /**
1712
+ * 进入演示模式
1713
+ */
1714
+ start: () => Promise<void>;
1715
+ /**
1716
+ * 退出演示模式
1717
+ */
1718
+ quit: () => Promise<void>;
1719
+ }
1720
+
1248
1721
  /**
1249
1722
  * 编辑器打印设置
1250
1723
  */
@@ -1269,6 +1742,13 @@ export declare interface EditorRemoteUploadableFile extends EditorBaseUploadable
1269
1742
  raw?: never;
1270
1743
  }
1271
1744
 
1745
+ export declare interface EditorRenderOptions {
1746
+ /**
1747
+ * 用于定位的锚点
1748
+ */
1749
+ hash?: string;
1750
+ }
1751
+
1272
1752
  /**
1273
1753
  * 编辑器通用接口
1274
1754
  */
@@ -1321,6 +1801,62 @@ export declare abstract class EditorSDK {
1321
1801
  * 部分环境不存在,如离线客户端
1322
1802
  */
1323
1803
  abstract get version(): EditorVersion | undefined;
1804
+ /**
1805
+ * 编辑器菜单栏相关接口
1806
+ */
1807
+ abstract get menu(): EditorMenu | undefined;
1808
+ /**
1809
+ * 编辑器演示模式相关接口
1810
+ */
1811
+ abstract get presentation(): EditorPresentation | undefined;
1812
+ }
1813
+
1814
+ export declare interface EditorShareOptions extends EditorLogicFeatureConfig {
1815
+ /**
1816
+ * 当前文件是否为共享文件
1817
+ */
1818
+ isShared?: boolean;
1819
+ }
1820
+
1821
+ export declare interface EditorShortcutOptions {
1822
+ /**
1823
+ * 自定义快捷键
1824
+ */
1825
+ customShortcuts?: ShortcutConfig[];
1826
+ /**
1827
+ * 禁用的快捷键
1828
+ * 桌面客户端需要禁用ctrl+s,ctrl+shift+s
1829
+ * 极速sdk需要禁用ctrl+s
1830
+ * sdk2.0需要禁用ctrl+shift+e
1831
+ */
1832
+ disabledShortcuts?: string[];
1833
+ }
1834
+
1835
+ /**
1836
+ * 编辑器 socket 接口, 用于评论、跟随模式、远程演示等场景
1837
+ * 实际类型为 socketIO.client
1838
+ */
1839
+ export declare interface EditorSocket {
1840
+ /**
1841
+ * 监听事件
1842
+ */
1843
+ on: (event: string, callback: (...args: unknown[]) => void) => unknown;
1844
+ /**
1845
+ * 监听事件, 只监听一次
1846
+ */
1847
+ once: (event: string, callback: (...args: unknown[]) => void) => unknown;
1848
+ /**
1849
+ * 移除事件
1850
+ */
1851
+ off: (event: string, callback: (...args: unknown[]) => void) => unknown;
1852
+ /**
1853
+ * 发送事件
1854
+ */
1855
+ emit: (event: string, ...args: unknown[]) => unknown;
1856
+ /**
1857
+ * 断开连接
1858
+ */
1859
+ disconnect: () => unknown;
1324
1860
  }
1325
1861
 
1326
1862
  /**
@@ -1510,6 +2046,12 @@ export declare interface EditorToolbarOptions<TName extends string> {
1510
2046
  * 自定义按钮
1511
2047
  */
1512
2048
  custom?: EditorToolbarFeatureButtonConfig<string>;
2049
+ /**
2050
+ * 工具栏挂载的容器dom,配置后则挂载到指定的容器上
2051
+ *
2052
+ * 如果不配置则按照套件的默认方式挂载。
2053
+ */
2054
+ container?: HTMLElement;
1513
2055
  }
1514
2056
 
1515
2057
  /**
@@ -1547,13 +2089,17 @@ export declare interface EditorUiOptions {
1547
2089
  /**
1548
2090
  * 显示升级弹窗
1549
2091
  */
1550
- showModal?: (options: ShowUpgradeModalProps) => Promise<ShowUpgradeModalResponse>;
2092
+ showModal?: (options: ShowUpgradeModalProps) => Promise<ShowUpgradeModalResponse | undefined>;
1551
2093
  };
1552
2094
  notification?: {
1553
2095
  /**
1554
2096
  * 渲染通知条
1555
2097
  */
1556
2098
  render?: (params: RenderNotificationProps) => void;
2099
+ /**
2100
+ * 是否禁用通知条
2101
+ */
2102
+ disabled?: boolean;
1557
2103
  };
1558
2104
  /**
1559
2105
  * 用户名片
@@ -1567,6 +2113,20 @@ export declare interface EditorUiOptions {
1567
2113
  * 渲染用户卡片
1568
2114
  */
1569
2115
  render?: (params: RenderUserCardProps) => RenderUserCardResult;
2116
+ /**
2117
+ * 是否禁用用户卡片
2118
+ * jd需要禁用
2119
+ */
2120
+ disabled?: boolean;
2121
+ };
2122
+ /**
2123
+ * 登录提示
2124
+ */
2125
+ loginNotice?: {
2126
+ /**
2127
+ * 显示登录提示
2128
+ */
2129
+ show?: () => void;
1570
2130
  };
1571
2131
  /**
1572
2132
  * toast
@@ -1580,6 +2140,10 @@ export declare interface EditorUiOptions {
1580
2140
  * 是否禁用toast
1581
2141
  */
1582
2142
  disabled?: boolean;
2143
+ /**
2144
+ * 自定义toast提示文本配置
2145
+ */
2146
+ tips?: ToastTipsConfig;
1583
2147
  };
1584
2148
  /**
1585
2149
  * confirm
@@ -1594,9 +2158,48 @@ export declare interface EditorUiOptions {
1594
2158
  */
1595
2159
  disabled?: boolean;
1596
2160
  };
2161
+ /**
2162
+ * 全屏配置
2163
+ */
2164
+ fullscreen?: EditorFeatureConfig;
2165
+ /**
2166
+ * 演示模式配置
2167
+ */
2168
+ presentation?: EditorFeatureConfig;
2169
+ /**
2170
+ * 帮助中心配置
2171
+ */
2172
+ helpCenter?: EditorFeatureConfig;
2173
+ /**
2174
+ * 新功能提醒相关配置
2175
+ */
2176
+ newFeature?: {
2177
+ /**
2178
+ * 是否不展示新功能提醒(包括任何形式的)
2179
+ */
2180
+ hidden?: boolean;
2181
+ };
2182
+ /**
2183
+ * 图片查看器配置
2184
+ */
2185
+ imageViewer?: {
2186
+ /**
2187
+ * 右键菜单配置
2188
+ */
2189
+ contextMenu?: EditorMenuOptions<'copy' | 'download'>;
2190
+ /**
2191
+ * 操作配置
2192
+ */
2193
+ operations?: {
2194
+ /**
2195
+ * 下载图片
2196
+ */
2197
+ download: EditorFeatureConfig;
2198
+ };
2199
+ };
1597
2200
  }
1598
2201
 
1599
- export declare type EditorUploadableFile = EditorLocalUploadableFile;
2202
+ export declare type EditorUploadableFile = EditorLocalUploadableFile | EditorRemoteUploadableFile;
1600
2203
 
1601
2204
  /**
1602
2205
  * 文件开始上传入参
@@ -1662,10 +2265,23 @@ export declare interface EditorUserOptions {
1662
2265
  export declare interface EditorVersion {
1663
2266
  /**
1664
2267
  * 保存版本
2268
+ * @param name 版本名称
1665
2269
  */
1666
- createRevision: () => void;
2270
+ createRevision: (name?: string) => void;
2271
+ /**
2272
+ * 显示版本(侧边栏或其他形式)
2273
+ * 区别于历史侧边栏,在应用表格里表现为打开历史侧边栏切换到版本 tab
2274
+ */
2275
+ show?: () => void;
2276
+ /**
2277
+ * 隐藏版本(侧边栏或其他形式)
2278
+ * 区别于历史侧边栏,在应用表格里表现为打开历史侧边栏切换到版本 tab
2279
+ */
2280
+ hide?: () => void;
1667
2281
  }
1668
2282
 
2283
+ export declare type EditorVersionOptions = EditorFeatureConfig;
2284
+
1669
2285
  /**
1670
2286
  * 编辑器外部水印信息
1671
2287
  */
@@ -1673,7 +2289,12 @@ export declare interface EditorWatermarkOptions {
1673
2289
  /**
1674
2290
  * 获取用作初始化使用的默认水印
1675
2291
  */
1676
- getWatermark: () => MaybePromiseValue<EditorWatermarkResource | null>;
2292
+ getWatermark?: () => MaybePromiseValue<EditorWatermarkResource | null>;
2293
+ /**
2294
+ * 获取文件导出水印
2295
+ * @param exportType 导出类型 图片/pdf/纯图pdf
2296
+ */
2297
+ getExportWatermark?: (exportType: 'image' | 'pdf' | 'image_pdf') => Promise<string[] | undefined>;
1677
2298
  /**
1678
2299
  * 是否必须,如果为 true,编辑器将在初始化时强制渲染水印,
1679
2300
  * 水印配置信息加载失败将导致编辑器初始化失败
@@ -1689,28 +2310,13 @@ export declare type EditorWatermarkResource = {
1689
2310
  url: string;
1690
2311
  };
1691
2312
 
1692
- export declare enum FeatureStatus {
1693
- /**
1694
- * 隐藏
1695
- */
1696
- Hidden = 0,
1697
- /**
1698
- * 正常
1699
- */
1700
- Normal = 1,
1701
- /**
1702
- * 禁用
1703
- */
1704
- Disabled = 2
1705
- }
1706
-
1707
2313
  export declare interface FileLinkParams {
1708
2314
  /**
1709
2315
  * 文件guid
1710
2316
  */
1711
2317
  fileGuid: string;
1712
2318
  /**
1713
- * 文件类型,如docs,sheets
2319
+ * 文件类型
1714
2320
  */
1715
2321
  type: string;
1716
2322
  /**
@@ -1769,6 +2375,14 @@ export declare enum FileType {
1769
2375
  CloudFile = 3
1770
2376
  }
1771
2377
 
2378
+ /**
2379
+ * 引导数据
2380
+ */
2381
+ export declare interface GuideData {
2382
+ type: number;
2383
+ id: number;
2384
+ }
2385
+
1772
2386
  /**
1773
2387
  * 请求、响应头
1774
2388
  */
@@ -1876,34 +2490,173 @@ export declare interface HTTPResponse<Data = unknown> {
1876
2490
  */
1877
2491
  export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
1878
2492
 
1879
- export declare interface Limitation {
2493
+ export declare type MaybePromiseValue<T> = T | Promise<T>;
2494
+
2495
+ export declare interface MentionEventPayload {
1880
2496
  /**
1881
- * 限制原因(错误码)
2497
+ * 距离页面左边的距离
1882
2498
  */
1883
- code?: number;
2499
+ x: number;
1884
2500
  /**
1885
- * 单位(不参与计算,仅作显示)
1886
- * minutes、MB
2501
+ * 距离页面顶部的距离
1887
2502
  */
1888
- unit?: string;
2503
+ y: number;
1889
2504
  /**
1890
- * 描述
2505
+ * mention信息
1891
2506
  */
1892
- desc?: string;
2507
+ mentionInfo: MentionInfo;
2508
+ }
2509
+
2510
+ export declare interface MentionInfo {
2511
+ /** 用户 Id */
2512
+ userId?: number;
2513
+ /** 文件 Id */
2514
+ fileId?: string;
2515
+ /**
2516
+ * mention区域宽度
2517
+ */
2518
+ width?: number;
2519
+ /**
2520
+ * mention区域高度
2521
+ */
2522
+ height?: number;
2523
+ /**
2524
+ * mention区域左上角距离页面左边的距离
2525
+ */
2526
+ left?: number;
1893
2527
  /**
1894
- * min/max int64 默认表示 MB/个/分钟/行
2528
+ * mention区域左上角距离页面顶部的距离
1895
2529
  */
1896
- max?: number;
1897
- min?: number;
2530
+ top?: number;
1898
2531
  }
1899
2532
 
1900
- export declare type MaybePromiseValue<T> = T | Promise<T>;
1901
-
1902
2533
  /**
1903
2534
  * 升级弹窗类型
1904
2535
  * 个人版或企业版
1905
2536
  */
1906
- export declare type OpenType = 'personal' | 'enterprise';
2537
+ export declare type OpenType = 'personal' | 'enterprise' | 'pendingOrder';
2538
+
2539
+ export declare interface OperationToastConfig {
2540
+ /**
2541
+ * 成功提示文本
2542
+ */
2543
+ success?: string;
2544
+ /**
2545
+ * 失败提示文本
2546
+ */
2547
+ failed?: string;
2548
+ /**
2549
+ * 权限不足提示文本
2550
+ * 桌面客户端安全模式下需要提供【当前账号未获得此项能力授权。】
2551
+ */
2552
+ noPermission?: string;
2553
+ }
2554
+
2555
+ export declare interface PresentationAnonymousOptions extends EditorAnonymousOptions {
2556
+ /**
2557
+ * 是否在移动设备上显示登录
2558
+ */
2559
+ isShowLoginBarInMobileDevice?: boolean;
2560
+ }
2561
+
2562
+ /**
2563
+ * 辅助面板相关设置
2564
+ */
2565
+ export declare interface PresentationAssistantOptions {
2566
+ /**
2567
+ * 辅助面板入口
2568
+ */
2569
+ entry?: {
2570
+ /**
2571
+ * 辅助面板入口是否隐藏
2572
+ */
2573
+ hidden?: boolean;
2574
+ /**
2575
+ * 辅助面板入口是否禁用
2576
+ */
2577
+ disabled?: boolean;
2578
+ /**
2579
+ * 辅助面板入口文本
2580
+ */
2581
+ text?: string;
2582
+ /**
2583
+ * 辅助面板入口图标
2584
+ */
2585
+ icon?: string;
2586
+ };
2587
+ /**
2588
+ * 辅助面板
2589
+ */
2590
+ panel: {
2591
+ /**
2592
+ * 触发方式, 默认click
2593
+ */
2594
+ trigger: 'click' | 'hover';
2595
+ /**
2596
+ * 隐藏提示
2597
+ */
2598
+ hideTip?: boolean;
2599
+ };
2600
+ }
2601
+
2602
+ export declare interface PresentationChartOptions extends EditorFeatureConfig {
2603
+ /**
2604
+ * 生成表格
2605
+ */
2606
+ generateSheet?: (options?: Record<string, string | number>) => Promise<{
2607
+ url: string;
2608
+ sheetId: string;
2609
+ }>;
2610
+ }
2611
+
2612
+ /**
2613
+ * 幻灯片评论接口
2614
+ */
2615
+ export declare interface PresentationComments extends EditorComments {
2616
+ /**
2617
+ * 开始插入评论
2618
+ */
2619
+ startInsert: () => void;
2620
+ /**
2621
+ * 结束插入评论
2622
+ */
2623
+ endInsert: () => void;
2624
+ /**
2625
+ * 显示评论
2626
+ */
2627
+ show: () => void;
2628
+ /**
2629
+ * 隐藏评论
2630
+ */
2631
+ hide: () => void;
2632
+ }
2633
+
2634
+ /**
2635
+ * 幻灯片图示设置
2636
+ */
2637
+ export declare interface PresentationDiagramOptions extends EditorFeatureConfig {
2638
+ /**
2639
+ * 隐藏限免
2640
+ */
2641
+ hideTimeLimitedFree?: boolean;
2642
+ }
2643
+
2644
+ export declare interface PresentationEventSubscription {
2645
+ /**
2646
+ * 添加错误事件监听器
2647
+ */
2648
+ addErrorListener: (listener: (error: {
2649
+ code: number | string;
2650
+ message?: string;
2651
+ }) => void) => () => void;
2652
+ }
2653
+
2654
+ export declare interface PresentationExportOptions extends EditorExportOptions {
2655
+ /**
2656
+ * 隐藏限时免费
2657
+ */
2658
+ hideTimeLimitedFree?: boolean;
2659
+ }
1907
2660
 
1908
2661
  /**
1909
2662
  * 幻灯片可导出类型
@@ -1925,6 +2678,10 @@ export declare interface PresentationFontsList {
1925
2678
 
1926
2679
  export declare interface PresentationFontsOptions {
1927
2680
  list: PresentationFontsList;
2681
+ /**
2682
+ * 是否启用模糊匹配
2683
+ */
2684
+ fuzzyMatch?: boolean;
1928
2685
  }
1929
2686
 
1930
2687
  /**
@@ -1944,6 +2701,61 @@ export declare type PresentationMenuFeatureButtonName = 'edit' | 'insert' | 'for
1944
2701
 
1945
2702
  export declare type PresentationMenuOptions = EditorMenuOptions<PresentationMenuFeatureButtonName>;
1946
2703
 
2704
+ /**
2705
+ * 幻灯片演示模式接口
2706
+ */
2707
+ export declare interface PresentationOfPresentation {
2708
+ /**
2709
+ * 进入演示模式
2710
+ * @param index 幻灯片索引,如果不传或者为0,则是从头演示
2711
+ */
2712
+ start: (index?: number) => Promise<void>;
2713
+ /**
2714
+ * 从当前幻灯片开始演示
2715
+ */
2716
+ startFromCurrent: () => Promise<void>;
2717
+ /**
2718
+ * 进入远程演示模式
2719
+ */
2720
+ startRemoteLive: () => Promise<void>;
2721
+ /**
2722
+ * 退出演示模式
2723
+ */
2724
+ quit: () => Promise<void>;
2725
+ /**
2726
+ * 进入演讲者视图
2727
+ */
2728
+ startSpeakerView: () => Promise<void>;
2729
+ }
2730
+
2731
+ /**
2732
+ * 幻灯片远程模式设置项
2733
+ */
2734
+ export declare interface PresentationRemoteLiveOptions extends EditorFeatureConfig {
2735
+ /**
2736
+ * 是否进入远程模式, 默认false
2737
+ */
2738
+ isEnterRemoteLiveMode?: boolean;
2739
+ /** */
2740
+ /**
2741
+ * 获取远程演示的 socket 对象
2742
+ * @param roomId 房间 id
2743
+ * @returns 远程演示的 socket 对象
2744
+ */
2745
+ getSocket?: (roomId: string) => Promise<EditorSocket | undefined>;
2746
+ /**
2747
+ * 是否根据不同文件名语音显示不同的url文本
2748
+ * 暂留,如果各环境实现了getLiveUrl,此属性可移除
2749
+ */
2750
+ isDiffUrlTextByTitleLang?: boolean;
2751
+ /**
2752
+ * 获取远程演示url
2753
+ */
2754
+ getLiveUrl?: (params: {
2755
+ roomId: string;
2756
+ }) => Promise<string | undefined>;
2757
+ }
2758
+
1947
2759
  export declare interface PresentationSDKOptions extends EditorOptions {
1948
2760
  /**
1949
2761
  * 字体配置
@@ -1961,6 +2773,46 @@ export declare interface PresentationSDKOptions extends EditorOptions {
1961
2773
  * 文本格式相关设置
1962
2774
  */
1963
2775
  text?: PresentationTextOptions;
2776
+ /**
2777
+ * 远程演示相关设置
2778
+ */
2779
+ remoteLive?: PresentationRemoteLiveOptions;
2780
+ /**
2781
+ * 渲染相关设置
2782
+ */
2783
+ render?: EditorRenderOptions;
2784
+ /**
2785
+ * 图表相关设置
2786
+ */
2787
+ chart?: PresentationChartOptions;
2788
+ /**
2789
+ * 主题相关设置
2790
+ */
2791
+ theme?: PresentationThemeOptions;
2792
+ /**
2793
+ * 图示相关设置
2794
+ */
2795
+ diagram?: PresentationDiagramOptions;
2796
+ /**
2797
+ * 协作者设置
2798
+ */
2799
+ collaborators?: EditorCollaboratorsOptions;
2800
+ /**
2801
+ * 辅助面板设置
2802
+ */
2803
+ assistant?: PresentationAssistantOptions;
2804
+ /**
2805
+ * 幻灯片窗格设置,即幻灯片界面左侧那一列缩略图的区域
2806
+ */
2807
+ slidesPane?: PresentationSlidesPaneOptions;
2808
+ /**
2809
+ * 幻灯片导出设置
2810
+ */
2811
+ export?: PresentationExportOptions;
2812
+ /**
2813
+ * 匿名用户设置
2814
+ */
2815
+ anonymous?: PresentationAnonymousOptions;
1964
2816
  }
1965
2817
 
1966
2818
  /**
@@ -2087,6 +2939,33 @@ export declare interface PresentationSlides {
2087
2939
  setSelectedSlides: (ids: string[]) => void;
2088
2940
  }
2089
2941
 
2942
+ /**
2943
+ * 幻灯片窗格
2944
+ */
2945
+ export declare interface PresentationSlidesPaneOptions {
2946
+ /**
2947
+ * 是否禁用, 默认false
2948
+ */
2949
+ disabled?: boolean;
2950
+ /**
2951
+ * 宽度设置
2952
+ */
2953
+ width?: {
2954
+ /**
2955
+ * 初始宽度
2956
+ */
2957
+ initValue?: number;
2958
+ /**
2959
+ * 宽度调整设置
2960
+ */
2961
+ resize: {
2962
+ disabled?: boolean;
2963
+ min?: number;
2964
+ max?: number;
2965
+ };
2966
+ };
2967
+ }
2968
+
2090
2969
  /**
2091
2970
  * 演示文稿文本接口
2092
2971
  */
@@ -2149,6 +3028,13 @@ export declare interface PresentationTextRangeValue {
2149
3028
  end: string;
2150
3029
  }
2151
3030
 
3031
+ export declare interface PresentationThemeOptions extends EditorFeatureConfig {
3032
+ /**
3033
+ * 是否禁用图片缓存, 默认不禁用
3034
+ */
3035
+ isImageCacheDisabled?: boolean;
3036
+ }
3037
+
2152
3038
  /**
2153
3039
  * 幻灯片工具栏功能按钮
2154
3040
  */
@@ -2226,15 +3112,15 @@ export declare interface RenderUserCardProps {
2226
3112
  height: number;
2227
3113
  hasReducedHeaderHeight?: boolean;
2228
3114
  };
2229
- position?: 'top' | 'left' | 'right' | 'bottom' | 'left_top' | 'left_bottom' | 'right_top' | 'bottom_top' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right';
2230
- trigger: 'hover' | 'click';
3115
+ position?: 'top' | 'left' | 'right' | 'bottom' | 'left_top' | 'left_bottom' | 'right_top' | 'right_bottom' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right';
3116
+ trigger?: 'hover' | 'click';
2231
3117
  }
2232
3118
 
2233
3119
  export declare interface RenderUserCardResult {
2234
3120
  /**
2235
3121
  * 关闭用户卡片
2236
3122
  */
2237
- close: (force?: boolean) => void;
3123
+ close?: (force?: boolean) => void;
2238
3124
  }
2239
3125
 
2240
3126
  /**
@@ -2275,6 +3161,18 @@ export declare interface SaveStatusDelegation {
2275
3161
  */
2276
3162
  export declare type Scene = 'history' | 'version' | 'public' | 'search' | 'attachments';
2277
3163
 
3164
+ export declare interface ShortcutConfig {
3165
+ /**
3166
+ * 快捷键,例如保存快捷键windows为ctrl+s, mac系统则为meta+s
3167
+ * 如果不想区分系统则为mod+s
3168
+ */
3169
+ key: string;
3170
+ /**
3171
+ * 快捷键回调
3172
+ */
3173
+ callback: () => void;
3174
+ }
3175
+
2278
3176
  export declare interface ShowConfirmOptions {
2279
3177
  /**
2280
3178
  * 确认框标题
@@ -2374,6 +3272,67 @@ export declare interface SyncStatusDelegation {
2374
3272
  onError: (error: unknown, context: SyncContext) => void;
2375
3273
  }
2376
3274
 
3275
+ /**
3276
+ * Toast提示文本配置接口
3277
+ */
3278
+ export declare interface ToastTipsConfig {
3279
+ /**
3280
+ * 复制相关提示文本
3281
+ */
3282
+ copy?: OperationToastConfig;
3283
+ /**
3284
+ * 粘贴相关提示文本
3285
+ */
3286
+ paste?: OperationToastConfig;
3287
+ /**
3288
+ * 剪切相关提示文本
3289
+ */
3290
+ cut?: OperationToastConfig;
3291
+ /**
3292
+ * 打印相关提示文本
3293
+ */
3294
+ print?: OperationToastConfig;
3295
+ /**
3296
+ * 导出相关提示文本
3297
+ */
3298
+ export?: OperationToastConfig;
3299
+ /**
3300
+ * 编辑相关提示文本
3301
+ */
3302
+ edit?: OperationToastConfig;
3303
+ /**
3304
+ * 下载相关提示文本
3305
+ */
3306
+ download?: {
3307
+ /**
3308
+ * 图片下载提示文本
3309
+ */
3310
+ image?: OperationToastConfig;
3311
+ /**
3312
+ * 附件下载提示文本
3313
+ */
3314
+ attachment?: OperationToastConfig;
3315
+ };
3316
+ /**
3317
+ * 预览相关提示文本
3318
+ */
3319
+ preview?: {
3320
+ /**
3321
+ * 图片预览提示文本
3322
+ */
3323
+ image?: OperationToastConfig;
3324
+ /**
3325
+ * 附件预览提示文本
3326
+ */
3327
+ attachment?: OperationToastConfig;
3328
+ };
3329
+ /**
3330
+ * 创建版本相关提示文本
3331
+ * sdk2.0需要提供
3332
+ */
3333
+ createVersion?: OperationToastConfig;
3334
+ }
3335
+
2377
3336
  /**
2378
3337
  * 工具箱工具项接口
2379
3338
  */