@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
@@ -47,6 +47,43 @@ export declare abstract class AbstractedEditorFileUploader {
47
47
  abstract resume(taskIds?: string[]): void;
48
48
  }
49
49
 
50
+ export declare type CheckLimitationResult = {
51
+ status: 'limited';
52
+ /**
53
+ * 被限制原因
54
+ */
55
+ reason?: string;
56
+ } | {
57
+ status: 'unlimited';
58
+ };
59
+
60
+ /**
61
+ * 协作者信息接口
62
+ */
63
+ export declare interface CollaboratorInfo {
64
+ /** 协作者唯一标识 */
65
+ id: number;
66
+ /** 协作者名称 */
67
+ name: string;
68
+ /** 协作者头像URL */
69
+ avatar: string;
70
+ }
71
+
72
+ export declare interface ConfirmButtonConfig {
73
+ /**
74
+ * 按钮文本
75
+ */
76
+ label?: string;
77
+ /**
78
+ * 是否隐藏
79
+ */
80
+ hidden?: boolean;
81
+ /**
82
+ * 按钮点击回调
83
+ */
84
+ onClick?: () => void;
85
+ }
86
+
50
87
  /**
51
88
  * Diagram 初始化参数
52
89
  */
@@ -232,8 +269,9 @@ export declare interface EditorAttachmentMaxSizeOptions {
232
269
  * 编辑器附件信息
233
270
  */
234
271
  export declare interface EditorAttachmentOptions {
235
- uploader: AbstractedEditorFileUploader;
236
- download: (url: string) => void;
272
+ picker?: EditorFilePicker;
273
+ uploader?: AbstractedEditorFileUploader;
274
+ download?: (url: string) => void;
237
275
  /**
238
276
  * 图片附件相关配置
239
277
  */
@@ -307,6 +345,80 @@ export declare interface EditorBrandOptions {
307
345
  };
308
346
  }
309
347
 
348
+ export declare interface EditorCheckpointsOptions {
349
+ /**
350
+ * 获取功能卡点限制
351
+ * undefined代表无限制
352
+ */
353
+ getFeatureLimitation?: (key: string) => Limitation | undefined;
354
+ /**
355
+ * 检查是否超限
356
+ * @param key 功能卡点key
357
+ * @param value 功能卡点检查值,如文件大小/行列数量等
358
+ */
359
+ checkFeatureLimitation?: (key: string, value: number) => CheckLimitationResult;
360
+ /**
361
+ * 获取功能卡点状态,如某功能入口是否开启
362
+ */
363
+ getFeatureStatus?: (key: string) => FeatureStatus;
364
+ }
365
+
366
+ export declare interface EditorCollaborationOptions {
367
+ /**
368
+ * 是否允许离线编辑
369
+ */
370
+ offlineEditable: boolean;
371
+ /**
372
+ * 保存状态外部接口委托
373
+ */
374
+ saveStatus: SaveStatusDelegation;
375
+ /**
376
+ * 同步状态外部接口委托(部分套件不支持离线编辑)
377
+ */
378
+ syncStatus?: SyncStatusDelegation;
379
+ /**
380
+ * 是否使用严格的长度校验规则,默认关闭,在开启后如果出现长度校验失败会立刻禁止编辑器继续编写,并将保存状态设置为错误状态
381
+ */
382
+ strictCLC?: boolean;
383
+ }
384
+
385
+ /**
386
+ * 编辑器协作者管理接口
387
+ */
388
+ export declare interface EditorCollaborators {
389
+ /**
390
+ * 获取当前所有协作者列表
391
+ * @returns 返回所有协作者信息数组
392
+ */
393
+ getCollaborators: () => CollaboratorInfo[];
394
+ /**
395
+ * 开始监听协作者状态变化
396
+ * 调用此方法后,将开始接收协作者进入/离开的事件
397
+ */
398
+ start: () => void;
399
+ /**
400
+ * 停止监听协作者状态变化
401
+ * 调用此方法后,将不再接收协作者进入/离开的事件
402
+ */
403
+ stop: () => void;
404
+ /**
405
+ * 添加协作者进入事件监听器
406
+ * @param listener - 监听器回调函数,参数如下:
407
+ * - allUsers: 当前所有协作者列表
408
+ * - enteredUsers: 新进入的协作者列表
409
+ * @returns 返回一个函数,调用该函数可以移除监听器
410
+ */
411
+ addUserEnterListener: (listener: (allUsers: CollaboratorInfo[], enteredUsers: CollaboratorInfo[]) => void) => () => void;
412
+ /**
413
+ * 添加协作者离开事件监听器
414
+ * @param listener - 监听器回调函数
415
+ * - allUsers: 当前所有协作者列表
416
+ * - leftUsers: 离开的协作者列表
417
+ * @returns 返回一个函数,调用该函数可以移除监听器
418
+ */
419
+ addUserLeaveListener: (listener: (allUsers: CollaboratorInfo[], leftUsers: CollaboratorInfo[]) => void) => () => void;
420
+ }
421
+
310
422
  /**
311
423
  * 单条评论数据
312
424
  */
@@ -373,7 +485,7 @@ export declare interface EditorComments {
373
485
  /**
374
486
  * 编辑器评论初始化配置
375
487
  */
376
- export declare interface EditorCommentsOptions {
488
+ export declare interface EditorCommentsOptions extends EditorFeatureConfig {
377
489
  /**
378
490
  * 评论作者信息,如果这里的信息为空,将会使用 user 信息
379
491
  */
@@ -402,6 +514,12 @@ export declare interface EditorCommentsOptions {
402
514
  */
403
515
  mode: 'none' | 'card';
404
516
  };
517
+ /**
518
+ * 评论变化监听
519
+ * @param listener
520
+ * @returns 返回一个函数,调用该函数可以移除监听器
521
+ */
522
+ addChangedListener?: (listener: (type: 'create' | 'update' | 'close', data: EditorCommentItem) => void) => () => void;
405
523
  }
406
524
 
407
525
  export declare interface EditorContent<Delta = EditorDelta> {
@@ -427,6 +545,19 @@ export declare interface EditorContent<Delta = EditorDelta> {
427
545
  */
428
546
  export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
429
547
 
548
+ /**
549
+ * 编辑器解密选项接口
550
+ * 用于配置编辑器中需要解密的内容的相关选项
551
+ */
552
+ export declare interface EditorDecryptionOptions {
553
+ /**
554
+ * 图片附件解密函数
555
+ * @param buffer - 需要解密的二进制数据
556
+ * @returns 解密后的二进制数据
557
+ */
558
+ decrypt?: (buffer: ArrayBuffer) => ArrayBuffer;
559
+ }
560
+
430
561
  export declare interface EditorDelta {
431
562
  compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
432
563
  transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
@@ -486,16 +617,81 @@ export declare interface EditorEmbeddedObjectOptions {
486
617
  export declare interface EditorExportOptions {
487
618
  /**
488
619
  * 可导出类型
489
- * @description
490
620
  */
491
621
  supportedTypes?: string[];
492
622
  /**
493
623
  * 导出文件
494
- * @description
495
624
  */
496
625
  exportFile: (type: string) => Promise<void>;
497
626
  }
498
627
 
628
+ export declare interface EditorFeatureConfig {
629
+ /**
630
+ * 功能是否被禁用(入口还在)
631
+ */
632
+ disabled?: boolean;
633
+ /**
634
+ * 功能入口是否被隐藏
635
+ */
636
+ hidden?: boolean;
637
+ }
638
+
639
+ export declare interface EditorFileOptions {
640
+ /**
641
+ * 文件guid
642
+ */
643
+ guid: string;
644
+ /**
645
+ * 文件名
646
+ */
647
+ name?: string;
648
+ }
649
+
650
+ export declare interface EditorFilePicker {
651
+ open: (option: EditorFilePickerOpenOptions) => Promise<EditorPickedFile[]>;
652
+ }
653
+
654
+ export declare interface EditorFilePickerOpenOptions {
655
+ mimeTypes?: string[];
656
+ maxSize?: number;
657
+ extensions?: string[];
658
+ multiple?: boolean;
659
+ directory?: boolean;
660
+ }
661
+
662
+ export declare interface EditorFollowMode {
663
+ /**
664
+ * 演讲者/跟随者进入跟随模式
665
+ * 当演讲者调用此方法时,其他用户将可以开始跟随该演讲者
666
+ */
667
+ enter: () => void;
668
+ /**
669
+ * 当前是否处于跟随模式
670
+ * @returns 返回布尔值,true表示正在跟随,false表示未在跟随
671
+ */
672
+ isFollowModeActive: () => boolean;
673
+ /**
674
+ * 获取当前演讲者信息
675
+ * @returns 返回包含演讲者ID、姓名和头像信息的对象
676
+ */
677
+ getSpeaker: () => Speaker;
678
+ /**
679
+ * 添加跟随状态变化的监听器
680
+ * @param listener 状态变化时的回调函数
681
+ * @returns 返回一个用于移除监听器的函数
682
+ */
683
+ addChangedListener: (listener: () => void) => () => void;
684
+ }
685
+
686
+ export declare interface EditorFollowModeOptions extends EditorFeatureConfig {
687
+ /**
688
+ * 推送跟随消息的 socket 对象
689
+ * 实际类型为socketIO.client
690
+ * TODO: 抽象为接口
691
+ */
692
+ socket?: unknown;
693
+ }
694
+
499
695
  export declare interface EditorFontFace {
500
696
  /**
501
697
  * 字体的名称,用于在用户界面上显示的名称
@@ -574,6 +770,19 @@ export declare interface EditorFontsOptions {
574
770
  list: EditorFontsList;
575
771
  }
576
772
 
773
+ export declare interface EditorHistory {
774
+ /**
775
+ * 显示历史记录侧边栏
776
+ */
777
+ showSidebar: () => void;
778
+ /**
779
+ * 隐藏历史记录侧边栏
780
+ */
781
+ hideSidebar: () => void;
782
+ }
783
+
784
+ export declare type EditorHistoryOptions = EditorFeatureConfig;
785
+
577
786
  /**
578
787
  * i18n 相关设置
579
788
  */
@@ -594,13 +803,39 @@ export declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'cen
594
803
  * 链接配置,抽象打开链接等操作
595
804
  */
596
805
  export declare interface EditorLinkOptions {
806
+ /**
807
+ * 链接识别配置
808
+ */
809
+ detection?: {
810
+ /**
811
+ * 支持识别的链接格式
812
+ */
813
+ pattern?: string | RegExp | (string | RegExp)[];
814
+ /**
815
+ * 是否启用链接识别,默认关闭
816
+ */
817
+ enabled?: boolean;
818
+ };
597
819
  /**
598
820
  * 打开链接,如果取消了打开链接操作,返回 false
599
821
  * @param url
600
822
  * @param target
601
823
  * @returns
602
824
  */
603
- open: (url: string, target: string) => Promise<boolean>;
825
+ open?: (url: string, target: string) => Promise<boolean>;
826
+ /**
827
+ * 根据文件guid以及其他参数生成链接
828
+ */
829
+ generate?: (params: FileLinkParams) => Promise<string>;
830
+ /**
831
+ * 从文档链接中解析得到文件guid等参数
832
+ */
833
+ parse?: (url: string) => Promise<FileLinkParams | undefined>;
834
+ /**
835
+ * 生成sdk2.0内部链接
836
+ * 使用场景:专业表格跨表格引用
837
+ */
838
+ generateInternal?: (params: FileLinkParams) => Promise<string>;
604
839
  }
605
840
 
606
841
  /**
@@ -685,29 +920,27 @@ export declare interface EditorMenuEntryMenuItemConfig<TName extends string> ext
685
920
  /**
686
921
  * 菜单功能按钮配置
687
922
  */
688
- export declare interface EditorMenuFeatureConfig {
923
+ export declare interface EditorMenuFeatureConfig extends EditorFeatureConfig {
924
+ /**
925
+ * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
926
+ */
927
+ label?: string;
689
928
  /**
690
- * 是否隐藏菜单项,设置为true则隐藏菜单项
929
+ * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
691
930
  */
692
- hidden?: boolean;
931
+ icon?: string;
693
932
  /**
694
- * 是否禁用菜单项,设置为true则变为灰色不可点击
933
+ * 按钮点击事件.接受一个函数,可以自定义点击事件。
695
934
  */
696
- disabled?: boolean;
697
- }
698
-
699
- /**
700
- * 菜单功能按钮配置
701
- */
702
- export declare interface EditorMenuFeatureConfig {
935
+ callback?: () => void;
703
936
  /**
704
- * 是否隐藏菜单项,设置为true则隐藏菜单项
937
+ * 按钮提示文本,鼠标悬浮到按钮上时显示的tooltip文字
705
938
  */
706
- hidden?: boolean;
939
+ tooltip?: string;
707
940
  /**
708
- * 是否禁用菜单项,设置为true则变为灰色不可点击
941
+ * 按钮在工具栏中位置,不设置则按照默认位置
709
942
  */
710
- disabled?: boolean;
943
+ index?: number;
711
944
  }
712
945
 
713
946
  /**
@@ -765,9 +998,9 @@ export declare interface EditorMenuOptions<TName extends string> {
765
998
  entries?: EditorMenuEntryConfig<TName>[];
766
999
  /**
767
1000
  * 菜单栏功能按钮配置
768
- * TODO 此配置目前没有用到,后续看是保留还是和custom合并
1001
+ * 更加间接的配置项
769
1002
  */
770
- features?: Record<TName, EditorMenuFeatureConfig>;
1003
+ features?: Partial<Record<TName, EditorMenuFeatureConfig>>;
771
1004
  /**
772
1005
  * 自定义按钮配置
773
1006
  */
@@ -837,6 +1070,10 @@ export declare interface EditorOptions {
837
1070
  * 匿名用户的缺省信息
838
1071
  */
839
1072
  anonymous?: EditorAnonymousOptions;
1073
+ /**
1074
+ * 当前文件信息
1075
+ */
1076
+ file?: EditorFileOptions;
840
1077
  /**
841
1078
  * i18n 相关设置
842
1079
  */
@@ -844,13 +1081,13 @@ export declare interface EditorOptions {
844
1081
  /**
845
1082
  * 品牌相关设置
846
1083
  */
847
- brand?: EditorBrandOptions;
1084
+ brand?: MaybePromiseValue<EditorBrandOptions>;
848
1085
  /**
849
1086
  * 编辑器内部资源请求配置
850
1087
  */
851
1088
  assets?: EditorAssetsOptions;
852
1089
  /**
853
- * 编辑器内部超链接设置
1090
+ * 编辑器链接相关配置
854
1091
  */
855
1092
  link?: EditorLinkOptions;
856
1093
  /**
@@ -877,6 +1114,38 @@ export declare interface EditorOptions {
877
1114
  * 导出设置
878
1115
  */
879
1116
  export?: EditorExportOptions;
1117
+ /**
1118
+ * 解密设置
1119
+ */
1120
+ decryption?: EditorDecryptionOptions;
1121
+ /**
1122
+ * 网络请求设置
1123
+ */
1124
+ http?: HTTPProxy;
1125
+ /**
1126
+ * 编辑器渲染设置项
1127
+ */
1128
+ render?: EditorRenderOptions;
1129
+ /**
1130
+ * 编辑器 UI 相关
1131
+ */
1132
+ ui?: EditorUiOptions;
1133
+ /**
1134
+ * 编辑器卡点限制
1135
+ */
1136
+ checkpoints?: EditorCheckpointsOptions;
1137
+ /**
1138
+ * 编辑器工具箱设置
1139
+ */
1140
+ toolbox?: EditorToolboxOptions;
1141
+ /**
1142
+ * 编辑器历史设置
1143
+ */
1144
+ history?: EditorHistoryOptions;
1145
+ /**
1146
+ * 编辑器协作相关
1147
+ */
1148
+ collaboration?: EditorCollaborationOptions;
880
1149
  }
881
1150
 
882
1151
  /**
@@ -937,10 +1206,33 @@ export declare interface EditorOutlineOptions {
937
1206
  visible?: boolean;
938
1207
  }
939
1208
 
1209
+ export declare interface EditorPickedFile {
1210
+ /**
1211
+ * 文件大小
1212
+ */
1213
+ size: number;
1214
+ /**
1215
+ * 文件名
1216
+ */
1217
+ name: string;
1218
+ /**
1219
+ * 文件路径,仅显示有意义的相对路径,可用在上传文件夹和识别文件使用
1220
+ */
1221
+ path?: string;
1222
+ /**
1223
+ * 文件类型,mime-type
1224
+ */
1225
+ type: string;
1226
+ /**
1227
+ * 文件原始数据,用于给上传控件使用
1228
+ */
1229
+ raw: File;
1230
+ }
1231
+
940
1232
  /**
941
1233
  * 编辑器打印设置
942
1234
  */
943
- export declare interface EditorPrintOptions {
1235
+ export declare interface EditorPrintOptions extends EditorFeatureConfig {
944
1236
  /**
945
1237
  * 部分套件如果绕过了编辑器预设的打印接口,直接通过拉起了浏览器的打印页面,这时打印页面无法获取到编辑器的内容,
946
1238
  * 这种情况下就会 fallback 到这个 options 上,显示一个提示信息。
@@ -948,10 +1240,6 @@ export declare interface EditorPrintOptions {
948
1240
  fallback?: {
949
1241
  message: string;
950
1242
  };
951
- /**
952
- * 是否禁用打印功能
953
- */
954
- disabled?: boolean;
955
1243
  }
956
1244
 
957
1245
  /**
@@ -965,6 +1253,13 @@ export declare interface EditorRemoteUploadableFile extends EditorBaseUploadable
965
1253
  raw?: never;
966
1254
  }
967
1255
 
1256
+ export declare interface EditorRenderOptions {
1257
+ /**
1258
+ * 渲染的容器
1259
+ */
1260
+ container?: HTMLElement;
1261
+ }
1262
+
968
1263
  /**
969
1264
  * 编辑器通用接口
970
1265
  */
@@ -999,8 +1294,24 @@ export declare abstract class EditorSDK {
999
1294
  abstract get mode(): EditorMode;
1000
1295
  /**
1001
1296
  * 编辑器评论相关接口
1297
+ * 部分环境不存在,如离线客户端
1002
1298
  */
1003
- abstract get comments(): EditorComments;
1299
+ abstract get comments(): EditorComments | undefined;
1300
+ /**
1301
+ * 编辑器协作者相关接口
1302
+ * 部分环境不存在,如离线客户端
1303
+ */
1304
+ abstract get collaborators(): EditorCollaborators | undefined;
1305
+ /**
1306
+ * 编辑器历史相关接口
1307
+ * 部分环境不存在,如离线客户端
1308
+ */
1309
+ abstract get history(): EditorHistory | undefined;
1310
+ /**
1311
+ * 编辑器版本相关接口
1312
+ * 部分环境不存在,如离线客户端
1313
+ */
1314
+ abstract get version(): EditorVersion | undefined;
1004
1315
  }
1005
1316
 
1006
1317
  /**
@@ -1136,11 +1447,11 @@ export declare interface EditorTextOptions<Color = string> {
1136
1447
  /**
1137
1448
  * 工具栏功能按钮配置(包括内置按钮和自定义按钮)
1138
1449
  */
1139
- export declare interface EditorToolbarFeatureButton<TName extends string> {
1450
+ export declare interface EditorToolbarFeatureButton<TName extends string> extends EditorFeatureConfig {
1140
1451
  /**
1141
1452
  * 按钮的唯一标识,用以确定配置的是哪个按钮。
1142
1453
  */
1143
- name: TName;
1454
+ name?: TName;
1144
1455
  /**
1145
1456
  * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
1146
1457
  */
@@ -1149,14 +1460,6 @@ export declare interface EditorToolbarFeatureButton<TName extends string> {
1149
1460
  * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1150
1461
  */
1151
1462
  icon?: string;
1152
- /**
1153
- * 按钮是否隐藏,设置为true则隐藏按钮
1154
- */
1155
- hidden?: boolean;
1156
- /**
1157
- * 按钮是否禁用,设置为true则变为灰色不可点击
1158
- */
1159
- disabled?: boolean;
1160
1463
  /**
1161
1464
  * 按钮点击事件.接受一个函数,可以自定义点击事件。
1162
1465
  */
@@ -1200,6 +1503,90 @@ export declare interface EditorToolbarOptions<TName extends string> {
1200
1503
  custom?: EditorToolbarFeatureButtonConfig<string>;
1201
1504
  }
1202
1505
 
1506
+ /**
1507
+ * 编辑器工具箱配置选项接口
1508
+ */
1509
+ export declare interface EditorToolboxOptions {
1510
+ /**
1511
+ * 获取工具箱配置
1512
+ * @param attachGuidList - 附件GUID列表
1513
+ * @returns 返回工具箱工具项列表
1514
+ */
1515
+ getToolbox?: (attachGuidList: string[]) => Promise<{
1516
+ tools: ToolboxToolItem[];
1517
+ }>;
1518
+ }
1519
+
1520
+ /**
1521
+ * 编辑器UI选项接口
1522
+ * 定义了编辑器可以使用的UI相关功能
1523
+ */
1524
+ export declare interface EditorUiOptions {
1525
+ /**
1526
+ * 侧边栏
1527
+ */
1528
+ sidebar?: {
1529
+ /**
1530
+ * 打开使用指南/快捷键侧边栏
1531
+ */
1532
+ open?: (activeKey: 'userGuide' | 'shortcut') => void;
1533
+ };
1534
+ /**
1535
+ * 升级弹窗
1536
+ */
1537
+ upgrade?: {
1538
+ /**
1539
+ * 显示升级弹窗
1540
+ */
1541
+ showModal?: (options: ShowUpgradeModalProps) => Promise<ShowUpgradeModalResponse>;
1542
+ };
1543
+ notification?: {
1544
+ /**
1545
+ * 渲染通知条
1546
+ */
1547
+ render?: (params: RenderNotificationProps) => void;
1548
+ };
1549
+ /**
1550
+ * 用户名片
1551
+ */
1552
+ userCard?: {
1553
+ /**
1554
+ * 需要排除的用户卡片字段(不会在用户卡片中展示)
1555
+ */
1556
+ excludeFields?: string[];
1557
+ /**
1558
+ * 渲染用户卡片
1559
+ */
1560
+ render?: (params: RenderUserCardProps) => RenderUserCardResult;
1561
+ };
1562
+ /**
1563
+ * toast
1564
+ */
1565
+ toast?: {
1566
+ /**
1567
+ * 显示自定义toast
1568
+ */
1569
+ show?: (options: ShowToastOptions) => void;
1570
+ /**
1571
+ * 是否禁用toast
1572
+ */
1573
+ disabled?: boolean;
1574
+ };
1575
+ /**
1576
+ * confirm
1577
+ */
1578
+ confirm?: {
1579
+ /**
1580
+ * 显示自定义confirm
1581
+ */
1582
+ show?: (options: ShowConfirmOptions) => void;
1583
+ /**
1584
+ * 是否禁用confirm
1585
+ */
1586
+ disabled?: boolean;
1587
+ };
1588
+ }
1589
+
1203
1590
  export declare type EditorUploadableFile = EditorLocalUploadableFile;
1204
1591
 
1205
1592
  /**
@@ -1263,6 +1650,13 @@ export declare interface EditorUserOptions {
1263
1650
  defaultAvatar?: string;
1264
1651
  }
1265
1652
 
1653
+ export declare interface EditorVersion {
1654
+ /**
1655
+ * 保存版本
1656
+ */
1657
+ createRevision: () => void;
1658
+ }
1659
+
1266
1660
  /**
1267
1661
  * 编辑器外部水印信息
1268
1662
  */
@@ -1286,6 +1680,86 @@ export declare type EditorWatermarkResource = {
1286
1680
  url: string;
1287
1681
  };
1288
1682
 
1683
+ export declare enum FeatureStatus {
1684
+ /**
1685
+ * 隐藏
1686
+ */
1687
+ Hidden = 0,
1688
+ /**
1689
+ * 正常
1690
+ */
1691
+ Normal = 1,
1692
+ /**
1693
+ * 禁用
1694
+ */
1695
+ Disabled = 2
1696
+ }
1697
+
1698
+ export declare interface FileLinkParams {
1699
+ /**
1700
+ * 文件guid
1701
+ */
1702
+ fileGuid: string;
1703
+ /**
1704
+ * 文件类型,如docs,sheets
1705
+ */
1706
+ type: string;
1707
+ /**
1708
+ * 用于定位到 mention、评论等位置。
1709
+ */
1710
+ hash?: string;
1711
+ /**
1712
+ * 其他自定义字段
1713
+ */
1714
+ [key: string]: unknown;
1715
+ }
1716
+
1717
+ /**
1718
+ * 文件子类型枚举
1719
+ */
1720
+ export declare enum FileSubtype {
1721
+ /** 专业版幻灯片 */
1722
+ ProSlide = -10,
1723
+ /** 白板 */
1724
+ Whiteboard = -9,
1725
+ /** 表单 */
1726
+ Form = -8,
1727
+ /** 思维导图 */
1728
+ Mind = -7,
1729
+ /** 专业文档 */
1730
+ ProDoc = -6,
1731
+ /** 幻灯片 */
1732
+ Slide = -5,
1733
+ /** 新表格 */
1734
+ NewSheet = -4,
1735
+ /** 老表格 */
1736
+ Sheet = -3,
1737
+ /** 新文档 */
1738
+ NewDoc = -2,
1739
+ /** 老老表格 */
1740
+ OldSheet = -1,
1741
+ /** 旧文档 */
1742
+ OldDoc = 0,
1743
+ /** 文件夹 */
1744
+ Folder = 1,
1745
+ /** 协作 */
1746
+ Collaboration = 2
1747
+ }
1748
+
1749
+ /**
1750
+ * 文件类型枚举
1751
+ */
1752
+ export declare enum FileType {
1753
+ /** 未知类型 */
1754
+ Unknown = 0,
1755
+ /** 文件夹或空间 */
1756
+ FolderOrSpace = 1,
1757
+ /** 石墨文件 */
1758
+ ShimoFile = 2,
1759
+ /** 云文件 */
1760
+ CloudFile = 3
1761
+ }
1762
+
1289
1763
  /**
1290
1764
  * 请求、响应头
1291
1765
  */
@@ -1393,6 +1867,260 @@ export declare interface HTTPResponse<Data = unknown> {
1393
1867
  */
1394
1868
  export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
1395
1869
 
1870
+ export declare interface Limitation {
1871
+ /**
1872
+ * 限制原因(错误码)
1873
+ */
1874
+ code?: number;
1875
+ /**
1876
+ * 单位(不参与计算,仅作显示)
1877
+ * minutes、MB
1878
+ */
1879
+ unit?: string;
1880
+ /**
1881
+ * 描述
1882
+ */
1883
+ desc?: string;
1884
+ /**
1885
+ * min/max int64 默认表示 MB/个/分钟/行
1886
+ */
1887
+ max?: number;
1888
+ min?: number;
1889
+ }
1890
+
1396
1891
  export declare type MaybePromiseValue<T> = T | Promise<T>;
1397
1892
 
1893
+ /**
1894
+ * 升级弹窗类型
1895
+ * 个人版或企业版
1896
+ */
1897
+ export declare type OpenType = 'personal' | 'enterprise';
1898
+
1899
+ export declare interface RenderNotificationProps {
1900
+ /**
1901
+ * 渲染的容器
1902
+ */
1903
+ container: HTMLElement;
1904
+ /**
1905
+ * 自定义样式,实际类型为React.CSSProperties
1906
+ */
1907
+ style?: Record<string, string | number>;
1908
+ }
1909
+
1910
+ export declare interface RenderUserCardProps {
1911
+ uid: string | number;
1912
+ rect: {
1913
+ left: number;
1914
+ top: number;
1915
+ width: number;
1916
+ height: number;
1917
+ hasReducedHeaderHeight?: boolean;
1918
+ };
1919
+ position?: 'top' | 'left' | 'right' | 'bottom' | 'left_top' | 'left_bottom' | 'right_top' | 'bottom_top' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right';
1920
+ trigger: 'hover' | 'click';
1921
+ }
1922
+
1923
+ export declare interface RenderUserCardResult {
1924
+ /**
1925
+ * 关闭用户卡片
1926
+ */
1927
+ close: (force?: boolean) => void;
1928
+ }
1929
+
1930
+ /**
1931
+ * 升级操作结果类型枚举
1932
+ */
1933
+ export declare enum ResultType {
1934
+ /** 操作成功 */
1935
+ Success = "success",
1936
+ /** 用户取消操作 */
1937
+ Cancel = "cancel",
1938
+ /** 发生错误 */
1939
+ Error = "error",
1940
+ /** 跳转(目前仅在企业版用户过期时返回) */
1941
+ Redirect = "redirect"
1942
+ }
1943
+
1944
+ export declare interface SaveContext {
1945
+ clientId: string;
1946
+ }
1947
+
1948
+ export declare interface SaveStatusDelegation {
1949
+ /**
1950
+ * 保存状态发生变化时触发回调
1951
+ * @param state
1952
+ * @returns
1953
+ */
1954
+ onChangeState: (state: unknown, context: SaveContext) => void;
1955
+ /**
1956
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
1957
+ * @param error
1958
+ * @returns
1959
+ */
1960
+ onError: (error: unknown, context: SaveContext) => void;
1961
+ }
1962
+
1963
+ /**
1964
+ * 付费场景类型
1965
+ */
1966
+ export declare type Scene = 'history' | 'version' | 'public' | 'search' | 'attachments';
1967
+
1968
+ export declare interface ShowConfirmOptions {
1969
+ /**
1970
+ * 确认框标题
1971
+ */
1972
+ title: string;
1973
+ /**
1974
+ * 确认框描述
1975
+ */
1976
+ description: string;
1977
+ /**
1978
+ * 确认按钮配置
1979
+ */
1980
+ confirmButton?: ConfirmButtonConfig;
1981
+ /**
1982
+ * 取消按钮配置
1983
+ */
1984
+ cancelButton?: ConfirmButtonConfig;
1985
+ }
1986
+
1987
+ export declare interface ShowToastOptions {
1988
+ /**
1989
+ * toast标题
1990
+ */
1991
+ title: string;
1992
+ /**
1993
+ * toast类型
1994
+ */
1995
+ type: 'success' | 'error' | 'warn' | 'info';
1996
+ /**
1997
+ * 显示时长,默认3s
1998
+ */
1999
+ duration?: number;
2000
+ /**
2001
+ * 是否自动隐藏,默认true
2002
+ */
2003
+ autoHide?: boolean;
2004
+ }
2005
+
2006
+ /**
2007
+ * 升级弹窗配置选项接口
2008
+ */
2009
+ export declare interface ShowUpgradeModalProps {
2010
+ /** 打开个人升级弹窗还是企业弹窗 */
2011
+ openType: OpenType;
2012
+ /** 触发功能的Key值 */
2013
+ serviceKey: string;
2014
+ /** 文件类型(如果业务能够获取到则为必传) */
2015
+ fileType?: FileType;
2016
+ /** 文件子类型(如果业务能够获取到则为必传) */
2017
+ fileSubtype?: FileSubtype;
2018
+ /** 付费场景,用于升级弹窗的定制化文案显示 */
2019
+ scene?: Scene;
2020
+ }
2021
+
2022
+ /**
2023
+ * 升级弹窗响应接口
2024
+ */
2025
+ export declare interface ShowUpgradeModalResponse {
2026
+ /** 操作结果 */
2027
+ result: ResultType;
2028
+ /** 错误信息(供开发人员查看) */
2029
+ errorMsg?: string;
2030
+ }
2031
+
2032
+ /**
2033
+ * 演讲者信息接口
2034
+ * 包含演讲者的基本信息
2035
+ */
2036
+ export declare interface Speaker {
2037
+ /** 演讲者ID */
2038
+ id: number;
2039
+ /** 演讲者姓名 */
2040
+ name: string;
2041
+ /** 演讲者头像URL */
2042
+ avatar: string;
2043
+ }
2044
+
2045
+ export declare interface SyncContext {
2046
+ clientId: string;
2047
+ timestamp: number;
2048
+ }
2049
+
2050
+ export declare interface SyncStatusDelegation {
2051
+ /**
2052
+ * 同步状态发生变化时触发回调
2053
+ * @param state
2054
+ * @param context
2055
+ * @returns
2056
+ */
2057
+ onChangeState: (state: unknown, context: SyncContext) => void;
2058
+ /**
2059
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
2060
+ * @param error
2061
+ * @param context
2062
+ * @returns
2063
+ */
2064
+ onError: (error: unknown, context: SyncContext) => void;
2065
+ }
2066
+
2067
+ /**
2068
+ * 工具箱工具项接口
2069
+ */
2070
+ export declare interface ToolboxToolItem {
2071
+ /** 工具类型 */
2072
+ type: ToolTypes;
2073
+ /** 工具名称 */
2074
+ name: string;
2075
+ /** 工具图标 */
2076
+ icon: string;
2077
+ /** 工具分组 */
2078
+ group: ToolGroupTypes;
2079
+ /** 分组名称 */
2080
+ groupName: string;
2081
+ /** 是否为测试版功能 */
2082
+ isBeta: boolean;
2083
+ /** 工具回调函数 */
2084
+ callback: () => Promise<{
2085
+ result: 'success' | 'failed';
2086
+ error?: unknown;
2087
+ }>;
2088
+ }
2089
+
2090
+ /**
2091
+ * 工具分组类型枚举
2092
+ */
2093
+ export declare enum ToolGroupTypes {
2094
+ /** 转换工具组 */
2095
+ Convert = "convert",
2096
+ /** 处理工具组 */
2097
+ Processing = "processing",
2098
+ /** 智能工具组 */
2099
+ Intelligent = "intelligent"
2100
+ }
2101
+
2102
+ /**
2103
+ * 工具类型枚举
2104
+ */
2105
+ export declare enum ToolTypes {
2106
+ /** PDF转Word */
2107
+ PdfToWord = "pdfToWord",
2108
+ /** PDF转Excel */
2109
+ PdfToExcel = "pdfToExcel",
2110
+ /** PDF转PPT */
2111
+ PdfToPpt = "pdfToPpt",
2112
+ /** 图片转PDF */
2113
+ ImgToPdf = "imgToPdf",
2114
+ /** PDF合并 */
2115
+ PdfMerge = "pdfMerge",
2116
+ /** PDF拆分 */
2117
+ PdfSplit = "pdfSplit",
2118
+ /** 文件内容提取 */
2119
+ FileContentExtraction = "fileContentExtraction",
2120
+ /** 图片转文字 */
2121
+ COR = "imgToText",
2122
+ /** 音频转文字 */
2123
+ STT = "audioToText"
2124
+ }
2125
+
1398
2126
  export { }