@officesdk/editor-sdk-core 0.0.0-11 → 0.0.0-13

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 (87) hide show
  1. package/cjs/diagram/index.js +16 -1
  2. package/cjs/diagram/sdk.js +1 -1
  3. package/cjs/docs/index.js +21 -0
  4. package/cjs/docs/info.js +3 -0
  5. package/cjs/docs/range.js +7 -0
  6. package/cjs/docs/sdk.js +28 -0
  7. package/cjs/docs/selection.js +3 -0
  8. package/cjs/docx/context-menu.js +3 -0
  9. package/cjs/docx/index.js +16 -1
  10. package/cjs/docx/menu.js +1 -1
  11. package/cjs/docx/sdk.js +1 -1
  12. package/cjs/docx/selection.js +1 -1
  13. package/cjs/docx/theme.js +1 -1
  14. package/cjs/docx/window.js +1 -1
  15. package/cjs/pdf/index.js +16 -1
  16. package/cjs/pdf/menu.js +1 -1
  17. package/cjs/presentation/index.js +16 -1
  18. package/cjs/presentation/menu.js +1 -1
  19. package/cjs/presentation/sdk.js +1 -1
  20. package/cjs/presentation/toolbar.js +3 -0
  21. package/cjs/shared/attachment.js +1 -1
  22. package/cjs/shared/content.js +1 -1
  23. package/cjs/shared/context-menu.js +3 -0
  24. package/cjs/shared/editor.js +1 -1
  25. package/cjs/shared/index.js +1 -1
  26. package/cjs/shared/menu.js +1 -1
  27. package/cjs/shared/toolbar.js +1 -1
  28. package/cjs/shared/user.js +1 -1
  29. package/cjs/sheet/index.js +16 -1
  30. package/cjs/sheet/menu.js +1 -1
  31. package/cjs/sheet/sdk.js +1 -1
  32. package/cjs/sheet/toolbar.js +3 -0
  33. package/cjs/table/content.js +3 -0
  34. package/cjs/table/index.js +23 -0
  35. package/cjs/table/resource.js +3 -0
  36. package/cjs/table/sdk.js +11 -0
  37. package/cjs/table/selection.js +21 -0
  38. package/cjs/table/table.js +3 -0
  39. package/esm/diagram/index.js +2 -1
  40. package/esm/diagram/sdk.js +1 -1
  41. package/esm/docs/index.js +3 -0
  42. package/esm/docs/info.js +2 -0
  43. package/esm/docs/range.js +6 -0
  44. package/esm/docs/sdk.js +25 -0
  45. package/esm/docs/selection.js +2 -0
  46. package/esm/docx/context-menu.js +2 -0
  47. package/esm/docx/index.js +2 -1
  48. package/esm/docx/menu.js +1 -1
  49. package/esm/docx/sdk.js +1 -1
  50. package/esm/docx/selection.js +1 -1
  51. package/esm/docx/theme.js +1 -1
  52. package/esm/docx/window.js +1 -1
  53. package/esm/pdf/index.js +2 -1
  54. package/esm/pdf/menu.js +1 -1
  55. package/esm/presentation/index.js +2 -1
  56. package/esm/presentation/menu.js +1 -1
  57. package/esm/presentation/sdk.js +1 -1
  58. package/esm/presentation/toolbar.js +2 -0
  59. package/esm/shared/attachment.js +1 -1
  60. package/esm/shared/content.js +1 -1
  61. package/esm/shared/context-menu.js +2 -0
  62. package/esm/shared/editor.js +1 -1
  63. package/esm/shared/index.js +1 -1
  64. package/esm/shared/menu.js +1 -1
  65. package/esm/shared/toolbar.js +1 -1
  66. package/esm/shared/user.js +1 -1
  67. package/esm/sheet/index.js +2 -1
  68. package/esm/sheet/menu.js +1 -1
  69. package/esm/sheet/sdk.js +1 -1
  70. package/esm/sheet/toolbar.js +2 -0
  71. package/esm/table/content.js +2 -0
  72. package/esm/table/index.js +4 -0
  73. package/esm/table/resource.js +2 -0
  74. package/esm/table/sdk.js +8 -0
  75. package/esm/table/selection.js +18 -0
  76. package/esm/table/table.js +2 -0
  77. package/package.json +72 -7
  78. package/types/diagram.d.ts +1370 -0
  79. package/types/docs.d.ts +1497 -0
  80. package/{index.d.ts → types/docx.d.ts} +305 -1171
  81. package/types/pdf.d.ts +1579 -0
  82. package/types/presentation.d.ts +1624 -0
  83. package/types/shared.d.ts +1305 -0
  84. package/types/sheet.d.ts +1695 -0
  85. package/types/table.d.ts +1620 -0
  86. package/cjs/index.js +0 -18
  87. package/esm/index.js +0 -7
