@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/pdf.d.ts CHANGED
@@ -59,6 +59,43 @@ export declare abstract class AbstractedPdfSDK {
59
59
  abstract get outline(): PdfOutline;
60
60
  }
61
61
 
62
+ export declare type CheckLimitationResult = {
63
+ status: 'limited';
64
+ /**
65
+ * 被限制原因
66
+ */
67
+ reason?: string;
68
+ } | {
69
+ status: 'unlimited';
70
+ };
71
+
72
+ /**
73
+ * 协作者信息接口
74
+ */
75
+ export declare interface CollaboratorInfo {
76
+ /** 协作者唯一标识 */
77
+ id: number;
78
+ /** 协作者名称 */
79
+ name: string;
80
+ /** 协作者头像URL */
81
+ avatar: string;
82
+ }
83
+
84
+ export declare interface ConfirmButtonConfig {
85
+ /**
86
+ * 按钮文本
87
+ */
88
+ label?: string;
89
+ /**
90
+ * 是否隐藏
91
+ */
92
+ hidden?: boolean;
93
+ /**
94
+ * 按钮点击回调
95
+ */
96
+ onClick?: () => void;
97
+ }
98
+
62
99
  /**
63
100
  * 匿名用户信息
64
101
  * 当前用户信息未知时的缺省值
@@ -205,8 +242,9 @@ export declare interface EditorAttachmentMaxSizeOptions {
205
242
  * 编辑器附件信息
206
243
  */
207
244
  export declare interface EditorAttachmentOptions {
208
- uploader: AbstractedEditorFileUploader;
209
- download: (url: string) => void;
245
+ picker?: EditorFilePicker;
246
+ uploader?: AbstractedEditorFileUploader;
247
+ download?: (url: string) => void;
210
248
  /**
211
249
  * 图片附件相关配置
212
250
  */
@@ -280,6 +318,80 @@ export declare interface EditorBrandOptions {
280
318
  };
281
319
  }
282
320
 
321
+ export declare interface EditorCheckpointsOptions {
322
+ /**
323
+ * 获取功能卡点限制
324
+ * undefined代表无限制
325
+ */
326
+ getFeatureLimitation?: (key: string) => Limitation | undefined;
327
+ /**
328
+ * 检查是否超限
329
+ * @param key 功能卡点key
330
+ * @param value 功能卡点检查值,如文件大小/行列数量等
331
+ */
332
+ checkFeatureLimitation?: (key: string, value: number) => CheckLimitationResult;
333
+ /**
334
+ * 获取功能卡点状态,如某功能入口是否开启
335
+ */
336
+ getFeatureStatus?: (key: string) => FeatureStatus;
337
+ }
338
+
339
+ export declare interface EditorCollaborationOptions {
340
+ /**
341
+ * 是否允许离线编辑
342
+ */
343
+ offlineEditable: boolean;
344
+ /**
345
+ * 保存状态外部接口委托
346
+ */
347
+ saveStatus: SaveStatusDelegation;
348
+ /**
349
+ * 同步状态外部接口委托(部分套件不支持离线编辑)
350
+ */
351
+ syncStatus?: SyncStatusDelegation;
352
+ /**
353
+ * 是否使用严格的长度校验规则,默认关闭,在开启后如果出现长度校验失败会立刻禁止编辑器继续编写,并将保存状态设置为错误状态
354
+ */
355
+ strictCLC?: boolean;
356
+ }
357
+
358
+ /**
359
+ * 编辑器协作者管理接口
360
+ */
361
+ export declare interface EditorCollaborators {
362
+ /**
363
+ * 获取当前所有协作者列表
364
+ * @returns 返回所有协作者信息数组
365
+ */
366
+ getCollaborators: () => CollaboratorInfo[];
367
+ /**
368
+ * 开始监听协作者状态变化
369
+ * 调用此方法后,将开始接收协作者进入/离开的事件
370
+ */
371
+ start: () => void;
372
+ /**
373
+ * 停止监听协作者状态变化
374
+ * 调用此方法后,将不再接收协作者进入/离开的事件
375
+ */
376
+ stop: () => void;
377
+ /**
378
+ * 添加协作者进入事件监听器
379
+ * @param listener - 监听器回调函数,参数如下:
380
+ * - allUsers: 当前所有协作者列表
381
+ * - enteredUsers: 新进入的协作者列表
382
+ * @returns 返回一个函数,调用该函数可以移除监听器
383
+ */
384
+ addUserEnterListener: (listener: (allUsers: CollaboratorInfo[], enteredUsers: CollaboratorInfo[]) => void) => () => void;
385
+ /**
386
+ * 添加协作者离开事件监听器
387
+ * @param listener - 监听器回调函数
388
+ * - allUsers: 当前所有协作者列表
389
+ * - leftUsers: 离开的协作者列表
390
+ * @returns 返回一个函数,调用该函数可以移除监听器
391
+ */
392
+ addUserLeaveListener: (listener: (allUsers: CollaboratorInfo[], leftUsers: CollaboratorInfo[]) => void) => () => void;
393
+ }
394
+
283
395
  /**
284
396
  * 单条评论数据
285
397
  */
