@hailin-zheng/editor-core 2.2.3 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. package/editor.css +694 -610
  2. package/index-cjs.d.ts +32 -31
  3. package/index-cjs.js +22649 -22205
  4. package/index-cjs.js.map +1 -1
  5. package/index.d.ts +32 -31
  6. package/index.js +22647 -22207
  7. package/index.js.map +1 -1
  8. package/med_editor/doc-editor.d.ts +493 -464
  9. package/med_editor/doc-rule.d.ts +46 -46
  10. package/med_editor/editor-core.d.ts +21 -21
  11. package/med_editor/framework/code-interpreter/ast-parser.d.ts +4 -4
  12. package/med_editor/framework/code-interpreter/document-eval-func.d.ts +18 -18
  13. package/med_editor/framework/code-interpreter/dynamic-execute.d.ts +23 -23
  14. package/med_editor/framework/doc-layout/document-arrange.d.ts +86 -86
  15. package/med_editor/framework/doc-layout/paragraph-arrange.d.ts +107 -107
  16. package/med_editor/framework/document-change.d.ts +314 -295
  17. package/med_editor/framework/document-combine.d.ts +24 -24
  18. package/med_editor/framework/document-comment.d.ts +38 -38
  19. package/med_editor/framework/document-context.d.ts +138 -133
  20. package/med_editor/framework/document-event.d.ts +251 -251
  21. package/med_editor/framework/document-input-cursor.d.ts +32 -43
  22. package/med_editor/framework/document-paginator.d.ts +46 -46
  23. package/med_editor/framework/document-svg.d.ts +36 -36
  24. package/med_editor/framework/document-template.d.ts +13 -13
  25. package/med_editor/framework/document-textline-mode.d.ts +6 -6
  26. package/med_editor/framework/element-define.d.ts +413 -409
  27. package/med_editor/framework/element-event-define.d.ts +104 -107
  28. package/med_editor/framework/element-props.d.ts +343 -343
  29. package/med_editor/framework/element-reader.d.ts +20 -20
  30. package/med_editor/framework/element-serialize.d.ts +36 -36
  31. package/med_editor/framework/element-type-handler.d.ts +8 -9
  32. package/med_editor/framework/history/element-trace-manage.d.ts +107 -107
  33. package/med_editor/framework/history/element-trace-tracking.d.ts +89 -89
  34. package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +19 -19
  35. package/med_editor/framework/impl/comments/comment-content-impl.d.ts +39 -39
  36. package/med_editor/framework/impl/comments/comment-element-impl.d.ts +24 -24
  37. package/med_editor/framework/impl/comments/comments-container-impl.d.ts +19 -19
  38. package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +19 -19
  39. package/med_editor/framework/impl/data-element/data-container-impl.d.ts +25 -0
  40. package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +15 -15
  41. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +32 -32
  42. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +96 -96
  43. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +26 -26
  44. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +23 -23
  45. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +17 -17
  46. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +23 -23
  47. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +21 -21
  48. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +22 -22
  49. package/med_editor/framework/impl/data-element/qrcode.d.ts +93 -93
  50. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +16 -16
  51. package/med_editor/framework/impl/document/doc-body-impl.d.ts +19 -19
  52. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +22 -22
  53. package/med_editor/framework/impl/document/doc-container-impl.d.ts +7 -7
  54. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +19 -19
  55. package/med_editor/framework/impl/document/doc-header-impl.d.ts +19 -19
  56. package/med_editor/framework/impl/document/doc-impl.d.ts +72 -72
  57. package/med_editor/framework/impl/index.d.ts +40 -39
  58. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +31 -31
  59. package/med_editor/framework/impl/media-formula/permanent-teeth.d.ts +34 -34
  60. package/med_editor/framework/impl/paragraph/p-impl.d.ts +38 -38
  61. package/med_editor/framework/impl/picture/RectEle.d.ts +44 -44
  62. package/med_editor/framework/impl/picture/image-impl.d.ts +24 -24
  63. package/med_editor/framework/impl/radio/radio-impl.d.ts +17 -17
  64. package/med_editor/framework/impl/svg/svg-impl.d.ts +20 -20
  65. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +18 -18
  66. package/med_editor/framework/impl/symbol/p-symbol-impl.d.ts +16 -16
  67. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +20 -20
  68. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +15 -15
  69. package/med_editor/framework/impl/table/table-cell-impl.d.ts +34 -34
  70. package/med_editor/framework/impl/table/table-impl.d.ts +49 -49
  71. package/med_editor/framework/impl/table/table-row-impl.d.ts +27 -27
  72. package/med_editor/framework/impl/table/table-split-cell-patch.d.ts +20 -20
  73. package/med_editor/framework/impl/table/table-split-cell.d.ts +93 -92
  74. package/med_editor/framework/impl/table/table-util.d.ts +180 -180
  75. package/med_editor/framework/impl/text/text-impl.d.ts +34 -34
  76. package/med_editor/framework/impl/text/track-run-impl.d.ts +27 -27
  77. package/med_editor/framework/infrastructure/event-subject.d.ts +57 -56
  78. package/med_editor/framework/infrastructure/notify.d.ts +13 -13
  79. package/med_editor/framework/print/document-print-offscreen.d.ts +58 -58
  80. package/med_editor/framework/print/document-print.d.ts +18 -18
  81. package/med_editor/framework/render-context.d.ts +111 -111
  82. package/med_editor/framework/render-define.d.ts +141 -141
  83. package/med_editor/framework/selection/document-selection.d.ts +92 -91
  84. package/med_editor/framework/selection/range-util.d.ts +36 -36
  85. package/med_editor/framework/selection/selection-overlays.d.ts +32 -32
  86. package/med_editor/framework/suggestions/input-suggestions.d.ts +29 -0
  87. package/med_editor/framework/util/adjust-viewport-elements.d.ts +12 -12
  88. package/med_editor/framework/util/common-util.d.ts +76 -76
  89. package/med_editor/framework/util/document-segmenter.d.ts +2 -2
  90. package/med_editor/framework/util/element-util.d.ts +410 -410
  91. package/med_editor/framework/vnode/editor-calendar-vnode.d.ts +42 -42
  92. package/package.json +19 -19