@@ -1,29 +1,3 @@
1
- /**
2
- * 抽象 Diagram 接口
3
- */
4
- export declare abstract class AbstractedDiagramSDK {
5
- protected options: DiagramSDKOptions;
6
- constructor(options: DiagramSDKOptions);
7
- /**
8
- * 初始化 Diagram 、加载插件等操作。
9
- */
10
- abstract init(): Promise<void>;
11
- /**
12
- * 销毁 Diagram
13
- */
14
- abstract destroy(): Promise<void>;
15
- /**
16
- * 将 Diagram 挂载到指定的根节点上,并渲染,
17
- * mount 应该在 init 之后调用。
18
- * @param root
19
- */
20
- abstract mount(root: HTMLElement): Promise<void>;
21
- /**
22
- * 从根节点卸载 Diagram ,对应 `mount` 操作
23
- */
24
- abstract unmount(): Promise<void>;
25
- }
26
-
27
1
  export declare abstract class AbstractedDocxSDK extends EditorSDK {
28
2
  /**
29
3
  * 文档准备就绪
@@ -92,140 +66,43 @@ export declare abstract class AbstractedEditorFileUploader {
92
66
  }
93
67
 
94
68
  /**
95
- * 抽象 Pdf 接口
69
+ * 传统文档右键菜单功能按钮
96
70
  */
97
- export declare abstract class AbstractedPdfSDK {
98
- protected options: PdfSDKOptions;
99
- constructor(options: PdfSDKOptions);
100
- /**
101
- * 初始化 Pdf 、加载插件等操作。
102
- */
103
- abstract init(): Promise<void>;
104
- /**
105
- * 销毁 Pdf
106
- */
107
- abstract destroy(): Promise<void>;
108
- /**
109
- * 将 Pdf 挂载到指定的根节点上,并渲染,
110
- * mount 应该在 init 之后调用。
111
- * @param root
112
- */
113
- abstract mount(root: HTMLElement): Promise<void>;
114
- /**
115
- * 从根节点卸载 pdf ,对应 `mount` 操作
116
- */
117
- abstract unmount(): Promise<void>;
118
- /**
119
- * pdf 页面操作接口
120
- */
121
- abstract get pages(): PdfPages;
122
- /**
123
- * pdf 选区接口
124
- */
125
- abstract get selection(): PdfSelection;
126
- /**
127
- * pdf 目录接口
128
- */
129
- abstract get outline(): PdfOutline;
130
- }
131
-
132
- export declare abstract class AbstractedPresentationSDK extends EditorSDK {
133
- /**
134
- * 幻灯片准备就绪
135
- */
136
- abstract ready(): Promise<void>;
137
- /**
138
- * 打印幻灯片
139
- */
140
- abstract print(): Promise<void>;
141
- /**
142
- * 幻灯片集合接口
143
- */
144
- abstract get slides(): PresentationSlides;
145
- /**
146
- * 幻灯片选区接口,用于获取、操作当前 slide 的选区
147
- */
148
- abstract get selection(): PresentationSelection;
149
- /**
150
- * 幻灯片缩放接口
151
- * @param scale
152
- */
153
- abstract get zoom(): PresentationZoom;
154
- /**
155
- * 文本格式接口
156
- */
157
- abstract get text(): PresentationText;
158
- }
159
-
160
- export declare abstract class AbstractedSheetSDK extends EditorSDK {
161
- /**
162
- * 表格准备就绪
163
- */
164
- abstract ready(): Promise<void>;
165
- /**
166
- * 打印文档
167
- */
168
- abstract print(): Promise<void>;
169
- /**
170
- * 工作簿接口
171
- */
172
- abstract get workbook(): SheetWorkbook;
173
- /**
174
- * 当前活跃工作表对象
175
- */
176
- abstract get activeSheet(): SheetWorksheet;
177
- /**
178
- * 当前活动单元格
179
- */
180
- abstract get activeCell(): SheetCell | null;
181
- /**
182
- * 获取当前选区
183
- */
184
- abstract get selections(): SheetSelection[] | null;
185
- /**
186
- * 文本格式接口
187
- */
188
- abstract get text(): SheetText;
189
- }
190
-
71
+ export declare type DocxContextMenuFeatureButtonName =
191
72
  /**
192
- * Diagram 初始化参数
193
- */
194
- export declare interface DiagramSDKOptions {
195
- /**
196
- * Diagram 初始化内容,可以是 string 或者 ArrayBuffer,
197
- * 也可以通过异步 Promise 加载
198
- */
199
- content: MaybePromiseValue<string | ArrayBuffer>;
200
- /**
201
- * 当前操作 Diagram 的用户信息
202
- */
203
- user?: EditorUserOptions;
204
- /**
205
- * i18n 相关设置
206
- */
207
- i18n?: EditorI18nOptions;
208
- /**
209
- * 品牌相关设置
210
- */
211
- brand?: EditorBrandOptions;
212
- /**
213
- * Diagram 内部资源请求配置
214
- */
215
- assets?: EditorAssetsOptions;
216
- /**
217
- * Diagram 内部超链接设置
218
- */
219
- link?: EditorLinkOptions;
220
- /**
221
- * 初始化水印配置
222
- */
223
- watermark?: EditorWatermarkOptions;
224
- /**
225
- * Diagram 打印设置
226
- */
227
- print?: EditorPrintOptions;
228
- }
73
+ * 剪切
74
+ */
75
+ 'cut'
76
+ /**
77
+ * 复制
78
+ */
79
+ | 'copy'
80
+ /**
81
+ * 粘贴
82
+ */
83
+ | 'paste'
84
+ /**
85
+ * 删除
86
+ */
87
+ | 'delete'
88
+ /**
89
+ * 字体
90
+ */
91
+ | 'font'
92
+ /**
93
+ * 段落
94
+ */
95
+ | 'paragraph'
96
+ /**
97
+ * 下载附件
98
+ */
99
+ | 'downloadAttachment'
100
+ /**
101
+ * 转换PDF
102
+ */
103
+ | 'transformPDF';
104
+
105
+ export declare type DocxContextMenuOptions = EditorContextMenuOptions<DocxContextMenuFeatureButtonName>;
229
106
 
230
107
  export declare type DocxFontFace = Omit<EditorFontFace, 'meta'> & {
231
108
  meta: DocxFontMeta;
@@ -332,20 +209,18 @@ export declare interface DocxInfoOptions {
332
209
  }
333
210
 
334
211
  /**
335
- * 传统文档工具栏一级菜单
212
+ * 传统文档菜单栏一级菜单
336
213
  */
337
214
  export declare type DocxMenuEntryConfig = EditorMenuEntryConfig<DocxMenuFeatureButtonName>;
338
215
 
339
216
  /**
340
- * 传统文档工具栏功能按钮
217
+ * 传统文档菜单栏内置功能按钮
341
218
  */
342
- export declare type DocxMenuFeatureButtonConfig = EditorMenuFeatureButtonConfig<DocxMenuFeatureButtonName>;
219
+ export declare type DocxMenuFeatureButtonName = 'file' | 'edit' | 'insert' | 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'export' | 'saveTemplate' | 'viewHistory' | 'saveHistory' | 'exportImage' | 'exportPDF' | 'exportWPS' | 'exportImagePDF' | 'insertAttachment' | 'insertCloudFile' | 'insertSignature' | 'insertImageFromUrl';
343
220
 
344
221
  /**
345
- * 传统文档工具栏内置功能按钮
222
+ * 传统文档菜单栏相关配置,目前菜单栏不是所有套件都支持,
346
223
  */
347
- export declare type DocxMenuFeatureButtonName = 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'export' | 'saveTemplate' | 'viewHistory' | 'saveHistory' | 'attachment' | 'cloudFile' | 'signature' | 'image';
348
-
349
224
  export declare type DocxMenuOptions = EditorMenuOptions<DocxMenuFeatureButtonName>;
350
225
 
351
226
  /**
@@ -512,6 +387,10 @@ export declare interface DocxSDKOptions extends EditorOptions {
512
387
  * 菜单栏相关设置
513
388
  */
514
389
  menu?: DocxMenuOptions;
390
+ /**
391
+ * 右键菜单相关设置
392
+ */
393
+ contextMenu?: DocxContextMenuOptions;
515
394
  /**
516
395
  * Pdf 大纲目录设置
517
396
  */
@@ -635,6 +514,19 @@ export declare interface DocxSelection {
635
514
  * @returns
636
515
  */
637
516
  getWholeRange: () => DocxRange;
517
+ /**
518
+ * 向当前选区位置插入文本,
519
+ * 返回插入后当前选区位置
520
+ * @param text
521
+ * @returns
522
+ */
523
+ insertText: (text: string) => DocxRangeValue;
524
+ /**
525
+ * 向当前选区位置插入 HTML 内容,
526
+ * 返回插入后当前选区位置
527
+ * @param html
528
+ */
529
+ insertHtml: (html: string) => DocxRangeValue;
638
530
  }
639
531
 
640
532
  /**
@@ -720,9 +612,9 @@ export declare interface DocxThemeFontsSchemeItem {
720
612
  * 其他单独字体配置
721
613
  * key 表示script值
722
614
  * 例如:
723
- * <a:font script="Hans" typeface="黑体"/>
724
- * <a:font script="Jpan" typeface="HG明朝B"/>
725
- * <a:font script="Arab" typeface="Times New Roman"/>
615
+ * <a:font script="Hans" typeface="黑体"/\>
616
+ * <a:font script="Jpan" typeface="HG明朝B"/\>
617
+ * <a:font script="Arab" typeface="Times New Roman"/\>
726
618
  */
727
619
  font: Record<string, DocxThemeFont>;
728
620
  }
@@ -990,7 +882,7 @@ export declare interface DocxWindow {
990
882
  * 将传入的区域滚动到可视区域
991
883
  * @param range
992
884
  */
993
- scrollIntoView: (range: DocxRangeValue) => void;
885
+ scrollIntoView: (range: DocxRangeValue, options?: DocxWindowScrollIntoViewOptions) => void;
994
886
  /**
995
887
  * 添加滚动监听器
996
888
  * @param listener
@@ -1001,13 +893,27 @@ export declare interface DocxWindow {
1001
893
  }) => void) => () => void;
1002
894
  }
1003
895
 
896
+ /**
897
+ * 滚动到指定区域的选项
898
+ */
899
+ export declare interface DocxWindowScrollIntoViewOptions {
900
+ /**
901
+ * 滚动到指定区域的位置,默认是start
902
+ */
903
+ position?: 'start' | 'end';
904
+ /**
905
+ * 是否将滚动到的区域置于文档可见范围的顶部。默认为bottom
906
+ */
907
+ alignment?: 'top' | 'bottom';
908
+ }
909
+
1004
910
  export declare type DocxWindowScrollParams = {
1005
911
  /**
1006
912
  * 区域,跳转到对应区域位置
1007
913
  */
1008
914
  type: 'range';
1009
915
  /**
1010
- * 区域值,这个值可以通过 DocxSelection 的 getRange 方法拿到
916
+ * 区域值,这个值可以通过 DocxSelection 的 getRange 方法拿到,取start或者end
1011
917
  */
1012
918
  range: string;
1013
919
  } | {
@@ -1098,6 +1004,21 @@ export declare interface DocxZoom {
1098
1004
  zoomOut: () => void;
1099
1005
  }
1100
1006
 
1007
+ /**
1008
+ * 匿名用户信息
1009
+ * 当前用户信息未知时的缺省值
1010
+ */
1011
+ export declare interface EditorAnonymousOptions {
1012
+ /**
1013
+ * 匿名用户默认显示名称
1014
+ */
1015
+ name: string;
1016
+ /**
1017
+ * 匿名用户默认头像
1018
+ */
1019
+ avatar: string;
1020
+ }
1021
+
1101
1022
  /**
1102
1023
  * 编辑器内部资源请求配置
1103
1024
  */
@@ -1169,12 +1090,104 @@ export declare interface EditorAssetsResolver {
1169
1090
  checkAssetReady: (assetId: string) => Promise<boolean> | boolean;
1170
1091
  }
1171
1092
 
1093
+ /**
1094
+ * 编辑器附件限制配置,sdk中会使用在不同的场景下使用不同的限制规则组合
1095
+ */
1096
+ export declare interface EditorAttachmentLimitationOptions {
1097
+ /**
1098
+ * 检查附件大小的规则
1099
+ * @param file
1100
+ * @returns
1101
+ */
1102
+ checkFile: (params: EditorAttachmentLimitationOptionsCheckFunctionParams) => Promise<{
1103
+ limited: true;
1104
+ message: string;
1105
+ } | {
1106
+ limited: false;
1107
+ }>;
1108
+ }
1109
+
1110
+ /**
1111
+ * 编辑器附件限制配置检查函数参数
1112
+ */
1113
+ export declare interface EditorAttachmentLimitationOptionsCheckFunctionParams {
1114
+ /**
1115
+ * 文件名称,带后缀名
1116
+ */
1117
+ name: string;
1118
+ /**
1119
+ * 文件大小,单位为Byte
1120
+ */
1121
+ size: number;
1122
+ /**
1123
+ * 文件的mime类型,例如image/jpeg、application/vnd.ms-excel等
1124
+ */
1125
+ mime?: string;
1126
+ }
1127
+
1128
+ /**
1129
+ * 编辑器附件限制配置
1130
+ * @deprecated 使用limitations代替
1131
+ */
1132
+ export declare interface EditorAttachmentMaxSizeOptions {
1133
+ /**
1134
+ * 图片大小上限值,单位为Byte
1135
+ * 设置为Infinity时表示不限制图片大小
1136
+ */
1137
+ value?: number;
1138
+ /**
1139
+ * 超限警告相关配置
1140
+ */
1141
+ warning?: {
1142
+ /**
1143
+ * 超限警告文本
1144
+ */
1145
+ text?: string;
1146
+ };
1147
+ }
1148
+
1172
1149
  /**
1173
1150
  * 编辑器附件信息
1174
1151
  */
1175
1152
  export declare interface EditorAttachmentOptions {
1176
1153
  uploader: AbstractedEditorFileUploader;
1177
1154
  download: (url: string) => void;
1155
+ /**
1156
+ * 图片附件相关配置
1157
+ */
1158
+ image?: {
1159
+ /**
1160
+ * 图片大小上限相关配置
1161
+ * @deprecated 使用limitations代替
1162
+ */
1163
+ maxSize?: EditorAttachmentMaxSizeOptions;
1164
+ /**
1165
+ * 支持的图片格式列表,例如jpg,png等
1166
+ */
1167
+ supportTypes?: string[];
1168
+ /**
1169
+ * 图片附件的限制配置
1170
+ */
1171
+ limitations?: EditorAttachmentLimitationOptions;
1172
+ };
1173
+ /**
1174
+ * 其他附件相关配置
1175
+ */
1176
+ attachment?: {
1177
+ /**
1178
+ * 图片大小上限相关配置
1179
+ * @deprecated 使用limitations代替
1180
+ */
1181
+ maxSize?: EditorAttachmentMaxSizeOptions;
1182
+ /**
1183
+ * 支持的附件格式列表,例如doc,docx等
1184
+ */
1185
+ supportTypes?: string[];
1186
+ /**
1187
+ * 附件的限制配置
1188
+ */
1189
+ limitations?: EditorAttachmentLimitationOptions;
1190
+ };
1178
1191
  }
1179
1192
 
1180
1193
  /**
@@ -1309,7 +1322,7 @@ export declare interface EditorCommentsOptions {
1309
1322
  };
1310
1323
  }
1311
1324
 
1312
- export declare interface EditorContent {
1325
+ export declare interface EditorContent<Delta = EditorDelta> {
1313
1326
  /**
1314
1327
  * 设置编辑器内容
1315
1328
  * @param content
@@ -1318,14 +1331,20 @@ export declare interface EditorContent {
1318
1331
  /**
1319
1332
  * 获取编辑器内容
1320
1333
  */
1321
- getContent: () => Promise<EditorDelta>;
1334
+ getContent: () => Promise<Delta>;
1322
1335
  /**
1323
1336
  * 添加监听,当内容发生变化时触发监听,传入 Delta
1324
1337
  * @param listener
1325
1338
  */
1326
- addChangeListener: (listener: (change: EditorDelta) => void) => () => void;
1339
+ addChangeListener: (listener: (change: Delta) => void) => () => void;
1327
1340
  }
1328
1341
 
1342
+ /**
1343
+ * 右键菜单栏相关配置
1344
+ * 右键菜单栏是指的编辑器中点击右键弹出的菜单栏。目前等于菜单栏配置,可扩展
1345
+ */
1346
+ export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
1347
+
1329
1348
  export declare interface EditorDelta {
1330
1349
  compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
1331
1350
  transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
@@ -1513,138 +1532,136 @@ export declare interface EditorLocalUploadableFile extends EditorBaseUploadableF
1513
1532
  }
1514
1533
 
1515
1534
  /**
1516
- * 菜单栏自定义按钮配置
1535
+ * 基础菜单项配置,所有菜单项类型都包含这些属性
1517
1536
  */
1518
- export declare type EditorMenuCustomButton = {
1537
+ declare interface EditorMenuBaseMenuItemConfig<TName extends string> {
1519
1538
  /**
1520
- * 按钮名称
1539
+ * 菜单项的唯一标识,用以确定配置的是哪个菜单
1521
1540
  */
1522
- name: string;
1541
+ name: TName;
1542
+ /**
1543
+ * 菜单项类型
1544
+ */
1545
+ type?: EditorMenuItemType;
1546
+ }
1547
+
1548
+ /**
1549
+ * 按钮菜单项配置
1550
+ */
1551
+ export declare interface EditorMenuButtonMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1552
+ type?: 'button';
1523
1553
  /**
1524
- * 链接
1554
+ * 是否禁用菜单项,禁用后菜单项依旧显示不过变为灰色,不可点击
1525
1555
  */
1526
- type: 'link';
1556
+ disabled?: boolean;
1527
1557
  /**
1528
- * 按钮文本
1558
+ * 菜单项显示文本,修改该值可以替换此菜单项默认显示文案
1529
1559
  */
1530
- text: string;
1560
+ label?: string;
1531
1561
  /**
1532
- * 链接地址
1562
+ * 菜单项图标,可以是 base64 的图片信息,也可以是图片 url
1563
+ * 配置为空字符串则可以隐藏菜单项默认的图标
1533
1564
  */
1534
- url: string;
1535
- } | {
1565
+ icon?: string;
1536
1566
  /**
1537
- * 按钮名称
1567
+ * 菜单项点击事件,接受一个函数,可以自定义点击事件
1538
1568
  */
1539
- name: string;
1569
+ callback?: () => void;
1570
+ }
1571
+
1572
+ /**
1573
+ * 编辑器菜单配置类型
1574
+ * 联合类型,表示可以是任意一种菜单项配置
1575
+ */
1576
+ export declare type EditorMenuEntryConfig<TName extends string> = EditorMenuHiddenMenuItemConfig<TName> | EditorMenuButtonMenuItemConfig<TName> | EditorMenuLinkMenuItemConfig<TName> | EditorMenuEntryMenuItemConfig<TName>;
1577
+
1578
+ /**
1579
+ * 子菜单入口配置
1580
+ */
1581
+ export declare interface EditorMenuEntryMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1582
+ type?: 'entry';
1540
1583
  /**
1541
- * 按钮,点击后触发 callback 回调
1584
+ * 是否禁用菜单项,禁用后菜单项依旧显示不过变为灰色,不可点击
1542
1585
  */
1543
- type: 'button';
1586
+ disabled?: boolean;
1544
1587
  /**
1545
- * 按钮文本
1588
+ * 菜单项显示文本,修改该值可以替换此菜单项默认显示文案
1546
1589
  */
1547
- label: string;
1590
+ label?: string;
1548
1591
  /**
1549
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1592
+ * 菜单项图标,可以是 base64 的图片信息,也可以是图片 url
1593
+ * 配置为空字符串则可以隐藏菜单项默认的图标
1550
1594
  */
1551
1595
  icon?: string;
1552
1596
  /**
1553
- * 按钮点击事件
1597
+ * 下一级菜单配置,下一级菜单配置项和上一级相同
1598
+ * 如果下一级仍然是 entry 类型,可以无限向下扩展
1554
1599
  */
1555
- callback: () => void;
1556
- };
1600
+ children?: EditorMenuEntryConfig<TName>[];
1601
+ }
1557
1602
 
