@officesdk/editor-sdk-core 0.0.0-15 → 0.0.0-17

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 (117) hide show
  1. package/cjs/docx/index.js +1 -1
  2. package/cjs/docx/menu.js +1 -1
  3. package/cjs/docx/sdk.js +1 -1
  4. package/cjs/docx/theme.js +1 -1
  5. package/cjs/docx/toolbar.js +3 -0
  6. package/cjs/index.js +25 -0
  7. package/cjs/presentation/export.js +14 -0
  8. package/cjs/presentation/index.js +4 -2
  9. package/cjs/presentation/sdk.js +2 -12
  10. package/cjs/shared/attachment.js +1 -1
  11. package/cjs/shared/checkpoints.js +19 -0
  12. package/cjs/shared/collaboration.js +3 -0
  13. package/cjs/shared/collaborators.js +3 -0
  14. package/cjs/shared/comments.js +1 -1
  15. package/cjs/shared/decryption.js +3 -0
  16. package/cjs/shared/download.js +3 -0
  17. package/cjs/shared/editor.js +1 -1
  18. package/cjs/shared/export.js +1 -1
  19. package/cjs/shared/feature.js +3 -0
  20. package/cjs/shared/file-picker.js +1 -1
  21. package/cjs/shared/file.js +50 -0
  22. package/cjs/shared/follow-mode.js +3 -0
  23. package/cjs/shared/history.js +3 -0
  24. package/cjs/shared/index.js +1 -1
  25. package/cjs/shared/link.js +1 -1
  26. package/cjs/shared/mention.js +3 -0
  27. package/cjs/shared/menu.js +1 -1
  28. package/cjs/shared/performance.js +3 -0
  29. package/cjs/shared/print.js +1 -1
  30. package/cjs/shared/render.js +3 -0
  31. package/cjs/shared/tool-box.js +40 -0
  32. package/cjs/shared/toolbar.js +1 -1
  33. package/cjs/shared/ui.js +18 -0
  34. package/cjs/shared/version.js +3 -0
  35. package/cjs/sheet/cell.js +29 -1
  36. package/cjs/sheet/chart.js +3 -0
  37. package/cjs/sheet/checklist.js +3 -0
  38. package/cjs/sheet/combine-sheets.js +3 -0
  39. package/cjs/sheet/comments.js +3 -0
  40. package/cjs/sheet/data-transfer.js +3 -0
  41. package/cjs/sheet/export.js +3 -0
  42. package/cjs/sheet/font.js +3 -0
  43. package/cjs/sheet/form.js +3 -0
  44. package/cjs/sheet/import-formula.js +3 -0
  45. package/cjs/sheet/index.js +4 -2
  46. package/cjs/sheet/lock.js +14 -0
  47. package/cjs/sheet/mention.js +13 -0
  48. package/cjs/sheet/range.js +1 -1
  49. package/cjs/sheet/render.js +3 -0
  50. package/cjs/sheet/sdk.js +1 -1
  51. package/cjs/sheet/sensitization.js +3 -0
  52. package/cjs/sheet/sheet2table.js +3 -0
  53. package/cjs/sheet/worksheet.js +1 -1
  54. package/cjs/table/sdk.js +1 -1
  55. package/esm/docx/index.js +1 -1
  56. package/esm/docx/menu.js +1 -1
  57. package/esm/docx/sdk.js +1 -1
  58. package/esm/docx/theme.js +1 -1
  59. package/esm/docx/toolbar.js +2 -0
  60. package/esm/index.js +9 -0
  61. package/esm/presentation/export.js +11 -0
  62. package/esm/presentation/index.js +2 -1
  63. package/esm/presentation/sdk.js +1 -11
  64. package/esm/shared/attachment.js +1 -1
  65. package/esm/shared/checkpoints.js +16 -0
  66. package/esm/shared/collaboration.js +2 -0
  67. package/esm/shared/collaborators.js +2 -0
  68. package/esm/shared/comments.js +1 -1
  69. package/esm/shared/decryption.js +2 -0
  70. package/esm/shared/download.js +2 -0
  71. package/esm/shared/editor.js +1 -1
  72. package/esm/shared/export.js +1 -1
  73. package/esm/shared/feature.js +2 -0
  74. package/esm/shared/file-picker.js +1 -1
  75. package/esm/shared/file.js +47 -0
  76. package/esm/shared/follow-mode.js +2 -0
  77. package/esm/shared/history.js +2 -0
  78. package/esm/shared/index.js +1 -1
  79. package/esm/shared/link.js +1 -1
  80. package/esm/shared/mention.js +2 -0
  81. package/esm/shared/menu.js +1 -1
  82. package/esm/shared/performance.js +2 -0
  83. package/esm/shared/print.js +1 -1
  84. package/esm/shared/render.js +2 -0
  85. package/esm/shared/tool-box.js +37 -0
  86. package/esm/shared/toolbar.js +1 -1
  87. package/esm/shared/ui.js +15 -0
  88. package/esm/shared/version.js +2 -0
  89. package/esm/sheet/cell.js +28 -2
  90. package/esm/sheet/chart.js +2 -0
  91. package/esm/sheet/checklist.js +2 -0
  92. package/esm/sheet/combine-sheets.js +2 -0
  93. package/esm/sheet/comments.js +2 -0
  94. package/esm/sheet/data-transfer.js +2 -0
  95. package/esm/sheet/export.js +2 -0
  96. package/esm/sheet/font.js +2 -0
  97. package/esm/sheet/form.js +2 -0
  98. package/esm/sheet/import-formula.js +2 -0
  99. package/esm/sheet/index.js +2 -1
  100. package/esm/sheet/lock.js +11 -0
  101. package/esm/sheet/mention.js +10 -0
  102. package/esm/sheet/range.js +1 -1
  103. package/esm/sheet/render.js +2 -0
  104. package/esm/sheet/sdk.js +1 -1
  105. package/esm/sheet/sensitization.js +2 -0
  106. package/esm/sheet/sheet2table.js +2 -0
  107. package/esm/sheet/worksheet.js +1 -1
  108. package/esm/table/sdk.js +1 -1
  109. package/package.json +4 -1
  110. package/types/diagram.d.ts +769 -41
  111. package/types/docs.d.ts +769 -41
  112. package/types/docx.d.ts +878 -43
  113. package/types/pdf.d.ts +769 -41
  114. package/types/presentation.d.ts +769 -41
  115. package/types/shared.d.ts +769 -41
  116. package/types/sheet.d.ts +1238 -76
  117. package/types/table.d.ts +781 -48
