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

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 (77) 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/presentation/index.js +16 -1
  17. package/cjs/presentation/sdk.js +1 -1
  18. package/cjs/presentation/toolbar.js +3 -0
  19. package/cjs/shared/attachment.js +1 -1
  20. package/cjs/shared/content.js +1 -1
  21. package/cjs/shared/context-menu.js +3 -0
  22. package/cjs/shared/editor.js +1 -1
  23. package/cjs/shared/index.js +1 -1
  24. package/cjs/shared/menu.js +1 -1
  25. package/cjs/shared/toolbar.js +1 -1
  26. package/cjs/shared/user.js +1 -1
  27. package/cjs/sheet/index.js +16 -1
  28. package/cjs/table/content.js +3 -0
  29. package/cjs/table/index.js +23 -0
  30. package/cjs/table/resource.js +3 -0
  31. package/cjs/table/sdk.js +11 -0
  32. package/cjs/table/selection.js +21 -0
  33. package/cjs/table/table.js +3 -0
  34. package/esm/diagram/index.js +2 -1
  35. package/esm/diagram/sdk.js +1 -1
  36. package/esm/docs/index.js +3 -0
  37. package/esm/docs/info.js +2 -0
  38. package/esm/docs/range.js +6 -0
  39. package/esm/docs/sdk.js +25 -0
  40. package/esm/docs/selection.js +2 -0
  41. package/esm/docx/context-menu.js +2 -0
  42. package/esm/docx/index.js +2 -1
  43. package/esm/docx/menu.js +1 -1
  44. package/esm/docx/sdk.js +1 -1
  45. package/esm/docx/selection.js +1 -1
  46. package/esm/docx/theme.js +1 -1
  47. package/esm/docx/window.js +1 -1
  48. package/esm/pdf/index.js +2 -1
  49. package/esm/presentation/index.js +2 -1
  50. package/esm/presentation/sdk.js +1 -1
  51. package/esm/presentation/toolbar.js +2 -0
  52. package/esm/shared/attachment.js +1 -1
  53. package/esm/shared/content.js +1 -1
  54. package/esm/shared/context-menu.js +2 -0
  55. package/esm/shared/editor.js +1 -1
  56. package/esm/shared/index.js +1 -1
  57. package/esm/shared/menu.js +1 -1
  58. package/esm/shared/toolbar.js +1 -1
  59. package/esm/shared/user.js +1 -1
  60. package/esm/sheet/index.js +2 -1
  61. package/esm/table/content.js +2 -0
  62. package/esm/table/index.js +4 -0
  63. package/esm/table/resource.js +2 -0
  64. package/esm/table/sdk.js +8 -0
  65. package/esm/table/selection.js +18 -0
  66. package/esm/table/table.js +2 -0
  67. package/package.json +72 -7
  68. package/types/diagram.d.ts +1454 -0
  69. package/types/docs.d.ts +1581 -0
  70. package/{index.d.ts → types/docx.d.ts} +215 -1017
  71. package/types/pdf.d.ts +1663 -0
  72. package/types/presentation.d.ts +1708 -0
  73. package/types/shared.d.ts +1389 -0
  74. package/types/sheet.d.ts +1755 -0
  75. package/types/table.d.ts +1704 -0
  76. package/cjs/index.js +0 -18
  77. 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,21 @@ 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
- }
71
+ export declare type DocxContextMenuEntryConfig = EditorContextMenuEntryConfig<DocxContextMenuFeatureButtonName>;
159
72
 
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
- }
73
+ /**
74
+ * 传统文档工具栏功能按钮
75
+ */
76
+ export declare type DocxContextMenuFeatureButtonConfig = EditorContextMenuFeatureButtonConfig<DocxContextMenuFeatureButtonName>;
190
77
 
191
78
  /**
192
- * Diagram 初始化参数
79
+ * 传统文档右键菜单功能按钮
193
80
  */
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
- }
81
+ export declare type DocxContextMenuFeatureButtonName = 'cut' | 'copy' | 'paste' | 'delete' | 'font' | 'paragraph' | 'downloadAttachment' | 'transformPDF';
82
+
83
+ export declare type DocxContextMenuOptions = EditorContextMenuOptions<DocxContextMenuFeatureButtonName>;
229
84
 
