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

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 (115) 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/presentation/export.js +14 -0
  7. package/cjs/presentation/index.js +4 -2
  8. package/cjs/presentation/sdk.js +2 -12
  9. package/cjs/shared/attachment.js +1 -1
  10. package/cjs/shared/checkpoints.js +19 -0
  11. package/cjs/shared/collaboration.js +3 -0
  12. package/cjs/shared/collaborators.js +3 -0
  13. package/cjs/shared/comments.js +1 -1
  14. package/cjs/shared/decryption.js +3 -0
  15. package/cjs/shared/download.js +3 -0
  16. package/cjs/shared/editor.js +1 -1
  17. package/cjs/shared/export.js +1 -1
  18. package/cjs/shared/feature.js +3 -0
  19. package/cjs/shared/file-picker.js +1 -1
  20. package/cjs/shared/file.js +50 -0
  21. package/cjs/shared/follow-mode.js +3 -0
  22. package/cjs/shared/history.js +3 -0
  23. package/cjs/shared/index.js +1 -1
  24. package/cjs/shared/link.js +1 -1
  25. package/cjs/shared/mention.js +3 -0
  26. package/cjs/shared/menu.js +1 -1
  27. package/cjs/shared/performance.js +3 -0
  28. package/cjs/shared/print.js +1 -1
  29. package/cjs/shared/render.js +3 -0
  30. package/cjs/shared/tool-box.js +40 -0
  31. package/cjs/shared/toolbar.js +1 -1
  32. package/cjs/shared/ui.js +18 -0
  33. package/cjs/shared/version.js +3 -0
  34. package/cjs/sheet/cell.js +29 -1
  35. package/cjs/sheet/chart.js +3 -0
  36. package/cjs/sheet/checklist.js +3 -0
  37. package/cjs/sheet/combine-sheets.js +3 -0
  38. package/cjs/sheet/comments.js +3 -0
  39. package/cjs/sheet/data-transfer.js +3 -0
  40. package/cjs/sheet/export.js +3 -0
  41. package/cjs/sheet/font.js +3 -0
  42. package/cjs/sheet/form.js +3 -0
  43. package/cjs/sheet/import-formula.js +3 -0
  44. package/cjs/sheet/index.js +4 -2
  45. package/cjs/sheet/lock.js +14 -0
  46. package/cjs/sheet/mention.js +13 -0
  47. package/cjs/sheet/range.js +1 -1
  48. package/cjs/sheet/render.js +3 -0
  49. package/cjs/sheet/sdk.js +1 -1
  50. package/cjs/sheet/sensitization.js +3 -0
  51. package/cjs/sheet/sheet2table.js +3 -0
  52. package/cjs/sheet/worksheet.js +1 -1
  53. package/cjs/table/sdk.js +1 -1
  54. package/esm/docx/index.js +1 -1
  55. package/esm/docx/menu.js +1 -1
  56. package/esm/docx/sdk.js +1 -1
  57. package/esm/docx/theme.js +1 -1
  58. package/esm/docx/toolbar.js +2 -0
  59. package/esm/presentation/export.js +11 -0
  60. package/esm/presentation/index.js +2 -1
  61. package/esm/presentation/sdk.js +1 -11
  62. package/esm/shared/attachment.js +1 -1
  63. package/esm/shared/checkpoints.js +16 -0
  64. package/esm/shared/collaboration.js +2 -0
  65. package/esm/shared/collaborators.js +2 -0
  66. package/esm/shared/comments.js +1 -1
  67. package/esm/shared/decryption.js +2 -0
  68. package/esm/shared/download.js +2 -0
  69. package/esm/shared/editor.js +1 -1
  70. package/esm/shared/export.js +1 -1
  71. package/esm/shared/feature.js +2 -0
  72. package/esm/shared/file-picker.js +1 -1
  73. package/esm/shared/file.js +47 -0
  74. package/esm/shared/follow-mode.js +2 -0
  75. package/esm/shared/history.js +2 -0
  76. package/esm/shared/index.js +1 -1
  77. package/esm/shared/link.js +1 -1
  78. package/esm/shared/mention.js +2 -0
  79. package/esm/shared/menu.js +1 -1
  80. package/esm/shared/performance.js +2 -0
  81. package/esm/shared/print.js +1 -1
  82. package/esm/shared/render.js +2 -0
  83. package/esm/shared/tool-box.js +37 -0
  84. package/esm/shared/toolbar.js +1 -1
  85. package/esm/shared/ui.js +15 -0
  86. package/esm/shared/version.js +2 -0
  87. package/esm/sheet/cell.js +28 -2
  88. package/esm/sheet/chart.js +2 -0
  89. package/esm/sheet/checklist.js +2 -0
  90. package/esm/sheet/combine-sheets.js +2 -0
  91. package/esm/sheet/comments.js +2 -0
  92. package/esm/sheet/data-transfer.js +2 -0
  93. package/esm/sheet/export.js +2 -0
  94. package/esm/sheet/font.js +2 -0
  95. package/esm/sheet/form.js +2 -0
  96. package/esm/sheet/import-formula.js +2 -0
  97. package/esm/sheet/index.js +2 -1
  98. package/esm/sheet/lock.js +11 -0
  99. package/esm/sheet/mention.js +10 -0
  100. package/esm/sheet/range.js +1 -1
  101. package/esm/sheet/render.js +2 -0
  102. package/esm/sheet/sdk.js +1 -1
  103. package/esm/sheet/sensitization.js +2 -0
  104. package/esm/sheet/sheet2table.js +2 -0
  105. package/esm/sheet/worksheet.js +1 -1
  106. package/esm/table/sdk.js +1 -1
  107. package/package.json +1 -1
  108. package/types/diagram.d.ts +769 -41
  109. package/types/docs.d.ts +769 -41
  110. package/types/docx.d.ts +878 -43
  111. package/types/pdf.d.ts +769 -41
  112. package/types/presentation.d.ts +769 -41
  113. package/types/shared.d.ts +769 -41
  114. package/types/sheet.d.ts +1238 -76
  115. package/types/table.d.ts +781 -48