@@ -346,7 +458,7 @@ export declare interface EditorComments {
346
458
  /**
347
459
  * 编辑器评论初始化配置
348
460
  */
349
- export declare interface EditorCommentsOptions {
461
+ export declare interface EditorCommentsOptions extends EditorFeatureConfig {
350
462
  /**
351
463
  * 评论作者信息,如果这里的信息为空,将会使用 user 信息
352
464
  */
@@ -375,6 +487,12 @@ export declare interface EditorCommentsOptions {
375
487
  */
376
488
  mode: 'none' | 'card';
377
489
  };
490
+ /**
491
+ * 评论变化监听
492
+ * @param listener
493
+ * @returns 返回一个函数,调用该函数可以移除监听器
494
+ */
495
+ addChangedListener?: (listener: (type: 'create' | 'update' | 'close', data: EditorCommentItem) => void) => () => void;
378
496
  }
379
497
 
380
498
  export declare interface EditorContent<Delta = EditorDelta> {
@@ -400,6 +518,19 @@ export declare interface EditorContent<Delta = EditorDelta> {
400
518
  */
401
519
  export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
402
520
 
521
+ /**
522
+ * 编辑器解密选项接口
523
+ * 用于配置编辑器中需要解密的内容的相关选项
524
+ */
525
+ export declare interface EditorDecryptionOptions {
526
+ /**
527
+ * 图片附件解密函数
528
+ * @param buffer - 需要解密的二进制数据
529
+ * @returns 解密后的二进制数据
530
+ */
531
+ decrypt?: (buffer: ArrayBuffer) => ArrayBuffer;
532
+ }
533
+
403
534
  export declare interface EditorDelta {
404
535
  compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
405
536
  transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
@@ -459,16 +590,81 @@ export declare interface EditorEmbeddedObjectOptions {
459
590
  export declare interface EditorExportOptions {
460
591
  /**
461
592
  * 可导出类型
462
- * @description
463
593
  */
464
594
  supportedTypes?: string[];
465
595
  /**
466
596
  * 导出文件
467
- * @description
468
597
  */
469
598
  exportFile: (type: string) => Promise<void>;
470
599
  }
471
600
 
601
+ export declare interface EditorFeatureConfig {
602
+ /**
603
+ * 功能是否被禁用(入口还在)
604
+ */
605
+ disabled?: boolean;
606
+ /**
607
+ * 功能入口是否被隐藏
608
+ */
609
+ hidden?: boolean;
610
+ }
611
+
612
+ export declare interface EditorFileOptions {
613
+ /**
614
+ * 文件guid
615
+ */
616
+ guid: string;
617
+ /**
618
+ * 文件名
619
+ */
620
+ name?: string;
621
+ }
622
+
623
+ export declare interface EditorFilePicker {
624
+ open: (option: EditorFilePickerOpenOptions) => Promise<EditorPickedFile[]>;
625
+ }
626
+
627
+ export declare interface EditorFilePickerOpenOptions {
628
+ mimeTypes?: string[];
629
+ maxSize?: number;
630
+ extensions?: string[];
631
+ multiple?: boolean;
632
+ directory?: boolean;
633
+ }
634
+
635
+ export declare interface EditorFollowMode {
636
+ /**
637
+ * 演讲者/跟随者进入跟随模式
638
+ * 当演讲者调用此方法时,其他用户将可以开始跟随该演讲者
639
+ */
640
+ enter: () => void;
641
+ /**
642
+ * 当前是否处于跟随模式
643
+ * @returns 返回布尔值,true表示正在跟随,false表示未在跟随
644
+ */
645
+ isFollowModeActive: () => boolean;
646
+ /**
647
+ * 获取当前演讲者信息
648
+ * @returns 返回包含演讲者ID、姓名和头像信息的对象
649
+ */
650
+ getSpeaker: () => Speaker;
651
+ /**
652
+ * 添加跟随状态变化的监听器
653
+ * @param listener 状态变化时的回调函数
654
+ * @returns 返回一个用于移除监听器的函数
655
+ */
656
+ addChangedListener: (listener: () => void) => () => void;
657
+ }
658
+
659
+ export declare interface EditorFollowModeOptions extends EditorFeatureConfig {
660
+ /**
661
+ * 推送跟随消息的 socket 对象
662
+ * 实际类型为socketIO.client
663
+ * TODO: 抽象为接口
664
+ */
665
+ socket?: unknown;
666
+ }
667
+
472
668
  export declare interface EditorFontFace {
473
669
  /**
474
670
  * 字体的名称,用于在用户界面上显示的名称
@@ -547,6 +743,19 @@ export declare interface EditorFontsOptions {
547
743
  list: EditorFontsList;
548
744
  }
549
745
 
746
+ export declare interface EditorHistory {
747
+ /**
748
+ * 显示历史记录侧边栏
749
+ */
750
+ showSidebar: () => void;
751
+ /**
752
+ * 隐藏历史记录侧边栏
753
+ */
754
+ hideSidebar: () => void;
755
+ }
756
+
757
+ export declare type EditorHistoryOptions = EditorFeatureConfig;
758
+
550
759
  /**
551
760
  * i18n 相关设置
552
761
  */
@@ -567,13 +776,39 @@ export declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'cen
567
776
  * 链接配置,抽象打开链接等操作
568
777
  */
569
778
  export declare interface EditorLinkOptions {
779
+ /**
780
+ * 链接识别配置
781
+ */
782
+ detection?: {
783
+ /**
784
+ * 支持识别的链接格式
785
+ */
786
+ pattern?: string | RegExp | (string | RegExp)[];
787
+ /**
788
+ * 是否启用链接识别,默认关闭
789
+ */
790
+ enabled?: boolean;
791
+ };
570
792
  /**
571
793
  * 打开链接,如果取消了打开链接操作,返回 false
572
794
  * @param url
573
795
  * @param target
574
796
  * @returns
575
797
  */
576
- open: (url: string, target: string) => Promise<boolean>;
798
+ open?: (url: string, target: string) => Promise<boolean>;
799
+ /**
800
+ * 根据文件guid以及其他参数生成链接
801
+ */
802
+ generate?: (params: FileLinkParams) => Promise<string>;
803
+ /**
804
+ * 从文档链接中解析得到文件guid等参数
805
+ */
806
+ parse?: (url: string) => Promise<FileLinkParams | undefined>;
807
+ /**
808
+ * 生成sdk2.0内部链接
809
+ * 使用场景:专业表格跨表格引用
810
+ */
811
+ generateInternal?: (params: FileLinkParams) => Promise<string>;
577
812
  }
578
813
 
579
814
  /**
@@ -658,29 +893,27 @@ export declare interface EditorMenuEntryMenuItemConfig<TName extends string> ext
658
893
  /**
659
894
  * 菜单功能按钮配置
660
895
  */
661
- export declare interface EditorMenuFeatureConfig {
896
+ export declare interface EditorMenuFeatureConfig extends EditorFeatureConfig {
662
897
  /**
663
- * 是否隐藏菜单项,设置为true则隐藏菜单项
898
+ * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
664
899
  */
665
- hidden?: boolean;
900
+ label?: string;
666
901
  /**
667
- * 是否禁用菜单项,设置为true则变为灰色不可点击
902
+ * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
668
903
  */
669
- disabled?: boolean;
670
- }
671
-
672
- /**
673
- * 菜单功能按钮配置
674
- */
675
- export declare interface EditorMenuFeatureConfig {
904
+ icon?: string;
676
905
  /**
677
- * 是否隐藏菜单项,设置为true则隐藏菜单项
906
+ * 按钮点击事件.接受一个函数,可以自定义点击事件。
678
907
  */
679
- hidden?: boolean;
908
+ callback?: () => void;
680
909
  /**
681
- * 是否禁用菜单项,设置为true则变为灰色不可点击
910
+ * 按钮提示文本,鼠标悬浮到按钮上时显示的tooltip文字
682
911
  */
683
- disabled?: boolean;
912
+ tooltip?: string;
913
+ /**
914
+ * 按钮在工具栏中位置,不设置则按照默认位置
915
+ */
916
+ index?: number;
684
917
  }
685
918
 
686
919
  /**
@@ -738,9 +971,9 @@ export declare interface EditorMenuOptions<TName extends string> {
738
971
  entries?: EditorMenuEntryConfig<TName>[];
739
972
  /**
740
973
  * 菜单栏功能按钮配置
741
- * TODO 此配置目前没有用到,后续看是保留还是和custom合并
974
+ * 更加间接的配置项
742
975
  */
743
- features?: Record<TName, EditorMenuFeatureConfig>;
976
+ features?: Partial<Record<TName, EditorMenuFeatureConfig>>;
744
977
  /**
745
978
  * 自定义按钮配置
746
979
  */
@@ -810,6 +1043,10 @@ export declare interface EditorOptions {
810
1043
  * 匿名用户的缺省信息
811
1044
  */
812
1045
  anonymous?: EditorAnonymousOptions;
1046
+ /**
1047
+ * 当前文件信息
1048
+ */
1049
+ file?: EditorFileOptions;
813
1050
  /**
814
1051
  * i18n 相关设置
815
1052
  */
@@ -817,13 +1054,13 @@ export declare interface EditorOptions {
817
1054
  /**
818
1055
  * 品牌相关设置
819
1056
  */
820
- brand?: EditorBrandOptions;
1057
+ brand?: MaybePromiseValue<EditorBrandOptions>;
821
1058
  /**
822
1059
  * 编辑器内部资源请求配置
823
1060
  */
824
1061
  assets?: EditorAssetsOptions;
825
1062
  /**
826
- * 编辑器内部超链接设置
1063
+ * 编辑器链接相关配置
827
1064
  */
828
1065
  link?: EditorLinkOptions;
829
1066
  /**
@@ -850,6 +1087,38 @@ export declare interface EditorOptions {
850
1087
  * 导出设置
851
1088
  */
852
1089
  export?: EditorExportOptions;
1090
+ /**
1091
+ * 解密设置
1092
+ */
1093
+ decryption?: EditorDecryptionOptions;
1094
+ /**
1095
+ * 网络请求设置
1096
+ */
1097
+ http?: HTTPProxy;
1098
+ /**
1099
+ * 编辑器渲染设置项
1100
+ */
1101
+ render?: EditorRenderOptions;
1102
+ /**
1103
+ * 编辑器 UI 相关
1104
+ */
1105
+ ui?: EditorUiOptions;
1106
+ /**
1107
+ * 编辑器卡点限制
1108
+ */
1109
+ checkpoints?: EditorCheckpointsOptions;
1110
+ /**
1111
+ * 编辑器工具箱设置
1112
+ */
1113
+ toolbox?: EditorToolboxOptions;
1114
+ /**
1115
+ * 编辑器历史设置
1116
+ */
1117
+ history?: EditorHistoryOptions;
1118
+ /**
1119
+ * 编辑器协作相关
1120
+ */
1121
+ collaboration?: EditorCollaborationOptions;
853
1122
  }
854
1123
 
855
1124
  /**
@@ -910,10 +1179,33 @@ export declare interface EditorOutlineOptions {
910
1179
  visible?: boolean;
911
1180
  }
912
1181
 
1182
+ export declare interface EditorPickedFile {
1183
+ /**
1184
+ * 文件大小
1185
+ */
1186
+ size: number;
1187
+ /**
1188
+ * 文件名
1189
+ */
1190
+ name: string;
1191
+ /**
1192
+ * 文件路径,仅显示有意义的相对路径,可用在上传文件夹和识别文件使用
1193
+ */
1194
+ path?: string;
1195
+ /**
1196
+ * 文件类型,mime-type
1197
+ */
1198
+ type: string;
1199
+ /**
1200
+ * 文件原始数据,用于给上传控件使用
1201
+ */
1202
+ raw: File;
1203
+ }
1204
+
913
1205
  /**
914
1206
  * 编辑器打印设置
915
1207
  */
916
- export declare interface EditorPrintOptions {
1208
+ export declare interface EditorPrintOptions extends EditorFeatureConfig {
917
1209
  /**
918
1210
  * 部分套件如果绕过了编辑器预设的打印接口,直接通过拉起了浏览器的打印页面,这时打印页面无法获取到编辑器的内容,
919
1211
  * 这种情况下就会 fallback 到这个 options 上,显示一个提示信息。
@@ -921,10 +1213,6 @@ export declare interface EditorPrintOptions {
921
1213
  fallback?: {
922
1214
  message: string;
923
1215
  };
924
- /**
925
- * 是否禁用打印功能
926
- */
927
- disabled?: boolean;
928
1216
  }
929
1217
 
930
1218
  /**
@@ -938,6 +1226,13 @@ export declare interface EditorRemoteUploadableFile extends EditorBaseUploadable
938
1226
  raw?: never;
939
1227
  }
940
1228
 
1229
+ export declare interface EditorRenderOptions {
1230
+ /**
1231
+ * 渲染的容器
1232
+ */
1233
+ container?: HTMLElement;
1234
+ }
1235
+
941
1236
  /**
942
1237
  * 编辑器通用接口
943
1238
  */
@@ -972,8 +1267,24 @@ export declare abstract class EditorSDK {
972
1267
  abstract get mode(): EditorMode;
973
1268
  /**
974
1269
  * 编辑器评论相关接口
1270
+ * 部分环境不存在,如离线客户端
1271
+ */
1272
+ abstract get comments(): EditorComments | undefined;
1273
+ /**
1274
+ * 编辑器协作者相关接口
1275
+ * 部分环境不存在,如离线客户端
1276
+ */
1277
+ abstract get collaborators(): EditorCollaborators | undefined;
1278
+ /**
1279
+ * 编辑器历史相关接口
1280
+ * 部分环境不存在,如离线客户端
1281
+ */
1282
+ abstract get history(): EditorHistory | undefined;
1283
+ /**
1284
+ * 编辑器版本相关接口
1285
+ * 部分环境不存在,如离线客户端
975
1286
  */
976
- abstract get comments(): EditorComments;
1287
+ abstract get version(): EditorVersion | undefined;
977
1288
  }
978
1289
 
979
1290
  /**
@@ -1109,11 +1420,11 @@ export declare interface EditorTextOptions<Color = string> {
1109
1420
  /**
1110
1421
  * 工具栏功能按钮配置(包括内置按钮和自定义按钮)
1111
1422
  */
1112
- export declare interface EditorToolbarFeatureButton<TName extends string> {
1423
+ export declare interface EditorToolbarFeatureButton<TName extends string> extends EditorFeatureConfig {
1113
1424
  /**
1114
1425
  * 按钮的唯一标识,用以确定配置的是哪个按钮。
1115
1426
  */
1116
- name: TName;
1427
+ name?: TName;
1117
1428
  /**
1118
1429
  * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
1119
1430
  */
@@ -1122,14 +1433,6 @@ export declare interface EditorToolbarFeatureButton<TName extends string> {
1122
1433
  * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1123
1434
  */
1124
1435
  icon?: string;
1125
- /**
1126
- * 按钮是否隐藏,设置为true则隐藏按钮
1127
- */
1128
- hidden?: boolean;
1129
- /**
1130
- * 按钮是否禁用,设置为true则变为灰色不可点击
1131
- */
1132
- disabled?: boolean;
1133
1436
  /**
1134
1437
  * 按钮点击事件.接受一个函数,可以自定义点击事件。
1135
1438
  */
@@ -1173,6 +1476,90 @@ export declare interface EditorToolbarOptions<TName extends string> {
1173
1476
  custom?: EditorToolbarFeatureButtonConfig<string>;
1174
1477
  }
1175
1478
 
1479
+ /**
1480
+ * 编辑器工具箱配置选项接口
1481
+ */
1482
+ export declare interface EditorToolboxOptions {
1483
+ /**
1484
+ * 获取工具箱配置
1485
+ * @param attachGuidList - 附件GUID列表
1486
+ * @returns 返回工具箱工具项列表
1487
+ */
1488
+ getToolbox?: (attachGuidList: string[]) => Promise<{
1489
+ tools: ToolboxToolItem[];
1490
+ }>;
1491
+ }
1492
+
1493
+ /**
1494
+ * 编辑器UI选项接口
1495
+ * 定义了编辑器可以使用的UI相关功能
1496
+ */
1497
+ export declare interface EditorUiOptions {
1498
+ /**
1499
+ * 侧边栏
1500
+ */
1501
+ sidebar?: {
1502
+ /**
1503
+ * 打开使用指南/快捷键侧边栏
1504
+ */
1505
+ open?: (activeKey: 'userGuide' | 'shortcut') => void;
1506
+ };
1507
+ /**
1508
+ * 升级弹窗
1509
+ */
1510
+ upgrade?: {
1511
+ /**
1512
+ * 显示升级弹窗
1513
+ */
1514
+ showModal?: (options: ShowUpgradeModalProps) => Promise<ShowUpgradeModalResponse>;
1515
+ };
1516
+ notification?: {
1517
+ /**
1518
+ * 渲染通知条
1519
+ */
1520
+ render?: (params: RenderNotificationProps) => void;
1521
+ };
1522
+ /**
1523
+ * 用户名片
1524
+ */
1525
+ userCard?: {
1526
+ /**
1527
+ * 需要排除的用户卡片字段(不会在用户卡片中展示)
1528
+ */
1529
+ excludeFields?: string[];
1530
+ /**
1531
+ * 渲染用户卡片
1532
+ */
1533
+ render?: (params: RenderUserCardProps) => RenderUserCardResult;
1534
+ };
1535
+ /**
1536
+ * toast
1537
+ */
1538
+ toast?: {
1539
+ /**
1540
+ * 显示自定义toast
1541
+ */
1542
+ show?: (options: ShowToastOptions) => void;
1543
+ /**
1544
+ * 是否禁用toast
1545
+ */
1546
+ disabled?: boolean;
1547
+ };
1548
+ /**
1549
+ * confirm
1550
+ */
1551
+ confirm?: {
1552
+ /**
1553
+ * 显示自定义confirm
1554
+ */
1555
+ show?: (options: ShowConfirmOptions) => void;
1556
+ /**
1557
+ * 是否禁用confirm
1558
+ */
1559
+ disabled?: boolean;
1560
+ };
1561
+ }
1562
+
1176
1563
  export declare type EditorUploadableFile = EditorLocalUploadableFile;
1177
1564
 
1178
1565
  /**
@@ -1236,6 +1623,13 @@ export declare interface EditorUserOptions {
1236
1623
  defaultAvatar?: string;
1237
1624
  }
1238
1625
 
1626
+ export declare interface EditorVersion {
1627
+ /**
1628
+ * 保存版本
1629
+ */
1630
+ createRevision: () => void;
1631
+ }
1632
+
1239
1633
  /**
1240
1634
  * 编辑器外部水印信息
1241
1635
  */
@@ -1259,6 +1653,86 @@ export declare type EditorWatermarkResource = {
1259
1653
  url: string;
1260
1654
  };
1261
1655
 
1656
+ export declare enum FeatureStatus {
1657
+ /**
1658
+ * 隐藏
1659
+ */
1660
+ Hidden = 0,
1661
+ /**
1662
+ * 正常
1663
+ */
1664
+ Normal = 1,
1665
+ /**
1666
+ * 禁用
1667
+ */
1668
+ Disabled = 2
1669
+ }
1670
+
1671
+ export declare interface FileLinkParams {
1672
+ /**
1673
+ * 文件guid
1674
+ */
1675
+ fileGuid: string;
1676
+ /**
1677
+ * 文件类型,如docs,sheets
1678
+ */
1679
+ type: string;
1680
+ /**
1681
+ * 用于定位到 mention、评论等位置。
1682
+ */
1683
+ hash?: string;
1684
+ /**
1685
+ * 其他自定义字段
1686
+ */
1687
+ [key: string]: unknown;
1688
+ }
1689
+
1690
+ /**
1691
+ * 文件子类型枚举
1692
+ */
1693
+ export declare enum FileSubtype {
1694
+ /** 专业版幻灯片 */
1695
+ ProSlide = -10,
1696
+ /** 白板 */
1697
+ Whiteboard = -9,
1698
+ /** 表单 */
1699
+ Form = -8,
1700
+ /** 思维导图 */
1701
+ Mind = -7,
1702
+ /** 专业文档 */
1703
+ ProDoc = -6,
1704
+ /** 幻灯片 */
1705
+ Slide = -5,
1706
+ /** 新表格 */
1707
+ NewSheet = -4,
1708
+ /** 老表格 */
1709
+ Sheet = -3,
1710
+ /** 新文档 */
1711
+ NewDoc = -2,
1712
+ /** 老老表格 */
1713
+ OldSheet = -1,
1714
+ /** 旧文档 */
1715
+ OldDoc = 0,
1716
+ /** 文件夹 */
1717
+ Folder = 1,
1718
+ /** 协作 */
1719
+ Collaboration = 2
1720
+ }
1721
+
1722
+ /**
1723
+ * 文件类型枚举
1724
+ */
1725
+ export declare enum FileType {
1726
+ /** 未知类型 */
1727
+ Unknown = 0,
1728
+ /** 文件夹或空间 */
1729
+ FolderOrSpace = 1,
1730
+ /** 石墨文件 */
1731
+ ShimoFile = 2,
1732
+ /** 云文件 */
1733
+ CloudFile = 3
1734
+ }
1735
+
1262
1736
  /**
1263
1737
  * 请求、响应头
1264
1738
  */
@@ -1366,8 +1840,35 @@ export declare interface HTTPResponse<Data = unknown> {
1366
1840
  */
1367
1841
  export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
1368
1842
 
1843
+ export declare interface Limitation {
1844
+ /**
1845
+ * 限制原因(错误码)
1846
+ */
1847
+ code?: number;
1848
+ /**
1849
+ * 单位(不参与计算,仅作显示)
1850
+ * minutes、MB
1851
+ */
1852
+ unit?: string;
1853
+ /**
1854
+ * 描述
1855
+ */
1856
+ desc?: string;
1857
+ /**
1858
+ * min/max int64 默认表示 MB/个/分钟/行
1859
+ */
1860
+ max?: number;
1861
+ min?: number;
1862
+ }
1863
+
1369
1864
  export declare type MaybePromiseValue<T> = T | Promise<T>;
1370
1865
 
1866
+ /**
1867
+ * 升级弹窗类型
1868
+ * 个人版或企业版
1869
+ */
1870
+ export declare type OpenType = 'personal' | 'enterprise';
1871
+
1371
1872
  /**
1372
1873
  * pdf 工具栏一级菜单
1373
1874
  */
@@ -1604,4 +2105,231 @@ export declare interface PdfSelection {
1604
2105
  getWholeRange: () => PdfRange;
1605
2106
  }
1606
2107
 
2108
+ export declare interface RenderNotificationProps {
2109
+ /**
2110
+ * 渲染的容器
2111
+ */
2112
+ container: HTMLElement;
2113
+ /**
2114
+ * 自定义样式,实际类型为React.CSSProperties
2115
+ */
2116
+ style?: Record<string, string | number>;
2117
+ }
2118
+
2119
+ export declare interface RenderUserCardProps {
2120
+ uid: string | number;
2121
+ rect: {
2122
+ left: number;
2123
+ top: number;
2124
+ width: number;
2125
+ height: number;
2126
+ hasReducedHeaderHeight?: boolean;
2127
+ };
2128
+ position?: 'top' | 'left' | 'right' | 'bottom' | 'left_top' | 'left_bottom' | 'right_top' | 'bottom_top' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right';
2129
+ trigger: 'hover' | 'click';
2130
+ }
2131
+
2132
+ export declare interface RenderUserCardResult {
2133
+ /**
2134
+ * 关闭用户卡片
2135
+ */
2136
+ close: (force?: boolean) => void;
2137
+ }
2138
+
2139
+ /**
2140
+ * 升级操作结果类型枚举
2141
+ */
2142
+ export declare enum ResultType {
2143
+ /** 操作成功 */
2144
+ Success = "success",
2145
+ /** 用户取消操作 */
2146
+ Cancel = "cancel",
2147
+ /** 发生错误 */
2148
+ Error = "error",
2149
+ /** 跳转(目前仅在企业版用户过期时返回) */
2150
+ Redirect = "redirect"
2151
+ }
2152
+
2153
+ export declare interface SaveContext {
2154
+ clientId: string;
2155
+ }
2156
+
2157
+ export declare interface SaveStatusDelegation {
2158
+ /**
2159
+ * 保存状态发生变化时触发回调
2160
+ * @param state
2161
+ * @returns
2162
+ */
2163
+ onChangeState: (state: unknown, context: SaveContext) => void;
2164
+ /**
2165
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
2166
+ * @param error
2167
+ * @returns
2168
+ */
2169
+ onError: (error: unknown, context: SaveContext) => void;
2170
+ }
2171
+
2172
+ /**
2173
+ * 付费场景类型
2174
+ */
2175
+ export declare type Scene = 'history' | 'version' | 'public' | 'search' | 'attachments';
2176
+
2177
+ export declare interface ShowConfirmOptions {
2178
+ /**
2179
+ * 确认框标题
2180
+ */
2181
+ title: string;
2182
+ /**
2183
+ * 确认框描述
2184
+ */
2185
+ description: string;
2186
+ /**
2187
+ * 确认按钮配置
2188
+ */
2189
+ confirmButton?: ConfirmButtonConfig;
2190
+ /**
2191
+ * 取消按钮配置
2192
+ */
2193
+ cancelButton?: ConfirmButtonConfig;
2194
+ }
2195
+
2196
+ export declare interface ShowToastOptions {
2197
+ /**
2198
+ * toast标题
2199
+ */
2200
+ title: string;
2201
+ /**
2202
+ * toast类型
2203
+ */
2204
+ type: 'success' | 'error' | 'warn' | 'info';
2205
+ /**
2206
+ * 显示时长,默认3s
2207
+ */
2208
+ duration?: number;
2209
+ /**
2210
+ * 是否自动隐藏,默认true
2211
+ */
2212
+ autoHide?: boolean;
2213
+ }
2214
+
2215
+ /**
2216
+ * 升级弹窗配置选项接口
2217
+ */
2218
+ export declare interface ShowUpgradeModalProps {
2219
+ /** 打开个人升级弹窗还是企业弹窗 */
2220
+ openType: OpenType;
2221
+ /** 触发功能的Key值 */
2222
+ serviceKey: string;
2223
+ /** 文件类型(如果业务能够获取到则为必传) */
2224
+ fileType?: FileType;
2225
+ /** 文件子类型(如果业务能够获取到则为必传) */
2226
+ fileSubtype?: FileSubtype;
2227
+ /** 付费场景,用于升级弹窗的定制化文案显示 */
2228
+ scene?: Scene;
2229
+ }
2230
+
2231
+ /**
2232
+ * 升级弹窗响应接口
2233
+ */
2234
+ export declare interface ShowUpgradeModalResponse {
2235
+ /** 操作结果 */
2236
+ result: ResultType;
2237
+ /** 错误信息(供开发人员查看) */
2238
+ errorMsg?: string;
2239
+ }
2240
+
2241
+ /**
2242
+ * 演讲者信息接口
2243
+ * 包含演讲者的基本信息
2244
+ */
2245
+ export declare interface Speaker {
2246
+ /** 演讲者ID */
2247
+ id: number;
2248
+ /** 演讲者姓名 */
2249
+ name: string;
2250
+ /** 演讲者头像URL */
2251
+ avatar: string;
2252
+ }
2253
+
2254
+ export declare interface SyncContext {
2255
+ clientId: string;
2256
+ timestamp: number;
2257
+ }
2258
+
2259
+ export declare interface SyncStatusDelegation {
2260
+ /**
2261
+ * 同步状态发生变化时触发回调
2262
+ * @param state
2263
+ * @param context
2264
+ * @returns
2265
+ */
2266
+ onChangeState: (state: unknown, context: SyncContext) => void;
2267
+ /**
2268
+ * 出现致命错误时触发回调,出现致命错误后,编辑器将无法继续编辑
2269
+ * @param error
2270
+ * @param context
2271
+ * @returns
2272
+ */
2273
+ onError: (error: unknown, context: SyncContext) => void;
2274
+ }
2275
+
2276
+ /**
2277
+ * 工具箱工具项接口
2278
+ */
2279
+ export declare interface ToolboxToolItem {
2280
+ /** 工具类型 */
2281
+ type: ToolTypes;
2282
+ /** 工具名称 */
2283
+ name: string;
2284
+ /** 工具图标 */
2285
+ icon: string;
2286
+ /** 工具分组 */
2287
+ group: ToolGroupTypes;
2288
+ /** 分组名称 */
2289
+ groupName: string;
2290
+ /** 是否为测试版功能 */
2291
+ isBeta: boolean;
2292
+ /** 工具回调函数 */
2293
+ callback: () => Promise<{
2294
+ result: 'success' | 'failed';
2295
+ error?: unknown;
2296
+ }>;
2297
+ }
2298
+
2299
+ /**
2300
+ * 工具分组类型枚举
2301
+ */
2302
+ export declare enum ToolGroupTypes {
2303
+ /** 转换工具组 */
2304
+ Convert = "convert",
2305
+ /** 处理工具组 */
2306
+ Processing = "processing",
2307
+ /** 智能工具组 */
2308
+ Intelligent = "intelligent"
2309
+ }
2310
+
2311
+ /**
2312
+ * 工具类型枚举
2313
+ */
2314
+ export declare enum ToolTypes {
2315
+ /** PDF转Word */
2316
+ PdfToWord = "pdfToWord",
2317
+ /** PDF转Excel */
2318
+ PdfToExcel = "pdfToExcel",
2319
+ /** PDF转PPT */
2320
+ PdfToPpt = "pdfToPpt",
2321
+ /** 图片转PDF */
2322
+ ImgToPdf = "imgToPdf",
2323
+ /** PDF合并 */
2324
+ PdfMerge = "pdfMerge",
2325
+ /** PDF拆分 */
2326
+ PdfSplit = "pdfSplit",
2327
+ /** 文件内容提取 */
2328
+ FileContentExtraction = "fileContentExtraction",
2329
+ /** 图片转文字 */
2330
+ COR = "imgToText",
2331
+ /** 音频转文字 */
2332
+ STT = "audioToText"
2333
+ }
2334
+
1607
2335
  export { }