@officesdk/editor-sdk-core 0.0.0-9 → 0.0.0-alpha.1

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 (403) hide show
  1. package/README.md +2 -4
  2. package/cjs/diagram/content.js +3 -0
  3. package/cjs/diagram/export.js +15 -0
  4. package/cjs/diagram/index.js +19 -2
  5. package/cjs/diagram/mode.js +3 -0
  6. package/cjs/diagram/sdk.js +1 -1
  7. package/cjs/docs/index.js +21 -0
  8. package/cjs/docs/info.js +3 -0
  9. package/cjs/docs/range.js +7 -0
  10. package/cjs/docs/sdk.js +28 -0
  11. package/cjs/docs/selection.js +3 -0
  12. package/cjs/docx/context-menu.js +3 -0
  13. package/cjs/docx/fonts.js +1 -1
  14. package/cjs/docx/index.js +19 -2
  15. package/cjs/docx/info.js +1 -1
  16. package/cjs/docx/menu.js +1 -1
  17. package/cjs/docx/outline.js +1 -1
  18. package/cjs/docx/pages.js +17 -1
  19. package/cjs/docx/paragraphs.js +3 -0
  20. package/cjs/docx/restriction.js +3 -0
  21. package/cjs/docx/revisions.js +3 -0
  22. package/cjs/docx/sdk.js +1 -1
  23. package/cjs/docx/selection.js +1 -1
  24. package/cjs/docx/signature.js +3 -0
  25. package/cjs/docx/statistic.js +3 -0
  26. package/cjs/docx/theme.js +1 -1
  27. package/cjs/docx/toolbar.js +3 -0
  28. package/cjs/docx/ui.js +3 -0
  29. package/cjs/docx/window.js +1 -1
  30. package/cjs/form/feature.js +3 -0
  31. package/cjs/form/index.js +21 -0
  32. package/cjs/form/link.js +3 -0
  33. package/cjs/form/publish.js +3 -0
  34. package/cjs/form/sdk.js +28 -0
  35. package/cjs/form/sheet.js +3 -0
  36. package/cjs/form/table.js +3 -0
  37. package/cjs/form/ui.js +3 -0
  38. package/cjs/index.js +24 -14
  39. package/cjs/mindmap/export.js +12 -0
  40. package/cjs/mindmap/index.js +23 -0
  41. package/cjs/mindmap/sdk.js +11 -0
  42. package/cjs/pdf/index.js +16 -1
  43. package/cjs/pdf/menu.js +1 -1
  44. package/cjs/pdf/pages.js +1 -1
  45. package/cjs/presentation/anonymous.js +3 -0
  46. package/cjs/presentation/assistant.js +3 -0
  47. package/cjs/presentation/chart.js +3 -0
  48. package/cjs/presentation/comments.js +3 -0
  49. package/cjs/presentation/diagram.js +3 -0
  50. package/cjs/presentation/event-subscription.js +3 -0
  51. package/cjs/presentation/export.js +14 -0
  52. package/cjs/presentation/fonts.js +1 -1
  53. package/cjs/presentation/history.js +3 -0
  54. package/cjs/presentation/index.js +19 -2
  55. package/cjs/presentation/menu.js +1 -1
  56. package/cjs/presentation/mobile.js +3 -0
  57. package/cjs/presentation/presentation.js +3 -0
  58. package/cjs/presentation/remote-live.js +3 -0
  59. package/cjs/presentation/sdk.js +1 -1
  60. package/cjs/presentation/slides-pane.js +3 -0
  61. package/cjs/presentation/theme.js +3 -0
  62. package/cjs/presentation/toolbar.js +3 -0
  63. package/cjs/shared/assets.js +1 -1
  64. package/cjs/shared/attachment.js +3 -0
  65. package/cjs/shared/brand.js +1 -1
  66. package/cjs/shared/collaboration.js +3 -0
  67. package/cjs/shared/collaborators.js +3 -0
  68. package/cjs/shared/comments.js +1 -1
  69. package/cjs/shared/content.js +1 -1
  70. package/cjs/shared/context-menu.js +3 -0
  71. package/cjs/shared/copy.js +3 -0
  72. package/cjs/shared/decryption.js +3 -0
  73. package/cjs/shared/device.js +3 -0
  74. package/cjs/shared/download.js +2 -0
  75. package/cjs/shared/drag-n-drop.js +6 -0
  76. package/cjs/shared/duplicate.js +6 -0
  77. package/cjs/shared/edit.js +2 -0
  78. package/cjs/shared/editor.js +1 -1
  79. package/cjs/shared/export.js +3 -0
  80. package/cjs/shared/feature.js +3 -0
  81. package/cjs/shared/file-picker.js +3 -0
  82. package/cjs/shared/file.js +50 -0
  83. package/cjs/shared/follow-mode.js +3 -0
  84. package/cjs/shared/fonts.js +1 -1
  85. package/cjs/shared/guides.js +3 -0
  86. package/cjs/shared/history.js +3 -0
  87. package/cjs/shared/import.js +3 -0
  88. package/cjs/shared/index.js +19 -2
  89. package/cjs/shared/link.js +1 -1
  90. package/cjs/shared/logs.js +3 -0
  91. package/cjs/shared/mention.js +3 -0
  92. package/cjs/shared/menu.js +1 -1
  93. package/cjs/shared/mode.js +1 -1
  94. package/cjs/shared/outline.js +1 -1
  95. package/cjs/shared/paste.js +3 -0
  96. package/cjs/shared/performance.js +3 -0
  97. package/cjs/shared/presentation.js +18 -0
  98. package/cjs/shared/print.js +1 -1
  99. package/cjs/shared/render.js +3 -0
  100. package/cjs/shared/save.js +13 -0
  101. package/cjs/shared/share.js +3 -0
  102. package/cjs/shared/shortcut.js +3 -0
  103. package/cjs/shared/socket.js +3 -0
  104. package/cjs/shared/theme/base-types.js +4 -0
  105. package/cjs/shared/theme/colors.js +4 -0
  106. package/cjs/shared/theme/components/button.js +3 -0
  107. package/cjs/shared/theme/components/checkbox.js +3 -0
  108. package/cjs/shared/theme/components/dropdown.js +3 -0
  109. package/cjs/shared/theme/components/index.js +29 -0
  110. package/cjs/shared/theme/components/input-number.js +3 -0
  111. package/cjs/shared/theme/components/input.js +3 -0
  112. package/cjs/shared/theme/components/radio.js +3 -0
  113. package/cjs/shared/theme/components/slider.js +3 -0
  114. package/cjs/shared/theme/components/switch.js +3 -0
  115. package/cjs/shared/theme/components/tab.js +3 -0
  116. package/cjs/shared/theme/components/toast.js +3 -0
  117. package/cjs/shared/theme/components/tooltip.js +3 -0
  118. package/cjs/shared/theme/index.js +37 -0
  119. package/cjs/shared/theme/styles.js +4 -0
  120. package/cjs/shared/theme/typography.js +4 -0
  121. package/cjs/shared/tool-box.js +40 -0
  122. package/cjs/shared/toolbar.js +1 -1
  123. package/cjs/shared/ui.js +18 -0
  124. package/cjs/shared/uploader.js +22 -0
  125. package/cjs/shared/user.js +1 -1
  126. package/cjs/shared/version.js +3 -0
  127. package/cjs/shared/watermark.js +1 -1
  128. package/cjs/sheet/cell.js +29 -1
  129. package/cjs/sheet/chart.js +3 -0
  130. package/cjs/sheet/checklist.js +3 -0
  131. package/cjs/sheet/combine-sheets.js +3 -0
  132. package/cjs/sheet/data-transfer.js +3 -0
  133. package/cjs/sheet/date-mention.js +3 -0
  134. package/cjs/sheet/event-subscription.js +3 -0
  135. package/cjs/sheet/export.js +3 -0
  136. package/cjs/sheet/follow-selection.js +3 -0
  137. package/cjs/sheet/form.js +3 -0
  138. package/cjs/sheet/formula.js +3 -0
  139. package/cjs/sheet/history.js +3 -0
  140. package/cjs/sheet/import-range.js +3 -0
  141. package/cjs/sheet/import.js +3 -0
  142. package/cjs/sheet/independent-viewport.js +3 -0
  143. package/cjs/sheet/index.js +25 -2
  144. package/cjs/sheet/lock.js +14 -0
  145. package/cjs/sheet/mention.js +13 -0
  146. package/cjs/sheet/menu.js +1 -1
  147. package/cjs/sheet/ole.js +3 -0
  148. package/cjs/sheet/paste.js +3 -0
  149. package/cjs/sheet/range.js +1 -1
  150. package/cjs/sheet/render.js +3 -0
  151. package/cjs/sheet/sdk.js +1 -1
  152. package/cjs/sheet/sensitization.js +3 -0
  153. package/cjs/sheet/sheet-tab.js +3 -0
  154. package/cjs/sheet/sheet2table.js +3 -0
  155. package/cjs/sheet/toolbar.js +3 -0
  156. package/cjs/sheet/ui.js +3 -0
  157. package/cjs/sheet/workbook.js +1 -1
  158. package/cjs/sheet/worksheet.js +1 -1
  159. package/cjs/table/collabrators.js +3 -0
  160. package/cjs/table/combine-tables.js +3 -0
  161. package/cjs/table/content.js +3 -0
  162. package/cjs/table/copy.js +3 -0
  163. package/cjs/table/dashboard.js +3 -0
  164. package/cjs/table/explain-page.js +3 -0
  165. package/cjs/table/export.js +3 -0
  166. package/cjs/table/field.js +3 -0
  167. package/cjs/table/filed-context-menu.js +3 -0
  168. package/cjs/table/form.js +3 -0
  169. package/cjs/table/formula.js +3 -0
  170. package/cjs/table/history.js +3 -0
  171. package/cjs/table/import.js +3 -0
  172. package/cjs/table/index.js +29 -0
  173. package/cjs/table/list-bar-context-menu.js +3 -0
  174. package/cjs/table/list-bar.js +3 -0
  175. package/cjs/table/mention.js +3 -0
  176. package/cjs/table/motable.js +16 -0
  177. package/cjs/table/paste.js +3 -0
  178. package/cjs/table/render.js +3 -0
  179. package/cjs/table/resource.js +3 -0
  180. package/cjs/table/sdk.js +11 -0
  181. package/cjs/table/selection.js +21 -0
  182. package/cjs/table/shortcuts.js +3 -0
  183. package/cjs/table/snapshot.js +3 -0
  184. package/cjs/table/subscription.js +25 -0
  185. package/cjs/table/table.js +3 -0
  186. package/cjs/table/template.js +3 -0
  187. package/cjs/table/toolbar.js +3 -0
  188. package/cjs/table/toolbox.js +3 -0
  189. package/cjs/table/ui.js +3 -0
  190. package/cjs/table/version.js +3 -0
  191. package/cjs/table/view-context-menu.js +3 -0
  192. package/cjs/table/view.js +26 -0
  193. package/cjs/table/window.js +3 -0
  194. package/esm/diagram/content.js +2 -0
  195. package/esm/diagram/export.js +12 -0
  196. package/esm/diagram/index.js +3 -1
  197. package/esm/diagram/mode.js +2 -0
  198. package/esm/diagram/sdk.js +1 -1
  199. package/esm/docs/index.js +3 -0
  200. package/esm/docs/info.js +2 -0
  201. package/esm/docs/range.js +6 -0
  202. package/esm/docs/sdk.js +25 -0
  203. package/esm/docs/selection.js +2 -0
  204. package/esm/docx/context-menu.js +2 -0
  205. package/esm/docx/fonts.js +1 -1
  206. package/esm/docx/index.js +3 -1
  207. package/esm/docx/info.js +1 -1
  208. package/esm/docx/menu.js +1 -1
  209. package/esm/docx/outline.js +1 -1
  210. package/esm/docx/pages.js +15 -2
  211. package/esm/docx/paragraphs.js +2 -0
  212. package/esm/docx/restriction.js +2 -0
  213. package/esm/docx/revisions.js +2 -0
  214. package/esm/docx/sdk.js +1 -1
  215. package/esm/docx/selection.js +1 -1
  216. package/esm/docx/signature.js +2 -0
  217. package/esm/docx/statistic.js +2 -0
  218. package/esm/docx/theme.js +1 -1
  219. package/esm/docx/toolbar.js +2 -0
  220. package/esm/docx/ui.js +2 -0
  221. package/esm/docx/window.js +1 -1
  222. package/esm/form/feature.js +2 -0
  223. package/esm/form/index.js +3 -0
  224. package/esm/form/link.js +2 -0
  225. package/esm/form/publish.js +2 -0
  226. package/esm/form/sdk.js +25 -0
  227. package/esm/form/sheet.js +2 -0
  228. package/esm/form/table.js +2 -0
  229. package/esm/form/ui.js +2 -0
  230. package/esm/index.js +10 -7
  231. package/esm/mindmap/export.js +9 -0
  232. package/esm/mindmap/index.js +4 -0
  233. package/esm/mindmap/sdk.js +8 -0
  234. package/esm/pdf/index.js +2 -1
  235. package/esm/pdf/menu.js +1 -1
  236. package/esm/pdf/pages.js +1 -1
  237. package/esm/presentation/anonymous.js +2 -0
  238. package/esm/presentation/assistant.js +2 -0
  239. package/esm/presentation/chart.js +2 -0
  240. package/esm/presentation/comments.js +2 -0
  241. package/esm/presentation/diagram.js +2 -0
  242. package/esm/presentation/event-subscription.js +2 -0
  243. package/esm/presentation/export.js +11 -0
  244. package/esm/presentation/fonts.js +1 -1
  245. package/esm/presentation/history.js +2 -0
  246. package/esm/presentation/index.js +3 -1
  247. package/esm/presentation/menu.js +1 -1
  248. package/esm/presentation/mobile.js +2 -0
  249. package/esm/presentation/presentation.js +2 -0
  250. package/esm/presentation/remote-live.js +2 -0
  251. package/esm/presentation/sdk.js +1 -1
  252. package/esm/presentation/slides-pane.js +2 -0
  253. package/esm/presentation/theme.js +2 -0
  254. package/esm/presentation/toolbar.js +2 -0
  255. package/esm/shared/assets.js +1 -1
  256. package/esm/shared/attachment.js +2 -0
  257. package/esm/shared/brand.js +1 -1
  258. package/esm/shared/collaboration.js +2 -0
  259. package/esm/shared/collaborators.js +2 -0
  260. package/esm/shared/comments.js +1 -1
  261. package/esm/shared/content.js +1 -1
  262. package/esm/shared/context-menu.js +2 -0
  263. package/esm/shared/copy.js +2 -0
  264. package/esm/shared/decryption.js +2 -0
  265. package/esm/shared/device.js +2 -0
  266. package/esm/shared/download.js +2 -0
  267. package/esm/shared/drag-n-drop.js +5 -0
  268. package/esm/shared/duplicate.js +5 -0
  269. package/esm/shared/edit.js +2 -0
  270. package/esm/shared/editor.js +1 -1
  271. package/esm/shared/export.js +2 -0
  272. package/esm/shared/feature.js +2 -0
  273. package/esm/shared/file-picker.js +2 -0
  274. package/esm/shared/file.js +47 -0
  275. package/esm/shared/follow-mode.js +2 -0
  276. package/esm/shared/fonts.js +1 -1
  277. package/esm/shared/guides.js +2 -0
  278. package/esm/shared/history.js +2 -0
  279. package/esm/shared/import.js +2 -0
  280. package/esm/shared/index.js +8 -1
  281. package/esm/shared/link.js +1 -1
  282. package/esm/shared/logs.js +2 -0
  283. package/esm/shared/mention.js +2 -0
  284. package/esm/shared/menu.js +1 -1
  285. package/esm/shared/mode.js +1 -1
  286. package/esm/shared/outline.js +1 -1
  287. package/esm/shared/paste.js +2 -0
  288. package/esm/shared/performance.js +2 -0
  289. package/esm/shared/presentation.js +15 -0
  290. package/esm/shared/print.js +1 -1
  291. package/esm/shared/render.js +2 -0
  292. package/esm/shared/save.js +10 -0
  293. package/esm/shared/share.js +2 -0
  294. package/esm/shared/shortcut.js +2 -0
  295. package/esm/shared/socket.js +2 -0
  296. package/esm/shared/theme/base-types.js +3 -0
  297. package/esm/shared/theme/colors.js +3 -0
  298. package/esm/shared/theme/components/button.js +2 -0
  299. package/esm/shared/theme/components/checkbox.js +2 -0
  300. package/esm/shared/theme/components/dropdown.js +2 -0
  301. package/esm/shared/theme/components/index.js +13 -0
  302. package/esm/shared/theme/components/input-number.js +2 -0
  303. package/esm/shared/theme/components/input.js +2 -0
  304. package/esm/shared/theme/components/radio.js +2 -0
  305. package/esm/shared/theme/components/slider.js +2 -0
  306. package/esm/shared/theme/components/switch.js +2 -0
  307. package/esm/shared/theme/components/tab.js +2 -0
  308. package/esm/shared/theme/components/toast.js +2 -0
  309. package/esm/shared/theme/components/tooltip.js +2 -0
  310. package/esm/shared/theme/index.js +20 -0
  311. package/esm/shared/theme/styles.js +3 -0
  312. package/esm/shared/theme/typography.js +3 -0
  313. package/esm/shared/tool-box.js +37 -0
  314. package/esm/shared/toolbar.js +1 -1
  315. package/esm/shared/ui.js +15 -0
  316. package/esm/shared/uploader.js +19 -0
  317. package/esm/shared/user.js +1 -1
  318. package/esm/shared/version.js +2 -0
  319. package/esm/shared/watermark.js +1 -1
  320. package/esm/sheet/cell.js +28 -2
  321. package/esm/sheet/chart.js +2 -0
  322. package/esm/sheet/checklist.js +2 -0
  323. package/esm/sheet/combine-sheets.js +2 -0
  324. package/esm/sheet/data-transfer.js +2 -0
  325. package/esm/sheet/date-mention.js +2 -0
  326. package/esm/sheet/event-subscription.js +2 -0
  327. package/esm/sheet/export.js +2 -0
  328. package/esm/sheet/follow-selection.js +2 -0
  329. package/esm/sheet/form.js +2 -0
  330. package/esm/sheet/formula.js +2 -0
  331. package/esm/sheet/history.js +2 -0
  332. package/esm/sheet/import-range.js +2 -0
  333. package/esm/sheet/import.js +2 -0
  334. package/esm/sheet/independent-viewport.js +2 -0
  335. package/esm/sheet/index.js +6 -1
  336. package/esm/sheet/lock.js +11 -0
  337. package/esm/sheet/mention.js +10 -0
  338. package/esm/sheet/menu.js +1 -1
  339. package/esm/sheet/ole.js +2 -0
  340. package/esm/sheet/paste.js +2 -0
  341. package/esm/sheet/range.js +1 -1
  342. package/esm/sheet/render.js +2 -0
  343. package/esm/sheet/sdk.js +1 -1
  344. package/esm/sheet/sensitization.js +2 -0
  345. package/esm/sheet/sheet-tab.js +2 -0
  346. package/esm/sheet/sheet2table.js +2 -0
  347. package/esm/sheet/toolbar.js +2 -0
  348. package/esm/sheet/ui.js +2 -0
  349. package/esm/sheet/workbook.js +1 -1
  350. package/esm/sheet/worksheet.js +1 -1
  351. package/esm/table/collabrators.js +2 -0
  352. package/esm/table/combine-tables.js +2 -0
  353. package/esm/table/content.js +2 -0
  354. package/esm/table/copy.js +2 -0
  355. package/esm/table/dashboard.js +2 -0
  356. package/esm/table/explain-page.js +2 -0
  357. package/esm/table/export.js +2 -0
  358. package/esm/table/field.js +2 -0
  359. package/esm/table/filed-context-menu.js +2 -0
  360. package/esm/table/form.js +2 -0
  361. package/esm/table/formula.js +2 -0
  362. package/esm/table/history.js +2 -0
  363. package/esm/table/import.js +2 -0
  364. package/esm/table/index.js +7 -0
  365. package/esm/table/list-bar-context-menu.js +2 -0
  366. package/esm/table/list-bar.js +2 -0
  367. package/esm/table/mention.js +2 -0
  368. package/esm/table/motable.js +13 -0
  369. package/esm/table/paste.js +2 -0
  370. package/esm/table/render.js +2 -0
  371. package/esm/table/resource.js +2 -0
  372. package/esm/table/sdk.js +8 -0
  373. package/esm/table/selection.js +18 -0
  374. package/esm/table/shortcuts.js +2 -0
  375. package/esm/table/snapshot.js +2 -0
  376. package/esm/table/subscription.js +22 -0
  377. package/esm/table/table.js +2 -0
  378. package/esm/table/template.js +2 -0
  379. package/esm/table/toolbar.js +2 -0
  380. package/esm/table/toolbox.js +2 -0
  381. package/esm/table/ui.js +2 -0
  382. package/esm/table/version.js +2 -0
  383. package/esm/table/view-context-menu.js +2 -0
  384. package/esm/table/view.js +23 -0
  385. package/esm/table/window.js +2 -0
  386. package/package.json +101 -8
  387. package/types/combine.d.ts +9576 -0
  388. package/types/diagram.d.ts +4020 -0
  389. package/types/docs.d.ts +4150 -0
  390. package/types/docx.d.ts +5324 -0
  391. package/types/form.d.ts +4147 -0
  392. package/types/mindmap.d.ts +3981 -0
  393. package/types/pdf.d.ts +4211 -0
  394. package/types/presentation.d.ts +4572 -0
  395. package/types/shared.d.ts +3931 -0
  396. package/types/sheet.d.ts +5146 -0
  397. package/types/table.d.ts +5689 -0
  398. package/diagram.d.ts +0 -358
  399. package/docx.d.ts +0 -1931
  400. package/pdf.d.ts +0 -760
  401. package/presentation.d.ts +0 -1281
  402. package/shared.d.ts +0 -1066
  403. package/sheet.d.ts +0 -1370