package/types/docs.d.ts CHANGED
@@ -32,6 +32,43 @@ export declare abstract class AbstractedEditorFileUploader {
32
32
  abstract resume(taskIds?: string[]): void;
33
33
  }
34
34
 
35
+ export declare type CheckLimitationResult = {
36
+ status: 'limited';
37
+ /**
38
+ * 被限制原因
39
+ */
40
+ reason?: string;
41
+ } | {
42
+ status: 'unlimited';
43
+ };
44
+
45
+ /**
46
+ * 协作者信息接口
47
+ */
48
+ export declare interface CollaboratorInfo {
49
+ /** 协作者唯一标识 */
50
+ id: number;
51
+ /** 协作者名称 */
52
+ name: string;
53
+ /** 协作者头像URL */
54
+ avatar: string;
55
+ }
56
+
57
+ export declare interface ConfirmButtonConfig {
58
+ /**
59
+ * 按钮文本
60
+ */
61
+ label?: string;
62
+ /**
63
+ * 是否隐藏
64
+ */
65
+ hidden?: boolean;
66
+ /**
67
+ * 按钮点击回调
68
+ */
69
+ onClick?: () => void;
70
+ }
71
+
35
72
  /**
36
73
  * 文档信息配置项,用于显示在文档信息弹窗中的内容
37
74
  */