@@ -1,464 +1,493 @@
1
- import { ContentMenuItem } from './framework/element-event-define';
2
- import { ElementReader } from './framework/element-reader';
3
- import { SelectionState } from './framework/selection/document-selection';
4
- import { Element, ICancelTokenFn, LeafElement, MarginProps, OrientType, PageLayoutMode, Position, Rect, SerializeProps, ViewOptions } from './framework/element-define';
5
- import { DataElementInlineGroup, DataElementLeaf, DocumentElement, ParagraphElement, TableCellElement, TableElement, TableRowElement } from './framework/impl';
6
- import { CellDiagonal, ParagraphNumberType, ParagraphProps, TextProps } from './framework/element-props';
7
- import { EditorContext } from './framework/document-context';
8
- import { ElementTrackManage } from './framework/history/element-trace-manage';
9
- import { Subject } from './framework/infrastructure/event-subject';
10
- import { init, VNode } from "snabbdom";
11
- import { IVNodeRenderFunc } from "./editor-core";
12
- import { DocRule } from "./doc-rule";
13
- export declare class DocEditor {
14
- private svgContainer;
15
- private contentCtx;
16
- viewOptions: ViewOptions;
17
- docCtx: EditorContext;
18
- private docComment;
19
- private renderContext;
20
- private documentPaginator;
21
- elementReader: ElementReader;
22
- private documentEvent;
23
- private documentSelection;
24
- private documentInput;
25
- private documentChange;
26
- private selectionOverlays;
27
- historyMange: ElementTrackManage;
28
- selectionChanged: Subject<SelectionState>;
29
- beforeRenderSubject: Subject<void>;
30
- afterRenderSubject: Subject<void>;
31
- onBeforeSetCursorSubject: Subject<{
32
- result: boolean;
33
- ss: SelectionState;
34
- }>;
35
- contentChanged: Subject<void>;
36
- onPatchVNodeSubject: Subject<void>;
37
- selectionState: SelectionState;
38
- onDblClickEvent: Subject<Event>;
39
- onClickEvent: Subject<Event>;
40
- onDocChangedEvent: Subject<void>;
41
- onBeforeRefreshDocument: Subject<void>;
42
- onDocViewSizeChanged: Subject<void>;
43
- onDestroy: Subject<void>;
44
- beforeNodePatch: Subject<void>;
45
- afterNodePatch: Subject<void>;
46
- private eventBus;
47
- private editInput;
48
- private scrollContainer;
49
- constructor(svgContainer: HTMLElement);
50
- private createCanvasContext;
51
- private renderRoot;
52
- private updateViewOption;
53
- adjustPageLayout(): void;
54
- private destroyDOM;
55
- createDocViewer(): void;
56
- measureMMToPixs(): number;
57
- flushTask: (() => void) | null;
58
- private trackChangeState;
59
- flushToSchedule(): Promise<void> | null;
60
- /**
61
- * 触发文档改变事件
62
- * @returns
63
- */
64
- triggerDocChange(): void;
65
- /**
66
- * fn函数执行时,不触发onDocChange
67
- * @param fn
68
- */
69
- noEffectChange(fn: () => void): void;
70
- loadDoc(data: any | DocumentElement): void;
71
- /**
72
- * 刷新文档,重新测量并设置光标等
73
- * @returns
74
- */
75
- private refreshDocument;
76
- /**
77
- * 计算选区内容对象
78
- * @private
79
- */
80
- private updateSelection;
81
- private hitInfoChanged;
82
- /**
83
- * 设置光标
84
- */
85
- private setCursor;
86
- private getCursorRect;
87
- /**
88
- * 设置虚拟光标的可见性
89
- * @param visibility
90
- */
91
- setCursorVisibility(visibility: boolean): void;
92
- hiddenInput(reset?: boolean, pos?: Omit<Rect, 'width'> | null): void;
93
- /**
94
- * 设置光标位置
95
- * @param position
96
- */
97
- setCursorPosition(position: {
98
- x: number;
99
- y: number;
100
- height: number;
101
- }): void;
102
- /**
103
- * 判断是否光标可以设置接受编辑
104
- * @returns
105
- */
106
- private canSetCursor;
107
- /**
108
- * 修改光标
109
- * @param newCursor
110
- */
111
- private changeCursor;
112
- /**
113
- * 文档点击事件
114
- */
115
- private docClickHandle;
116
- /**
117
- * 文档双击事件
118
- * 处理全选当前段落
119
- */
120
- private docDblClickHandle;
121
- /**
122
- * 获取当前光标所在的数据元
123
- * @returns
124
- */
125
- getCurrentDataElement(): DataElementInlineGroup | DataElementLeaf | null;
126
- /**
127
- * 移动光标到下一个数据元素上
128
- */
129
- moveFocusToNextDataElement(): void;
130
- /**
131
- * 设置当前光标所在的数据元的值
132
- * @param val
133
- */
134
- setCurrentDataElementValue(val: any): void;
135
- /**
136
- * 获取数据元位置
137
- * @param element
138
- * @returns
139
- */
140
- getDataElementPosition(element: LeafElement): Omit<Rect, 'width'> | null;
141
- /**
142
- * 获取文档模型
143
- * @returns
144
- */
145
- getDocSchema(): any;
146
- getDocSchemaJSON(): string;
147
- private menusData;
148
- /**
149
- * 右键菜单
150
- * @param evt
151
- */
152
- onContextMenu(evt: MouseEvent): void;
153
- resetViewer(type?: 'demand' | 'force' | undefined): void;
154
- /**
155
- * 缩放视图
156
- * @param scale
157
- * @returns
158
- */
159
- scale(scale: number): void;
160
- /**
161
- * 自适应计算缩放
162
- * @private
163
- */
164
- private adaptiveScale;
165
- /**
166
- * 缩放视图
167
- * @param scale
168
- * @returns
169
- */
170
- private _scaleView;
171
- /**
172
- * 在当前位置插入表格
173
- * @param rows
174
- * @param cols
175
- */
176
- insertTable(rows: number, cols: number): TableElement;
177
- /**
178
- * 插入软换行符
179
- */
180
- insertSoftBr(): void;
181
- /**
182
- * 清除文档
183
- */
184
- clearDoc(): void;
185
- /**
186
- * 新建文档
187
- * @param doc
188
- * @param name
189
- */
190
- createNewDoc(doc?: DocumentElement | null, name?: string): void;
191
- destroy(): void;
192
- /**
193
- * 将元素序列化为字符串,和serialize方法不同的是,该方法区别在于对留痕信息的处理
194
- * @param ele
195
- */
196
- serializeString(ele: Element): string;
197
- /**
198
- * 将元素序列化为JSON对象,可进一步操作该对象序列化为JSON对象
199
- * @param ele
200
- */
201
- serialize(ele: Element): SerializeProps | null;
202
- /**
203
- * 获取选区文本属性
204
- * @returns
205
- */
206
- getSelectionTextGroupProps(): TextProps | null;
207
- getSelectionParaProps(): ParagraphProps | null;
208
- setTextFormat(newProps: Partial<TextProps>): void;
209
- /**
210
- * 设置文本格式
211
- * @param newProps
212
- */
213
- setTextFormatByFn(setterFunc: (textProps: TextProps) => void): void;
214
- /**
215
- * 开启格式刷
216
- */
217
- enableFormatBrush(once?: boolean): ICancelTokenFn | null;
218
- /**
219
- * 设置段落样式
220
- * @param newProps
221
- */
222
- setParaStyle(newProps: Partial<ParagraphProps>): void;
223
- /**
224
- * 设置段落样式
225
- * @param setterFunc
226
- */
227
- setParaStyleByFn(setterFunc: (paraProps: ParagraphProps) => void): void;
228
- combineCell(): void;
229
- /**
230
- * 切换当前段落项目符号状态
231
- */
232
- setParagraphNumberType(numType: ParagraphNumberType): void;
233
- /**
234
- * 删除当前批注
235
- * @param id
236
- */
237
- removeComment(id: string): void;
238
- /**
239
- * 移除焦点所在的批注
240
- */
241
- removeCurrentComment(): void;
242
- /**
243
- * 插入批注
244
- */
245
- insertComment(text: string): void;
246
- /**
247
- * 清除所有批注
248
- */
249
- clearAllComments(): void;
250
- /**
251
- * 插入分页符
252
- */
253
- insertPageBreakSymbol(): void;
254
- cutTable(): void;
255
- /**
256
- * 初始化当前文档创建用户信息
257
- * 一份文档只需要设置一次
258
- */
259
- initCurrentDocUser(userId: string, userName: string, date: string): void;
260
- /**
261
- * 验证文档内容
262
- * @returns
263
- */
264
- validate(): boolean;
265
- /**
266
- * 撤销
267
- */
268
- undo(): void;
269
- /**
270
- * 恢复
271
- */
272
- redo(): void;
273
- /**
274
- * 是否可以撤销
275
- */
276
- canUndo(): boolean;
277
- /**
278
- * 是否可以恢复
279
- */
280
- canRedo(): boolean;
281
- /**
282
- * 切换文档留痕开关
283
- */
284
- switchTrackChanges(): void;
285
- get trackTipsChanged(): Subject<{
286
- pos: Position;
287
- tips: import("./framework/element-event-define").ITrackTips;
288
- }>;
289
- switchFullViewPage(): void;
290
- getSelectedJSON(): string;
291
- getSelectedText(): string;
292
- /**
293
- * 执行编辑器内部复制事件
294
- * @param evt
295
- */
296
- execCopy(evt: ClipboardEvent): void;
297
- /**
298
- * 设置纸张方向
299
- * @param orientation
300
- */
301
- setPaperOrient(orientation: OrientType): void;
302
- /**
303
- * 设置纸张大小,单位为毫米(mm)
304
- * @param width
305
- * @param height
306
- */
307
- setPaperSize(width: string): any;
308
- setPaperSize(width: number, height: number): any;
309
- /**
310
- * 显示当前元素到视图中
311
- * @param element
312
- */
313
- bringToView(element: Element): void;
314
- scrollToPosition(pos: Position): void;
315
- /**
316
- * 设置当前文档页边距
317
- */
318
- setDocumentMargin(pageMargin: Partial<MarginProps>): void;
319
- /**
320
- * 插入元素
321
- * @param targetElement
322
- * @param targetOffset
323
- * @param destEleArray
324
- * @returns
325
- */
326
- insertElement(targetElement: Element, targetOffset: number, destEleArray: Array<Element>): Element | null;
327
- /**
328
- * 插入新元素
329
- * @param ele
330
- */
331
- insertNewElement(ele: Element): void;
332
- switchPageLayout(mode: PageLayoutMode): void;
333
- /**
334
- * 获取当前光标位置所在的段落
335
- */
336
- getParagraphAtCursor(): ParagraphElement | null;
337
- /**
338
- * 获取当前光标位置的表格
339
- */
340
- getTableAtCursor(): TableElement | null;
341
- /**
342
- * 获取当前光标位置的表格行
343
- */
344
- getTableRowAtCursor(): TableRowElement | null;
345
- /**
346
- * 获取当前光标位置的单元格
347
- */
348
- getTableCellAtCursor(): TableCellElement | null;
349
- /**
350
- * 当前光标处上方插入新行
351
- */
352
- insertRowAboveAtCursor(): void;
353
- /**
354
- * 当前光标处下方插入新行
355
- */
356
- insertRowBelowAtCursor(): void;
357
- /**
358
- * 当前光标处右方插入新列
359
- */
360
- insertColToRightAtCursor(): void;
361
- /**
362
- * 当前光标处左方插入新列
363
- */
364
- insertColToLeftAtCursor(): void;
365
- /**
366
- * 移除当前光标处的行
367
- */
368
- removeCurrRowAtCursor(): void;
369
- /**
370
- * 移除当前光标处的列
371
- */
372
- removeCurrColAtCursor(): void;
373
- /**
374
- * 合并单元格
375
- */
376
- mergeCellsBySelection(): void;
377
- /**
378
- * 拆分单元格
379
- * @param rows
380
- * @param cols
381
- */
382
- splitCell(rows: number, cols: number): void;
383
- /**
384
- * 删除当前光标所在的表格
385
- */
386
- removeTableAtCursor(): void;
387
- /**
388
- * 设置单元格对角线
389
- * @param diagonal
390
- */
391
- setCellDiagonal(diagonal: CellDiagonal): void;
392
- /**
393
- * 设置选区范围内的单元格背景颜色
394
- */
395
- setTableCellBgColorAtSelection(color: string): void;
396
- /**
397
- * 还原光标处已合并的单元格
398
- */
399
- restoreMergeCellsAtCursor(): void;
400
- /**
401
- * 表格在指定位置插入新行
402
- * @param tb
403
- * @param insertRowIndex
404
- */
405
- insertNewRow(tb: TableElement, insertRowIndex: number): TableRowElement;
406
- /**
407
- * 开启打印区域
408
- */
409
- startPrintArea(): void;
410
- onChange(): void;
411
- nodePatch: ReturnType<typeof init>;
412
- vNodeDocContent: VNode;
413
- createPatch(): void;
414
- /**
415
- * 留痕提示的容器框,用于渲染后重新计算纵向位置
416
- * @private
417
- */
418
- private tipContainer;
419
- getVNode(): IVNodeRenderFunc;
420
- /**
421
- * 更新提示区域布局宽度,根据渲染的节点,判断是否需要设置提示区域宽度
422
- * @private
423
- */
424
- private updateTipLayoutWidth;
425
- /**
426
- * 更新留痕提示框位置在文档渲染后
427
- * @private
428
- */
429
- private updateTipLayoutAfterPatch;
430
- private createChangeTipContainer;
431
- /**
432
- * 设置光标在数据元内容末尾
433
- */
434
- setDataElemEndFocus(ele: DataElementInlineGroup): void;
435
- /**
436
- * 渲染下拉框数据元
437
- * @private
438
- */
439
- private renderDataListVNode;
440
- private resizePosition;
441
- private renderCalendar;
442
- private renderContextmenu;
443
- /**
444
- * 设置标尺
445
- */
446
- refreshDocRule(rule: DocRule): void;
447
- version(): string;
448
- switchPageHeaderEditor(): void;
449
- getTextContent(): string;
450
- emit(event: string, args: any): void;
451
- createResizableElement(): VNode;
452
- private readDocChangeLog;
453
- }
454
- export interface IReaderManager {
455
- }
456
- export declare type EditorCurrentPos = {
457
- pos: Position;
458
- };
459
- export declare type EditorContextProps = {
460
- menus: Array<ContentMenuItem>;
461
- } & EditorCurrentPos;
462
- export declare type EditorPanelProps = {
463
- type: string;
464
- } & EditorCurrentPos;
1
+ import { ContentMenuItem } from './framework/element-event-define';
2
+ import { ElementReader } from './framework/element-reader';
3
+ import { SelectionState } from './framework/selection/document-selection';
4
+ import { BlockContainerElement, Element, ICancelTokenFn, LeafElement, MarginProps, OrientType, PageLayoutMode, Position, Rect, SerializeProps, ViewOptions } from './framework/element-define';
5
+ import { DataElementInlineGroup, DataElementLeaf, DocumentElement, ParagraphElement, TableCellElement, TableElement, TableRowElement } from './framework/impl';
6
+ import { CellDiagonal, ParagraphNumberType, ParagraphProps, TextProps } from './framework/element-props';
7
+ import { EditorContext } from './framework/document-context';
8
+ import { ElementTrackManage } from './framework/history/element-trace-manage';
9
+ import { Subject } from './framework/infrastructure/event-subject';
10
+ import { init, VNode } from "snabbdom";
11
+ import { IVNodeRenderFunc } from "./editor-core";
12
+ import { DocRule } from "./doc-rule";
13
+ import { ISuggestionData, ISuggestionProvider } from './framework/suggestions/input-suggestions';
14
+ export declare class DocEditor {
15
+ private svgContainer;
16
+ __v_skip: boolean;
17
+ private contentCtx;
18
+ viewOptions: ViewOptions;
19
+ docCtx: EditorContext;
20
+ private docComment;
21
+ private renderContext;
22
+ private documentPaginator;
23
+ elementReader: ElementReader;
24
+ private documentEvent;
25
+ private documentSelection;
26
+ private documentInput;
27
+ private documentChange;
28
+ private selectionOverlays;
29
+ historyMange: ElementTrackManage;
30
+ selectionChanged: Subject<SelectionState>;
31
+ beforeRenderSubject: Subject<void>;
32
+ afterRenderSubject: Subject<void>;
33
+ onBeforeSetCursorSubject: Subject<{
34
+ result: boolean;
35
+ ss: SelectionState;
36
+ }>;
37
+ contentChanged: Subject<void>;
38
+ onPatchVNodeSubject: Subject<void>;
39
+ selectionState: SelectionState;
40
+ onDblClickEvent: Subject<Event>;
41
+ onClickEvent: Subject<Event>;
42
+ onDocChangedEvent: Subject<void>;
43
+ onBeforeRefreshDocument: Subject<void>;
44
+ onDocViewSizeChanged: Subject<void>;
45
+ onDestroy: Subject<void>;
46
+ beforeNodePatch: Subject<void>;
47
+ afterNodePatch: Subject<void>;
48
+ onTextChanged: Subject<void>;
49
+ onSuggestionsProcess: Subject<ISuggestionProvider>;
50
+ private eventBus;
51
+ private editInput;
52
+ private scrollContainer;
53
+ onKeyDownEvent: Subject<KeyboardEvent>;
54
+ constructor(svgContainer: HTMLElement);
55
+ private createCanvasContext;
56
+ private renderRoot;
57
+ private updateViewOption;
58
+ adjustPageLayout(): void;
59
+ private destroyDOM;
60
+ createDocViewer(): void;
61
+ measureMMToPixs(): number;
62
+ flushTask: (() => void) | null;
63
+ private trackChangeState;
64
+ flushToSchedule(): Promise<void> | null;
65
+ /**
66
+ * 触发文档改变事件
67
+ * @returns
68
+ */
69
+ triggerDocChange(): void;
70
+ /**
71
+ * fn函数执行时,不触发onDocChange
72
+ * @param fn
73
+ */
74
+ noEffectChange(fn: () => void): void;
75
+ loadDoc(data: any | DocumentElement): void;
76
+ /**
77
+ * 刷新文档,重新测量并设置光标等
78
+ * @returns
79
+ */
80
+ private refreshDocument;
81
+ /**
82
+ * 计算选区内容对象
83
+ * @private
84
+ */
85
+ private updateSelection;
86
+ /**
87
+ * 根据当前选区,更新待输入文本字体信息
88
+ * @private
89
+ */
90
+ private updateInputFont;
91
+ private hitInfoChanged;
92
+ /**
93
+ * 设置光标
94
+ */
95
+ setCursor(): void;
96
+ private getCursorRect;
97
+ /**
98
+ * 设置虚拟光标的可见性
99
+ * @param visibility
100
+ */
101
+ setCursorVisibility(visibility: boolean): void;
102
+ hiddenInput(reset?: boolean, pos?: Omit<Rect, 'width'> | null): void;
103
+ /**
104
+ * 设置光标位置
105
+ * @param position
106
+ */
107
+ setCursorPosition(position: {
108
+ x: number;
109
+ y: number;
110
+ height: number;
111
+ }): void;
112
+ /**
113
+ * 判断是否光标可以设置接受编辑
114
+ * @returns
115
+ */
116
+ private canSetCursor;
117
+ /**
118
+ * 修改光标
119
+ * @param newCursor
120
+ */
121
+ private changeCursor;
122
+ /**
123
+ * 文档点击事件
124
+ */
125
+ private docClickHandle;
126
+ /**
127
+ * 文档双击事件
128
+ * 处理全选当前段落
129
+ */
130
+ private docDblClickHandle;
131
+ /**
132
+ * 获取当前光标所在的数据元
133
+ * @returns
134
+ */
135
+ getCurrentDataElement(): DataElementInlineGroup | DataElementLeaf | null;
136
+ /**
137
+ * 移动光标到下一个数据元素上
138
+ */
139
+ moveFocusToNextDataElement(): void;
140
+ /**
141
+ * 设置当前光标所在的数据元的值
142
+ * @param val
143
+ */
144
+ setCurrentDataElementValue(val: any): void;
145
+ /**
146
+ * 获取数据元位置
147
+ * @param element
148
+ * @returns
149
+ */
150
+ getDataElementPosition(element: LeafElement): Omit<Rect, 'width'> | null;
151
+ /**
152
+ * 获取文档模型
153
+ * @returns
154
+ */
155
+ getDocSchema(): any;
156
+ getDocSchemaJSON(): string;
157
+ private menusData;
158
+ /**
159
+ * 右键菜单
160
+ * @param evt
161
+ */
162
+ onContextMenu(evt: MouseEvent): void;
163
+ resetViewer(type?: 'demand' | 'force' | undefined): void;
164
+ /**
165
+ * 缩放视图
166
+ * @param scale
167
+ * @returns
168
+ */
169
+ scale(scale: number): void;
170
+ /**
171
+ * 自适应计算缩放
172
+ * @private
173
+ */
174
+ private adaptiveScale;
175
+ /**
176
+ * 缩放视图
177
+ * @param scale
178
+ * @returns
179
+ */
180
+ private _scaleView;
181
+ /**
182
+ * 在当前位置插入表格
183
+ * @param rows
184
+ * @param cols
185
+ */
186
+ insertTable(rows: number, cols: number): TableElement;
187
+ insertLayoutContainer(ele: BlockContainerElement): void;
188
+ /**
189
+ * 插入软换行符
190
+ */
191
+ insertSoftBr(): void;
192
+ /**
193
+ * 清除文档
194
+ */
195
+ clearDoc(): void;
196
+ /**
197
+ * 新建文档
198
+ * @param doc
199
+ * @param name
200
+ */
201
+ createNewDoc(doc?: DocumentElement | null, name?: string): void;
202
+ destroy(): void;
203
+ /**
204
+ * 将元素序列化为字符串,和serialize方法不同的是,该方法区别在于对留痕信息的处理
205
+ * @param ele
206
+ */
207
+ serializeString(ele: Element): string;
208
+ /**
209
+ * 将元素序列化为JSON对象,可进一步操作该对象序列化为JSON对象
210
+ * @param ele
211
+ */
212
+ serialize(ele: Element): SerializeProps | null;
213
+ /**
214
+ * 获取选区文本属性
215
+ * @returns
216
+ */
217
+ getSelectionTextGroupProps(): TextProps | null;
218
+ getSelectionParaProps(): ParagraphProps | null;
219
+ setTextFormat(newProps: Partial<TextProps>): void;
220
+ /**
221
+ * 设置文本格式
222
+ * @param newProps
223
+ */
224
+ setTextFormatByFn(setterFunc: (textProps: TextProps) => void): void;
225
+ /**
226
+ * 开启格式刷
227
+ */
228
+ enableFormatBrush(once?: boolean): ICancelTokenFn | null;
229
+ /**
230
+ * 设置段落样式
231
+ * @param newProps
232
+ */
233
+ setParaStyle(newProps: Partial<ParagraphProps>): void;
234
+ /**
235
+ * 设置段落样式
236
+ * @param setterFunc
237
+ */
238
+ setParaStyleByFn(setterFunc: (paraProps: ParagraphProps) => void): void;
239
+ combineCell(): void;
240
+ /**
241
+ * 切换当前段落项目符号状态
242
+ */
243
+ setParagraphNumberType(numType: ParagraphNumberType): void;
244
+ /**
245
+ * 删除当前批注
246
+ * @param id
247
+ */
248
+ removeComment(id: string): void;
249
+ /**
250
+ * 移除焦点所在的批注
251
+ */
252
+ removeCurrentComment(): void;
253
+ /**
254
+ * 插入批注
255
+ */
256
+ insertComment(text: string): void;
257
+ /**
258
+ * 清除所有批注
259
+ */
260
+ clearAllComments(): void;
261
+ /**
262
+ * 插入分页符
263
+ */
264
+ insertPageBreakSymbol(): void;
265
+ cutTable(): void;
266
+ /**
267
+ * 初始化当前文档创建用户信息
268
+ * 一份文档只需要设置一次
269
+ */
270
+ initCurrentDocUser(userId: string, userName: string, date: string): void;
271
+ /**
272
+ * 验证文档内容
273
+ * @returns
274
+ */
275
+ validate(): boolean;
276
+ /**
277
+ * 撤销
278
+ */
279
+ undo(): void;
280
+ /**
281
+ * 恢复
282
+ */
283
+ redo(): void;
284
+ /**
285
+ * 是否可以撤销
286
+ */
287
+ canUndo(): boolean;
288
+ /**
289
+ * 是否可以恢复
290
+ */
291
+ canRedo(): boolean;
292
+ /**
293
+ * 切换文档留痕开关
294
+ */
295
+ switchTrackChanges(): void;
296
+ get trackTipsChanged(): Subject<{
297
+ pos: Position;
298
+ tips: import("./framework/element-event-define").ITrackTips;
299
+ }>;
300
+ switchFullViewPage(): void;
301
+ getSelectedJSON(): string;
302
+ getSelectedText(): string;
303
+ /**
304
+ * 执行编辑器内部复制事件
305
+ * @param evt
306
+ */
307
+ execCopy(evt: ClipboardEvent): void;
308
+ /**
309
+ * 设置纸张方向
310
+ * @param orientation
311
+ */
312
+ setPaperOrient(orientation: OrientType): void;
313
+ /**
314
+ * 设置纸张大小,单位为毫米(mm)
315
+ * @param width
316
+ * @param height
317
+ */
318
+ setPaperSize(width: string): any;
319
+ setPaperSize(width: number, height: number): any;
320
+ /**
321
+ * 显示当前元素到视图中
322
+ * @param element
323
+ */
324
+ bringToView(element: Element): void;
325
+ scrollToPosition(pos: Position): void;
326
+ /**
327
+ * 设置当前文档页边距
328
+ */
329
+ setDocumentMargin(pageMargin: Partial<MarginProps>): void;
330
+ /**
331
+ * 插入元素
332
+ * @param targetElement
333
+ * @param targetOffset
334
+ * @param destEleArray
335
+ * @returns
336
+ */
337
+ insertElement(targetElement: Element, targetOffset: number, destEleArray: Array<Element>): Element | null;
338
+ /**
339
+ * 插入新元素
340
+ * @param ele
341
+ */
342
+ insertNewElement(ele: Element): void;
343
+ switchPageLayout(mode: PageLayoutMode): void;
344
+ /**
345
+ * 获取当前光标位置所在的段落
346
+ */
347
+ getParagraphAtCursor(): ParagraphElement | null;
348
+ /**
349
+ * 获取当前光标位置的表格
350
+ */
351
+ getTableAtCursor(): TableElement | null;
352
+ /**
353
+ * 获取当前光标位置的表格行
354
+ */
355
+ getTableRowAtCursor(): TableRowElement | null;
356
+ /**
357
+ * 获取当前光标位置的单元格
358
+ */
359
+ getTableCellAtCursor(): TableCellElement | null;
360
+ /**
361
+ * 当前光标处上方插入新行
362
+ */
363
+ insertRowAboveAtCursor(): void;
364
+ /**
365
+ * 当前光标处下方插入新行
366
+ */
367
+ insertRowBelowAtCursor(): void;
368
+ /**
369
+ * 当前光标处右方插入新列
370
+ */
371
+ insertColToRightAtCursor(): void;
372
+ /**
373
+ * 当前光标处左方插入新列
374
+ */
375
+ insertColToLeftAtCursor(): void;
376
+ /**
377
+ * 移除当前光标处的行
378
+ */
379
+ removeCurrRowAtCursor(): void;
380
+ /**
381
+ * 移除当前光标处的列
382
+ */
383
+ removeCurrColAtCursor(): void;
384
+ /**
385
+ * 合并单元格
386
+ */
387
+ mergeCellsBySelection(): void;
388
+ /**
389
+ * 拆分单元格
390
+ * @param rows
391
+ * @param cols
392
+ */
393
+ splitCell(rows: number, cols: number): void;
394
+ /**
395
+ * 删除当前光标所在的表格
396
+ */
397
+ removeTableAtCursor(): void;
398
+ /**
399
+ * 设置单元格对角线
400
+ * @param diagonal
401
+ */
402
+ setCellDiagonal(diagonal: CellDiagonal): void;
403
+ /**
404
+ * 设置选区范围内的单元格背景颜色
405
+ */
406
+ setTableCellBgColorAtSelection(color: string): void;
407
+ /**
408
+ * 还原光标处已合并的单元格
409
+ */
410
+ restoreMergeCellsAtCursor(): void;
411
+ /**
412
+ * 表格在指定位置插入新行
413
+ * @param tb
414
+ * @param insertRowIndex
415
+ */
416
+ insertNewRow(tb: TableElement, insertRowIndex: number): TableRowElement;
417
+ /**
418
+ * 开启打印区域
419
+ */
420
+ startPrintArea(): void;
421
+ onChange(): void;
422
+ nodePatch: ReturnType<typeof init>;
423
+ vNodeDocContent: VNode;
424
+ createPatch(): void;
425
+ /**
426
+ * 留痕提示的容器框,用于渲染后重新计算纵向位置
427
+ * @private
428
+ */
429
+ private tipContainer;
430
+ getVNode(): IVNodeRenderFunc;
431
+ /**
432
+ * 更新提示区域布局宽度,根据渲染的节点,判断是否需要设置提示区域宽度
433
+ * @private
434
+ */
435
+ private updateTipLayoutWidth;
436
+ /**
437
+ * 更新留痕提示框位置在文档渲染后
438
+ * @private
439
+ */
440
+ private updateTipLayoutAfterPatch;
441
+ private createChangeTipContainer;
442
+ /**
443
+ * 设置光标在数据元内容末尾
444
+ */
445
+ setDataElemEndFocus(ele: DataElementInlineGroup): void;
446
+ /**
447
+ * 渲染下拉框数据元
448
+ * @private
449
+ */
450
+ private renderDataListVNode;
451
+ private resizePosition;
452
+ private renderCalendar;
453
+ private renderContextmenu;
454
+ /**
455
+ * 设置标尺
456
+ */
457
+ refreshDocRule(rule: DocRule): void;
458
+ version(): string;
459
+ switchPageHeaderEditor(): void;
460
+ getTextContent(): string;
461
+ emit(event: string, args: any): void;
462
+ createResizableElement(): VNode;
463
+ private readDocChangeLog;
464
+ /**
465
+ * 处理候选词
466
+ * @private
467
+ */
468
+ private processSuggestionsHandle;
469
+ createAutoCompleteOptions(): void;
470
+ private processKeyDownEvent;
471
+ /**
472
+ * 处理候选词,键盘选择定位
473
+ * @private
474
+ */
475
+ private onSuggestionsKeydown;
476
+ /**
477
+ * 渲染联想、候选词
478
+ * @private
479
+ */
480
+ private renderSuggestions;
481
+ insertSuggestion(suggestion: ISuggestionData): void;
482
+ }
483
+ export interface IReaderManager {
484
+ }
485
+ export declare type EditorCurrentPos = {
486
+ pos: Position;
487
+ };
488
+ export declare type EditorContextProps = {
489
+ menus: Array<ContentMenuItem>;
490
+ } & EditorCurrentPos;
491
+ export declare type EditorPanelProps = {
492
+ type: string;
493
+ } & EditorCurrentPos;