package/types/shared.d.ts CHANGED
@@ -21,6 +21,43 @@ export declare abstract class AbstractedEditorFileUploader {
21
21
  abstract resume(taskIds?: string[]): void;
22
22
  }
23
23
 
24
+ export declare type CheckLimitationResult = {
25
+ status: 'limited';
26
+ /**
27
+ * 被限制原因
28
+ */
29
+ reason?: string;
30
+ } | {
31
+ status: 'unlimited';
32
+ };
33
+
34
+ /**
35
+ * 协作者信息接口
36
+ */
37
+ export declare interface CollaboratorInfo {
38
+ /** 协作者唯一标识 */
39
+ id: number;
40
+ /** 协作者名称 */
41
+ name: string;
42
+ /** 协作者头像URL */
43
+ avatar: string;
44
+ }
45
+
46
+ export declare interface ConfirmButtonConfig {
47
+ /**
48
+ * 按钮文本
49
+ */
50
+ label?: string;
51
+ /**
52
+ * 是否隐藏
53
+ */
54
+ hidden?: boolean;
55
+ /**
56
+ * 按钮点击回调
57
+ */
58
+ onClick?: () => void;
59
+ }
60
+
24
61
  /**
25
62
  * 匿名用户信息
26
63
  * 当前用户信息未知时的缺省值
@@ -167,8 +204,9 @@ export declare interface EditorAttachmentMaxSizeOptions {
167
204
  * 编辑器附件信息
168
205
  */
169
206
  export declare interface EditorAttachmentOptions {
170
- uploader: AbstractedEditorFileUploader;
171
- download: (url: string) => void;
207
+ picker?: EditorFilePicker;
208
+ uploader?: AbstractedEditorFileUploader;
209
+ download?: (url: string) => void;
172
210
  /**
173
211
  * 图片附件相关配置
174
212
  */
@@ -242,6 +280,80 @@ export declare interface EditorBrandOptions {
242
280
  };
243
281
  }
244
282
 
283
+ export declare interface EditorCheckpointsOptions {
284
+ /**
285
+ * 获取功能卡点限制
286
+ * undefined代表无限制
287
+ */
288
+ getFeatureLimitation?: (key: string) => Limitation | undefined;
289
+ /**
290
+ * 检查是否超限
291
+ * @param key 功能卡点key
292
+ * @param value 功能卡点检查值,如文件大小/行列数量等
293
+ */
294
+ checkFeatureLimitation?: (key: string, value: number) => CheckLimitationResult;
295
+ /**
296
+ * 获取功能卡点状态,如某功能入口是否开启
297
+ */
298
+ getFeatureStatus?: (key: string) => FeatureStatus;
299
+ }
300
+
301
+ export declare interface EditorCollaborationOptions {
302
+ /**
303
+ * 是否允许离线编辑
304
+ */
305
+ offlineEditable: boolean;
306
+ /**
307
+ * 保存状态外部接口委托
308
+ */
309
+ saveStatus: SaveStatusDelegation;
310
+ /**
311
+ * 同步状态外部接口委托(部分套件不支持离线编辑)
312
+ */
313
+ syncStatus?: SyncStatusDelegation;
314
+ /**
315
+ * 是否使用严格的长度校验规则,默认关闭,在开启后如果出现长度校验失败会立刻禁止编辑器继续编写,并将保存状态设置为错误状态
316
+ */
317
+ strictCLC?: boolean;
318
+ }
319
+
320
+ /**
321
+ * 编辑器协作者管理接口
322
+ */
323
+ export declare interface EditorCollaborators {
324
+ /**
325
+ * 获取当前所有协作者列表
326
+ * @returns 返回所有协作者信息数组
327
+ */
328
+ getCollaborators: () => CollaboratorInfo[];
329
+ /**
330
+ * 开始监听协作者状态变化
331
+ * 调用此方法后,将开始接收协作者进入/离开的事件
332
+ */
333
+ start: () => void;
334
+ /**
335
+ * 停止监听协作者状态变化
336
+ * 调用此方法后,将不再接收协作者进入/离开的事件
337
+ */
338
+ stop: () => void;
339
+ /**
340
+ * 添加协作者进入事件监听器
341
+ * @param listener - 监听器回调函数,参数如下:
342
+ * - allUsers: 当前所有协作者列表
343
+ * - enteredUsers: 新进入的协作者列表
344
+ * @returns 返回一个函数,调用该函数可以移除监听器
345
+ */
346
+ addUserEnterListener: (listener: (allUsers: CollaboratorInfo[], enteredUsers: CollaboratorInfo[]) => void) => () => void;
347
+ /**
348
+ * 添加协作者离开事件监听器
349
+ * @param listener - 监听器回调函数
350
+ * - allUsers: 当前所有协作者列表
351
+ * - leftUsers: 离开的协作者列表
352
+ * @returns 返回一个函数,调用该函数可以移除监听器
353
+ */
354
+ addUserLeaveListener: (listener: (allUsers: CollaboratorInfo[], leftUsers: CollaboratorInfo[]) => void) => () => void;
355
+ }
356
+
245
357
  /**
246
358
  * 单条评论数据
247
359
  */