@@ -359,8 +396,9 @@ export declare interface EditorAttachmentMaxSizeOptions {
359
396
  * 编辑器附件信息
360
397
  */
361
398
  export declare interface EditorAttachmentOptions {
362
- uploader: AbstractedEditorFileUploader;
363
- download: (url: string) => void;
399
+ picker?: EditorFilePicker;
400
+ uploader?: AbstractedEditorFileUploader;
401
+ download?: (url: string) => void;
364
402
  /**
365
403
  * 图片附件相关配置
366
404
  */
@@ -434,6 +472,80 @@ export declare interface EditorBrandOptions {
434
472
  };
435
473
  }
436
474
 
475
+ export declare interface EditorCheckpointsOptions {
476
+ /**
477
+ * 获取功能卡点限制
478
+ * undefined代表无限制
479
+ */
480
+ getFeatureLimitation?: (key: string) => Limitation | undefined;
481
+ /**
482
+ * 检查是否超限
483
+ * @param key 功能卡点key
484
+ * @param value 功能卡点检查值,如文件大小/行列数量等
485
+ */
486
+ checkFeatureLimitation?: (key: string, value: number) => CheckLimitationResult;
487
+ /**
488
+ * 获取功能卡点状态,如某功能入口是否开启
489
+ */
490
+ getFeatureStatus?: (key: string) => FeatureStatus;
491
+ }
492
+
493
+ export declare interface EditorCollaborationOptions {
494
+ /**
495
+ * 是否允许离线编辑
496
+ */
497
+ offlineEditable: boolean;
498
+ /**
499
+ * 保存状态外部接口委托
500
+ */
501
+ saveStatus: SaveStatusDelegation;
502
+ /**
503
+ * 同步状态外部接口委托(部分套件不支持离线编辑)
504
+ */
505
+ syncStatus?: SyncStatusDelegation;
506
+ /**
507
+ * 是否使用严格的长度校验规则,默认关闭,在开启后如果出现长度校验失败会立刻禁止编辑器继续编写,并将保存状态设置为错误状态
508
+ */
509
+ strictCLC?: boolean;
510
+ }
511
+
512
+ /**
513
+ * 编辑器协作者管理接口
514
+ */
515
+ export declare interface EditorCollaborators {
516
+ /**
517
+ * 获取当前所有协作者列表
518
+ * @returns 返回所有协作者信息数组
519
+ */
520
+ getCollaborators: () => CollaboratorInfo[];
521
+ /**
522
+ * 开始监听协作者状态变化
523
+ * 调用此方法后,将开始接收协作者进入/离开的事件
524
+ */
525
+ start: () => void;
526
+ /**
527
+ * 停止监听协作者状态变化
528
+ * 调用此方法后,将不再接收协作者进入/离开的事件
529
+ */
530
+ stop: () => void;
531
+ /**
532
+ * 添加协作者进入事件监听器
533
+ * @param listener - 监听器回调函数,参数如下:
534
+ * - allUsers: 当前所有协作者列表
535
+ * - enteredUsers: 新进入的协作者列表
536
+ * @returns 返回一个函数,调用该函数可以移除监听器
537
+ */
538
+ addUserEnterListener: (listener: (allUsers: CollaboratorInfo[], enteredUsers: CollaboratorInfo[]) => void) => () => void;
539
+ /**
540
+ * 添加协作者离开事件监听器
541
+ * @param listener - 监听器回调函数
542
+ * - allUsers: 当前所有协作者列表
543
+ * - leftUsers: 离开的协作者列表
544
+ * @returns 返回一个函数,调用该函数可以移除监听器
545
+ */
546
+ addUserLeaveListener: (listener: (allUsers: CollaboratorInfo[], leftUsers: CollaboratorInfo[]) => void) => () => void;
547
+ }
548
+
437
549
  /**
438
550
  * 单条评论数据
439
551
  */
@@ -500,7 +612,7 @@ export declare interface EditorComments {
500
612
  /**
501
613
  * 编辑器评论初始化配置
502
614
  */
503
- export declare interface EditorCommentsOptions {
615
+ export declare interface EditorCommentsOptions extends EditorFeatureConfig {
504
616
  /**
505
617
  * 评论作者信息,如果这里的信息为空,将会使用 user 信息
506
618
  */
@@ -529,6 +641,12 @@ export declare interface EditorCommentsOptions {
529
641
  */
530
642
  mode: 'none' | 'card';
531
643
  };
644
+ /**
645
+ * 评论变化监听
646
+ * @param listener
647
+ * @returns 返回一个函数,调用该函数可以移除监听器
648
+ */
649
+ addChangedListener?: (listener: (type: 'create' | 'update' | 'close', data: EditorCommentItem) => void) => () => void;
532
650
  }
533
651
 
534
652
  export declare interface EditorContent<Delta = EditorDelta> {
@@ -554,6 +672,19 @@ export declare interface EditorContent<Delta = EditorDelta> {
554
672
  */
555
673
  export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
556
674
 
675
+ /**
676
+ * 编辑器解密选项接口
677
+ * 用于配置编辑器中需要解密的内容的相关选项
678
+ */
679
+ export declare interface EditorDecryptionOptions {
680
+ /**
681
+ * 图片附件解密函数
682
+ * @param buffer - 需要解密的二进制数据
683
+ * @returns 解密后的二进制数据
684
+ */
685
+ decrypt?: (buffer: ArrayBuffer) => ArrayBuffer;
686
+ }
687
+
557
688
  export declare interface EditorDelta {
558
689
  compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
559
690
  transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
@@ -613,16 +744,81 @@ export declare interface EditorEmbeddedObjectOptions {
613
744
  export declare interface EditorExportOptions {
614
745
  /**
615
746
  * 可导出类型
616
- * @description
617
747
  */
618
748
  supportedTypes?: string[];
619
749
  /**
620
750
  * 导出文件
621
- * @description
622
751
  */
623
752
  exportFile: (type: string) => Promise<void>;
624
753
  }
625
754
 
755
+ export declare interface EditorFeatureConfig {
756
+ /**
757
+ * 功能是否被禁用(入口还在)
758
+ */
759
+ disabled?: boolean;
760
+ /**
761
+ * 功能入口是否被隐藏
762
+ */
763
+ hidden?: boolean;
764
+ }
765
+
766
+ export declare interface EditorFileOptions {
767
+ /**
768
+ * 文件guid
769
+ */
770
+ guid: string;
771
+ /**
772
+ * 文件名
773
+ */
774
+ name?: string;
775
+ }
776
+
777
+ export declare interface EditorFilePicker {
778
+ open: (option: EditorFilePickerOpenOptions) => Promise<EditorPickedFile[]>;
779
+ }
780
+
781
+ export declare interface EditorFilePickerOpenOptions {
782
+ mimeTypes?: string[];
783
+ maxSize?: number;
784
+ extensions?: string[];
785
+ multiple?: boolean;
786
+ directory?: boolean;
787
+ }
788
+
789
+ export declare interface EditorFollowMode {
790
+ /**
791
+ * 演讲者/跟随者进入跟随模式
792
+ * 当演讲者调用此方法时,其他用户将可以开始跟随该演讲者
793
+ */
794
+ enter: () => void;
795
+ /**
796
+ * 当前是否处于跟随模式
797
+ * @returns 返回布尔值,true表示正在跟随,false表示未在跟随
798
+ */
799
+ isFollowModeActive: () => boolean;
800
+ /**
801
+ * 获取当前演讲者信息
802
+ * @returns 返回包含演讲者ID、姓名和头像信息的对象
803
+ */
804
+ getSpeaker: () => Speaker;
805
+ /**
806
+ * 添加跟随状态变化的监听器
807
+ * @param listener 状态变化时的回调函数
808
+ * @returns 返回一个用于移除监听器的函数
809
+ */
810
+ addChangedListener: (listener: () => void) => () => void;
811
+ }
812
+
813
+ export declare interface EditorFollowModeOptions extends EditorFeatureConfig {
814
+ /**
815
+ * 推送跟随消息的 socket 对象
816
+ * 实际类型为socketIO.client
817
+ * TODO: 抽象为接口
818
+ */
819
+ socket?: unknown;
820
+ }
821
+
626
822
  export declare interface EditorFontFace {
627
823
  /**
628
824
  * 字体的名称,用于在用户界面上显示的名称
@@ -701,6 +897,19 @@ export declare interface EditorFontsOptions {
701
897
  list: EditorFontsList;
702
898
  }
703
899
 
900
+ export declare interface EditorHistory {
901
+ /**
902
+ * 显示历史记录侧边栏
903
+ */
904
+ showSidebar: () => void;
905
+ /**
906
+ * 隐藏历史记录侧边栏
907
+ */
908
+ hideSidebar: () => void;
909
+ }
910
+
911
+ export declare type EditorHistoryOptions = EditorFeatureConfig;
912
+
704
913
  /**
705
914
  * i18n 相关设置
706
915
  */
@@ -721,13 +930,39 @@ export declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'cen
721
930
  * 链接配置,抽象打开链接等操作
722
931
  */
723
932
  export declare interface EditorLinkOptions {
933
+ /**
934
+ * 链接识别配置
935
+ */
936
+ detection?: {
937
+ /**
938
+ * 支持识别的链接格式
939
+ */
940
+ pattern?: string | RegExp | (string | RegExp)[];
941
+ /**
942
+ * 是否启用链接识别,默认关闭
943
+ */
944
+ enabled?: boolean;
945
+ };
724
946
  /**
725
947
  * 打开链接,如果取消了打开链接操作,返回 false
726
948
  * @param url
727
949
  * @param target
728
950
  * @returns
729
951
  */
730
- open: (url: string, target: string) => Promise<boolean>;
952
+ open?: (url: string, target: string) => Promise<boolean>;
953
+ /**
954
+ * 根据文件guid以及其他参数生成链接
955
+ */
956
+ generate?: (params: FileLinkParams) => Promise<string>;
957
+ /**
958
+ * 从文档链接中解析得到文件guid等参数
959
+ */
960
+ parse?: (url: string) => Promise<FileLinkParams | undefined>;
961
+ /**
962
+ * 生成sdk2.0内部链接
963
+ * 使用场景:专业表格跨表格引用
964
+ */
965
+ generateInternal?: (params: FileLinkParams) => Promise<string>;
731
966
  }
732
967
 
733
968
  /**
@@ -812,29 +1047,27 @@ export declare interface EditorMenuEntryMenuItemConfig<TName extends string> ext
812
1047
  /**
813
1048
  * 菜单功能按钮配置
814
1049
  */
815
- export declare interface EditorMenuFeatureConfig {
1050
+ export declare interface EditorMenuFeatureConfig extends EditorFeatureConfig {
816
1051
  /**
817
- * 是否隐藏菜单项,设置为true则隐藏菜单项
1052
+ * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
818
1053
  */
819
- hidden?: boolean;
1054
+ label?: string;
820
1055
  /**
821
- * 是否禁用菜单项,设置为true则变为灰色不可点击
1056
+ * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
822
1057
  */
823
- disabled?: boolean;
824
- }
825
-
826
- /**
827
- * 菜单功能按钮配置
828
- */
829
- export declare interface EditorMenuFeatureConfig {
1058
+ icon?: string;
830
1059
  /**
831
- * 是否隐藏菜单项,设置为true则隐藏菜单项
1060
+ * 按钮点击事件.接受一个函数,可以自定义点击事件。
832
1061
  */
833
- hidden?: boolean;
1062
+ callback?: () => void;
834
1063
  /**
835
- * 是否禁用菜单项,设置为true则变为灰色不可点击
1064
+ * 按钮提示文本,鼠标悬浮到按钮上时显示的tooltip文字
836
1065
  */
837
- disabled?: boolean;
1066
+ tooltip?: string;
1067
+ /**
1068
+ * 按钮在工具栏中位置,不设置则按照默认位置
1069
+ */
1070
+ index?: number;
838
1071
  }
839
1072
 
840
1073
  /**
@@ -892,9 +1125,9 @@ export declare interface EditorMenuOptions<TName extends string> {
892
1125
  entries?: EditorMenuEntryConfig<TName>[];
893
1126
  /**
894
1127
  * 菜单栏功能按钮配置
895
- * TODO 此配置目前没有用到,后续看是保留还是和custom合并
1128
+ * 更加间接的配置项
896
1129
  */
897
- features?: Record<TName, EditorMenuFeatureConfig>;
1130
+ features?: Partial<Record<TName, EditorMenuFeatureConfig>>;
898
1131
  /**
899
1132
  * 自定义按钮配置
900
1133
  */
@@ -964,6 +1197,10 @@ export declare interface EditorOptions {
964
1197
  * 匿名用户的缺省信息
965
1198
  */
966
1199
  anonymous?: EditorAnonymousOptions;
1200
+ /**
1201
+ * 当前文件信息
1202
+ */
1203
+ file?: EditorFileOptions;
967
1204
  /**
968
1205
  * i18n 相关设置
969
1206
  */
@@ -971,13 +1208,13 @@ export declare interface EditorOptions {
971
1208
  /**
972
1209
  * 品牌相关设置
973
1210
  */
974
- brand?: EditorBrandOptions;
1211
+ brand?: MaybePromiseValue<EditorBrandOptions>;
975
1212
  /**
976
1213
  * 编辑器内部资源请求配置
977
1214
  */
978
1215
  assets?: EditorAssetsOptions;
979
1216
  /**
980
- * 编辑器内部超链接设置
1217
+ * 编辑器链接相关配置
981
1218
  */
982
1219
  link?: EditorLinkOptions;
983
1220
  /**
@@ -1004,6 +1241,38 @@ export declare interface EditorOptions {
1004
1241
  * 导出设置
1005
1242
  */
1006
1243
  export?: EditorExportOptions;
1244
+ /**
1245
+ * 解密设置
1246
+ */
1247
+ decryption?: EditorDecryptionOptions;
1248
+ /**
1249
+ * 网络请求设置
1250
+ */
1251
+ http?: HTTPProxy;
1252
+ /**
1253
+ * 编辑器渲染设置项
1254
+ */
1255
+ render?: EditorRenderOptions;
1256
+ /**
1257
+ * 编辑器 UI 相关
1258
+ */
1259
+ ui?: EditorUiOptions;
1260
+ /**
1261
+ * 编辑器卡点限制
1262
+ */
1263
+ checkpoints?: EditorCheckpointsOptions;
1264
+ /**
1265
+ * 编辑器工具箱设置
1266
+ */
1267
+ toolbox?: EditorToolboxOptions;
1268
+ /**
1269
+ * 编辑器历史设置
1270
+ */
1271
+ history?: EditorHistoryOptions;
1272
+ /**
1273
+ * 编辑器协作相关
1274
+ */
1275
+ collaboration?: EditorCollaborationOptions;
1007
1276
  }
1008
1277
 
1009
1278
  /**
@@ -1064,10 +1333,33 @@ export declare interface EditorOutlineOptions {
1064
1333
  visible?: boolean;
1065
1334
  }
1066
1335
 
1336
+ export declare interface EditorPickedFile {
1337
+ /**
1338
+ * 文件大小
1339
+ */
1340
+ size: number;
1341
+ /**
1342
+ * 文件名
1343
+ */
1344
+ name: string;
1345
+ /**
1346
+ * 文件路径,仅显示有意义的相对路径,可用在上传文件夹和识别文件使用
1347
+ */
1348
+ path?: string;
1349
+ /**
1350
+ * 文件类型,mime-type
1351
+ */
1352
+ type: string;
1353
+ /**
1354
+ * 文件原始数据,用于给上传控件使用
1355
+ */
1356
+ raw: File;
1357
+ }
1358
+
1067
1359
  /**
1068
1360
  * 编辑器打印设置
1069
1361
  */
1070
- export declare interface EditorPrintOptions {
1362
+ export declare interface EditorPrintOptions extends EditorFeatureConfig {
1071
1363
  /**
1072
1364
  * 部分套件如果绕过了编辑器预设的打印接口,直接通过拉起了浏览器的打印页面,这时打印页面无法获取到编辑器的内容,
1073
1365
  * 这种情况下就会 fallback 到这个 options 上,显示一个提示信息。
@@ -1075,10 +1367,6 @@ export declare interface EditorPrintOptions {
1075
1367
  fallback?: {
1076
1368
  message: string;
1077
1369
  };
1078
- /**
1079
- * 是否禁用打印功能
1080
- */
1081
- disabled?: boolean;
1082
1370
  }
1083
1371
 
1084
1372
  /**
@@ -1092,6 +1380,13 @@ export declare interface EditorRemoteUploadableFile extends EditorBaseUploadable
1092
1380
  raw?: never;
1093
1381
  }
1094
1382
 
1383
+ export declare interface EditorRenderOptions {
1384
+ /**
1385
+ * 渲染的容器
1386
+ */
1387
+ container?: HTMLElement;
1388
+ }
1389
+
1095
1390
  /**
1096
1391
  * 编辑器通用接口
1097
1392
  */
@@ -1126,8 +1421,24 @@ export declare abstract class EditorSDK {
1126
1421
  abstract get mode(): EditorMode;
1127
1422
  /**
1128
1423
  * 编辑器评论相关接口
1424
+ * 部分环境不存在,如离线客户端
1425
+ */
1426
+ abstract get comments(): EditorComments | undefined;
1427
+ /**
1428
+ * 编辑器协作者相关接口
1429
+ * 部分环境不存在,如离线客户端
1129
1430
  */
1130
- abstract get comments(): EditorComments;
1431
+ abstract get collaborators(): EditorCollaborators | undefined;
1432
+ /**
1433
+ * 编辑器历史相关接口
1434
+ * 部分环境不存在,如离线客户端
1435
+ */
1436
+ abstract get history(): EditorHistory | undefined;
1437
+ /**
1438
+ * 编辑器版本相关接口
1439
+ * 部分环境不存在,如离线客户端
1440
+ */
1441
+ abstract get version(): EditorVersion | undefined;
1131
1442
  }
1132
1443
 
1133
1444
  /**
@@ -1263,11 +1574,11 @@ export declare interface EditorTextOptions<Color = string> {
1263
1574
  /**
1264
1575
  * 工具栏功能按钮配置(包括内置按钮和自定义按钮)
1265
1576
  */
1266
- export declare interface EditorToolbarFeatureButton<TName extends string> {
1577
+ export declare interface EditorToolbarFeatureButton<TName extends string> extends EditorFeatureConfig {
1267
1578
  /**
1268
1579
  * 按钮的唯一标识,用以确定配置的是哪个按钮。
1269
1580
  */
1270
- name: TName;
1581
+ name?: TName;
1271
1582
  /**
1272
1583
  * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
1273
1584
  */
@@ -1276,14 +1587,6 @@ export declare interface EditorToolbarFeatureButton<TName extends string> {
1276
1587
  * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1277
1588
  */
1278
1589
  icon?: string;
1279
- /**
1280
- * 按钮是否隐藏,设置为true则隐藏按钮
1281
- */
1282
- hidden?: boolean;
1283
- /**
1284
- * 按钮是否禁用,设置为true则变为灰色不可点击
1285
- */
1286
- disabled?: boolean;
1287
1590
  /**
1288
1591
  * 按钮点击事件.接受一个函数,可以自定义点击事件。
1289
1592
  */
@@ -1327,6 +1630,90 @@ export declare interface EditorToolbarOptions<TName extends string> {
1327
1630
  custom?: EditorToolbarFeatureButtonConfig<string>;
1328
1631
  }
1329
1632
 
1633
+ /**
1634
+ * 编辑器工具箱配置选项接口
1635
+ */
1636
+ export declare interface EditorToolboxOptions {
1637
+ /**
1638
+ * 获取工具箱配置
1639
+ * @param attachGuidList - 附件GUID列表
1640
+ * @returns 返回工具箱工具项列表
1641
+ */
1642
+ getToolbox?: (attachGuidList: string[]) => Promise<{
1643
+ tools: ToolboxToolItem[];
1644
+ }>;
1645
+ }
1646
+
1647
+ /**
1648
+ * 编辑器UI选项接口
1649
+ * 定义了编辑器可以使用的UI相关功能
1650
+ */
1651
+ export declare interface EditorUiOptions {
1652
+ /**
1653
+ * 侧边栏
1654
+ */
1655
+ sidebar?: {
1656
+ /**
1657
+ * 打开使用指南/快捷键侧边栏
1658
+ */
1659
+ open?: (activeKey: 'userGuide' | 'shortcut') => void;
1660
+ };
1661
+ /**
1662
+ * 升级弹窗
1663
+ */
1664
+ upgrade?: {
1665
+ /**
1666
+ * 显示升级弹窗
1667
+ */
1668
+ showModal?: (options: ShowUpgradeModalProps) => Promise<ShowUpgradeModalResponse>;
1669
+ };
1670
+ notification?: {
1671
+ /**
1672
+ * 渲染通知条
1673
+ */
1674
+ render?: (params: RenderNotificationProps) => void;
1675
+ };
1676
+ /**
1677
+ * 用户名片
1678
+ */
1679
+ userCard?: {
1680
+ /**
1681
+ * 需要排除的用户卡片字段(不会在用户卡片中展示)
1682
+ */
1683
+ excludeFields?: string[];
1684
+ /**
1685
+ * 渲染用户卡片
1686
+ */
1687
+ render?: (params: RenderUserCardProps) => RenderUserCardResult;
1688
+ };
1689
+ /**
1690
+ * toast
1691
+ */
1692
+ toast?: {
1693
+ /**
1694
+ * 显示自定义toast
1695
+ */
1696
+ show?: (options: ShowToastOptions) => void;
1697
+ /**
1698
+ * 是否禁用toast
1699
+ */
1700
+ disabled?: boolean;
1701
+ };
1702
+ /**
1703
+ * confirm
1704
+ */
1705
+ confirm?: {
1706
+ /**
1707
+ * 显示自定义confirm
1708
+ */
1709
+ show?: (options: ShowConfirmOptions) => void;
1710
+ /**
1711
+ * 是否禁用confirm
1712
+ */
1713
+ disabled?: boolean;
1714
+ };
1715
+ }
1716
+
1330
1717
  export declare type EditorUploadableFile = EditorLocalUploadableFile;
1331
1718
 
1332
1719
  /**
@@ -1390,6 +1777,13 @@ export declare interface EditorUserOptions {
1390
1777
  defaultAvatar?: string;
1391
1778
  }
1392
1779
 
1780
+ export declare interface EditorVersion {
1781
+ /**
1782
+ * 保存版本
1783
+ */
1784
+ createRevision: () => void;
1785
+ }
1786
+
1393
1787
  /**
1394
1788
  * 编辑器外部水印信息
1395
1789
  */
@@ -1413,6 +1807,86 @@ export declare type EditorWatermarkResource = {
1413
1807
  url: string;
1414
1808
  };
1415
1809
 
1810
+ export declare enum FeatureStatus {
1811
+ /**
1812
+ * 隐藏
1813
+ */
1814
+ Hidden = 0,
1815
+ /**
1816
+ * 正常
1817
+ */
1818
+ Normal = 1,
1819
+ /**
1820
+ * 禁用
1821
+ */
1822
+ Disabled = 2
1823
+ }
1824
+
1825
+ export declare interface FileLinkParams {
1826
+ /**
1827
+ * 文件guid
1828
+ */
1829
+ fileGuid: string;
1830
+ /**
1831
+ * 文件类型,如docs,sheets
1832
+ */
1833
+ type: string;
1834
+ /**
1835
+ * 用于定位到 mention、评论等位置。
1836
+ */
1837
+ hash?: string;
1838
+ /**
1839
+ * 其他自定义字段
1840
+ */
1841
+ [key: string]: unknown;
1842
+ }
1843
+
1844
+ /**
1845
+ * 文件子类型枚举
1846
+ */
1847
+ export declare enum FileSubtype {
1848
+ /** 专业版幻灯片 */
1849
+ ProSlide = -10,
1850
+ /** 白板 */
1851
+ Whiteboard = -9,
1852
+ /** 表单 */
1853
+ Form = -8,
1854
+ /** 思维导图 */
1855
+ Mind = -7,
1856
+ /** 专业文档 */
1857
+ ProDoc = -6,
1858
+ /** 幻灯片 */
1859
+ Slide = -5,
1860
+ /** 新表格 */
1861
+ NewSheet = -4,
1862
+ /** 老表格 */
1863
+ Sheet = -3,
1864
+ /** 新文档 */
1865
+ NewDoc = -2,
1866
+ /** 老老表格 */
1867
+ OldSheet = -1,
1868
+ /** 旧文档 */
1869
+ OldDoc = 0,
1870
+ /** 文件夹 */
1871
+ Folder = 1,
1872
+ /** 协作 */
1873
+ Collaboration = 2
1874
+ }
1875
+
1876
+ /**
1877
+ * 文件类型枚举
1878
+ */
1879
+ export declare enum FileType {
1880
+ /** 未知类型 */
1881
+ Unknown = 0,
1882
+ /** 文件夹或空间 */
1883
+ FolderOrSpace = 1,
1884
+ /** 石墨文件 */
1885
+ ShimoFile = 2,
1886
+ /** 云文件 */
1887
+ CloudFile = 3
1888
+ }
1889
+
1416
1890
  /**
1417
1891
  * 请求、响应头
1418
1892
  */
@@ -1520,6 +1994,260 @@ export declare interface HTTPResponse<Data = unknown> {
1520
1994
  */
1521
1995
  export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
1522
1996
 
1997
+ export declare interface Limitation {
1998
+ /**
1999
+ * 限制原因(错误码)
2000
+ */
2001
+ code?: number;
2002
+ /**
2003
+ * 单位(不参与计算,仅作显示)
2004
+ * minutes、MB
2005
+ */
2006
+ unit?: string;
2007
+ /**
2008
+ * 描述
2009
+ */
2010
+ desc?: string;
2011
+ /**
2012
+ * min/max int64 默认表示 MB/个/分钟/行
2013
+ */
2014
+ max?: number;
2015
+ min?: number;
2016
+ }
2017
+
1523
2018
  export declare type MaybePromiseValue<T> = T | Promise<T>;
1524
2019
 
2020
+ /**
2021
+ * 升级弹窗类型
2022
+ * 个人版或企业版
2023
+ */
2024
+ export declare type OpenType = 'personal' | 'enterprise';
2025
+
2026
+ export declare interface RenderNotificationProps {
2027
+ /**
2028
+ * 渲染的容器
2029
+ */
2030
+ container: HTMLElement;
2031
+ /**
2032
+ * 自定义样式,实际类型为React.CSSProperties
2033
+ */
2034
+ style?: Record<string, string | number>;
2035
+ }
2036
+
2037
+ export declare interface RenderUserCardProps {
2038
+ uid: string | number;
2039
+ rect: {
2040
+ left: number;
2041
+ top: number;
2042
+ width: number;
2043
+ height: number;
2044
+ hasReducedHeaderHeight?: boolean;
2045
+ };
2046
+ position?: 'top' | 'left' | 'right' | 'bottom' | 'left_top' | 'left_bottom' | 'right_top' | 'bottom_top' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right';
2047
+ trigger: 'hover' | 'click';
2048
+ }
2049
+
2050
+ export declare interface RenderUserCardResult {
2051
+ /**
2052
+ * 关闭用户卡片
2053
+ */
2054
+ close: (force?: boolean) => void;
2055
+ }
2056
+
2057
+ /**
2058
+ * 升级操作结果类型枚举
2059
+ */
2060
+ export declare enum ResultType {
2061
+ /** 操作成功 */
2062
+ Success = "success",
2063
+ /** 用户取消操作 */
2064
+ Cancel = "cancel",
2065
+ /** 发生错误 */
2066
+ Error = "error",
2067
+ /** 跳转(目前仅在企业版用户过期时返回) */
2068
+ Redirect = "redirect"
2069
+ }
2070
+
2071
+ export declare interface SaveContext {
2072
+ clientId: string;
2073
+ }
2074
+
2075
+ export declare interface SaveStatusDelegation {
2076
+ /**
2077
+ * 保存状态发生变化时触发回调
2078
+ * @param state
2079
+ * @returns
2080
+ */
2081
+ onChangeState: (state: unknown, context: SaveContext) => void;
2082
+ /**
2083
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
2084
+ * @param error
2085
+ * @returns
2086
+ */
2087
+ onError: (error: unknown, context: SaveContext) => void;
2088
+ }
2089
+
2090
+ /**
2091
+ * 付费场景类型
2092
+ */
2093
+ export declare type Scene = 'history' | 'version' | 'public' | 'search' | 'attachments';
2094
+
2095
+ export declare interface ShowConfirmOptions {
2096
+ /**
2097
+ * 确认框标题
2098
+ */
2099
+ title: string;
2100
+ /**
2101
+ * 确认框描述
2102
+ */
2103
+ description: string;
2104
+ /**
2105
+ * 确认按钮配置
2106
+ */
2107
+ confirmButton?: ConfirmButtonConfig;
2108
+ /**
2109
+ * 取消按钮配置
2110
+ */
2111
+ cancelButton?: ConfirmButtonConfig;
2112
+ }
2113
+
2114
+ export declare interface ShowToastOptions {
2115
+ /**
2116
+ * toast标题
2117
+ */
2118
+ title: string;
2119
+ /**
2120
+ * toast类型
2121
+ */
2122
+ type: 'success' | 'error' | 'warn' | 'info';
2123
+ /**
2124
+ * 显示时长,默认3s
2125
+ */
2126
+ duration?: number;
2127
+ /**
2128
+ * 是否自动隐藏,默认true
2129
+ */
2130
+ autoHide?: boolean;
2131
+ }
2132
+
2133
+ /**
2134
+ * 升级弹窗配置选项接口
2135
+ */
2136
+ export declare interface ShowUpgradeModalProps {
2137
+ /** 打开个人升级弹窗还是企业弹窗 */
2138
+ openType: OpenType;
2139
+ /** 触发功能的Key值 */
2140
+ serviceKey: string;
2141
+ /** 文件类型(如果业务能够获取到则为必传) */
2142
+ fileType?: FileType;
2143
+ /** 文件子类型(如果业务能够获取到则为必传) */
2144
+ fileSubtype?: FileSubtype;
2145
+ /** 付费场景,用于升级弹窗的定制化文案显示 */
2146
+ scene?: Scene;
2147
+ }
2148
+
2149
+ /**
2150
+ * 升级弹窗响应接口
2151
+ */
2152
+ export declare interface ShowUpgradeModalResponse {
2153
+ /** 操作结果 */
2154
+ result: ResultType;
2155
+ /** 错误信息(供开发人员查看) */
2156
+ errorMsg?: string;
2157
+ }
2158
+
2159
+ /**
2160
+ * 演讲者信息接口
2161
+ * 包含演讲者的基本信息
2162
+ */
2163
+ export declare interface Speaker {
2164
+ /** 演讲者ID */
2165
+ id: number;
2166
+ /** 演讲者姓名 */
2167
+ name: string;
2168
+ /** 演讲者头像URL */
2169
+ avatar: string;
2170
+ }
2171
+
2172
+ export declare interface SyncContext {
2173
+ clientId: string;
2174
+ timestamp: number;
2175
+ }
2176
+
2177
+ export declare interface SyncStatusDelegation {
2178
+ /**
2179
+ * 同步状态发生变化时触发回调
2180
+ * @param state
2181
+ * @param context
2182
+ * @returns
2183
+ */
2184
+ onChangeState: (state: unknown, context: SyncContext) => void;
2185
+ /**
2186
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
2187
+ * @param error
2188
+ * @param context
2189
+ * @returns
2190
+ */
2191
+ onError: (error: unknown, context: SyncContext) => void;
2192
+ }
2193
+
2194
+ /**
2195
+ * 工具箱工具项接口
2196
+ */
2197
+ export declare interface ToolboxToolItem {
2198
+ /** 工具类型 */
2199
+ type: ToolTypes;
2200
+ /** 工具名称 */
2201
+ name: string;
2202
+ /** 工具图标 */
2203
+ icon: string;
2204
+ /** 工具分组 */
2205
+ group: ToolGroupTypes;
2206
+ /** 分组名称 */
2207
+ groupName: string;
2208
+ /** 是否为测试版功能 */
2209
+ isBeta: boolean;
2210
+ /** 工具回调函数 */
2211
+ callback: () => Promise<{
2212
+ result: 'success' | 'failed';
2213
+ error?: unknown;
2214
+ }>;
2215
+ }
2216
+
2217
+ /**
2218
+ * 工具分组类型枚举
2219
+ */
2220
+ export declare enum ToolGroupTypes {
2221
+ /** 转换工具组 */
2222
+ Convert = "convert",
2223
+ /** 处理工具组 */
2224
+ Processing = "processing",
2225
+ /** 智能工具组 */
2226
+ Intelligent = "intelligent"
2227
+ }
2228
+
2229
+ /**
2230
+ * 工具类型枚举
2231
+ */
2232
+ export declare enum ToolTypes {
2233
+ /** PDF转Word */
2234
+ PdfToWord = "pdfToWord",
2235
+ /** PDF转Excel */
2236
+ PdfToExcel = "pdfToExcel",
2237
+ /** PDF转PPT */
2238
+ PdfToPpt = "pdfToPpt",
2239
+ /** 图片转PDF */
2240
+ ImgToPdf = "imgToPdf",
2241
+ /** PDF合并 */
2242
+ PdfMerge = "pdfMerge",
2243
+ /** PDF拆分 */
2244
+ PdfSplit = "pdfSplit",
2245
+ /** 文件内容提取 */
2246
+ FileContentExtraction = "fileContentExtraction",
2247
+ /** 图片转文字 */
2248
+ COR = "imgToText",
2249
+ /** 音频转文字 */
2250
+ STT = "audioToText"
2251
+ }
2252
+
1525
2253
  export { }