1558
1603
  /**
1559
- * 菜单栏二级以下的菜单入口
1604
+ * 隐藏菜单项配置
1560
1605
  */
1561
- export declare interface EditorMenuEntryButton {
1562
- type: 'entry';
1563
- /**
1564
- * 菜单名称
1565
- */
1566
- name: string;
1567
- /**
1568
- * 菜单图标
1569
- */
1570
- icon?: string;
1606
+ export declare interface EditorMenuHiddenMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1607
+ type?: 'hidden';
1571
1608
  }
1572
1609
 
1573
1610
  /**
1574
- * 菜单栏一级菜单配置,此处用于定义一级菜单的操作入口,
1575
- * 一级菜单在鼠标悬停时展示二级列表
1611
+ * 菜单项类型
1612
+ */
1613
+ export declare type EditorMenuItemType = 'hidden' | 'button' | 'link' | 'entry';
1614
+
1615
+ /**
1616
+ * 链接菜单项配置
1576
1617
  */
1577
- export declare interface EditorMenuEntryConfig<TName extends string> {
1618
+ export declare interface EditorMenuLinkMenuItemConfig<TName extends string> extends EditorMenuBaseMenuItemConfig<TName> {
1619
+ type?: 'link';
1578
1620
  /**
1579
- * 一级菜单名称
1621
+ * 是否禁用菜单项,禁用后菜单项依旧显示不过变为灰色,不可点击
1580
1622
  */
1581
- name: string;
1623
+ disabled?: boolean;
1624
+ /**
1625
+ * 菜单项显示文本,修改该值可以替换此菜单项默认显示文案
1626
+ */
1627
+ label?: string;
1628
+ /**
1629
+ * 菜单项图标,可以是 base64 的图片信息,也可以是图片 url
1630
+ * 配置为空字符串则可以隐藏菜单项默认的图标
1631
+ */
1632
+ icon?: string;
1582
1633
  /**
1583
- * 二级菜单定义,定一个二维数组,用于定义二级菜单的结构,
1584
- * 将第一层数组中的所有按钮放到一个区域内用分隔符隔开,
1585
- * 第二层数组为按钮的定义,可以是功能按钮也可以是一个下拉入口。
1634
+ * 跳转链接地址
1586
1635
  */
1587
- children: Array<EditorMenuFeatureButton<TName> | EditorMenuEntryButton>[];
1636
+ url?: string;
1588
1637
  }
1589
1638
 
1590
1639
  /**
1591
- * 菜单栏功能按钮配置
1640
+ * 菜单栏相关配置,目前菜单栏不是所有套件都支持,
1641
+ * 菜单栏是指的编辑器最上放可以展开二级菜单的那一栏。
1592
1642
  */
1593
- export declare type EditorMenuFeatureButton<TName extends string> = {
1643
+ export declare interface EditorMenuOptions<TName extends string> {
1594
1644
  /**
1595
- * 隐藏按钮,用作在需要隐藏菜单栏时定义
1645
+ * 菜单栏是否隐藏,设置为true, 则整个菜单栏不显示
1596
1646
  */
1597
- type: 'hidden';
1647
+ hidden?: boolean;
1598
1648
  /**
1599
- * 按钮名称
1649
+ * 是否禁用菜单栏所有功能。设置为true,菜单栏依旧显示,但所有菜单项为灰色不可点击
1600
1650
  */
1601
- name: TName;
1602
- } | {
1603
- type: 'button';
1651
+ disabled?: boolean;
1604
1652
  /**
1605
- * 按钮名称
1606
- */
1607
- name: TName;
1608
- /**
1609
- * 按钮标签(显示文本)
1610
- */
1611
- label: string;
1612
- /**
1613
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1614
- */
1615
- icon?: string;
1616
- };
1617
-
1618
- /**
1619
- * 菜单栏按钮配置
1620
- */
1621
- export declare type EditorMenuFeatureButtonConfig<TName extends string> = Record<TName, EditorMenuFeatureButton<TName>>;
1622
-
1623
- /**
1624
- * 菜单栏相关配置,目前菜单栏不是所有套件都支持,
1625
- * 菜单栏是指的编辑器最上放可以展开二级菜单的那一栏。
1626
- */
1627
- export declare interface EditorMenuOptions<TName extends string> {
1628
- /**
1629
- * 菜单栏是否显示
1630
- */
1631
- visible?: boolean;
1632
- /**
1633
- * 是否禁用菜单栏所有功能
1634
- */
1635
- disabled?: boolean;
1636
- /**
1637
- * 菜单栏一级菜单配置
1653
+ * 菜单栏一级菜单配置,指显示在菜单栏上的菜单项。
1638
1654
  */
1639
1655
  entries?: EditorMenuEntryConfig<TName>[];
1640
1656
  /**
1641
1657
  * 菜单栏功能按钮配置
1658
+ * TODO 此配置目前没有用到,后续看是保留还是和custom合并
1642
1659
  */
1643
- features?: Partial<EditorMenuFeatureButtonConfig<TName>>;
1660
+ features?: EditorMenuEntryConfig<TName>[];
1644
1661
  /**
1645
1662
  * 自定义按钮配置
1646
1663
  */
1647
- custom?: EditorMenuCustomButton[];
1664
+ custom?: EditorMenuEntryConfig<TName>[];
1648
1665
  }
1649
1666
 
1650
1667
  /**
@@ -1706,6 +1723,10 @@ export declare interface EditorOptions {
1706
1723
  * 当前操作编辑器的用户信息
1707
1724
  */
1708
1725
  user?: EditorUserOptions;
1726
+ /**
1727
+ * 匿名用户的缺省信息
1728
+ */
1729
+ anonymous?: EditorAnonymousOptions;
1709
1730
  /**
1710
1731
  * i18n 相关设置
1711
1732
  */
@@ -1714,10 +1735,6 @@ export declare interface EditorOptions {
1714
1735
  * 品牌相关设置
1715
1736
  */
1716
1737
  brand?: EditorBrandOptions;
1717
- /**
1718
- * 工具栏相关设置
1719
- */
1720
- toolbar?: EditorToolbarOptions;
1721
1738
  /**
1722
1739
  * 编辑器内部资源请求配置
1723
1740
  */
@@ -2007,107 +2024,58 @@ export declare interface EditorTextOptions<Color = string> {
2007
2024
  }
2008
2025
 
2009
2026
  /**
2010
- * 工具栏自定义按钮配置
2027
+ * 工具栏功能按钮配置(包括内置按钮和自定义按钮)
2011
2028
  */
2012
- export declare interface EditorToolbarCustomButton extends Omit<EditorToolbarFeatureButton, 'name'> {
2029
+ export declare interface EditorToolbarFeatureButton<TName extends string> {
2013
2030
  /**
2014
- * 自定义按钮名称
2031
+ * 按钮的唯一标识,用以确定配置的是哪个按钮。
2015
2032
  */
2016
- name: string;
2017
- /**
2018
- * 按钮点击事件
2019
- */
2020
- callback: () => void;
2033
+ name: TName;
2021
2034
  /**
2022
- * 按钮在工具栏中的位置,默认添加到工具栏所有按钮后面
2035
+ * 按钮标签(显示文本)一般工具栏上的按钮不会显示文本,如果需要显示文本,配置此项。
2023
2036
  */
2024
- index?: number;
2025
- }
2026
-
2027
- /**
2028
- * 工具栏自定义按钮配置
2029
- */
2030
- export declare interface EditorToolbarCustomButtonConfig {
2037
+ label?: string;
2031
2038
  /**
2032
- * 按钮配置
2039
+ * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
2033
2040
  */
2034
- [key: string]: EditorToolbarCustomButton;
2035
- }
2036
-
2037
- /**
2038
- * 工具栏内置功能按钮配置
2039
- */
2040
- export declare interface EditorToolbarFeatureButton {
2041
+ icon?: string;
2041
2042
  /**
2042
- * 按钮类型
2043
+ * 按钮是否隐藏,设置为true则隐藏按钮
2043
2044
  */
2044
- name: EditorToolbarFeatureButtonName;
2045
+ hidden?: boolean;
2045
2046
  /**
2046
- * 按钮标签(显示文本)
2047
+ * 按钮是否禁用,设置为true则变为灰色不可点击
2047
2048
  */
2048
- label?: string;
2049
+ disabled?: boolean;
2049
2050
  /**
2050
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
2051
+ * 按钮点击事件.接受一个函数,可以自定义点击事件。
2051
2052
  */
2052
- icon?: string;
2053
+ callback?: () => void;
2053
2054
  /**
2054
- * 按钮是否禁用
2055
+ * 按钮提示文本,鼠标悬浮到按钮上时显示的tooltip文字
2055
2056
  */
2056
- disabled?: boolean;
2057
+ tooltip?: string;
2057
2058
  /**
2058
- * 按钮提示文本
2059
+ * 按钮在工具栏中位置,不设置则按照默认位置
2059
2060
  */
2060
- tooltip?: string;
2061
+ index?: number;
2061
2062
  }
2062
2063
 
2063
2064
  /**
2064
2065
  * 工具栏内置功能按钮配置
2065
2066
  */
2066
- export declare type EditorToolbarFeatureButtonConfig = {
2067
- [key in EditorToolbarFeatureButtonName]?: EditorToolbarFeatureButton;
2067
+ export declare type EditorToolbarFeatureButtonConfig<TName extends string> = {
2068
+ [key in TName]?: EditorToolbarFeatureButton<key>;
2068
2069
  };
2069
2070
 
2070
- /**
2071
- * 工具栏内置功能按钮
2072
- */
2073
- export declare type EditorToolbarFeatureButtonName =
2074
- /**
2075
- * 加粗
2076
- */
2077
- 'bold'
2078
- /**
2079
- * 斜体
2080
- */
2081
- | 'italic'
2082
- /**
2083
- * 下划线
2084
- */
2085
- | 'underline'
2086
- /**
2087
- * 删除线
2088
- */
2089
- | 'strikethrough'
2090
- /**
2091
- * 插入图片
2092
- */
2093
- | 'insertImage'
2094
- /**
2095
- * 插入链接
2096
- */
2097
- | 'insertLink'
2098
- /**
2099
- * 限制编辑
2100
- */
2101
- | 'restriction';
2102
-
2103
2071
  /**
2104
2072
  * 工具栏相关设置,可以控制工具栏的显示内容
2105
2073
  */
2106
- export declare interface EditorToolbarOptions {
2074
+ export declare interface EditorToolbarOptions<TName extends string> {
2107
2075
  /**
2108
2076
  * 控制工具栏显隐状态
2109
2077
  */
2110
- visible?: boolean;
2078
+ hidden?: boolean;
2111
2079
  /**
2112
2080
  * 是否禁用工具栏所有功能
2113
2081
  */
@@ -2115,11 +2083,11 @@ export declare interface EditorToolbarOptions {
2115
2083
  /**
2116
2084
  * 现有按钮的功能配置
2117
2085
  */
2118
- features?: EditorToolbarFeatureButtonConfig;
2086
+ features?: EditorToolbarFeatureButtonConfig<TName>;
2119
2087
  /**
2120
2088
  * 自定义按钮
2121
2089
  */
2122
- custom?: EditorToolbarCustomButtonConfig;
2090
+ custom?: EditorToolbarFeatureButtonConfig<string>;
2123
2091
  }
2124
2092
 
2125
2093
  export declare type EditorUploadableFile = EditorLocalUploadableFile;
@@ -2179,6 +2147,10 @@ export declare interface EditorUserOptions {
2179
2147
  * 用户头像
2180
2148
  */
2181
2149
  avatar?: string;
2150
+ /**
2151
+ * 用户默认头像,当用户未设置头像时显示
2152
+ */
2153
+ defaultAvatar?: string;
2182
2154
  }
2183
2155
 
2184
2156
  /**
@@ -2313,842 +2285,4 @@ export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'js
2313
2285
 
2314
2286
  export declare type MaybePromiseValue<T> = T | Promise<T>;
2315
2287
 
2316
- /**
2317
- * pdf 工具栏一级菜单
2318
- */
2319
- export declare type PdfMenuEntryConfig = EditorMenuEntryConfig<PdfMenuFeatureButtonName>;
2320
-
2321
- /**
2322
- * 传统文档工具栏功能按钮
2323
- */
2324
- export declare type PdfMenuFeatureButtonConfig = EditorMenuFeatureButtonConfig<PdfMenuFeatureButtonName>;
2325
-
2326
- /**
2327
- * pdf 工具栏内置功能按钮
2328
- */
2329
- export declare type PdfMenuFeatureButtonName = 'selectAll';
2330
-
2331
- export declare type PdfMenuOptions = EditorMenuOptions<PdfMenuFeatureButtonName>;
2332
-
2333
- /**
2334
- * pdf 目录大纲项接口
2335
- */
2336
- export declare type PdfOutline = EditorOutline<{
2337
- text: string;
2338
- }>;
2339
-
2340
- /**
2341
- * pdf 目录大纲项信息,用于描述 pdf 中的目录项信息。
2342
- */
2343
- export declare type PdfOutlineItem = EditorOutlineItem<{
2344
- text: string;
2345
- }>;
2346
-
2347
- export declare type PdfOutlineOptions = EditorOutlineOptions;
2348
-
2349
- /**
2350
- * pdf 页面实例,
2351
- * 可以通过实例对对应页面进行操作。
2352
- */
2353
- export declare interface PdfPage {
2354
- /**
2355
- * 获取当前页码
2356
- */
2357
- readonly pageNumber: number;
2358
- /**
2359
- * 获取当前页面的大小
2360
- * @returns
2361
- */
2362
- getPageSize: () => {
2363
- width: number;
2364
- height: number;
2365
- };
2366
- }
2367
-
2368
- /**
2369
- * pdf 页面集合操作接口,
2370
- * 该接口和 PdfPage 负责不同的功能,
2371
- * PdfPage 是一个页面的抽象,而 PdfPages 是对整个 pdf 文件中所有页面的操作。
2372
- */
2373
- export declare interface PdfPages {
2374
- /**
2375
- * 获取当前页码
2376
- * @returns
2377
- */
2378
- getCurrentPageNumber: () => number;
2379
- /**
2380
- * 设置当前页码并跳转至对应页面
2381
- * @param page
2382
- */
2383
- setCurrentPage: (page: number) => void;
2384
- /**
2385
- * 获取总页数
2386
- * @returns
2387
- */
2388
- getPagesCount: () => number;
2389
- /**
2390
- * 获取指定页面
2391
- */
2392
- getPage: (page: number) => Promise<PdfPage | null>;
2393
- }
2394
-
2395
- /**
2396
- * 区域(Range)
2397
- * 区域对象,表示文件中的一个连续区域,每个 Range 对象包含起始字符位置和终止字符位置。
2398
- */
2399
- /**
2400
- * Pdf 区域对象,
2401
- * 用于表示 Pdf 中的一个连续区域,
2402
- * 每个选区值包含了起始位置和结束位置信息。
2403
- */
2404
- export declare interface PdfRange {
2405
- /**
2406
- * 区域的开始位置。
2407
- */
2408
- readonly start: string;
2409
- /**
2410
- * 区域的结束位置。
2411
- */
2412
- readonly end: string;
2413
- /**
2414
- * 获取该区域对应的纯文本信息。
2415
- * @returns
2416
- */
2417
- getText: () => string;
2418
- /**
2419
- * 将区域中的内容以 HTML 格式返回。
2420
- * @returns
2421
- */
2422
- getHtml: () => string;
2423
- /**
2424
- * 获取选区在当前屏幕上的位置信息
2425
- * @returns
2426
- */
2427
- getBounding: () => PdfRangeBounding | null;
2428
- }
2429
-
2430
- /**
2431
- * 记录选区在屏幕上的矩形位置信息,
2432
- * 包含整个选区包围盒的四个边界值(top, right, bottom, left),
2433
- * 以及第一行开始和最后一行结束的横向坐标。
2434
- * 这些信息是选区中所有 ClientRects 的集合范围。
2435
- */
2436
- export declare interface PdfRangeBounding {
2437
- /**
2438
- * 区域的上边界值,
2439
- * 表示所有选区中最上方的 Y 坐标。
2440
- */
2441
- top: number;
2442
- /**
2443
- * 区域的右边界值,
2444
- * 表示所有选区中最右侧的 X 坐标。
2445
- */
2446
- right: number;
2447
- /**
2448
- * 区域的下边界值,
2449
- * 表示所有选区中最下方的 Y 坐标。
2450
- */
2451
- bottom: number;
2452
- /**
2453
- * 区域的左边界值,
2454
- * 表示所有选区中最左侧的 X 坐标。
2455
- */
2456
- left: number;
2457
- /**
2458
- * 第一行选区的起始 X 坐标。
2459
- */
2460
- start: number;
2461
- /**
2462
- * 最后一行选区的结束 X 坐标。
2463
- */
2464
- end: number;
2465
- }
2466
-
2467
- export declare interface PdfRangeValue {
2468
- start: string;
2469
- end: string;
2470
- }
2471
-
2472
- /**
2473
- * Pdf 初始化参数
2474
- */
2475
- export declare interface PdfSDKOptions {
2476
- /**
2477
- * Pdf 初始化内容,可以是 string 或者 ArrayBuffer,
2478
- * 也可以通过异步 Promise 加载
2479
- */
2480
- content: MaybePromiseValue<string | ArrayBuffer>;
2481
- /**
2482
- * 当前操作 Pdf 的用户信息
2483
- */
2484
- user?: EditorUserOptions;
2485
- /**
2486
- * i18n 相关设置
2487
- */
2488
- i18n?: EditorI18nOptions;
2489
- /**
2490
- * 品牌相关设置
2491
- */
2492
- brand?: EditorBrandOptions;
2493
- /**
2494
- * Pdf 内部资源请求配置
2495
- */
2496
- assets?: EditorAssetsOptions;
2497
- /**
2498
- * Pdf 内部超链接设置
2499
- */
2500
- link?: EditorLinkOptions;
2501
- /**
2502
- * 初始化水印配置
2503
- */
2504
- watermark?: EditorWatermarkOptions;
2505
- /**
2506
- * Pdf 打印设置
2507
- */
2508
- print?: EditorPrintOptions;
2509
- /**
2510
- * Pdf 大纲目录设置
2511
- */
2512
- outline?: PdfOutlineOptions;
2513
- /**
2514
- * Pdf 菜单栏设置
2515
- */
2516
- menu?: PdfMenuOptions;
2517
- }
2518
-
2519
- /**
2520
- * 选区(Selection)
2521
- * 表示窗口或窗格中的当前选定内容。
2522
- */
2523
- export declare interface PdfSelection {
2524
- /**
2525
- * 获取选区的区域范围,
2526
- * 如果没有指定范围,则返回当前选区的范围。
2527
- * 如果指定了范围,则返回指定范围的选区。
2528
- * 如果选区不存在,则返回 null。
2529
- * @returns
2530
- */
2531
- getRange: (value?: PdfRangeValue) => PdfRange | null;
2532
- /**
2533
- * 设置选区的区域范围,
2534
- * 设置后,选区会自动选中指定范围。
2535
- * 如果设置为 null,则清空选区。
2536
- * @param bounds
2537
- */
2538
- setRange: (vale: PdfRangeValue | null) => void;
2539
- /**
2540
- * 添加选区变化监听器,当选区发生变化时,会触发回调。
2541
- * @param listener
2542
- * @returns
2543
- */
2544
- addRangeListener: (listener: (value: PdfRangeValue | null) => void) => void;
2545
- /**
2546
- * 获取 pdf 全部选区范围。
2547
- * @returns
2548
- */
2549
- getWholeRange: () => PdfRange;
2550
- }
2551
-
2552
- export declare type PresentationFontFace = EditorFontFace;
2553
-
2554
- export declare type PresentationFontMeta = EditorFontMeta;
2555
-
2556
- export declare interface PresentationFontsList {
2557
- getAll: () => Promise<PresentationFontFace[]>;
2558
- }
2559
-
2560
- export declare interface PresentationFontsOptions {
2561
- list: PresentationFontsList;
2562
- }
2563
-
2564
- /**
2565
- * 幻灯片工具栏一级菜单
2566
- */
2567
- export declare type PresentationMenuEntryConfig = EditorMenuEntryConfig<PresentationMenuFeatureButtonName>;
2568
-
2569
- /**
2570
- * 幻灯片工具栏功能按钮
2571
- */
2572
- export declare type PresentationMenuFeatureButtonConfig = EditorMenuFeatureButtonConfig<PresentationMenuFeatureButtonName>;
2573
-
2574
- /**
2575
- * 幻灯片工具栏内置功能按钮
2576
- */
2577
- export declare type PresentationMenuFeatureButtonName = 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll';
2578
-
2579
- export declare type PresentationMenuOptions = EditorMenuOptions<PresentationMenuFeatureButtonName>;
2580
-
2581
- export declare interface PresentationSDKOptions extends EditorOptions {
2582
- /**
2583
- * 字体配置
2584
- */
2585
- fonts?: PresentationFontsOptions;
2586
- /**
2587
- * 菜单栏相关设置
2588
- */
2589
- menu?: PresentationMenuOptions;
2590
- /**
2591
- * 文本格式相关设置
2592
- */
2593
- text?: PresentationTextOptions;
2594
- }
2595
-
2596
- /**
2597
- * 选区(Selection)
2598
- * 表示窗口中的当前选定内容。
2599
- * 选定内容表示幻灯片中的选定(或突出显示)区域,或者代表插入点(如果未选择幻灯片中的任何内容)。
2600
- */
2601
- export declare interface PresentationSelection {
2602
- /**
2603
- * 获取选区的区域范围,
2604
- * 如果没有指定范围,则返回当前选区的范围。
2605
- * 如果指定了范围,则返回指定范围的选区。
2606
- * 如果选区不存在,则返回 null。
2607
- * @returns
2608
- */
2609
- getTextRange: (value?: PresentationTextRangeValue) => PresentationTextRange | null;
2610
- /**
2611
- * 设置选区的区域范围,
2612
- * 设置后,选区会自动选中指定范围。
2613
- * 如果设置为 null,则清空选区。
2614
- * @param value
2615
- */
2616
- setTextRange: (value: PresentationTextRangeValue | null) => void;
2617
- /**
2618
- * 获取当前选中的形状,
2619
- * 如果没有选中形状,则返回 null。
2620
- * 如果指定了 value,则返回指定形状。
2621
- * @param ids 指定的形状 id
2622
- * @returns
2623
- */
2624
- getSelectedShapes: (ids?: string[]) => PresentationShape[] | null;
2625
- /**
2626
- * 选中指定的形状,选中形状后会清空文字选区。
2627
- * 如果 value 为 null,则清空选中的形状。
2628
- * @param ids 指定的形状 id
2629
- * @returns
2630
- */
2631
- setSelectedShapes: (ids: string[] | null) => void;
2632
- /**
2633
- * 添加选区变化监听器,当选区发生变化时,会触发回调。
2634
- * @param listener
2635
- * @returns
2636
- */
2637
- addRangeListener: (listener: (value: PresentationTextRangeValue | null) => void) => void;
2638
- }
2639
-
2640
- /**
2641
- * 幻灯片形状(Shape)接口
2642
- */
2643
- export declare interface PresentationShape {
2644
- /**
2645
- * 获取形状的 id
2646
- */
2647
- readonly id: string;
2648
- }
2649
-
2650
- /**
2651
- * 幻灯片页面(Slide)对象,
2652
- * 是幻灯片的基础操作单元,包含幻灯片的基本信息和操作方法。
2653
- */
2654
- export declare interface PresentationSlide {
2655
- /**
2656
- * 当前幻灯片的 id
2657
- */
2658
- readonly id: string;
2659
- /**
2660
- * 获取当前幻灯片在所有幻灯片中的索引
2661
- * @returns
2662
- */
2663
- getIndex: () => number;
2664
- /**
2665
- * 获取当前页面所有的形状
2666
- * @returns
2667
- */
2668
- getShapes: () => PresentationShape[];
2669
- }
2670
-
2671
- /**
2672
- * 幻灯片集合对象,
2673
- * 该接口和 PresentationSlide 负责不同的功能,
2674
- * PresentationSlide 是一个幻灯片页面的抽象,而 PresentationSlides 是对整个文件中所有页面的操作。
2675
- */
2676
- export declare interface PresentationSlides {
2677
- /**
2678
- * 获取当前幻灯片
2679
- */
2680
- getCurrentSlide: () => PresentationSlide;
2681
- /**
2682
- * 切换当前幻灯片
2683
- * @param slideId
2684
- */
2685
- setCurrentSlideIndex: (slideId: string) => void;
2686
- /**
2687
- * 获取幻灯片索引
2688
- * @param slideId
2689
- * @returns
2690
- */
2691
- getSlideIndex: (slideId: string) => number;
2692
- /**
2693
- * 获取幻灯片总数
2694
- */
2695
- getSlidesCount: () => number;
2696
- /**
2697
- * 获取所有幻灯片
2698
- * @returns
2699
- */
2700
- getSlides: () => PresentationSlide[];
2701
- /**
2702
- * 获取指定幻灯片
2703
- * @param slideId
2704
- */
2705
- getSlideById: (slideId: string) => PresentationSlide;
2706
- /**
2707
- * 获取当前选中的幻灯片。
2708
- * 至少存在一个选中的幻灯片。
2709
- * @returns
2710
- */
2711
- getSelectedSlides: (ids?: string[]) => PresentationSlide[];
2712
- /**
2713
- * 设置
2714
- * @param ids
2715
- * @returns
2716
- */
2717
- setSelectedSlides: (ids: string[]) => void;
2718
- }
2719
-
2720
- /**
2721
- * 演示文稿文本接口
2722
- */
2723
- export declare type PresentationText = EditorText<string, PresentationTextRangeValue>;
2724
-
2725
- /**
2726
- * 演示文稿文本格式
2727
- */
2728
- export declare type PresentationTextFormat = EditorTextFormat;
2729
-
2730
- /**
2731
- * 演示文稿文本格式初始化选项
2732
- */
2733
- export declare type PresentationTextOptions = EditorTextOptions<string>;
2734
-
2735
- /**
2736
- * 区域(Range)
2737
- * 区域对象,表示幻灯片页面中的一个连续的文字区域,每个 Range 对象包含起始字符位置和终止字符位置。
2738
- * 区域信息是一个临时状态,当内容发生变化后,或切换了幻灯片 slide 区域信息可能会失效。
2739
- */
2740
- /**
2741
- * 幻灯片区域对象,
2742
- * 用于表示页面中的一个连续区域,
2743
- * 每个选区值包含了起始位置和结束位置信息的字符串。
2744
- */
2745
- export declare interface PresentationTextRange {
2746
- /**
2747
- * 区域的开始位置,
2748
- * 当内容发生变化后,区域的标识可能会失效。
2749
- */
2750
- readonly start: string;
2751
- /**
2752
- * 区域的结束位置,
2753
- * 当内容发生变化后,区域的标识可能会失效。
2754
- */
2755
- readonly end: string;
2756
- /**
2757
- * 获取该区域对应的纯文本信息。
2758
- * @returns
2759
- */
2760
- getText: () => string;
2761
- /**
2762
- * 设置该区域的内容
2763
- * @param text 内容
2764
- */
2765
- setText: (text: string) => void;
2766
- /**
2767
- * 将区域中的内容以 HTML 格式返回
2768
- */
2769
- getHtml: () => string;
2770
- /**
2771
- * 设置该区域的内容为 HTML 格式
2772
- * @param html 内容
2773
- */
2774
- setHtml: (html: string) => void;
2775
- }
2776
-
2777
- export declare interface PresentationTextRangeValue {
2778
- start: string;
2779
- end: string;
2780
- }
2781
-
2782
- /**
2783
- * 幻灯片缩放接口
2784
- */
2785
- export declare interface PresentationZoom {
2786
- /**
2787
- * 获取当前缩放比例。
2788
- * @returns
2789
- */
2790
- getPercentage: () => number;
2791
- /**
2792
- * 设置缩放比例,
2793
- * 有效范围 10 ~ 500。
2794
- * @param percentage
2795
- */
2796
- setPercentage: (percentage: number) => void;
2797
- /**
2798
- * 设置自动缩放模式,
2799
- * none: 不自动缩放,默认值。
2800
- * window: 根据窗口宽度自动缩放,页面宽度随着窗口宽度变化而变化
2801
- * @param mode 缩放模式,可以是 'window'
2802
- */
2803
- setFitMode: (mode: 'none' | 'window') => void;
2804
- /**
2805
- * 获取当前缩放模式。
2806
- * @returns
2807
- */
2808
- getFitMode: () => 'none' | 'window';
2809
- /**
2810
- * 放大。
2811
- */
2812
- zoomIn: () => void;
2813
- /**
2814
- * 缩小。
2815
- */
2816
- zoomOut: () => void;
2817
- }
2818
-
2819
- /**
2820
- * 表格单元格对象
2821
- */
2822
- export declare interface SheetCell {
2823
- /**
2824
- * 单元格所在的行号
2825
- */
2826
- row: number;
2827
- /**
2828
- * 单元格所在的列号
2829
- */
2830
- column: number;
2831
- /**
2832
- * 单元格所在的工作表 ID
2833
- */
2834
- sheetId: string;
2835
- /**
2836
- * 获取单元格的文本
2837
- */
2838
- getCellText: () => string;
2839
- /**
2840
- * 获取单元格的值
2841
- */
2842
- getCellValue: () => SheetCellValue | null;
2843
- }
2844
-
2845
- /**
2846
- * 单元格值类型
2847
- */
2848
- export declare type SheetCellValue = {
2849
- type: 'primitive';
2850
- value: string | number | boolean;
2851
- } | {
2852
- type: 'date';
2853
- value: number;
2854
- } | {
2855
- type: 'calcError';
2856
- value: {
2857
- error: string;
2858
- };
2859
- };
2860
-
2861
- /**
2862
- * 电子表格工具栏一级菜单
2863
- */
2864
- export declare type SheetMenuEntryConfig = EditorMenuEntryConfig<SheetMenuFeatureButtonName>;
2865
-
2866
- /**
2867
- * 电子表格工具栏功能按钮
2868
- */
2869
- export declare type SheetMenuFeatureButtonConfig = EditorMenuFeatureButtonConfig<SheetMenuFeatureButtonName>;
2870
-
2871
- /**
2872
- * 电子表格工具栏内置功能按钮
2873
- */
2874
- export declare type SheetMenuFeatureButtonName = 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll';
2875
-
2876
- export declare type SheetMenuOptions = EditorMenuOptions<SheetMenuFeatureButtonName>;
2877
-
2878
- /**
2879
- * 表格区域对象,
2880
- * 用于表示表格中被选中的单元格区域,
2881
- * 可以是一个单元格、一行、一列、或某个区域。
2882
- */
2883
- export declare interface SheetRange {
2884
- /**
2885
- * 区域类型
2886
- */
2887
- type: `${SheetRangeType}`;
2888
- /**
2889
- * 区域的行开始位置
2890
- */
2891
- readonly row: number;
2892
- /**
2893
- * 区域的列开始位置
2894
- */
2895
- readonly column: number;
2896
- /**
2897
- * 区域的行数
2898
- */
2899
- readonly rowCount: number;
2900
- /**
2901
- * 区域的列数
2902
- */
2903
- readonly columnCount: number;
2904
- /**
2905
- * 获取该区域对应的纯文本信息。
2906
- * @returns
2907
- */
2908
- getText: () => string;
2909
- /**
2910
- * 设置该区域的内容
2911
- * @param text 内容
2912
- */
2913
- setText: (text: string) => void;
2914
- /**
2915
- * 将区域中的内容以 HTML 格式返回
2916
- */
2917
- getHtml: () => string;
2918
- /**
2919
- * 设置该区域的内容为 HTML 格式
2920
- * @param html 内容
2921
- */
2922
- setHtml: (html: string) => void;
2923
- }
2924
-
2925
- /**
2926
- * 区域(Range)
2927
- * 区域对象,表示表格中的一个单元格区域,每个 Range 对象包含了一个或多个单元格、行、列信息。
2928
- */
2929
- /**
2930
- * 选区类型
2931
- */
2932
- export declare enum SheetRangeType {
2933
- /**
2934
- * 选中一个或多个单元格
2935
- */
2936
- Cells = "cells",
2937
- /**
2938
- * 选中一行或多行
2939
- */
2940
- Rows = "rows",
2941
- /**
2942
- * 选中一列或多列
2943
- */
2944
- Columns = "columns",
2945
- /**
2946
- * 选中整个工作表
2947
- */
2948
- Sheet = "sheet"
2949
- }
2950
-
2951
- export declare type SheetRangeValue = {
2952
- /**
2953
- * 单个或多个单元格
2954
- */
2955
- type: `${SheetRangeType.Cells}`;
2956
- /**
2957
- * 起始单元格的行号
2958
- */
2959
- row: number;
2960
- /**
2961
- * 总计行数
2962
- */
2963
- rowCount: number;
2964
- /**
2965
- * 起始单元格的列号
2966
- */
2967
- column: number;
2968
- /**
2969
- * 总计列数
2970
- */
2971
- columnCount: number;
2972
- } | {
2973
- /**
2974
- * 一列或多列
2975
- */
2976
- type: `${SheetRangeType.Rows}`;
2977
- /**
2978
- * 起始列号
2979
- */
2980
- row: number;
2981
- /**
2982
- * 总计行数
2983
- */
2984
- rowCount: number;
2985
- } | {
2986
- /**
2987
- * 一行或多行
2988
- */
2989
- type: `${SheetRangeType.Columns}`;
2990
- /**
2991
- * 起始行号
2992
- */
2993
- column: number;
2994
- /**
2995
- * 总计列数
2996
- */
2997
- columnCount: number;
2998
- } | {
2999
- /**
3000
- * 整个工作表
3001
- */
3002
- type: `${SheetRangeType.Sheet}`;
3003
- };
3004
-
3005
- export declare interface SheetSDKOptions extends EditorOptions {
3006
- /**
3007
- * 字体配置
3008
- */
3009
- fonts?: EditorFontsOptions;
3010
- /**
3011
- * 菜单栏相关设置
3012
- */
3013
- menu?: SheetMenuOptions;
3014
- /**
3015
- * 文本格式相关设置
3016
- */
3017
- text?: SheetTextOptions;
3018
- }
3019
-
3020
- /**
3021
- * 选区(Selection)
3022
- * 表示窗口或窗格中的当前选定内容。
3023
- * 选定内容表示表格中的选定(或突出显示)的单元格区域。
3024
- */
3025
- export declare interface SheetSelection {
3026
- /**
3027
- * 获取选区的区域范围,
3028
- * 如果没有指定范围,则返回当前选区的范围。
3029
- * 如果指定了范围,则返回指定范围的选区。
3030
- * 如果选区不存在,则返回 null。
3031
- */
3032
- getRange: (value?: SheetRangeValue) => SheetRange | null;
3033
- /**
3034
- * 设置选区的区域范围,
3035
- * 设置后,选区会自动选中指定范围。
3036
- * 如果设置为 null,则清空选区。
3037
- */
3038
- setRange: (value: SheetRangeValue | null) => void;
3039
- }
3040
-
3041
- /**
3042
- * 电子表格文本接口
3043
- */
3044
- export declare type SheetText = EditorText<string, SheetRangeValue>;
3045
-
3046
- /**
3047
- * 电子表格文本格式
3048
- */
3049
- export declare type SheetTextFormat = EditorTextFormat;
3050
-
3051
- /**
3052
- * 电子表格文本格式初始化选项
3053
- */
3054
- export declare type SheetTextOptions = EditorTextOptions<string>;
3055
-
3056
- /**
3057
- * 工作表集合对象
3058
- */
3059
- export declare interface SheetWorkbook {
3060
- /**
3061
- * 获取所有工作表
3062
- * @returns
3063
- */
3064
- getWorksheets: () => SheetWorksheet[];
3065
- /**
3066
- * 获取指定的工作表
3067
- * @param sheetId
3068
- * @returns
3069
- */
3070
- getWorksheetById: (sheetId: string) => SheetWorksheet | null;
3071
- /**
3072
- * 获取当前活动的工作表
3073
- * TODO: 是否存在返回空的场景
3074
- * @returns
3075
- */
3076
- getActiveWorksheet: () => SheetWorksheet;
3077
- /**
3078
- * 激活指定的工作表
3079
- * @param sheetId
3080
- */
3081
- setActiveWorksheet: (sheetId: string) => void;
3082
- }
3083
-
3084
- /**
3085
- * 工作表对象
3086
- */
3087
- export declare interface SheetWorksheet {
3088
- /**
3089
- * 工作表对应编号
3090
- */
3091
- get id(): string;
3092
- /**
3093
- * 获取当前工作表名称
3094
- */
3095
- get name(): string;
3096
- /**
3097
- * 这个工作表是否为当前活动的工作表
3098
- */
3099
- get isActive(): boolean;
3100
- /**
3101
- * 获取工作表的所有选区
3102
- * @returns
3103
- */
3104
- getSelections: () => SheetSelection[] | null;
3105
- /**
3106
- * 获取选区的物理位置(相对于浏览器窗口),如果选区完全不在工作表的可视区域内,返回 null。
3107
- * 其中选区超出可视区域的部分会被截断处理。
3108
- *
3109
- * 当工作表存在冻结行列时,可视区域将被分成四个部分(如果仅存在冻结行或冻结列则被分为两个部分),
3110
- * 此时需要计算出选区在**视觉上**与可视区域的交集。
3111
- */
3112
- getPhysicalPosition: (range: SheetRangeValue) => {
3113
- left: number;
3114
- top: number;
3115
- width: number;
3116
- height: number;
3117
- } | null;
3118
- /**
3119
- * 添加选区变化监听器,当选区发生变化时,会触发回调。
3120
- * @param listener
3121
- * @returns 用于移除监听的回调
3122
- */
3123
- addRangeListener: (listener: (range: {
3124
- sheet: string;
3125
- ranges: SheetRangeValue[] | null;
3126
- }) => void) => () => void;
3127
- /**
3128
- * 获取工作表中指定区域的单元格对象
3129
- * @returns
3130
- */
3131
- getCell: (row: number, column: number) => SheetCell | null;
3132
- /**
3133
- * 获取工作表中选中的单元格对象
3134
- * @returns
3135
- */
3136
- getActiveCell: () => SheetCell | null;
3137
- /**
3138
- * 激活工作表中某个单元格
3139
- * @param cell 单元格对象,需要传入行和列的索引值
3140
- * @returns
3141
- */
3142
- setActiveCell: (cell: {
3143
- row: number;
3144
- column: number;
3145
- }) => void;
3146
- /**
3147
- * 定位到单元格所在位置
3148
- * @param row 单元格所在行
3149
- * @param column 单元格所在列
3150
- */
3151
- locateCell: (row: number, column: number) => void;
3152
- }
3153
-
3154
2288
  export { }