@@ -308,7 +420,7 @@ export declare interface EditorComments {
308
420
  /**
309
421
  * 编辑器评论初始化配置
310
422
  */
311
- export declare interface EditorCommentsOptions {
423
+ export declare interface EditorCommentsOptions extends EditorFeatureConfig {
312
424
  /**
313
425
  * 评论作者信息,如果这里的信息为空,将会使用 user 信息
314
426
  */
@@ -337,6 +449,12 @@ export declare interface EditorCommentsOptions {
337
449
  */
338
450
  mode: 'none' | 'card';
339
451
  };
452
+ /**
453
+ * 评论变化监听
454
+ * @param listener
455
+ * @returns 返回一个函数,调用该函数可以移除监听器
456
+ */
457
+ addChangedListener?: (listener: (type: 'create' | 'update' | 'close', data: EditorCommentItem) => void) => () => void;
340
458
  }
341
459
 
342
460
  export declare interface EditorContent<Delta = EditorDelta> {
@@ -362,6 +480,19 @@ export declare interface EditorContent<Delta = EditorDelta> {
362
480
  */
363
481
  export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
364
482
 
483
+ /**
484
+ * 编辑器解密选项接口
485
+ * 用于配置编辑器中需要解密的内容的相关选项
486
+ */
487
+ export declare interface EditorDecryptionOptions {
488
+ /**
489
+ * 图片附件解密函数
490
+ * @param buffer - 需要解密的二进制数据
491
+ * @returns 解密后的二进制数据
492
+ */
493
+ decrypt?: (buffer: ArrayBuffer) => ArrayBuffer;
494
+ }
495
+
365
496
  export declare interface EditorDelta {
366
497
  compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
367
498
  transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
@@ -421,16 +552,81 @@ export declare interface EditorEmbeddedObjectOptions {
421
552
  export declare interface EditorExportOptions {
422
553
  /**
423
554
  * 可导出类型
424
- * @description
425
555
  */
426
556
  supportedTypes?: string[];
427
557
  /**
428
558
  * 导出文件
429
- * @description
430
559
  */
431
560
  exportFile: (type: string) => Promise<void>;
432
561
  }
433
562
 
563
+ export declare interface EditorFeatureConfig {
564
+ /**
565
+ * 功能是否被禁用(入口还在)
566
+ */
567
+ disabled?: boolean;
568
+ /**
569
+ * 功能入口是否被隐藏
570
+ */
571
+ hidden?: boolean;
572
+ }
573
+
574
+ export declare interface EditorFileOptions {
575
+ /**
576
+ * 文件guid
577
+ */
578
+ guid: string;
579
+ /**
580
+ * 文件名
581
+ */
582
+ name?: string;
583
+ }
584
+
585
+ export declare interface EditorFilePicker {
586
+ open: (option: EditorFilePickerOpenOptions) => Promise<EditorPickedFile[]>;
587
+ }
588
+
589
+ export declare interface EditorFilePickerOpenOptions {
590
+ mimeTypes?: string[];
591
+ maxSize?: number;
592
+ extensions?: string[];
593
+ multiple?: boolean;
594
+ directory?: boolean;
595
+ }
596
+
597
+ export declare interface EditorFollowMode {
598
+ /**
599
+ * 演讲者/跟随者进入跟随模式
600
+ * 当演讲者调用此方法时,其他用户将可以开始跟随该演讲者
601
+ */
602
+ enter: () => void;
603
+ /**
604
+ * 当前是否处于跟随模式
605
+ * @returns 返回布尔值,true表示正在跟随,false表示未在跟随
606
+ */
607
+ isFollowModeActive: () => boolean;
608
+ /**
609
+ * 获取当前演讲者信息
610
+ * @returns 返回包含演讲者ID、姓名和头像信息的对象
611
+ */
612
+ getSpeaker: () => Speaker;
613
+ /**
614
+ * 添加跟随状态变化的监听器
615
+ * @param listener 状态变化时的回调函数
616
+ * @returns 返回一个用于移除监听器的函数
617
+ */
618
+ addChangedListener: (listener: () => void) => () => void;
619
+ }
620
+
621
+ export declare interface EditorFollowModeOptions extends EditorFeatureConfig {
622
+ /**
623
+ * 推送跟随消息的 socket 对象
624
+ * 实际类型为socketIO.client
625
+ * TODO: 抽象为接口
626
+ */
627
+ socket?: unknown;
628
+ }
629
+
434
630
  export declare interface EditorFontFace {
435
631
  /**
436
632
  * 字体的名称,用于在用户界面上显示的名称
@@ -509,6 +705,19 @@ export declare interface EditorFontsOptions {
509
705
  list: EditorFontsList;
510
706
  }
511
707
 
708
+ export declare interface EditorHistory {
709
+ /**
710
+ * 显示历史记录侧边栏
711
+ */
712
+ showSidebar: () => void;
713
+ /**
714
+ * 隐藏历史记录侧边栏
715
+ */
716
+ hideSidebar: () => void;
717
+ }
718
+
719
+ export declare type EditorHistoryOptions = EditorFeatureConfig;
720
+
512
721
  /**
513
722
  * i18n 相关设置
514
723
  */
@@ -529,13 +738,39 @@ export declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'cen
529
738
  * 链接配置,抽象打开链接等操作
530
739
  */
531
740
  export declare interface EditorLinkOptions {
741
+ /**
742
+ * 链接识别配置
743
+ */
744
+ detection?: {
745
+ /**
746
+ * 支持识别的链接格式
747
+ */
748
+ pattern?: string | RegExp | (string | RegExp)[];
749
+ /**
750
+ * 是否启用链接识别,默认关闭
751
+ */
752
+ enabled?: boolean;
753
+ };
532
754
  /**
533
755
  * 打开链接,如果取消了打开链接操作,返回 false
534
756
  * @param url
535
757
  * @param target
536
758
  * @returns
537
759
  */
538
- open: (url: string, target: string) => Promise<boolean>;
760
+ open?: (url: string, target: string) => Promise<boolean>;
761
+ /**
762
+ * 根据文件guid以及其他参数生成链接
763
+ */
764
+ generate?: (params: FileLinkParams) => Promise<string>;
765
+ /**
766
+ * 从文档链接中解析得到文件guid等参数
767
+ */
768
+ parse?: (url: string) => Promise<FileLinkParams | undefined>;
769
+ /**
770
+ * 生成sdk2.0内部链接
771
+ * 使用场景:专业表格跨表格引用
772
+ */
773
+ generateInternal?: (params: FileLinkParams) => Promise<string>;
539
774
  }
540
775
 
541
776
  /**
@@ -620,29 +855,27 @@ export declare interface EditorMenuEntryMenuItemConfig<TName extends string> ext
620
855
  /**
621
856
  * 菜单功能按钮配置
622
857
  */
623
- export declare interface EditorMenuFeatureConfig {
858
+ export declare interface EditorMenuFeatureConfig extends EditorFeatureConfig {
624
859
  /**
625
- * 是否隐藏菜单项,设置为true则隐藏菜单项
860
+ * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
626
861
  */
627
- hidden?: boolean;
862
+ label?: string;
628
863
  /**
629
- * 是否禁用菜单项,设置为true则变为灰色不可点击
864
+ * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
630
865
  */
631
- disabled?: boolean;
632
- }
633
-
634
- /**
635
- * 菜单功能按钮配置
636
- */
637
- export declare interface EditorMenuFeatureConfig {
866
+ icon?: string;
638
867
  /**
639
- * 是否隐藏菜单项,设置为true则隐藏菜单项
868
+ * 按钮点击事件.接受一个函数,可以自定义点击事件。
640
869
  */
641
- hidden?: boolean;
870
+ callback?: () => void;
642
871
  /**
643
- * 是否禁用菜单项,设置为true则变为灰色不可点击
872
+ * 按钮提示文本,鼠标悬浮到按钮上时显示的tooltip文字
644
873
  */
645
- disabled?: boolean;
874
+ tooltip?: string;
875
+ /**
876
+ * 按钮在工具栏中位置,不设置则按照默认位置
877
+ */
878
+ index?: number;
646
879
  }
647
880
 
648
881
  /**
@@ -700,9 +933,9 @@ export declare interface EditorMenuOptions<TName extends string> {
700
933
  entries?: EditorMenuEntryConfig<TName>[];
701
934
  /**
702
935
  * 菜单栏功能按钮配置
703
- * TODO 此配置目前没有用到,后续看是保留还是和custom合并
936
+ * 更加间接的配置项
704
937
  */
705
- features?: Record<TName, EditorMenuFeatureConfig>;
938
+ features?: Partial<Record<TName, EditorMenuFeatureConfig>>;
706
939
  /**
707
940
  * 自定义按钮配置
708
941
  */
@@ -772,6 +1005,10 @@ export declare interface EditorOptions {
772
1005
  * 匿名用户的缺省信息
773
1006
  */
774
1007
  anonymous?: EditorAnonymousOptions;
1008
+ /**
1009
+ * 当前文件信息
1010
+ */
1011
+ file?: EditorFileOptions;
775
1012
  /**
776
1013
  * i18n 相关设置
777
1014
  */
@@ -779,13 +1016,13 @@ export declare interface EditorOptions {
779
1016
  /**
780
1017
  * 品牌相关设置
781
1018
  */
782
- brand?: EditorBrandOptions;
1019
+ brand?: MaybePromiseValue<EditorBrandOptions>;
783
1020
  /**
784
1021
  * 编辑器内部资源请求配置
785
1022
  */
786
1023
  assets?: EditorAssetsOptions;
787
1024
  /**
788
- * 编辑器内部超链接设置
1025
+ * 编辑器链接相关配置
789
1026
  */
790
1027
  link?: EditorLinkOptions;
791
1028
  /**
@@ -812,6 +1049,38 @@ export declare interface EditorOptions {
812
1049
  * 导出设置
813
1050
  */
814
1051
  export?: EditorExportOptions;
1052
+ /**
1053
+ * 解密设置
1054
+ */
1055
+ decryption?: EditorDecryptionOptions;
1056
+ /**
1057
+ * 网络请求设置
1058
+ */
1059
+ http?: HTTPProxy;
1060
+ /**
1061
+ * 编辑器渲染设置项
1062
+ */
1063
+ render?: EditorRenderOptions;
1064
+ /**
1065
+ * 编辑器 UI 相关
1066
+ */
1067
+ ui?: EditorUiOptions;
1068
+ /**
1069
+ * 编辑器卡点限制
1070
+ */
1071
+ checkpoints?: EditorCheckpointsOptions;
1072
+ /**
1073
+ * 编辑器工具箱设置
1074
+ */
1075
+ toolbox?: EditorToolboxOptions;
1076
+ /**
1077
+ * 编辑器历史设置
1078
+ */
1079
+ history?: EditorHistoryOptions;
1080
+ /**
1081
+ * 编辑器协作相关
1082
+ */
1083
+ collaboration?: EditorCollaborationOptions;
815
1084
  }
816
1085
 
817
1086
  /**
@@ -872,10 +1141,33 @@ export declare interface EditorOutlineOptions {
872
1141
  visible?: boolean;
873
1142
  }
874
1143
 
1144
+ export declare interface EditorPickedFile {
1145
+ /**
1146
+ * 文件大小
1147
+ */
1148
+ size: number;
1149
+ /**
1150
+ * 文件名
1151
+ */
1152
+ name: string;
1153
+ /**
1154
+ * 文件路径,仅显示有意义的相对路径,可用在上传文件夹和识别文件使用
1155
+ */
1156
+ path?: string;
1157
+ /**
1158
+ * 文件类型,mime-type
1159
+ */
1160
+ type: string;
1161
+ /**
1162
+ * 文件原始数据,用于给上传控件使用
1163
+ */
1164
+ raw: File;
1165
+ }
1166
+
875
1167
  /**
876
1168
  * 编辑器打印设置
877
1169
  */
878
- export declare interface EditorPrintOptions {
1170
+ export declare interface EditorPrintOptions extends EditorFeatureConfig {
879
1171
  /**
880
1172
  * 部分套件如果绕过了编辑器预设的打印接口,直接通过拉起了浏览器的打印页面,这时打印页面无法获取到编辑器的内容,
881
1173
  * 这种情况下就会 fallback 到这个 options 上,显示一个提示信息。
@@ -883,10 +1175,6 @@ export declare interface EditorPrintOptions {
883
1175
  fallback?: {
884
1176
  message: string;
885
1177
  };
886
- /**
887
- * 是否禁用打印功能
888
- */
889
- disabled?: boolean;
890
1178
  }
891
1179
 
892
1180
  /**
@@ -900,6 +1188,13 @@ export declare interface EditorRemoteUploadableFile extends EditorBaseUploadable
900
1188
  raw?: never;
901
1189
  }
902
1190
 
1191
+ export declare interface EditorRenderOptions {
1192
+ /**
1193
+ * 渲染的容器
1194
+ */
1195
+ container?: HTMLElement;
1196
+ }
1197
+
903
1198
  /**
904
1199
  * 编辑器通用接口
905
1200
  */
@@ -934,8 +1229,24 @@ export declare abstract class EditorSDK {
934
1229
  abstract get mode(): EditorMode;
935
1230
  /**
936
1231
  * 编辑器评论相关接口
1232
+ * 部分环境不存在,如离线客户端
937
1233
  */
938
- abstract get comments(): EditorComments;
1234
+ abstract get comments(): EditorComments | undefined;
1235
+ /**
1236
+ * 编辑器协作者相关接口
1237
+ * 部分环境不存在,如离线客户端
1238
+ */
1239
+ abstract get collaborators(): EditorCollaborators | undefined;
1240
+ /**
1241
+ * 编辑器历史相关接口
1242
+ * 部分环境不存在,如离线客户端
1243
+ */
1244
+ abstract get history(): EditorHistory | undefined;
1245
+ /**
1246
+ * 编辑器版本相关接口
1247
+ * 部分环境不存在,如离线客户端
1248
+ */
1249
+ abstract get version(): EditorVersion | undefined;
939
1250
  }
940
1251
 
941
1252
  /**
@@ -1071,11 +1382,11 @@ export declare interface EditorTextOptions<Color = string> {
1071
1382
  /**
1072
1383
  * 工具栏功能按钮配置(包括内置按钮和自定义按钮)
1073
1384
  */
1074
- export declare interface EditorToolbarFeatureButton<TName extends string> {
1385
+ export declare interface EditorToolbarFeatureButton<TName extends string> extends EditorFeatureConfig {
1075
1386
  /**
1076
1387
  * 按钮的唯一标识,用以确定配置的是哪个按钮。
1077
1388
  */
1078
- name: TName;
1389
+ name?: TName;
1079
1390
  /**
1080
1391
  * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
1081
1392
  */
@@ -1084,14 +1395,6 @@ export declare interface EditorToolbarFeatureButton<TName extends string> {
1084
1395
  * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1085
1396
  */
1086
1397
  icon?: string;
1087
- /**
1088
- * 按钮是否隐藏,设置为true则隐藏按钮
1089
- */
1090
- hidden?: boolean;
1091
- /**
1092
- * 按钮是否禁用,设置为true则变为灰色不可点击
1093
- */
1094
- disabled?: boolean;
1095
1398
  /**
1096
1399
  * 按钮点击事件.接受一个函数,可以自定义点击事件。
1097
1400
  */
@@ -1135,6 +1438,90 @@ export declare interface EditorToolbarOptions<TName extends string> {
1135
1438
  custom?: EditorToolbarFeatureButtonConfig<string>;
1136
1439
  }
1137
1440
 
1441
+ /**
1442
+ * 编辑器工具箱配置选项接口
1443
+ */
1444
+ export declare interface EditorToolboxOptions {
1445
+ /**
1446
+ * 获取工具箱配置
1447
+ * @param attachGuidList - 附件GUID列表
1448
+ * @returns 返回工具箱工具项列表
1449
+ */
1450
+ getToolbox?: (attachGuidList: string[]) => Promise<{
1451
+ tools: ToolboxToolItem[];
1452
+ }>;
1453
+ }
1454
+
1455
+ /**
1456
+ * 编辑器UI选项接口
1457
+ * 定义了编辑器可以使用的UI相关功能
1458
+ */
1459
+ export declare interface EditorUiOptions {
1460
+ /**
1461
+ * 侧边栏
1462
+ */
1463
+ sidebar?: {
1464
+ /**
1465
+ * 打开使用指南/快捷键侧边栏
1466
+ */
1467
+ open?: (activeKey: 'userGuide' | 'shortcut') => void;
1468
+ };
1469
+ /**
1470
+ * 升级弹窗
1471
+ */
1472
+ upgrade?: {
1473
+ /**
1474
+ * 显示升级弹窗
1475
+ */
1476
+ showModal?: (options: ShowUpgradeModalProps) => Promise<ShowUpgradeModalResponse>;
1477
+ };
1478
+ notification?: {
1479
+ /**
1480
+ * 渲染通知条
1481
+ */
1482
+ render?: (params: RenderNotificationProps) => void;
1483
+ };
1484
+ /**
1485
+ * 用户名片
1486
+ */
1487
+ userCard?: {
1488
+ /**
1489
+ * 需要排除的用户卡片字段(不会在用户卡片中展示)
1490
+ */
1491
+ excludeFields?: string[];
1492
+ /**
1493
+ * 渲染用户卡片
1494
+ */
1495
+ render?: (params: RenderUserCardProps) => RenderUserCardResult;
1496
+ };
1497
+ /**
1498
+ * toast
1499
+ */
1500
+ toast?: {
1501
+ /**
1502
+ * 显示自定义toast
1503
+ */
1504
+ show?: (options: ShowToastOptions) => void;
1505
+ /**
1506
+ * 是否禁用toast
1507
+ */
1508
+ disabled?: boolean;
1509
+ };
1510
+ /**
1511
+ * confirm
1512
+ */
1513
+ confirm?: {
1514
+ /**
1515
+ * 显示自定义confirm
1516
+ */
1517
+ show?: (options: ShowConfirmOptions) => void;
1518
+ /**
1519
+ * 是否禁用confirm
1520
+ */
1521
+ disabled?: boolean;
1522
+ };
1523
+ }
1524
+
1138
1525
  export declare type EditorUploadableFile = EditorLocalUploadableFile;
1139
1526
 
1140
1527
  /**
@@ -1198,6 +1585,13 @@ export declare interface EditorUserOptions {
1198
1585
  defaultAvatar?: string;
1199
1586
  }
1200
1587
 
1588
+ export declare interface EditorVersion {
1589
+ /**
1590
+ * 保存版本
1591
+ */
1592
+ createRevision: () => void;
1593
+ }
1594
+
1201
1595
  /**
1202
1596
  * 编辑器外部水印信息
1203
1597
  */
@@ -1221,6 +1615,86 @@ export declare type EditorWatermarkResource = {
1221
1615
  url: string;
1222
1616
  };
1223
1617
 
1618
+ export declare enum FeatureStatus {
1619
+ /**
1620
+ * 隐藏
1621
+ */
1622
+ Hidden = 0,
1623
+ /**
1624
+ * 正常
1625
+ */
1626
+ Normal = 1,
1627
+ /**
1628
+ * 禁用
1629
+ */
1630
+ Disabled = 2
1631
+ }
1632
+
1633
+ export declare interface FileLinkParams {
1634
+ /**
1635
+ * 文件guid
1636
+ */
1637
+ fileGuid: string;
1638
+ /**
1639
+ * 文件类型,如docs,sheets
1640
+ */
1641
+ type: string;
1642
+ /**
1643
+ * 用于定位到 mention、评论等位置。
1644
+ */
1645
+ hash?: string;
1646
+ /**
1647
+ * 其他自定义字段
1648
+ */
1649
+ [key: string]: unknown;
1650
+ }
1651
+
1652
+ /**
1653
+ * 文件子类型枚举
1654
+ */
1655
+ export declare enum FileSubtype {
1656
+ /** 专业版幻灯片 */
1657
+ ProSlide = -10,
1658
+ /** 白板 */
1659
+ Whiteboard = -9,
1660
+ /** 表单 */
1661
+ Form = -8,
1662
+ /** 思维导图 */
1663
+ Mind = -7,
1664
+ /** 专业文档 */
1665
+ ProDoc = -6,
1666
+ /** 幻灯片 */
1667
+ Slide = -5,
1668
+ /** 新表格 */
1669
+ NewSheet = -4,
1670
+ /** 老表格 */
1671
+ Sheet = -3,
1672
+ /** 新文档 */
1673
+ NewDoc = -2,
1674
+ /** 老老表格 */
1675
+ OldSheet = -1,
1676
+ /** 旧文档 */
1677
+ OldDoc = 0,
1678
+ /** 文件夹 */
1679
+ Folder = 1,
1680
+ /** 协作 */
1681
+ Collaboration = 2
1682
+ }
1683
+
1684
+ /**
1685
+ * 文件类型枚举
1686
+ */
1687
+ export declare enum FileType {
1688
+ /** 未知类型 */
1689
+ Unknown = 0,
1690
+ /** 文件夹或空间 */
1691
+ FolderOrSpace = 1,
1692
+ /** 石墨文件 */
1693
+ ShimoFile = 2,
1694
+ /** 云文件 */
1695
+ CloudFile = 3
1696
+ }
1697
+
1224
1698
  /**
1225
1699
  * 请求、响应头
1226
1700
  */
@@ -1328,6 +1802,260 @@ export declare interface HTTPResponse<Data = unknown> {
1328
1802
  */
1329
1803
  export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
1330
1804
 
1805
+ export declare interface Limitation {
1806
+ /**
1807
+ * 限制原因(错误码)
1808
+ */
1809
+ code?: number;
1810
+ /**
1811
+ * 单位(不参与计算,仅作显示)
1812
+ * minutes、MB
1813
+ */
1814
+ unit?: string;
1815
+ /**
1816
+ * 描述
1817
+ */
1818
+ desc?: string;
1819
+ /**
1820
+ * min/max int64 默认表示 MB/个/分钟/行
1821
+ */
1822
+ max?: number;
1823
+ min?: number;
1824
+ }
1825
+
1331
1826
  export declare type MaybePromiseValue<T> = T | Promise<T>;
1332
1827
 
1828
+ /**
1829
+ * 升级弹窗类型
1830
+ * 个人版或企业版
1831
+ */
1832
+ export declare type OpenType = 'personal' | 'enterprise';
1833
+
1834
+ export declare interface RenderNotificationProps {
1835
+ /**
1836
+ * 渲染的容器
1837
+ */
1838
+ container: HTMLElement;
1839
+ /**
1840
+ * 自定义样式,实际类型为React.CSSProperties
1841
+ */
1842
+ style?: Record<string, string | number>;
1843
+ }
1844
+
1845
+ export declare interface RenderUserCardProps {
1846
+ uid: string | number;
1847
+ rect: {
1848
+ left: number;
1849
+ top: number;
1850
+ width: number;
1851
+ height: number;
1852
+ hasReducedHeaderHeight?: boolean;
1853
+ };
1854
+ position?: 'top' | 'left' | 'right' | 'bottom' | 'left_top' | 'left_bottom' | 'right_top' | 'bottom_top' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right';
1855
+ trigger: 'hover' | 'click';
1856
+ }
1857
+
1858
+ export declare interface RenderUserCardResult {
1859
+ /**
1860
+ * 关闭用户卡片
1861
+ */
1862
+ close: (force?: boolean) => void;
1863
+ }
1864
+
1865
+ /**
1866
+ * 升级操作结果类型枚举
1867
+ */
1868
+ export declare enum ResultType {
1869
+ /** 操作成功 */
1870
+ Success = "success",
1871
+ /** 用户取消操作 */
1872
+ Cancel = "cancel",
1873
+ /** 发生错误 */
1874
+ Error = "error",
1875
+ /** 跳转(目前仅在企业版用户过期时返回) */
1876
+ Redirect = "redirect"
1877
+ }
1878
+
1879
+ export declare interface SaveContext {
1880
+ clientId: string;
1881
+ }
1882
+
1883
+ export declare interface SaveStatusDelegation {
1884
+ /**
1885
+ * 保存状态发生变化时触发回调
1886
+ * @param state
1887
+ * @returns
1888
+ */
1889
+ onChangeState: (state: unknown, context: SaveContext) => void;
1890
+ /**
1891
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
1892
+ * @param error
1893
+ * @returns
1894
+ */
1895
+ onError: (error: unknown, context: SaveContext) => void;
1896
+ }
1897
+
1898
+ /**
1899
+ * 付费场景类型
1900
+ */
1901
+ export declare type Scene = 'history' | 'version' | 'public' | 'search' | 'attachments';
1902
+
1903
+ export declare interface ShowConfirmOptions {
1904
+ /**
1905
+ * 确认框标题
1906
+ */
1907
+ title: string;
1908
+ /**
1909
+ * 确认框描述
1910
+ */
1911
+ description: string;
1912
+ /**
1913
+ * 确认按钮配置
1914
+ */
1915
+ confirmButton?: ConfirmButtonConfig;
1916
+ /**
1917
+ * 取消按钮配置
1918
+ */
1919
+ cancelButton?: ConfirmButtonConfig;
1920
+ }
1921
+
1922
+ export declare interface ShowToastOptions {
1923
+ /**
1924
+ * toast标题
1925
+ */
1926
+ title: string;
1927
+ /**
1928
+ * toast类型
1929
+ */
1930
+ type: 'success' | 'error' | 'warn' | 'info';
1931
+ /**
1932
+ * 显示时长,默认3s
1933
+ */
1934
+ duration?: number;
1935
+ /**
1936
+ * 是否自动隐藏,默认true
1937
+ */
1938
+ autoHide?: boolean;
1939
+ }
1940
+
1941
+ /**
1942
+ * 升级弹窗配置选项接口
1943
+ */
1944
+ export declare interface ShowUpgradeModalProps {
1945
+ /** 打开个人升级弹窗还是企业弹窗 */
1946
+ openType: OpenType;
1947
+ /** 触发功能的Key值 */
1948
+ serviceKey: string;
1949
+ /** 文件类型(如果业务能够获取到则为必传) */
1950
+ fileType?: FileType;
1951
+ /** 文件子类型(如果业务能够获取到则为必传) */
1952
+ fileSubtype?: FileSubtype;
1953
+ /** 付费场景,用于升级弹窗的定制化文案显示 */
1954
+ scene?: Scene;
1955
+ }
1956
+
1957
+ /**
1958
+ * 升级弹窗响应接口
1959
+ */
1960
+ export declare interface ShowUpgradeModalResponse {
1961
+ /** 操作结果 */
1962
+ result: ResultType;
1963
+ /** 错误信息(供开发人员查看) */
1964
+ errorMsg?: string;
1965
+ }
1966
+
1967
+ /**
1968
+ * 演讲者信息接口
1969
+ * 包含演讲者的基本信息
1970
+ */
1971
+ export declare interface Speaker {
1972
+ /** 演讲者ID */
1973
+ id: number;
1974
+ /** 演讲者姓名 */
1975
+ name: string;
1976
+ /** 演讲者头像URL */
1977
+ avatar: string;
1978
+ }
1979
+
1980
+ export declare interface SyncContext {
1981
+ clientId: string;
1982
+ timestamp: number;
1983
+ }
1984
+
1985
+ export declare interface SyncStatusDelegation {
1986
+ /**
1987
+ * 同步状态发生变化时触发回调
1988
+ * @param state
1989
+ * @param context
1990
+ * @returns
1991
+ */
1992
+ onChangeState: (state: unknown, context: SyncContext) => void;
1993
+ /**
1994
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
1995
+ * @param error
1996
+ * @param context
1997
+ * @returns
1998
+ */
1999
+ onError: (error: unknown, context: SyncContext) => void;
2000
+ }
2001
+
2002
+ /**
2003
+ * 工具箱工具项接口
2004
+ */
2005
+ export declare interface ToolboxToolItem {
2006
+ /** 工具类型 */
2007
+ type: ToolTypes;
2008
+ /** 工具名称 */
2009
+ name: string;
2010
+ /** 工具图标 */
2011
+ icon: string;
2012
+ /** 工具分组 */
2013
+ group: ToolGroupTypes;
2014
+ /** 分组名称 */
2015
+ groupName: string;
2016
+ /** 是否为测试版功能 */
2017
+ isBeta: boolean;
2018
+ /** 工具回调函数 */
2019
+ callback: () => Promise<{
2020
+ result: 'success' | 'failed';
2021
+ error?: unknown;
2022
+ }>;
2023
+ }
2024
+
2025
+ /**
2026
+ * 工具分组类型枚举
2027
+ */
2028
+ export declare enum ToolGroupTypes {
2029
+ /** 转换工具组 */
2030
+ Convert = "convert",
2031
+ /** 处理工具组 */
2032
+ Processing = "processing",
2033
+ /** 智能工具组 */
2034
+ Intelligent = "intelligent"
2035
+ }
2036
+
2037
+ /**
2038
+ * 工具类型枚举
2039
+ */
2040
+ export declare enum ToolTypes {
2041
+ /** PDF转Word */
2042
+ PdfToWord = "pdfToWord",
2043
+ /** PDF转Excel */
2044
+ PdfToExcel = "pdfToExcel",
2045
+ /** PDF转PPT */
2046
+ PdfToPpt = "pdfToPpt",
2047
+ /** 图片转PDF */
2048
+ ImgToPdf = "imgToPdf",
2049
+ /** PDF合并 */
2050
+ PdfMerge = "pdfMerge",
2051
+ /** PDF拆分 */
2052
+ PdfSplit = "pdfSplit",
2053
+ /** 文件内容提取 */
2054
+ FileContentExtraction = "fileContentExtraction",
2055
+ /** 图片转文字 */
2056
+ COR = "imgToText",
2057
+ /** 音频转文字 */
2058
+ STT = "audioToText"
2059
+ }
2060
+
1333
2061
  export { }