package/docx.d.ts DELETED
@@ -1,1931 +0,0 @@
1
- export declare abstract class AbstractedDocxSDK extends EditorSDK {
2
- /**
3
- * 打印文档
4
- */
5
- abstract print(): Promise<void>;
6
- /**
7
- * 跳转到某个位置
8
- */
9
- abstract goto(options: DocxGotoOptions): boolean;
10
- /**
11
- * 文档缩放接口
12
- * @param scale
13
- */
14
- /**
15
- * 文档目录集合接口,
16
- * 一个文档中可以存在多个目录,这个接口是用来管理文档中的所有目录的。
17
- */
18
- abstract get TOCs(): DocxTOCs;
19
- /**
20
- * 传统文档缩放接口
21
- */
22
- abstract get zoom(): DocxZoom;
23
- /**
24
- * 传统文档目录大纲接口
25
- */
26
- abstract get outline(): DocxOutline;
27
- /**
28
- * 文档选区接口
29
- */
30
- abstract get selection(): DocxSelection;
31
- /**
32
- * 文本格式接口
33
- */
34
- abstract get text(): DocxText;
35
- /**
36
- * 文档窗口接口
37
- */
38
- abstract get window(): DocxWindow;
39
- /**
40
- * 水印接口
41
- */
42
- abstract get watermark(): DocxWatermark;
43
- /**
44
- * 搜索接口
45
- */
46
- abstract get search(): DocxSearch;
47
- }
48
-
49
- export declare type DocxFontFace = Omit<EditorFontFace, 'meta'> & {
50
- meta: DocxFontMeta;
51
- };
52
-
53
- export declare interface DocxFontMeta {
54
- /**
55
- * 用于计算排版信息的字体数据
56
- */
57
- textMetrics: {
58
- /**
59
- * 字体的每个 Em 单位所对应的单位数 (Em 单位是字体排版中的基本单位)。
60
- * 通常用于将字体设计的相对大小映射为实际大小。
61
- * 例如,单位是 1000 或 2048,具体取决于字体的定义。
62
- */
63
- unitsPerEm: number;
64
- /**
65
- * 上升线(Ascender)的值,以 Em 单位为基准。
66
- * 表示从基线到字体最高可见字符顶部的距离(例如字母“d”顶部)。
67
- */
68
- ascender: number;
69
- /**
70
- * 下降线(Descender)的值,以 Em 单位为基准。
71
- * 表示从基线到字体最低可见字符底部的距离(例如字母“p”尾部)。
72
- * 通常为负值。
73
- */
74
- descender: number;
75
- /**
76
- * 行间距(Line Gap),以 Em 单位为基准。
77
- * 表示字体推荐的额外间距,用于在不同的行之间添加额外的垂直空间。
78
- */
79
- lineGap: number;
80
- /**
81
- * 这个参数属于文档排版信息中的 magic number,只能通过逆向工程推导出来,无法通过字体文件直接获取,
82
- * 该值仅影响中文在传统文档中的精确度,默认情况下也可以缺省,可以简单认为在中文环境下该值为 1.3 附近,该值不准确会产品文档排版信息的累计误差,其他套件影响不大。
83
- * 中文常用字体的信息包含在传统文档 packages/core-editor/src/fonts 的目录中,不需要额外配置。
84
- * 新增的非常规中文字体可以设置为 1.3.
85
- */
86
- extendScale?: number;
87
- };
88
- /**
89
- * ulCodePageRange 用于指示字体支持哪些代码页的位域(bit field)。代码页是字符编码的定义,指定了如何将字符映射到数字值。
90
- * 主要是用来判断字体包含的所有字符的范围。
91
- * 技术细节
92
- * • 位置:ulCodePageRange 位于字体文件的 OS/2 表中。
93
- * • 定义:每个位的定义详见 Microsoft OpenType 规范的 OS/2 表文档。
94
- * • 位分配示例:
95
- * • 第 0 位:Latin 1 (1252)
96
- * • 第 1 位:Latin 2: Eastern Europe (1250)
97
- * • 第 2 位:Cyrillic (1251)
98
- * • 第 6 位:Arabic (1256)
99
- * • 第 17 位:Japanese: Shift-JIS
100
- * • 第 18 位:Chinese: Simplified chars—PRC and Singapore (936)
101
- * • 第 19 位:Korean Wansung
102
- * • 第 20 位:Chinese Traditional: Big5 (950)
103
- * 参考链接:http://learn.microsoft.com/en-us/typography/opentype/spec/os2#cpr
104
- */
105
- ulCodePageRange: [number, number];
106
- /**
107
- * 用于文档字体的name以及family的匹配
108
- */
109
- name?: EditorFontMeta['name'];
110
- }
111
-
112
- export declare interface DocxFontsList {
113
- getAll: () => Promise<DocxFontFace[]>;
114
- }
115
-
116
- export declare interface DocxFontsOptions {
117
- list: DocxFontsList;
118
- }
119
-
120
- export declare type DocxGotoOptions = {
121
- /**
122
- * 区域,跳转到对应区域位置
123
- */
124
- type: 'range';
125
- /**
126
- * 区域值,这个值可以通过 DocxSelection 的 getRange 方法拿到
127
- */
128
- range: string;
129
- } | {
130
- /**
131
- * 页码,跳转到对应页码位置
132
- */
133
- type: 'page';
134
- /**
135
- * 页码
136
- */
137
- page: number;
138
- } | {
139
- /**
140
- * 顶部,跳转到文档顶部
141
- */
142
- type: 'top';
143
- } | {
144
- /**
145
- * 跳转到某个评论
146
- */
147
- type: 'comment';
148
- /**
149
- * 评论 ID
150
- */
151
- commentId: string;
152
- };
153
-
154
- /**
155
- * 图片水印属性值
156
- */
157
- export declare interface DocxImageWatermark {
158
- /**
159
- * 图片地址或base64数据
160
- */
161
- image: string;
162
- /**
163
- * 图片宽度,如: '100px'
164
- */
165
- width: string;
166
- /**
167
- * 图片高度,如: '100px'
168
- */
169
- height: string;
170
- }
171
-
172
- /**
173
- * 文档信息配置项,用于显示在文档信息弹窗中的内容
174
- */
175
- export declare interface DocxInfoOptions {
176
- views?: {
177
- count?: number;
178
- };
179
- created?: {
180
- time?: number;
181
- author?: string;
182
- };
183
- }
184
-
185
- /**
186
- * 传统文档工具栏一级菜单
187
- */
188
- export declare type DocxMenuEntryConfig = EditorMenuEntryConfig<DocxMenuFeatureButtonName>;
189
-
190
- /**
191
- * 传统文档工具栏功能按钮
192
- */
193
- export declare type DocxMenuFeatureButtonConfig = EditorMenuFeatureButtonConfig<DocxMenuFeatureButtonName>;
194
-
195
- /**
196
- * 传统文档工具栏内置功能按钮
197
- */
198
- export declare type DocxMenuFeatureButtonName = 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'export' | 'saveTemplate' | 'viewHistory' | 'saveHistory' | 'attachment' | 'cloudFile' | 'signature' | 'image';
199
-
200
- export declare type DocxMenuOptions = EditorMenuOptions<DocxMenuFeatureButtonName>;
201
-
202
- /**
203
- * 传统文档目录大纲项接口
204
- */
205
- export declare type DocxOutline = EditorOutline<{
206
- text: string;
207
- }>;
208
-
209
- /**
210
- * 传统文档目录大纲项信息,用于描述传统文档中的目录项信息。
211
- */
212
- export declare type DocxOutlineItem = EditorOutlineItem<{
213
- text: string;
214
- }>;
215
-
216
- export declare type DocxOutlineOptions = EditorOutlineOptions;
217
-
218
- /**
219
- * 区域(Range)
220
- * 区域对象,表示文档中的一个连续区域,每个 Range 对象包含起始字符位置和终止字符位置。
221
- */
222
- /**
223
- * 文档区域对象,
224
- * 用于表示文档中的一个连续区域,
225
- * 每个选区值包含了起始位置和结束位置信息的字符串。
226
- */
227
- export declare interface DocxRange {
228
- /**
229
- * 区域的开始位置,
230
- * 当文档发生变化后,区域的标识可能会失效。
231
- */
232
- readonly start: string;
233
- /**
234
- * 区域的结束位置,
235
- * 当文档发生变化后,区域的标识可能会失效。
236
- */
237
- readonly end: string;
238
- /**
239
- * 是否为光标。
240
- */
241
- readonly isCaret: boolean;
242
- /**
243
- * 获取该区域对应的纯文本信息。
244
- * @returns
245
- */
246
- getText: () => string;
247
- /**
248
- * 将区域中的内容以 HTML 格式返回。
249
- * @returns
250
- */
251
- getHtml: () => string;
252
- /**
253
- * 将区域内的文本设置为指定的文本,
254
- * 如果文本为空,则清空区域内的文本。
255
- * 如果区域为
256
- * @param text
257
- */
258
- setText: (text: string) => void;
259
- /**
260
- * 将区域内的文本设置为指定的 HTML 内容,
261
- * 如果内容为空,则清空区域内的内容。
262
- * 如果区域为光标,则会将光标位置的文本替换为指定的 HTML 格式。
263
- * @param html
264
- */
265
- setHtml: (html: string) => void;
266
- /**
267
- * 获取选区在当前屏幕上的位置信息
268
- * @returns
269
- */
270
- getBounding: () => DocxRangeBounding | null;
271
- }
272
-
273
- /**
274
- * 记录区域在屏幕上的位置信息,
275
- * 包含了区域的四个边界值,以及开始和结束位置。
276
- * 因为选区是由多个矩形区域组成的,
277
- * 所以这里的位置信息是一个矩形区域的边界值。
278
- */
279
- export declare interface DocxRangeBounding {
280
- /**
281
- * 区域的左边界值,
282
- * 代表区域的最左边的 X 坐标,
283
- * 也就是区域的最左边的矩形区域的左边界值。
284
- */
285
- top: number;
286
- /**
287
- * 区域的上边界值,
288
- * 代表区域的最上边的 Y 坐标,
289
- * 也就是区域的最上边的矩形区域的上边界值。
290
- */
291
- right: number;
292
- /**
293
- * 区域的右边界值,
294
- * 代表区域的最右边的 X 坐标,
295
- * 也就是区域的最右边的矩形区域的右边界值。
296
- */
297
- bottom: number;
298
- /**
299
- * 区域的下边界值,
300
- * 代表区域的最下边的 Y 坐标,
301
- * 也就是区域的最下边的矩形区域的下边界值。
302
- */
303
- left: number;
304
- /**
305
- * 第一行的开始 X 坐标,
306
- */
307
- start: number;
308
- /**
309
- * 最后一行的结束 X 坐标,
310
- */
311
- end: number;
312
- }
313
-
314
- /**
315
- * 区域值,
316
- * 包含了区域的开始位置和结束位置。
317
- */
318
- export declare interface DocxRangeValue {
319
- /**
320
- * 开始位置
321
- */
322
- start: string;
323
- /**
324
- * 结束位置
325
- */
326
- end: string;
327
- }
328
-
329
- /**
330
- * 替换回调,因为替换可能是异步分批执行的,所以需要通过回调来返回结果,可能会调用多次回调,
331
- * 如果所有替换都结束,则 abort 为 undefined,如果替换没有结束,则 abort 为终止替换的函数
332
- */
333
- export declare type DocxReplaceCallback = (result: DocxSearchResult, abort?: () => void) => void;
334
-
335
- export declare interface DocxReplaceParams {
336
- /**
337
- * 需要替换的内容
338
- */
339
- value: string;
340
- }
341
-
342
- export declare interface DocxReplaceResult {
343
- /**
344
- * 被替换的查找结果
345
- */
346
- id: string;
347
- /**
348
- * 替换前的内容
349
- */
350
- oldValue: string;
351
- }
352
-
353
- export declare interface DocxSDKOptions extends EditorOptions {
354
- /**
355
- * 文档信息配置
356
- */
357
- info?: DocxInfoOptions;
358
- /**
359
- * 字体配置
360
- */
361
- fonts?: DocxFontsOptions;
362
- /**
363
- * 菜单栏相关设置
364
- */
365
- menu?: DocxMenuOptions;
366
- /**
367
- * Pdf 大纲目录设置
368
- */
369
- outline?: DocxOutlineOptions;
370
- /**
371
- * 文本格式相关设置
372
- */
373
- text?: DocxTextOptions;
374
- /**
375
- * 水印相关配置
376
- */
377
- watermark?: DocxWatermarkOptions;
378
- /**
379
- * 主题字体相关配置
380
- */
381
- theme?: DocxThemeOptions;
382
- }
383
-
384
- /**
385
- * 查找、替换接口
386
- */
387
- export declare interface DocxSearch {
388
- /**
389
- * 查找
390
- * @param params 查找选项
391
- */
392
- findOne: (params: DocxSearchParams) => Promise<DocxSearchResult | null>;
393
- /**
394
- * 查找所有,
395
- * 由于查找所有可能需要查找很长时间,所以需要通过回调来返回结果,可能会调用多次回调
396
- * @param params 查找选项
397
- * @param callback 回调
398
- */
399
- findAll: (params: DocxSearchParams, callback: DocxSearchCallback) => void;
400
- /**
401
- * 替换
402
- * @param id 匹配结果的标识
403
- * @param params 查找选项
404
- */
405
- replaceOne: (id: string, params: DocxReplaceParams) => Promise<DocxReplaceResult | null>;
406
- /**
407
- * 替换所有
408
- * @param params 替换选项
409
- * @param callback 回调
410
- */
411
- replaceAll: (params: DocxReplaceParams, callback: DocxReplaceCallback) => void;
412
- /**
413
- * 清空当前搜索结果,并中断当前未完成的搜索操作
414
- * @returns
415
- */
416
- clear: () => void;
417
- }
418
-
419
- /**
420
- * 查找回调,因为查找、替换可能是异步分批执行的,所以需要通过回调来返回结果,可能会调用多次回调,
421
- * 如果所有查找都结束,则 abort 为 undefined,如果查找没有结束,则 abort 为终止查找的函数
422
- */
423
- export declare type DocxSearchCallback = (results: DocxSearchResult[], abort?: () => void) => void;
424
-
425
- export declare interface DocxSearchParams {
426
- /**
427
- * 需要查找的内容
428
- */
429
- content: string;
430
- /**
431
- * 是否需要高亮,默认高亮,
432
- * 如果设置为 false,则不会高亮匹配内容,只会返回匹配内容,可以用作无感搜索
433
- */
434
- highlight?: boolean;
435
- }
436
-
437
- export declare interface DocxSearchResult {
438
- /**
439
- * 匹配内容
440
- */
441
- content: string;
442
- /**
443
- * 用于搜索的关键字
444
- */
445
- keyword: string;
446
- /**
447
- * 匹配范围
448
- */
449
- range: DocxRangeValue;
450
- /**
451
- * 查找结果的唯一标识
452
- */
453
- id: string;
454
- }
455
-
456
- /**
457
- * 选区(Selection)
458
- * 表示窗口中的当前选定内容。
459
- * 选定内容表示文档中的选定(或突出显示)区域,或者代表插入点(如果未选择文档中的任何内容)。
460
- */
461
- export declare interface DocxSelection {
462
- /**
463
- * 获取选区的区域范围,
464
- * 如果没有指定范围,则返回当前选区的范围。
465
- * 如果指定了范围,则返回指定范围的选区。
466
- * 如果选区不存在,则返回 null。
467
- * @returns
468
- */
469
- getRange: (value?: DocxRangeValue) => DocxRange | null;
470
- /**
471
- * 设置选区的区域范围,
472
- * 设置后,选区会自动选中指定范围。
473
- * 如果设置为 null,则清空选区。
474
- * 注意:设置取消之前需要确认该选区是否属于当前页面。
475
- * @param value
476
- */
477
- setRange: (value: DocxRangeValue | null) => void;
478
- /**
479
- * 添加选区变化监听器,当选区发生变化时,会触发回调。
480
- * @param listener
481
- * @returns
482
- */
483
- addRangeListener: (listener: (value: DocxRangeValue | null) => void) => void;
484
- /**
485
- * 获取文档全部选区范围。
486
- * @returns
487
- */
488
- getWholeRange: () => DocxRange;
489
- }
490
-
491
- /**
492
- * 传统文档文本接口
493
- */
494
- export declare type DocxText = EditorText<string, DocxRangeValue>;
495
-
496
- /**
497
- * 传统文档文本格式
498
- */
499
- export declare type DocxTextFormat = EditorTextFormat;
500
-
501
- /**
502
- * 传统文档文本格式初始化选项
503
- */
504
- export declare type DocxTextOptions = EditorTextOptions<string>;
505
-
506
- /**
507
- * 文本水印属性值
508
- */
509
- export declare interface DocxTextWatermark {
510
- /**
511
- * 水印文本内容
512
- */
513
- text: string;
514
- /**
515
- * 字体名称
516
- */
517
- font: string;
518
- /**
519
- * 是否加粗
520
- */
521
- bold: boolean;
522
- /**
523
- * 是否斜体
524
- */
525
- italic: boolean;
526
- /**
527
- * 文本颜色,如: '#000000'
528
- */
529
- color: string;
530
- /**
531
- * 文本大小,如: '12pt'
532
- */
533
- size: string;
534
- }
535
-
536
- export declare interface DocxThemeFont {
537
- typeface: string;
538
- }
539
-
540
- /**
541
- * 主题字体配置
542
- */
543
- export declare interface DocxThemeFontsScheme {
544
- /**
545
- * 标题字体
546
- */
547
- major: DocxThemeFontsSchemeItem;
548
- /**
549
- * 正文字体
550
- */
551
- minor: DocxThemeFontsSchemeItem;
552
- }
553
-
554
- /**
555
- * 主题字体Scheme配置
556
- */
557
- export declare interface DocxThemeFontsSchemeItem {
558
- /**
559
- * 西文字体
560
- */
561
- latin: DocxThemeFont;
562
- /**
563
- * 东亚字体
564
- */
565
- ea: DocxThemeFont;
566
- /**
567
- * 复杂文字字体
568
- */
569
- cs: DocxThemeFont;
570
- /**
571
- * 其他单独字体配置
572
- * key 表示script值
573
- * 例如:
574
- * <a:font script="Hans" typeface="黑体"/>
575
- * <a:font script="Jpan" typeface="HG明朝B"/>
576
- * <a:font script="Arab" typeface="Times New Roman"/>
577
- */
578
- font: Record<string, DocxThemeFont>;
579
- }
580
-
581
- /**
582
- * 主题配置
583
- */
584
- export declare interface DocxThemeOptions {
585
- /**
586
- * 主题字体配置
587
- * 这里的主题是兜底的默认配置,在文档自己的字体配置和全局的字体配置都没有的时候才会使用这里的配置
588
- */
589
- fonts?: DocxThemeFontsScheme;
590
- /**
591
- * 界面功能设置
592
- */
593
- preferences?: {
594
- /**
595
- * 默认主题字体
596
- */
597
- fonts?: {
598
- /**
599
- * 禁用全局主题字体设置功能
600
- */
601
- disabled?: boolean;
602
- /**
603
- * 设置默认主题字体的方法
604
- * @param data 数据源
605
- * @param id 文档唯一标识,不传则设置为全局配置。注意在实现时要结合disabled.global来判断是否能够设置全局配置
606
- * @returns 是否设置成功
607
- */
608
- set?: (data: DocxThemeFontsScheme, id?: string) => Promise<boolean>;
609
- /**
610
- * 获取主题字体数据的方法
611
- * @param id 文档唯一标识,不传则获取全局配置
612
- * @returns 数据源,如果没有则返回null
613
- */
614
- get?: (id?: string) => Promise<DocxThemeFontsScheme | null>;
615
- };
616
- };
617
- }
618
-
619
- /**
620
- * 通用目录项条目
621
- */
622
- export declare interface DocxTocContentItem {
623
- /**
624
- * 目录项 ID
625
- */
626
- id: string;
627
- /**
628
- * 目录项层级
629
- */
630
- level: number;
631
- /**
632
- * 目录项内容
633
- */
634
- content: {
635
- /**
636
- * 目录项内容
637
- */
638
- text: string;
639
- };
640
- }
641
-
642
- /**
643
- * 传统文档目录操作接口,
644
- * 可以调用接口更新目录和页码,
645
- * 也可以设置目录级别、页码等样式。
646
- */
647
- export declare interface DocxTocItem {
648
- /**
649
- * 获取目录信息
650
- * @returns 目录信息
651
- */
652
- getContent: () => Promise<DocxTocContentItem[]>;
653
- /**
654
- * 添加目录信息改变时的监听器
655
- * @param listener 监听器
656
- * @returns 取消监听器的函数
657
- */
658
- addContentChangedListener: (listener: (content: DocxTocContentItem[]) => void) => () => void;
659
- /**
660
- * 跳转到指定条目对应的正文位置
661
- * @param id 条目id
662
- * @returns 跳转是否成功
663
- */
664
- goto: (id: string) => Promise<boolean>;
665
- /**
666
- * 更新整个目录
667
- * @returns 是否更新成功
668
- */
669
- update: () => Promise<boolean>;
670
- /**
671
- * 仅更新页码
672
- * @returns 是否更新成功
673
- */
674
- updatePageNumbers: () => Promise<boolean>;
675
- /**
676
- * 设置目录层级
677
- * @param level 目录层级
678
- * @returns 是否设置成功
679
- */
680
- setLevel: (level: number) => Promise<boolean>;
681
- }
682
-
683
- /**
684
- * 传统文档目录接口,
685
- * 表示文档中的所有目录,
686
- * 需要注意的是,DocxTOCs 和 DocxTocItem 是两个不同的对象,前者代表代表目录集合(一个文档可以插入多个目录),后者单个目录。
687
- */
688
- export declare interface DocxTOCs {
689
- /**
690
- * 获取所有目录列表
691
- * @returns 目录列表
692
- */
693
- getAll: () => Promise<DocxTocItem[]>;
694
- /**
695
- * 获取某个目录
696
- * @param index 目录索引
697
- * @returns 目录
698
- */
699
- getOne: (index: number) => Promise<DocxTocItem | null>;
700
- /**
701
- * 删除所有目录
702
- * @returns 删除结果
703
- */
704
- deleteAll: () => Promise<boolean>;
705
- /**
706
- * 删除某个目录
707
- * @param index
708
- * @returns 删除结果
709
- */
710
- deleteOne: (index: number) => Promise<boolean>;
711
- /**
712
- * 添加目录
713
- * @param options 目录选项
714
- * @returns 添加结果
715
- */
716
- add: (options: {
717
- /**
718
- * 添加目录的位置,
719
- * 默认为当前选区位置。
720
- * 如果添加失败,如:当前选区信息不正确,会返回 false。
721
- * 如果添加成功,会返回 true。
722
- */
723
- range?: string;
724
- }) => Promise<boolean>;
725
- }
726
-
727
- /**
728
- * 文本水印操作接口,
729
- * 水印属于文档的一种特殊业务,水印是 OOXML 是形状的一种业务形态封装,
730
- * 这里的 getAll 方法等可能不准确。
731
- */
732
- export declare interface DocxWatermark {
733
- /**
734
- * 获取所有水印项目
735
- * @returns 水印项目数组
736
- */
737
- getAll: () => Promise<DocxWatermarkItem[]>;
738
- /**
739
- * 根据ID获取特定水印项目
740
- * @param id - 水印ID
741
- * @returns 水印项目或null
742
- */
743
- getOne: (id: string) => Promise<DocxWatermarkItem | null>;
744
- /**
745
- * 添加一个水印项目
746
- * @param item - 水印项目
747
- * @returns 新创建的水印ID
748
- */
749
- addOne: (item: DocxWatermarkItem) => Promise<string>;
750
- /**
751
- * 删除指定ID的水印项目,返回是否删除成功
752
- */
753
- deleteOne: (id: string) => Promise<boolean>;
754
- /**
755
- * @param id - 水印ID
756
- * @param value - 文本水印属性值
757
- * @returns 是否更新成功
758
- */
759
- updateText: (id: string, value: DocxTextWatermark) => Promise<boolean>;
760
- /**
761
- * @param id - 水印ID
762
- * @param value - 图片水印属性值
763
- * @returns 是否更新成功
764
- */
765
- updateImage: (id: string, value: DocxImageWatermark) => Promise<boolean>;
766
- /**
767
- * 删除所有水印项目
768
- * @returns 被删除的水印ID数组
769
- */
770
- deleteAll: () => Promise<string[]>;
771
- /**
772
- * 设置水印
773
- * TODO: 设置水印到某个节 section 上,目前只支持设置到整个文档上
774
- * @param id - 水印ID
775
- * @returns 是否设置成功
776
- */
777
- setWatermark: (id: string) => Promise<boolean>;
778
- }
779
-
780
- /**
781
- * 水印项目类型,可以是文本水印或图片水印
782
- */
783
- export declare type DocxWatermarkItem = {
784
- /**
785
- * 水印类型:文本
786
- */
787
- type: 'text';
788
- /**
789
- * 水印唯一标识,根据微软的习惯,水印 id 一般都是以 PowerPlusWaterMarkObject 开头的
790
- */
791
- id: string;
792
- /**
793
- * 文本水印属性值
794
- */
795
- value: DocxTextWatermark;
796
- } | {
797
- /**
798
- * 水印类型:图片
799
- */
800
- type: 'image';
801
- /**
802
- * 水印唯一标识,根据微软的习惯,水印 id 一般都是以 PowerPlusWaterMarkObject 开头的
803
- */
804
- id: string;
805
- /**
806
- * 图片水印属性值
807
- */
808
- value: DocxImageWatermark;
809
- };
810
-
811
- /**
812
- * 文本水印配置接口
813
- */
814
- export declare type DocxWatermarkOptions = EditorWatermarkOptions;
815
-
816
- /**
817
- * 文档窗口接口
818
- */
819
- export declare interface DocxWindow {
820
- /**
821
- * 滚动到指定位置
822
- * @param x
823
- * @param y
824
- */
825
- scrollTo: (x: number, y: number) => void;
826
- /**
827
- * 滚动到指定页面
828
- * @param page
829
- */
830
- scrollToPage: (page: number) => void;
831
- /**
832
- * 将传入的区域滚动到可视区域
833
- * @param range
834
- */
835
- scrollIntoView: (range: DocxRangeValue) => void;
836
- /**
837
- * 添加滚动监听器
838
- * @param listener
839
- */
840
- addScrollListener: (listener: (offset: {
841
- x: number;
842
- y: number;
843
- }) => void) => () => void;
844
- }
845
-
846
- /**
847
- * 文档缩放接口
848
- */
849
- export declare interface DocxZoom {
850
- /**
851
- * 获取当前缩放比例。
852
- * @returns
853
- */
854
- getPercentage: () => number;
855
- /**
856
- * 设置缩放比例,
857
- * 有效范围 10 ~ 500。
858
- * @param percentage
859
- */
860
- setPercentage: (percentage: number) => void;
861
- /**
862
- * 设置自动缩放模式,
863
- * none: 不自动缩放,默认值。
864
- * window: 根据窗口宽度自动缩放,页面宽度随着窗口宽度变化而变化
865
- * page: 根据页面尺寸自动缩放,将页面缩放到可以完整显示的大小
866
- * @param mode 缩放模式,可以是 'window' 或 'page'
867
- */
868
- setFitMode: (mode: 'none' | 'window' | 'page') => void;
869
- /**
870
- * 获取当前缩放模式。
871
- * @returns
872
- */
873
- getFitMode: () => 'none' | 'window' | 'page';
874
- /**
875
- * 放大。
876
- */
877
- zoomIn: () => void;
878
- /**
879
- * 缩小。
880
- */
881
- zoomOut: () => void;
882
- }
883
-
884
- /**
885
- * 编辑器内部资源请求配置
886
- */
887
- declare interface EditorAssetsOptions {
888
- /**
889
- * 通用资源请求代理配置,
890
- * 用于套件内部资源请求时代理请求
891
- */
892
- proxy: HTTPProxy;
893
- /**
894
- * 资源文件 URL 转换和解析
895
- */
896
- resolver: EditorAssetsResolver;
897
- /**
898
- * 图片处理器
899
- */
900
- imageProcessing: EditorAssetsOssImageProcessing;
901
- }
902
-
903
- /**
904
- * 基于对象存储的图片处理抽象
905
- */
906
- declare interface EditorAssetsOssImageProcessing {
907
- /**
908
- * 压缩图片的方法
909
- * @param imageUrl 图片的 URL
910
- * @param compressOptions 压缩配置,例如质量、最大宽度和最大高度
911
- * @returns 压缩后的图片 URL
912
- */
913
- compress: (imageUrl: string, compressOptions?: {
914
- quality?: number;
915
- maxWidth?: number;
916
- maxHeight?: number;
917
- }) => Promise<string>;
918
- /**
919
- * 裁切图片的方法
920
- * @param imageUrl 图片的 URL
921
- * @param cropOptions 裁切配置,例如宽度、高度和起始点
922
- * @returns 裁切后的图片 URL
923
- */
924
- crop: (imageUrl: string, cropOptions: {
925
- x?: number;
926
- y?: number;
927
- w: number;
928
- h: number;
929
- g?: EditorImageCropPoint;
930
- }) => Promise<string>;
931
- }
932
-
933
- declare interface EditorAssetsResolver {
934
- /**
935
- * 将资源文件 ID 转换为 URL 的方法
936
- * @param assetId 资源文件 ID
937
- * @returns 转换后的资源 URL ,如果无法转换则返回 null
938
- */
939
- resolveUrl: (assetId: string) => Promise<string | null>;
940
- /**
941
- * 从 URL 中解析资源文件 ID 的方法
942
- * @param url 资源 URL
943
- * @returns 解析出的资源文件 ID
944
- */
945
- parseId: (url: string) => Promise<string | null>;
946
- /**
947
- * 检查资源文件 ID 对应的文件是否准备就绪,
948
- * 在部分环境中,资源文件需要异步导入,在编辑器加载的时候可能还未准备就绪
949
- * @param assetId 资源文件 ID
950
- * @returns
951
- */
952
- checkAssetReady: (assetId: string) => Promise<boolean> | boolean;
953
- }
954
-
955
- /**
956
- * 品牌相关设置,
957
- * 用于在套件中展示品牌外露信息
958
- */
959
- declare interface EditorBrandOptions {
960
- /**
961
- * 需要显示在品牌展示位的内容,按数组顺序显示
962
- */
963
- content: Array<{
964
- type: 'image';
965
- src: string;
966
- } | {
967
- type: 'text';
968
- content: string;
969
- color?: string;
970
- }>;
971
- /**
972
- * 品牌展示位的布局信息
973
- */
974
- layout: {
975
- width: string;
976
- height: string;
977
- };
978
- }
979
-
980
- /**
981
- * 单条评论数据
982
- */
983
- declare interface EditorCommentItem {
984
- /**
985
- * 评论 ID
986
- */
987
- id: string;
988
- /**
989
- * 评论用户信息
990
- */
991
- user: {
992
- id: string;
993
- name: string;
994
- };
995
- content: {
996
- text: string;
997
- };
998
- }
999
-
1000
- declare interface EditorComments {
1001
- /**
1002
- * 检查是否有评论
1003
- * @returns
1004
- */
1005
- hasAny: () => Promise<boolean>;
1006
- /**
1007
- * 获取评论列表
1008
- * @returns
1009
- */
1010
- getAll: () => Promise<EditorCommentItem[]>;
1011
- /**
1012
- * 获取单个评论
1013
- * @param commentId
1014
- * @returns
1015
- */
1016
- getOne: (commentId: string) => Promise<EditorCommentItem | null>;
1017
- /**
1018
- * 添加内容
1019
- * @param options
1020
- * @returns
1021
- */
1022
- add: (options: {
1023
- /**
1024
- * 评论内容
1025
- */
1026
- text: string;
1027
- /**
1028
- * 默认评论是添加到当前选区上,也可以指定一个区域
1029
- */
1030
- range?: string;
1031
- }) => Promise<string | null>;
1032
- /**
1033
- * 删除所有评论
1034
- * @returns
1035
- */
1036
- deleteAll: () => Promise<boolean>;
1037
- /**
1038
- * 删除单条评论
1039
- */
1040
- deleteOne: (commentId: string) => Promise<boolean>;
1041
- }
1042
-
1043
- /**
1044
- * 编辑器评论初始化配置
1045
- */
1046
- declare interface EditorCommentsOptions {
1047
- /**
1048
- * 评论作者信息,如果这里的信息为空,将会使用 user 信息
1049
- */
1050
- author?: {
1051
- /**
1052
- * 评论作者 ID
1053
- */
1054
- id: string;
1055
- /**
1056
- * 评论作者信息
1057
- */
1058
- name: string;
1059
- /**
1060
- * 评论作者头像
1061
- */
1062
- avatar?: string;
1063
- };
1064
- /**
1065
- * 显示的视图配置
1066
- */
1067
- view?: {
1068
- /**
1069
- * 评论显示模式,
1070
- * none: 不显示评论,默认值。
1071
- * card: 评论以卡片形式显示。
1072
- */
1073
- mode: 'none' | 'card';
1074
- };
1075
- }
1076
-
1077
- declare interface EditorContent {
1078
- /**
1079
- * 设置编辑器内容
1080
- * @param content
1081
- */
1082
- setContent: (content: string | ArrayBuffer) => Promise<void>;
1083
- /**
1084
- * 获取编辑器内容
1085
- */
1086
- getContent: () => Promise<EditorDelta>;
1087
- /**
1088
- * 添加监听,当内容发生变化时触发监听,传入 Delta
1089
- * @param listener
1090
- */
1091
- addChangeListener: (listener: (change: EditorDelta) => void) => () => void;
1092
- }
1093
-
1094
- declare interface EditorDelta {
1095
- compose: (other: EditorDelta, isDocument?: boolean) => EditorDelta;
1096
- transform: (other: EditorDelta, priority?: boolean) => EditorDelta;
1097
- stringify: () => string;
1098
- length: number;
1099
- }
1100
-
1101
- /**
1102
- * 编辑器嵌入对象
1103
- */
1104
- declare interface EditorEmbeddedObject {
1105
- /**
1106
- * 嵌入的对象 url
1107
- */
1108
- url: string;
1109
- /**
1110
- * 嵌入对象的类型描述
1111
- */
1112
- type?: string;
1113
- /**
1114
- * 嵌入对象的名
1115
- */
1116
- name?: string;
1117
- }
1118
-
1119
- /**
1120
- * 编辑器嵌入对象抽象类
1121
- */
1122
- declare interface EditorEmbeddedObjectOptions {
1123
- /**
1124
- * 执行打开嵌入对象操作,
1125
- * 如果已经处理了打开操作,返回 true,否则返回 false,
1126
- * 如果返回 false,编辑器会继续后续默认的打开操作。
1127
- * @param object
1128
- * @returns
1129
- */
1130
- open: (object: EditorEmbeddedObject) => Promise<boolean>;
1131
- /**
1132
- * 嵌入对象的页面功能
1133
- */
1134
- ui?: {
1135
- /**
1136
- * 预览功能
1137
- */
1138
- preview?: {
1139
- disabled?: boolean;
1140
- };
1141
- /**
1142
- * 下载功能
1143
- */
1144
- download?: {
1145
- disabled?: boolean;
1146
- };
1147
- };
1148
- }
1149
-
1150
- declare interface EditorFontFace {
1151
- /**
1152
- * 字体的名称,用于在用户界面上显示的名称
1153
- */
1154
- name: string;
1155
- /**
1156
- * 字体族
1157
- */
1158
- family: string;
1159
- /**
1160
- * 用于加载字体的 URL
1161
- */
1162
- url?: string;
1163
- /**
1164
- * 是否为受版权保护的字体,如果是在用户界面上会有所标识。
1165
- */
1166
- isCopyrightProtected: boolean;
1167
- /**
1168
- * 字体元数据
1169
- */
1170
- meta: EditorFontMeta;
1171
- }
1172
-
1173
- /**
1174
- * 字体元数据
1175
- */
1176
- declare interface EditorFontMeta {
1177
- head: {
1178
- unitsPerEm: number;
1179
- };
1180
- hhea: {
1181
- ascender: number;
1182
- descender: number;
1183
- lineGap: number;
1184
- };
1185
- vhea?: {
1186
- ascender: number;
1187
- descender: number;
1188
- lineGap: number;
1189
- };
1190
- os2: {
1191
- usWeightClass?: number;
1192
- usWidthClass?: number;
1193
- italic?: boolean;
1194
- isSymbol?: boolean;
1195
- ulCodePageRange: [number, number];
1196
- };
1197
- /**
1198
- * opentype中没有强制要求必须有en条目,只能确定name下的value的类型是对象
1199
- */
1200
- name: {
1201
- preferredFamily?: Record<string, string>;
1202
- preferredSubfamily?: Record<string, string>;
1203
- fontFamily?: Record<string, string>;
1204
- fontSubfamily?: Record<string, string>;
1205
- fullName?: Record<string, string>;
1206
- postScriptName?: Record<string, string>;
1207
- };
1208
- }
1209
-
1210
- /**
1211
- * i18n 相关设置
1212
- */
1213
- declare interface EditorI18nOptions {
1214
- /**
1215
- * 语言,默认使用浏览器当前环境中的语言
1216
- */
1217
- language?: string;
1218
- /**
1219
- * 文本方向,默认根据语言自动适配
1220
- */
1221
- direction?: 'ltr' | 'rtl';
1222
- }
1223
-
1224
- declare type EditorImageCropPoint = 'nw' | 'north' | 'ne' | 'west' | 'center' | 'east' | 'sw' | 'south' | 'se';
1225
-
1226
- /**
1227
- * 链接配置,抽象打开链接等操作
1228
- */
1229
- declare interface EditorLinkOptions {
1230
- /**
1231
- * 打开链接,如果取消了打开链接操作,返回 false
1232
- * @param url
1233
- * @param target
1234
- * @returns
1235
- */
1236
- open: (url: string, target: string) => Promise<boolean>;
1237
- }
1238
-
1239
- /**
1240
- * 菜单栏自定义按钮配置
1241
- */
1242
- declare type EditorMenuCustomButton = {
1243
- /**
1244
- * 按钮名称
1245
- */
1246
- name: string;
1247
- /**
1248
- * 链接
1249
- */
1250
- type: 'link';
1251
- /**
1252
- * 按钮文本
1253
- */
1254
- text: string;
1255
- /**
1256
- * 链接地址
1257
- */
1258
- url: string;
1259
- } | {
1260
- /**
1261
- * 按钮名称
1262
- */
1263
- name: string;
1264
- /**
1265
- * 按钮,点击后触发 callback 回调
1266
- */
1267
- type: 'button';
1268
- /**
1269
- * 按钮文本
1270
- */
1271
- label: string;
1272
- /**
1273
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1274
- */
1275
- icon?: string;
1276
- /**
1277
- * 按钮点击事件
1278
- */
1279
- callback: () => void;
1280
- };
1281
-
1282
- /**
1283
- * 菜单栏二级以下的菜单入口
1284
- */
1285
- declare interface EditorMenuEntryButton {
1286
- type: 'entry';
1287
- /**
1288
- * 菜单名称
1289
- */
1290
- name: string;
1291
- /**
1292
- * 菜单图标
1293
- */
1294
- icon?: string;
1295
- }
1296
-
1297
- /**
1298
- * 菜单栏一级菜单配置,此处用于定义一级菜单的操作入口,
1299
- * 一级菜单在鼠标悬停时展示二级列表
1300
- */
1301
- declare interface EditorMenuEntryConfig<TName extends string> {
1302
- /**
1303
- * 一级菜单名称
1304
- */
1305
- name: string;
1306
- /**
1307
- * 二级菜单定义,定一个二维数组,用于定义二级菜单的结构,
1308
- * 将第一层数组中的所有按钮放到一个区域内用分隔符隔开,
1309
- * 第二层数组为按钮的定义,可以是功能按钮也可以是一个下拉入口。
1310
- */
1311
- children: Array<EditorMenuFeatureButton<TName> | EditorMenuEntryButton>[];
1312
- }
1313
-
1314
- /**
1315
- * 菜单栏功能按钮配置
1316
- */
1317
- declare type EditorMenuFeatureButton<TName extends string> = {
1318
- /**
1319
- * 隐藏按钮,用作在需要隐藏菜单栏时定义
1320
- */
1321
- type: 'hidden';
1322
- /**
1323
- * 按钮名称
1324
- */
1325
- name: TName;
1326
- } | {
1327
- type: 'button';
1328
- /**
1329
- * 按钮名称
1330
- */
1331
- name: TName;
1332
- /**
1333
- * 按钮标签(显示文本)
1334
- */
1335
- label: string;
1336
- /**
1337
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1338
- */
1339
- icon?: string;
1340
- };
1341
-
1342
- /**
1343
- * 菜单栏按钮配置
1344
- */
1345
- declare type EditorMenuFeatureButtonConfig<TName extends string> = Record<TName, EditorMenuFeatureButton<TName>>;
1346
-
1347
- /**
1348
- * 菜单栏相关配置,目前菜单栏不是所有套件都支持,
1349
- * 菜单栏是指的编辑器最上放可以展开二级菜单的那一栏。
1350
- */
1351
- declare interface EditorMenuOptions<TName extends string> {
1352
- /**
1353
- * 菜单栏是否显示
1354
- */
1355
- visible?: boolean;
1356
- /**
1357
- * 是否禁用菜单栏所有功能
1358
- */
1359
- disabled?: boolean;
1360
- /**
1361
- * 菜单栏一级菜单配置
1362
- */
1363
- entries?: EditorMenuEntryConfig<TName>[];
1364
- /**
1365
- * 菜单栏功能按钮配置
1366
- */
1367
- features?: Partial<EditorMenuFeatureButtonConfig<TName>>;
1368
- /**
1369
- * 自定义按钮配置
1370
- */
1371
- custom?: EditorMenuCustomButton[];
1372
- }
1373
-
1374
- /**
1375
- * 编辑器基础模式接口
1376
- */
1377
- declare interface EditorMode {
1378
- /**
1379
- * 获取当前编辑器模式
1380
- */
1381
- getModeType: () => EditorModeType;
1382
- /**
1383
- * 设置编辑器权限模式,仅在 `standard` 模式下有效
1384
- * @param permission
1385
- */
1386
- setStandardRole: (standardRole: EditorStandardRole) => Promise<void>;
1387
- /**
1388
- * 获取当前编辑器权限模式,仅在 `standard` 模式下有效
1389
- */
1390
- getStandardRole: () => EditorStandardRole;
1391
- }
1392
-
1393
- /**
1394
- * 编辑器初始化的时相关的模式配置
1395
- */
1396
- declare type EditorModeOptions = {
1397
- type: 'standard';
1398
- /**
1399
- * 当 mode 为 `standard` 时,可以设置当前编辑器的权限模式
1400
- */
1401
- role?: EditorStandardRole;
1402
- } | {
1403
- type: 'preview';
1404
- } | {
1405
- type: 'presentation';
1406
- };
1407
-
1408
- /**
1409
- * 编辑器模式
1410
- * - `standard` 标准模式,会根据用户权限配置不同的功能
1411
- * - `preview` 预览模式,只能查看内容
1412
- * - `presentation` 演示模式,用作演示场景,演示模式下部分套件可以进行一些简单的编辑操作
1413
- */
1414
- declare type EditorModeType = 'standard' | 'preview' | 'presentation';
1415
-
1416
- /**
1417
- * 编辑器初始化通用参数
1418
- */
1419
- declare interface EditorOptions {
1420
- /**
1421
- * 编辑器初始化内容,可以是 string 或者 ArrayBuffer,
1422
- * 也可以通过异步 Promise 加载
1423
- */
1424
- content: MaybePromiseValue<string | ArrayBuffer>;
1425
- /**
1426
- * 初始化时的编辑模式,默认为 `preview`
1427
- */
1428
- mode?: EditorModeOptions;
1429
- /**
1430
- * 当前操作编辑器的用户信息
1431
- */
1432
- user?: EditorUserOptions;
1433
- /**
1434
- * i18n 相关设置
1435
- */
1436
- i18n?: EditorI18nOptions;
1437
- /**
1438
- * 品牌相关设置
1439
- */
1440
- brand?: EditorBrandOptions;
1441
- /**
1442
- * 工具栏相关设置
1443
- */
1444
- toolbar?: EditorToolbarOptions;
1445
- /**
1446
- * 编辑器内部资源请求配置
1447
- */
1448
- assets?: EditorAssetsOptions;
1449
- /**
1450
- * 编辑器内部超链接设置
1451
- */
1452
- link?: EditorLinkOptions;
1453
- /**
1454
- * 嵌入对象相关配置
1455
- */
1456
- embeddedObject?: EditorEmbeddedObjectOptions;
1457
- /**
1458
- * 初始化水印配置
1459
- */
1460
- watermark?: EditorWatermarkOptions;
1461
- /**
1462
- * 编辑器打印设置
1463
- */
1464
- print?: EditorPrintOptions;
1465
- /**
1466
- * 编辑器评论设置
1467
- */
1468
- comments?: EditorCommentsOptions;
1469
- }
1470
-
1471
- /**
1472
- * 大纲目录接口
1473
- */
1474
- declare interface EditorOutline<Content = unknown> {
1475
- /**
1476
- * 设置大纲目录是否可见
1477
- * @param visible 是否可见
1478
- */
1479
- setVisible: (visible: boolean) => void;
1480
- /**
1481
- * 获取目录信息
1482
- * @returns 目录信息
1483
- */
1484
- getContent: () => Promise<EditorOutlineItem<Content>[]>;
1485
- /**
1486
- * 添加目录信息改变时的监听器
1487
- * @param listener 监听器
1488
- * @returns 取消监听器的函数
1489
- */
1490
- addChangedListener: (listener: (content: EditorOutlineItem<Content>[]) => void) => () => void;
1491
- /**
1492
- * 跳转到指定条目对应的正文位置
1493
- * @param id 条目id
1494
- * @returns 跳转是否成功
1495
- */
1496
- goto: (id: string) => Promise<boolean>;
1497
- }
1498
-
1499
- /**
1500
- * 大纲目录项条目
1501
- */
1502
- declare interface EditorOutlineItem<Content = unknown> {
1503
- /**
1504
- * 目录项 ID
1505
- */
1506
- id: string;
1507
- /**
1508
- * 目录项层级
1509
- */
1510
- level: number;
1511
- /**
1512
- * 目录项内容
1513
- */
1514
- content: Content;
1515
- }
1516
-
1517
- /**
1518
- * 大纲目录初始化参数,
1519
- * 用于配置大纲目录的行为和外观。
1520
- */
1521
- declare interface EditorOutlineOptions {
1522
- /**
1523
- * 初始化编辑器时是否显示大纲目录,
1524
- * 默认为 false。
1525
- */
1526
- visible?: boolean;
1527
- }
1528
-
1529
- /**
1530
- * 编辑器打印设置
1531
- */
1532
- declare interface EditorPrintOptions {
1533
- /**
1534
- * 部分套件如果绕过了编辑器预设的打印接口,直接通过拉起了浏览器的打印页面,这时打印页面无法获取到编辑器的内容,
1535
- * 这种情况下就会 fallback 到这个 options 上,显示一个提示信息。
1536
- */
1537
- fallback?: {
1538
- message: string;
1539
- };
1540
- /**
1541
- * 是否禁用打印功能
1542
- */
1543
- disabled?: boolean;
1544
- }
1545
-
1546
- /**
1547
- * 编辑器通用接口
1548
- */
1549
- declare abstract class EditorSDK {
1550
- protected options: EditorOptions;
1551
- constructor(options: EditorOptions);
1552
- /**
1553
- * 初始化编辑器、加载插件等操作。
1554
- */
1555
- abstract init(): Promise<void>;
1556
- /**
1557
- * 销毁编辑器
1558
- */
1559
- abstract destroy(): Promise<void>;
1560
- /**
1561
- * 将编辑器挂载到指定的根节点上,并渲染,
1562
- * mount 应该在 init 之后调用。
1563
- * @param root
1564
- */
1565
- abstract mount(root: HTMLElement): Promise<void>;
1566
- /**
1567
- * 从根节点卸载编辑器,对应 `mount` 操作
1568
- */
1569
- abstract unmount(): Promise<void>;
1570
- /**
1571
- * 编辑器内容相关接口
1572
- */
1573
- abstract get content(): EditorContent;
1574
- /**
1575
- * 编辑器模式相关接口
1576
- */
1577
- abstract get mode(): EditorMode;
1578
- /**
1579
- * 编辑器评论相关接口
1580
- */
1581
- abstract get comments(): EditorComments;
1582
- }
1583
-
1584
- /**
1585
- * 编辑器在 `standard` 模式下的权限模式
1586
- * - `editor` 编辑模式
1587
- * - `viewer` 阅读模式
1588
- * - `reviewer` 评论模式
1589
- */
1590
- declare type EditorStandardRole = 'editor' | 'viewer' | 'reviewer';
1591
-
1592
- /**
1593
- * 文本格式接口,
1594
- * 包括设置、读取选区内文本的 BIUS、family、大小、颜色等
1595
- */
1596
- declare interface EditorText<Color = string, TRangeValue = unknown> {
1597
- /**
1598
- * 获取当前选区或指定选区内的文本格式状态
1599
- */
1600
- get: (range?: TRangeValue) => Partial<EditorTextFormat<Color>>;
1601
- /**
1602
- * 将文本的格式应用到当前选区或指定选区上,
1603
- * 传入的非空字段会覆盖对应的属性,其他没有传入的属性会保持不变。
1604
- * @param range
1605
- * @param format
1606
- * @returns
1607
- */
1608
- apply: (format: Partial<EditorTextFormat<Color>>, range?: TRangeValue) => Partial<EditorTextFormat<Color>>;
1609
- /**
1610
- * 清空当前选区或指定选区内文本的格式,将文本格式恢复到默认状态
1611
- * @param range
1612
- * @returns
1613
- */
1614
- clear: (range: TRangeValue) => void;
1615
- }
1616
-
1617
- /**
1618
- * 文本格式状态
1619
- */
1620
- declare interface EditorTextFormat<Color = string> {
1621
- /**
1622
- * 粗体
1623
- */
1624
- bold: boolean;
1625
- /**
1626
- * 斜体
1627
- */
1628
- italic: boolean;
1629
- /**
1630
- * 下划线
1631
- */
1632
- underline: boolean;
1633
- /**
1634
- * 删除线
1635
- */
1636
- strike: boolean;
1637
- /**
1638
- * 文本颜色
1639
- */
1640
- color: Color;
1641
- /**
1642
- * 文本背景高亮颜色
1643
- */
1644
- highlight: Color;
1645
- /**
1646
- * 文本大小
1647
- */
1648
- size: number | string;
1649
- /**
1650
- * 文本名称
1651
- */
1652
- family: string;
1653
- }
1654
-
1655
- /**
1656
- * 文本格式初始化选项
1657
- */
1658
- declare interface EditorTextOptions<Color = string> {
1659
- /**
1660
- * 当前编辑器默认的文本格式
1661
- */
1662
- defaultFormat?: Partial<EditorTextFormat<Color>>;
1663
- }
1664
-
1665
- /**
1666
- * 工具栏自定义按钮配置
1667
- */
1668
- declare interface EditorToolbarCustomButton extends Omit<EditorToolbarFeatureButton, 'name'> {
1669
- /**
1670
- * 自定义按钮名称
1671
- */
1672
- name: string;
1673
- /**
1674
- * 按钮点击事件
1675
- */
1676
- callback: () => void;
1677
- /**
1678
- * 按钮在工具栏中的位置,默认添加到工具栏所有按钮后面
1679
- */
1680
- index?: number;
1681
- }
1682
-
1683
- /**
1684
- * 工具栏自定义按钮配置
1685
- */
1686
- declare interface EditorToolbarCustomButtonConfig {
1687
- /**
1688
- * 按钮配置
1689
- */
1690
- [key: string]: EditorToolbarCustomButton;
1691
- }
1692
-
1693
- /**
1694
- * 工具栏内置功能按钮配置
1695
- */
1696
- declare interface EditorToolbarFeatureButton {
1697
- /**
1698
- * 按钮类型
1699
- */
1700
- name: EditorToolbarFeatureButtonName;
1701
- /**
1702
- * 按钮标签(显示文本)
1703
- */
1704
- label?: string;
1705
- /**
1706
- * 按钮图标,可以是 base64 的图片信息,也可以是图片 url
1707
- */
1708
- icon?: string;
1709
- /**
1710
- * 按钮是否禁用
1711
- */
1712
- disabled?: boolean;
1713
- /**
1714
- * 按钮提示文本
1715
- */
1716
- tooltip?: string;
1717
- }
1718
-
1719
- /**
1720
- * 工具栏内置功能按钮配置
1721
- */
1722
- declare type EditorToolbarFeatureButtonConfig = {
1723
- [key in EditorToolbarFeatureButtonName]?: EditorToolbarFeatureButton;
1724
- };
1725
-
1726
- /**
1727
- * 工具栏内置功能按钮
1728
- */
1729
- declare type EditorToolbarFeatureButtonName =
1730
- /**
1731
- * 加粗
1732
- */
1733
- 'bold'
1734
- /**
1735
- * 斜体
1736
- */
1737
- | 'italic'
1738
- /**
1739
- * 下划线
1740
- */
1741
- | 'underline'
1742
- /**
1743
- * 删除线
1744
- */
1745
- | 'strikethrough'
1746
- /**
1747
- * 插入图片
1748
- */
1749
- | 'insertImage'
1750
- /**
1751
- * 插入链接
1752
- */
1753
- | 'insertLink'
1754
- /**
1755
- * 限制编辑
1756
- */
1757
- | 'restriction';
1758
-
1759
- /**
1760
- * 工具栏相关设置,可以控制工具栏的显示内容
1761
- */
1762
- declare interface EditorToolbarOptions {
1763
- /**
1764
- * 控制工具栏显隐状态
1765
- */
1766
- visible?: boolean;
1767
- /**
1768
- * 是否禁用工具栏所有功能
1769
- */
1770
- disabled?: boolean;
1771
- /**
1772
- * 现有按钮的功能配置
1773
- */
1774
- features?: EditorToolbarFeatureButtonConfig;
1775
- /**
1776
- * 自定义按钮
1777
- */
1778
- custom?: EditorToolbarCustomButtonConfig;
1779
- }
1780
-
1781
- /**
1782
- * 操作当前编辑器的用户信息
1783
- */
1784
- declare interface EditorUserOptions {
1785
- /**
1786
- * 用户 ID,用于标识用户
1787
- */
1788
- uid: string;
1789
- /**
1790
- * 用户名
1791
- */
1792
- name: string;
1793
- /**
1794
- * 用户头像
1795
- */
1796
- avatar?: string;
1797
- }
1798
-
1799
- /**
1800
- * 编辑器外部水印信息
1801
- */
1802
- declare interface EditorWatermarkOptions {
1803
- /**
1804
- * 获取用作初始化使用的默认水印
1805
- */
1806
- getWatermark: () => MaybePromiseValue<EditorWatermarkResource | null>;
1807
- /**
1808
- * 是否必须,如果为 true,编辑器将在初始化时强制渲染水印,
1809
- * 水印配置信息加载失败将导致编辑器初始化失败
1810
- */
1811
- required?: boolean;
1812
- }
1813
-
1814
- declare type EditorWatermarkResource = {
1815
- type: 'data-url';
1816
- url: string;
1817
- } | {
1818
- type: 'object-url';
1819
- url: string;
1820
- };
1821
-
1822
- /**
1823
- * 请求、响应头
1824
- */
1825
- declare type HTTPHeaders = Record<string, string | number | boolean | undefined>;
1826
-
1827
- /**
1828
- * 请求方法
1829
- */
1830
- declare type HTTPMethod = 'get' | 'GET' | 'delete' | 'DELETE' | 'head' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH';
1831
-
1832
- /**
1833
- * HTTP 代理,用于抽象 HTTP 请求,
1834
- * 将请求代理编辑器外部
1835
- */
1836
- declare interface HTTPProxy {
1837
- /**
1838
- * 发送请求,如果需要做请求、响应拦截,需要在 proxy.interceptors 中实现,
1839
- * 套件内使用 proxy 发送请求的方式应该为类似如下方式:
1840
- * ```ts
1841
- * const raw = await proxy.request(proxy.interceptors?.request?.intercept(requestConfig) ?? requestConfig);
1842
- * const response = proxy.interceptors?.response?.intercept(raw) ?? raw;
1843
- * ```
1844
- *
1845
- * 套件内如果需要通过其他方式发送请求,比如通过浏览器的 Image API 加载,可以使用 proxy.interceptors?.request?.intercept(requestConfig) 处理请求配置
1846
- * @param config
1847
- * @returns
1848
- */
1849
- request: <D = unknown, T = unknown>(config: HTTPRequestConfig<D>) => Promise<HTTPResponse<T>>;
1850
- /**
1851
- * 请求、响应拦截器,
1852
- *
1853
- */
1854
- interceptors?: {
1855
- request?: {
1856
- /**
1857
- * 请求拦截器,传入请求配置,返回处理后的请求配置
1858
- * @param requestConfig 请求配置
1859
- * @returns
1860
- */
1861
- intercept: <D = unknown>(requestConfig: HTTPRequestConfig<D>) => HTTPRequestConfig<D>;
1862
- };
1863
- response?: {
1864
- /**
1865
- * 响应拦截器,传入响应,返回处理后的响应
1866
- * @param response
1867
- * @returns
1868
- */
1869
- intercept: <T = unknown>(response: HTTPResponse<T>) => HTTPResponse<T>;
1870
- };
1871
- };
1872
- /**
1873
- * 创建一个新的 HTTP 代理,用于为不同请求场景创建不同的代理
1874
- * @param id
1875
- * @returns
1876
- */
1877
- create: (id: string) => Promise<HTTPProxy>;
1878
- }
1879
-
1880
- /**
1881
- * 请求配置
1882
- */
1883
- declare interface HTTPRequestConfig<Data = unknown> {
1884
- /**
1885
- * 请求地址
1886
- */
1887
- url: string;
1888
- /**
1889
- * 请求方法
1890
- */
1891
- method?: HTTPMethod;
1892
- /**
1893
- * 请求携带数据,主要是 POST、PUT、PATCH 等方法的请求数据
1894
- */
1895
- data?: Data;
1896
- /**
1897
- * 期望的响应数据类型
1898
- */
1899
- responseType?: HTTPResponseType;
1900
- /**
1901
- * 请求头
1902
- */
1903
- headers?: HTTPHeaders;
1904
- }
1905
-
1906
- /**
1907
- * 响应数据
1908
- */
1909
- declare interface HTTPResponse<Data = unknown> {
1910
- /**
1911
- * 响应数据 body
1912
- */
1913
- data: Data;
1914
- /**
1915
- * 响应状态码
1916
- */
1917
- status: number;
1918
- /**
1919
- * 响应头
1920
- */
1921
- headers: HTTPHeaders;
1922
- }
1923
-
1924
- /**
1925
- * 请求返回类型
1926
- */
1927
- declare type HTTPResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
1928
-
1929
- declare type MaybePromiseValue<T> = T | Promise<T>;
1930
-
1931
- export { }