230
85
  export declare type DocxFontFace = Omit<EditorFontFace, 'meta'> & {
231
86
  meta: DocxFontMeta;
@@ -344,7 +199,7 @@ export declare type DocxMenuFeatureButtonConfig = EditorMenuFeatureButtonConfig<
344
199
  /**
345
200
  * 传统文档工具栏内置功能按钮
346
201
  */
347
- export declare type DocxMenuFeatureButtonName = 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'export' | 'saveTemplate' | 'viewHistory' | 'saveHistory' | 'attachment' | 'cloudFile' | 'signature' | 'image';
202
+ 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';
348
203
 
349
204
  export declare type DocxMenuOptions = EditorMenuOptions<DocxMenuFeatureButtonName>;
350
205
 
@@ -512,6 +367,10 @@ export declare interface DocxSDKOptions extends EditorOptions {
512
367
  * 菜单栏相关设置
513
368
  */
514
369
  menu?: DocxMenuOptions;
370
+ /**
371
+ * 右键菜单相关设置
372
+ */
373
+ contextMenu?: DocxContextMenuOptions;
515
374
  /**
516
375
  * Pdf 大纲目录设置
517
376
  */
@@ -635,6 +494,19 @@ export declare interface DocxSelection {
635
494
  * @returns
636
495
  */
637
496
  getWholeRange: () => DocxRange;
497
+ /**
498
+ * 向当前选区位置插入文本,
499
+ * 返回插入后当前选区位置
500
+ * @param text
501
+ * @returns
502
+ */
503
+ insertText: (text: string) => DocxRangeValue;
504
+ /**
505
+ * 向当前选区位置插入 HTML 内容,
506
+ * 返回插入后当前选区位置
507
+ * @param html
508
+ */
509
+ insertHtml: (html: string) => DocxRangeValue;
638
510
  }
639
511
 
640
512
  /**
@@ -720,9 +592,9 @@ export declare interface DocxThemeFontsSchemeItem {
720
592
  * 其他单独字体配置
721
593
  * key 表示script值
722
594
  * 例如:
723
- * <a:font script="Hans" typeface="黑体"/>
724
- * <a:font script="Jpan" typeface="HG明朝B"/>
725
- * <a:font script="Arab" typeface="Times New Roman"/>
595
+ * <a:font script="Hans" typeface="黑体"/\>
596
+ * <a:font script="Jpan" typeface="HG明朝B"/\>
597
+ * <a:font script="Arab" typeface="Times New Roman"/\>
726
598
  */
727
599
  font: Record<string, DocxThemeFont>;
728
600
  }
@@ -990,7 +862,7 @@ export declare interface DocxWindow {
990
862
  * 将传入的区域滚动到可视区域
991
863
  * @param range
992
864
  */
993
- scrollIntoView: (range: DocxRangeValue) => void;
865
+ scrollIntoView: (range: DocxRangeValue, options?: DocxWindowScrollIntoViewOptions) => void;
994
866
  /**
995
867
  * 添加滚动监听器
996
868
  * @param listener
@@ -1001,13 +873,27 @@ export declare interface DocxWindow {
1001
873
  }) => void) => () => void;
1002
874
  }
1003
875
 
876
+ /**
877
+ * 滚动到指定区域的选项
878
+ */
879
+ export declare interface DocxWindowScrollIntoViewOptions {
880
+ /**
881
+ * 滚动到指定区域的位置,默认是start
882
+ */
883
+ position?: 'start' | 'end';
884
+ /**
885
+ * 是否将滚动到的区域置于文档可见范围的顶部。默认为bottom
886
+ */
887
+ alignment?: 'top' | 'bottom';
888
+ }
889
+
1004
890
  export declare type DocxWindowScrollParams = {
1005
891
  /**
1006
892
  * 区域,跳转到对应区域位置
1007
893
  */
1008
894
  type: 'range';
1009
895
  /**
1010
- * 区域值,这个值可以通过 DocxSelection 的 getRange 方法拿到
896
+ * 区域值,这个值可以通过 DocxSelection 的 getRange 方法拿到,取start或者end
1011
897
  */
1012
898
  range: string;
1013
899
  } | {
@@ -1098,6 +984,21 @@ export declare interface DocxZoom {
1098
984
  zoomOut: () => void;
1099
985
  }
1100
986
 
987
+ /**
988
+ * 匿名用户信息
989
+ * 当前用户信息未知时的缺省值
990
+ */
991
+ export declare interface EditorAnonymousOptions {
992
+ /**
993
+ * 匿名用户默认显示名称
994
+ */
995
+ name: string;
996
+ /**
997
+ * 匿名用户默认头像
998
+ */
999
+ avatar: string;
1000
+ }
1001
+
1101
1002
  /**
1102
1003
  * 编辑器内部资源请求配置
1103
1004
  */
@@ -1169,12 +1070,104 @@ export declare interface EditorAssetsResolver {
1169
1070
  checkAssetReady: (assetId: string) => Promise<boolean> | boolean;
1170
1071
  }
1171
1072
 
1073
+ /**
1074
+ * 编辑器附件限制配置,sdk中会使用在不同的场景下使用不同的限制规则组合
1075
+ */
1076
+ export declare interface EditorAttachmentLimitationOptions {
1077
+ /**
1078
+ * 检查附件大小的规则
1079
+ * @param file
1080
+ * @returns
1081
+ */
1082
+ checkFile: (params: EditorAttachmentLimitationOptionsCheckFunctionParams) => Promise<{
1083
+ limited: true;
1084
+ message: string;
1085
+ } | {
1086
+ limited: false;
1087
+ }>;
1088
+ }
1089
+
1090
+ /**
1091
+ * 编辑器附件限制配置检查函数参数
1092
+ */
1093
+ export declare interface EditorAttachmentLimitationOptionsCheckFunctionParams {
1094
+ /**
1095
+ * 文件名称,带后缀名
1096
+ */
1097
+ name: string;
1098
+ /**
1099
+ * 文件大小,单位为Byte
1100
+ */
1101
+ size: number;
1102
+ /**
1103
+ * 文件的mime类型,例如image/jpeg、application/vnd.ms-excel等
1104
+ */
1105
+ mime?: string;
1106
+ }
1107
+
1108
+ /**
1109
+ * 编辑器附件限制配置
1110
+ * @deprecated 使用limitations代替
1111
+ */
1112
+ export declare interface EditorAttachmentMaxSizeOptions {
1113
+ /**
1114
+ * 图片大小上限值,单位为Byte
1115
+ * 设置为Infinity时表示不限制图片大小
1116
+ */
1117
+ value?: number;
1118
+ /**
1119
+ * 超限警告相关配置
1120
+ */
1121
+ warning?: {
1122
+ /**
1123
+ * 超限警告文本
1124
+ */
1125
+ text?: string;
1126
+ };
1127
+ }
1128
+
1172
1129
  /**
1173
1130
  * 编辑器附件信息
1174
1131
  */
1175
1132
  export declare interface EditorAttachmentOptions {
1176
1133
  uploader: AbstractedEditorFileUploader;
1177
1134
  download: (url: string) => void;
1135
+ /**
1136
+ * 图片附件相关配置
1137
+ */
1138
+ image?: {
1139
+ /**
1140
+ * 图片大小上限相关配置
1141
+ * @deprecated 使用limitations代替
1142
+ */
1143
+ maxSize?: EditorAttachmentMaxSizeOptions;
1144
+ /**
1145
+ * 支持的图片格式列表,例如jpg,png等
1146
+ */
1147
+ supportTypes?: string[];
1148
+ /**
1149
+ * 图片附件的限制配置
1150
+ */
1151
+ limitations?: EditorAttachmentLimitationOptions;
1152
+ };
1153
+ /**
1154
+ * 其他附件相关配置
1155
+ */
1156
+ attachment?: {
1157
+ /**
1158
+ * 图片大小上限相关配置
1159
+ * @deprecated 使用limitations代替
1160
+ */
1161
+ maxSize?: EditorAttachmentMaxSizeOptions;
1162
+ /**
1163
+ * 支持的附件格式列表,例如doc,docx等
1164
+ */
1165
+ supportTypes?: string[];
1166
+ /**
1167
+ * 附件的限制配置
1168
+ */
1169
+ limitations?: EditorAttachmentLimitationOptions;
1170
+ };
1178
1171
  }
1179
1172
 
1180
1173
  /**
@@ -1309,7 +1302,7 @@ export declare interface EditorCommentsOptions {
1309
1302
  };
1310
1303
  }
1311
1304
 
1312
- export declare interface EditorContent {
1305
+ export declare interface EditorContent<Delta = EditorDelta> {
1313
1306
  /**
1314
1307
  * 设置编辑器内容
1315
1308
  * @param content
@@ -1318,14 +1311,41 @@ export declare interface EditorContent {
1318
1311
  /**
1319
1312
  * 获取编辑器内容
1320
1313
  */
1321
- getContent: () => Promise<EditorDelta>;
1314
+ getContent: () => Promise<Delta>;
1322
1315
  /**
1323
1316
  * 添加监听,当内容发生变化时触发监听,传入 Delta
1324
1317
  * @param listener
1325
1318
  */
1326
- addChangeListener: (listener: (change: EditorDelta) => void) => () => void;
1319
+ addChangeListener: (listener: (change: Delta) => void) => () => void;
1327
1320
  }
1328
1321
 
1322
+ /**
1323
+ * 右键菜单栏二级以下的菜单入口
1324
+ */
1325
+ export declare type EditorContextMenuEntryButton<TName extends string> = EditorMenuEntryButton<TName>;
1326
+
1327
+ /**
1328
+ * 右键菜单栏一级菜单配置,此处用于定义一级菜单的操作入口,
1329
+ * 右键菜单栏一级菜单指点击右键弹出菜单时的菜单项
1330
+ */
1331
+ export declare type EditorContextMenuEntryConfig<TName extends string> = EditorMenuEntryConfig<TName>;
1332
+
1333
+ /**
1334
+ * 右键菜单栏功能按钮配置
1335
+ */
1336
+ export declare type EditorContextMenuFeatureButton<TName extends string> = EditorMenuFeatureButton<TName>;
1337
+
1338
+ /**
1339
+ * 右键菜单栏按钮配置
1340
+ */
1341
+ export declare type EditorContextMenuFeatureButtonConfig<TName extends string> = EditorMenuFeatureButtonConfig<TName>;
1342
+
1343
+ /**
1344
+ * 右键菜单栏相关配置
1345
+ * 右键菜单栏是指的编辑器中点击右键弹出的菜单栏。目前等于菜单栏配置,可扩展
1346
+ */
1347
+ export declare type EditorContextMenuOptions<TName extends string> = EditorMenuOptions<TName>;
1348
+
1329
1349
  export declare interface EditorDelta {
1330
1350
  compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
1331
1351
  transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
@@ -1558,7 +1578,7 @@ export declare type EditorMenuCustomButton = {
1558
1578
  /**
1559
1579
  * 菜单栏二级以下的菜单入口
1560
1580
  */
1561
- export declare interface EditorMenuEntryButton {
1581
+ export declare interface EditorMenuEntryButton<TName extends string> {
1562
1582
  type: 'entry';
1563
1583
  /**
1564
1584
  * 菜单名称
@@ -1568,6 +1588,10 @@ export declare interface EditorMenuEntryButton {
1568
1588
  * 菜单图标
1569
1589
  */
1570
1590
  icon?: string;
1591
+ /**
1592
+ * 下一级子菜单
1593
+ */
1594
+ children?: Array<EditorMenuFeatureButton<TName> | EditorMenuEntryButton<TName>>[];
1571
1595
  }
1572
1596
 
1573
1597
  /**
@@ -1584,7 +1608,11 @@ export declare interface EditorMenuEntryConfig<TName extends string> {
1584
1608
  * 将第一层数组中的所有按钮放到一个区域内用分隔符隔开,
1585
1609
  * 第二层数组为按钮的定义,可以是功能按钮也可以是一个下拉入口。
1586
1610
  */
1587
- children: Array<EditorMenuFeatureButton<TName> | EditorMenuEntryButton>[];
1611
+ children: Array<EditorMenuFeatureButton<TName> | EditorMenuEntryButton<TName>>[];
1612
+ /**
1613
+ * 是否隐藏一级菜单
1614
+ */
1615
+ type?: 'hidden';
1588
1616
  }
1589
1617
 
1590
1618
  /**
@@ -1626,9 +1654,9 @@ export declare type EditorMenuFeatureButtonConfig<TName extends string> = Record
1626
1654
  */
1627
1655
  export declare interface EditorMenuOptions<TName extends string> {
1628
1656
  /**
1629
- * 菜单栏是否显示
1657
+ * 菜单栏是否隐藏
1630
1658
  */
1631
- visible?: boolean;
1659
+ hidden?: boolean;
1632
1660
  /**
1633
1661
  * 是否禁用菜单栏所有功能
1634
1662
  */
@@ -1706,6 +1734,10 @@ export declare interface EditorOptions {
1706
1734
  * 当前操作编辑器的用户信息
1707
1735
  */
1708
1736
  user?: EditorUserOptions;
1737
+ /**
1738
+ * 匿名用户的缺省信息
1739
+ */
1740
+ anonymous?: EditorAnonymousOptions;
1709
1741
  /**
1710
1742
  * i18n 相关设置
1711
1743
  */
@@ -1714,10 +1746,6 @@ export declare interface EditorOptions {
1714
1746
  * 品牌相关设置
1715
1747
  */
1716
1748
  brand?: EditorBrandOptions;
1717
- /**
1718
- * 工具栏相关设置
1719
- */
1720
- toolbar?: EditorToolbarOptions;
1721
1749
  /**
1722
1750
  * 编辑器内部资源请求配置
1723
1751
  */
@@ -2037,11 +2065,11 @@ export declare interface EditorToolbarCustomButtonConfig {
2037
2065
  /**
2038
2066
  * 工具栏内置功能按钮配置
2039
2067
  */
2040
- export declare interface EditorToolbarFeatureButton {
2068
+ export declare interface EditorToolbarFeatureButton<ToolButtonName extends string = EditorToolbarFeatureButtonName> {
2041
2069
  /**
2042
2070
  * 按钮类型
2043
2071
  */
2044
- name: EditorToolbarFeatureButtonName;
2072
+ name: ToolButtonName;
2045
2073
  /**
2046
2074
  * 按钮标签(显示文本)
2047
2075
  */
@@ -2050,6 +2078,10 @@ export declare interface EditorToolbarFeatureButton {
2050
2078
  * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
2051
2079
  */
2052
2080
  icon?: string;
2081
+ /**
2082
+ * 按钮是否隐藏
2083
+ */
2084
+ hidden?: boolean;
2053
2085
  /**
2054
2086
  * 按钮是否禁用
2055
2087
  */
@@ -2063,8 +2095,8 @@ export declare interface EditorToolbarFeatureButton {
2063
2095
  /**
2064
2096
  * 工具栏内置功能按钮配置
2065
2097
  */
2066
- export declare type EditorToolbarFeatureButtonConfig = {
2067
- [key in EditorToolbarFeatureButtonName]?: EditorToolbarFeatureButton;
2098
+ export declare type EditorToolbarFeatureButtonConfig<ToolButtonName extends string> = {
2099
+ [key in ToolButtonName]?: EditorToolbarFeatureButton<ToolButtonName>;
2068
2100
  };
2069
2101
 
2070
2102
  /**
@@ -2103,11 +2135,11 @@ export declare type EditorToolbarFeatureButtonName =
2103
2135
  /**
2104
2136
  * 工具栏相关设置,可以控制工具栏的显示内容
2105
2137
  */
2106
- export declare interface EditorToolbarOptions {
2138
+ export declare interface EditorToolbarOptions<ToolButtonName extends string = EditorToolbarFeatureButtonName> {
2107
2139
  /**
2108
2140
  * 控制工具栏显隐状态
2109
2141
  */
2110
- visible?: boolean;
2142
+ hidden?: boolean;
2111
2143
  /**
2112
2144
  * 是否禁用工具栏所有功能
2113
2145
  */
@@ -2115,7 +2147,7 @@ export declare interface EditorToolbarOptions {
2115
2147
  /**
2116
2148
  * 现有按钮的功能配置
2117
2149
  */
2118
- features?: EditorToolbarFeatureButtonConfig;
2150
+ features?: EditorToolbarFeatureButtonConfig<ToolButtonName>;
2119
2151
  /**
2120
2152
  * 自定义按钮
2121
2153
  */
@@ -2179,6 +2211,10 @@ export declare interface EditorUserOptions {
2179
2211
  * 用户头像
2180
2212
  */
2181
2213
  avatar?: string;
2214
+ /**
2215
+ * 用户默认头像,当用户未设置头像时显示
2216
+ */
2217
+ defaultAvatar?: string;
2182
2218
  }
2183
2219
 
2184
2220
  /**
@@ -2313,842 +2349,4 @@ export declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'js
2313
2349
 
2314
2350
  export declare type MaybePromiseValue<T> = T | Promise<T>;
2315
2351
 
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
2352
  export { }