@hailin-zheng/editor-core 1.0.62 → 1.1.0

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 (96) hide show
  1. package/controls/ButtonBase.d.ts +10 -0
  2. package/controls/Canvas.d.ts +10 -0
  3. package/controls/Config.d.ts +11 -0
  4. package/controls/FlexBox.d.ts +81 -0
  5. package/controls/Input.d.ts +33 -0
  6. package/controls/MedTimeLine/TimeAxis.d.ts +21 -0
  7. package/controls/MedTimeLine/TimeSlider.d.ts +19 -0
  8. package/controls/Menu.d.ts +31 -0
  9. package/controls/Node.d.ts +217 -0
  10. package/controls/NodeEvent.d.ts +136 -0
  11. package/controls/Rect.d.ts +4 -0
  12. package/controls/ScrollView.d.ts +56 -0
  13. package/controls/StackPanel.d.ts +27 -0
  14. package/controls/SurfaceView.d.ts +41 -0
  15. package/controls/Text.d.ts +45 -0
  16. package/controls/TextBase.d.ts +19 -0
  17. package/controls/ViewPaint.d.ts +57 -0
  18. package/controls/Window.d.ts +27 -0
  19. package/controls/WrapPanel.d.ts +10 -0
  20. package/controls/event-subject.d.ts +42 -0
  21. package/index-cjs.d.ts +0 -3
  22. package/index-cjs.js +12530 -7413
  23. package/index-cjs.js.map +1 -1
  24. package/index.d.ts +0 -3
  25. package/index.js +11092 -5992
  26. package/index.js.map +1 -1
  27. package/med_editor/framework/ast-parser.d.ts +3 -0
  28. package/med_editor/framework/document-arrange.d.ts +76 -0
  29. package/med_editor/framework/document-change.d.ts +5 -4
  30. package/med_editor/framework/document-comment.d.ts +4 -12
  31. package/med_editor/framework/document-event.d.ts +3 -2
  32. package/med_editor/framework/document-input-cursor.d.ts +3 -26
  33. package/med_editor/framework/document-paint.d.ts +9 -8
  34. package/med_editor/framework/document-textline-mode.d.ts +2 -3
  35. package/med_editor/framework/dynamic-executer.d.ts +23 -0
  36. package/med_editor/framework/element-define.d.ts +16 -8
  37. package/med_editor/framework/element-measure.d.ts +7 -5
  38. package/med_editor/framework/element-paint.d.ts +1 -10
  39. package/med_editor/framework/element-props.d.ts +16 -7
  40. package/med_editor/framework/element-reader.d.ts +1 -3
  41. package/med_editor/framework/element-render-cut.d.ts +9 -7
  42. package/med_editor/framework/element-util.d.ts +2 -12
  43. package/med_editor/framework/event-subject.d.ts +3 -1
  44. package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +1 -2
  45. package/med_editor/framework/impl/comments/comment-content-impl.d.ts +4 -3
  46. package/med_editor/framework/impl/comments/comment-element-impl.d.ts +4 -4
  47. package/med_editor/framework/impl/comments/comments-container-impl.d.ts +26 -5
  48. package/med_editor/framework/impl/comments/comments-util.d.ts +2 -9
  49. package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +1 -1
  50. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +1 -1
  51. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +4 -2
  52. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +1 -2
  53. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +1 -2
  54. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +2 -2
  55. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +1 -2
  56. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +2 -3
  57. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +1 -2
  58. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +1 -2
  59. package/med_editor/framework/impl/document/doc-body-impl.d.ts +3 -3
  60. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +1 -2
  61. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +3 -3
  62. package/med_editor/framework/impl/document/doc-header-impl.d.ts +3 -3
  63. package/med_editor/framework/impl/document/doc-impl.d.ts +2 -2
  64. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +3 -4
  65. package/med_editor/framework/impl/paragraph/p-impl.d.ts +6 -3
  66. package/med_editor/framework/impl/picture/image-impl.d.ts +1 -2
  67. package/med_editor/framework/impl/radio/radio-impl.d.ts +1 -2
  68. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +1 -2
  69. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +21 -0
  70. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +16 -0
  71. package/med_editor/framework/impl/table/table-cell-impl.d.ts +3 -4
  72. package/med_editor/framework/impl/table/table-impl.d.ts +6 -8
  73. package/med_editor/framework/impl/table/table-row-impl.d.ts +1 -2
  74. package/med_editor/framework/impl/table/table-util.d.ts +5 -0
  75. package/med_editor/framework/impl/text/text-impl.d.ts +4 -4
  76. package/med_editor/framework/impl/text/track-run-impl.d.ts +3 -4
  77. package/med_editor/framework/paragraph-arrange.d.ts +82 -0
  78. package/med_editor/framework/render-context.d.ts +14 -17
  79. package/med_editor/framework/render-define.d.ts +1 -0
  80. package/med_editor/rule-control.d.ts +66 -0
  81. package/med_editor/texteditor.d.ts +35 -32
  82. package/package.json +5 -2
  83. package/med_editor/controls/button.d.ts +0 -10
  84. package/med_editor/controls/core.d.ts +0 -175
  85. package/med_editor/controls/data-grid.d.ts +0 -115
  86. package/med_editor/controls/editor.d.ts +0 -7
  87. package/med_editor/controls/event.d.ts +0 -22
  88. package/med_editor/controls/grid.d.ts +0 -11
  89. package/med_editor/controls/label.d.ts +0 -10
  90. package/med_editor/controls/panel.d.ts +0 -8
  91. package/med_editor/controls/render-context.d.ts +0 -59
  92. package/med_editor/controls/report-sheet.d.ts +0 -10
  93. package/med_editor/controls/rule.d.ts +0 -39
  94. package/med_editor/controls/scroll-viewer.d.ts +0 -60
  95. package/med_editor/controls/surface.d.ts +0 -23
  96. package/med_editor/doc-ruler.d.ts +0 -50
@@ -0,0 +1,3 @@
1
+ import { Node } from "acorn";
2
+ export declare function parser(code: string): string;
3
+ export declare function getCalleeName(node: Node): string;
@@ -0,0 +1,76 @@
1
+ import { Element, IBeginMeasureData, ViewOptions } from "./element-define";
2
+ import { EditorContext } from "./document-context";
3
+ import { RenderContextType } from "./render-context";
4
+ import { CommsContainerRenderObject, DocumentRenderObject, ParagraphElement, TableCellRenderObject, TableRenderObject, TableRowRenderObject } from "./impl";
5
+ import { BlockContentRenderObject, BranchRenderObject } from "./render-define";
6
+ export declare class DocumentArrange {
7
+ docCtx: EditorContext;
8
+ renderCtx: RenderContextType;
9
+ options: ViewOptions;
10
+ constructor(docCtx: EditorContext, renderCtx: RenderContextType);
11
+ /**
12
+ * 测量排版过程
13
+ * 1.先测量排版页眉、页脚
14
+ * 2.根据页边距以及页眉、页脚测量的高度,获取"页体高度"
15
+ * 3.根据页体高度测量页体内容,并实时分页
16
+ * 3.1测量页体直接子内容
17
+ * 3.1.1页体直接子内容递归测量孙子元素
18
+ * 3.2完成页体子内容测量,并分页切分
19
+ */
20
+ measureDoc(): Array<DocumentRenderObject>;
21
+ commentsRender: CommsContainerRenderObject;
22
+ private arrangeDoc;
23
+ private createEmptyBodyRender;
24
+ private measureControl;
25
+ private createRenderObject;
26
+ private getDocInnerRect;
27
+ /**
28
+ * 切割渲染元素
29
+ * @param render 被切割的对象
30
+ * @param limitHeight
31
+ * @returns
32
+ */
33
+ cutRenderItem(render: BlockContentRenderObject, limitHeight: number): BlockContentRenderObject | null;
34
+ /**
35
+ * 切割渲染元素
36
+ * @param tbRender 被切割的对象
37
+ * @param limitHeight
38
+ * @param addFunc
39
+ * @returns
40
+ */
41
+ cutTable(tbRender: TableRenderObject, limitHeight: number): BlockContentRenderObject | null;
42
+ cutRowRenderItem(render: TableRowRenderObject, limitHeight: number): TableRowRenderObject | null;
43
+ /**
44
+ * 修复->已经截断的合并单元格要向下移动到合适的位置
45
+ * @param tbRender
46
+ * @param cutRows
47
+ * @returns
48
+ */
49
+ private fixCutTable;
50
+ /**
51
+ * 校验当前是否是一个完整的行,没有Null单元格,检查当前是否还需要向下合并
52
+ * @param row
53
+ */
54
+ private checkFullRow;
55
+ private existsCellRender;
56
+ private getBlockLineHeight;
57
+ getRowInsertCellIndex(sourceCell: TableCellRenderObject, destRow: TableRowRenderObject): number;
58
+ private getHeaderRows;
59
+ /**
60
+ * 修改测量完毕后的元素状态
61
+ * @param ele
62
+ */
63
+ setMeasureCompletedModifyFlag(ele: Element): void;
64
+ clearPaintCache(ele: Element, data: IBeginMeasureData): void;
65
+ identifyComment(ele: Element): void;
66
+ private cacheDoc;
67
+ cacheDocRenders(docs: Array<DocumentRenderObject>): void;
68
+ cacheRenders(renderTree: BranchRenderObject): void;
69
+ /**
70
+ * 缓存批注标志
71
+ * @private
72
+ */
73
+ private cacheCommsRender;
74
+ endMeasures(ele: Element): void;
75
+ createDefaultPara(): ParagraphElement;
76
+ }
@@ -2,7 +2,7 @@ import { DocumentInput, InputData } from "./document-input-cursor";
2
2
  import { SelectionState } from "./document-selection";
3
3
  import { Element, LeafElement, SelectionContentRange } from "./element-define";
4
4
  import { ParagraphElement, TableElement, TextGroupElement, TrackRunTypeEnum } from "./impl";
5
- import { ParagraphProps, TextProps } from "./element-props";
5
+ import { ParagraphNumberType, ParagraphProps, TextProps } from "./element-props";
6
6
  import { ElementReader } from "./element-reader";
7
7
  import { EditorContext } from "./document-context";
8
8
  import { DocumentComment } from "./document-comment";
@@ -241,6 +241,7 @@ export declare class DocumentChange {
241
241
  */
242
242
  private handlePasteContent;
243
243
  insertSoftBr(): void;
244
+ insertPageBreakSymbol(): void;
244
245
  /**
245
246
  * 处理黏贴的纯文本
246
247
  * @param text
@@ -249,7 +250,7 @@ export declare class DocumentChange {
249
250
  /**
250
251
  * 设置当前段落项目符号类型
251
252
  */
252
- setParagraphNumberType(): void;
253
+ setParagraphNumberType(numType?: ParagraphNumberType): void;
253
254
  /**
254
255
  * 插入批注
255
256
  */
@@ -271,7 +272,7 @@ export declare class DocumentChange {
271
272
  */
272
273
  removeEmtpyInlineBlock(ele: Element): void;
273
274
  /**
274
- * 插入强制换页符号
275
+ * 插入Tab制表位
275
276
  */
276
- insertPageBreakPara(): void;
277
+ insertTabElement(): void;
277
278
  }
@@ -1,23 +1,20 @@
1
1
  import { EditorContext } from "./document-context";
2
- import { CommContentBaseElement } from "./impl/comments/comment-content-impl";
3
- import { CommentElement } from "./impl/comments/comment-element-impl";
2
+ import { CommentElement } from "./impl";
4
3
  /**
5
4
  * 处理文档批注
6
5
  */
7
6
  export declare class DocumentComment {
8
7
  docCtx: EditorContext;
9
- commMarkList: Array<CommentElement>;
10
- commContentList: Array<CommContentBaseElement>;
11
8
  isDirty: boolean;
12
9
  constructor(docCtx: EditorContext);
13
10
  /**
14
- * 读取审阅标记符号
15
- */
11
+ * 读取审阅标记符号
12
+ */
16
13
  readComments(): void;
17
14
  /**
18
15
  * 执行删除前,需要更新批注节点位置
19
16
  */
20
- updateComments(): void;
17
+ syncUpdateComments(): void;
21
18
  /**
22
19
  * 删除批注
23
20
  * @param id
@@ -32,11 +29,6 @@ export declare class DocumentComment {
32
29
  * 清除所有的验证批注
33
30
  */
34
31
  clearAllValidates(): void;
35
- /**
36
- * 批注修改后事件
37
- * 用于标注当前文档的批注发生更改了,不再重复读取批注,提高性能
38
- */
39
- afterCommentsChanged(): void;
40
32
  }
41
33
  export interface CommMarkSelectedStatus {
42
34
  startMark: CommentElement;
@@ -6,6 +6,7 @@ import { BorderType, CursorType, RenderObject } from "./render-define";
6
6
  import { EditorContext } from "./document-context";
7
7
  import { Subject, Subscription } from "./event-subject";
8
8
  import { DocumentInput } from "./document-input-cursor";
9
+ import { NodeCore } from "../../controls/Node";
9
10
  interface EdgeRenderInfo {
10
11
  renderElement: Element;
11
12
  relativePos: Position;
@@ -17,7 +18,7 @@ interface EdgeRenderInfo {
17
18
  * 事件系统
18
19
  */
19
20
  export declare class DocumentEvent {
20
- private canvas;
21
+ private editor;
21
22
  private documentPaint;
22
23
  private docCtx;
23
24
  private documentInput;
@@ -48,7 +49,7 @@ export declare class DocumentEvent {
48
49
  subs: Array<Subscription>;
49
50
  selectionState: SelectionState;
50
51
  viewOptions: ViewOptions;
51
- constructor(canvas: HTMLCanvasElement, documentPaint: DocumentPaint, docCtx: EditorContext, documentInput: DocumentInput);
52
+ constructor(editor: NodeCore, documentPaint: DocumentPaint, docCtx: EditorContext, documentInput: DocumentInput);
52
53
  private bindEvent;
53
54
  addSubEvent(sub: Subscription): void;
54
55
  clearSubEvent(): void;
@@ -1,6 +1,7 @@
1
1
  import { LeafElement } from "./element-define";
2
2
  import { EditorContext } from "./document-context";
3
3
  import { Subject } from "./event-subject";
4
+ import { NodeCore } from "../../controls/Node";
4
5
  export interface ICompositionStartInfo {
5
6
  element: LeafElement;
6
7
  offset: number;
@@ -15,18 +16,7 @@ export interface InputData {
15
16
  * 输入处理
16
17
  */
17
18
  export declare class DocumentInput {
18
- private editInput;
19
- private editCursor;
20
- private cursorWrapper;
21
19
  private docCtx;
22
- /**
23
- * 光标闪烁状态
24
- */
25
- private _cursorBlinksState;
26
- private cursorBlinksIntervalID;
27
- private compositionStart;
28
- private compositionPrevData;
29
- private compositionStartInfo;
30
20
  onInputEvent: Subject<InputData>;
31
21
  onBackspaceEvent: Subject<KeyboardEvent>;
32
22
  onDeleteEvent: Subject<KeyboardEvent>;
@@ -42,21 +32,8 @@ export declare class DocumentInput {
42
32
  onEndEvent: Subject<void>;
43
33
  onUpEvent: Subject<void>;
44
34
  onDownEvent: Subject<void>;
45
- constructor(editInput: HTMLInputElement, editCursor: HTMLSpanElement, cursorWrapper: HTMLDivElement, docCtx: EditorContext);
46
- destroy(): void;
47
- /**
48
- * 设置光标闪烁
49
- */
50
- setCursorBlinks(): void;
51
- /**
52
- * 设置光标位置
53
- * @param position
54
- */
55
- setCursorPosition(position: {
56
- x: number;
57
- y: number;
58
- height: number;
59
- }): void;
35
+ onTabKeyEvent: Subject<void>;
36
+ constructor(node: NodeCore, docCtx: EditorContext);
60
37
  /**
61
38
  * 设置虚拟光标的可见性
62
39
  * @param visibility
@@ -1,12 +1,11 @@
1
- import { ElementMeasure } from "./element-measure";
2
1
  import { ElementPaint } from "./element-paint";
3
- import { ElementRenderCut } from "./element-render-cut";
4
- import { DocumentRenderObject } from "./impl/document/doc-impl";
2
+ import { DocumentRenderObject } from "./impl";
5
3
  import { RenderContextType } from "./render-context";
6
4
  import { Element, SelectionContentRange } from "./element-define";
7
- import { DocumentContainerRender } from "./impl/document/doc-container-impl";
8
- import { CommsContainerRenderObject } from "./impl/comments/comments-container-impl";
5
+ import { DocumentContainerRender } from "./impl";
9
6
  import { EditorContext } from "./document-context";
7
+ import { ElementMeasure } from "./element-measure";
8
+ import { ElementRenderCut } from "./element-render-cut";
10
9
  export declare class DocumentPaint {
11
10
  private renderContext;
12
11
  private docCtx;
@@ -16,7 +15,6 @@ export declare class DocumentPaint {
16
15
  elementPaint: ElementPaint;
17
16
  docPages: Array<DocumentRenderObject>;
18
17
  docContainer: DocumentContainerRender;
19
- commsContainer: CommsContainerRenderObject;
20
18
  private viewOptions;
21
19
  constructor(renderContext: RenderContextType, docCtx: EditorContext, selectedSets: Map<Element, SelectionContentRange>);
22
20
  rePages(): void;
@@ -39,8 +37,11 @@ export declare class DocumentPaint {
39
37
  /**
40
38
  * 获取设置文档容器的总高度
41
39
  */
42
- getDocumentContainerHeight(): number;
43
- refreshView(rePaint?: boolean): void;
40
+ getDocumentContainerHeight(): {
41
+ width: number;
42
+ height: number;
43
+ };
44
+ refreshView(): void;
44
45
  getDocPages(): Array<DocumentRenderObject>;
45
46
  getDocContainer(): DocumentContainerRender;
46
47
  /***
@@ -1,7 +1,6 @@
1
- import { ViewOptions, Element } from "./element-define";
2
- import { RenderContextType } from "./render-context";
1
+ import { Element, ICreateRenderData } from "./element-define";
3
2
  /**
4
3
  * 文字行渲染模式
5
4
  用于医嘱打印模式
6
5
  */
7
- export declare function runTextLineRender(ele: Element, options: ViewOptions, renderCtx: RenderContextType): void;
6
+ export declare function runTextLineRender(ele: Element, data: ICreateRenderData): void;
@@ -0,0 +1,23 @@
1
+ import { BranchElement } from "./element-define";
2
+ import { SelectionState } from "./document-selection";
3
+ export declare class DynamicContextParser {
4
+ doc: BranchElement;
5
+ ss: SelectionState;
6
+ constructor(doc: BranchElement, ss: SelectionState);
7
+ cacheList: Array<any>;
8
+ getControlById(id: string): any;
9
+ getObject(id: string): RefCtxValue;
10
+ AVG(fn: () => Array<number | string>): number;
11
+ SUM(fn: () => Array<number | string | Array<string>>): number;
12
+ MAX(fn: () => Array<number | string>): number;
13
+ MIN(fn: () => Array<number | string>): number;
14
+ Float(val: any): number;
15
+ IF(condition: () => boolean, truePart: VoidFunction, falsePart: VoidFunction): any;
16
+ Number(val: any): number;
17
+ TableData(tableId: string, startRow: number, startCol: number, endRow: number, endCol: number): Array<string>;
18
+ }
19
+ interface RefCtxValue {
20
+ get value(): any;
21
+ set value(val: any);
22
+ }
23
+ export {};
@@ -7,8 +7,6 @@ export declare class Rect {
7
7
  y: number;
8
8
  width: number;
9
9
  height: number;
10
- maxHeight: number;
11
- maxWidth: number;
12
10
  }
13
11
  export interface SerializeProps {
14
12
  type: string;
@@ -58,7 +56,7 @@ export declare abstract class Element<P extends object = any> {
58
56
  protected _onChangeEvent: Subject<void>;
59
57
  private observers;
60
58
  paintRenders: Array<RenderObject>;
61
- measureRender: RenderObject | null;
59
+ cacheRender: RenderObject | null;
62
60
  focusable: boolean;
63
61
  isFocused: boolean;
64
62
  /**
@@ -80,7 +78,7 @@ export declare abstract class Element<P extends object = any> {
80
78
  set props(value: P);
81
79
  private notifyChanged;
82
80
  constructor(type: string);
83
- abstract createRenderObject(options: ViewOptions, renderCtx: RenderContextType): RenderObject | null;
81
+ abstract createRenderObject(data: ICreateRenderData): RenderObject | null;
84
82
  abstract serialize(viewOptions: ViewOptions): SerializeProps | null;
85
83
  abstract clone(data: boolean): Element;
86
84
  abstract getChildLength(): number;
@@ -90,7 +88,7 @@ export declare abstract class Element<P extends object = any> {
90
88
  removeEvent(eventId: string): void;
91
89
  removeEventByType(eventType: EventTypes): void;
92
90
  invokeEvent(event: EventTypes, evt: ElementEvent, userCapture?: boolean): void;
93
- beginMeasure(): void;
91
+ beginMeasure(data: IBeginMeasureData): void;
94
92
  endMeasure(): void;
95
93
  getIndex(): number;
96
94
  get refreshSubject(): Subject<void>;
@@ -151,7 +149,6 @@ export declare abstract class BlockContentElement<P extends object = any> extend
151
149
  * 包含块级渲染元素的容器元素,例如body、table-cell、table等
152
150
  */
153
151
  export declare abstract class BlockContainerElement<P extends object = any> extends BranchElement<P> {
154
- noFillEmpty: boolean;
155
152
  }
156
153
  export interface readElementProps<T> {
157
154
  type: string;
@@ -161,7 +158,7 @@ export interface readElementProps<T> {
161
158
  export declare abstract class ElementFactory<T = null> {
162
159
  options: ViewOptions;
163
160
  abstract match(type: string): boolean;
164
- abstract createElement(data: readElementProps<T>, renderCtx: RenderContextType): Element;
161
+ abstract createElement(data: readElementProps<T>): Element;
165
162
  readCompleted(ele: Element, children: Array<Element>): void;
166
163
  }
167
164
  export interface SelectionContentRange {
@@ -264,12 +261,13 @@ export declare class ViewOptions {
264
261
  chineseLayout: boolean;
265
262
  enableTrackHistory: boolean;
266
263
  trackHistoryMaxLength: number;
264
+ enableDyExpression: boolean;
267
265
  private _fullPageView;
268
266
  get fullPageView(): boolean;
269
267
  set fullPageView(value: boolean);
270
268
  mmToPixelsRatio: number;
271
269
  cursor: CursorType;
272
- translateY: number;
270
+ pageOffset: Position;
273
271
  docPageSettings: PageOptions;
274
272
  viewSettings: {
275
273
  width: number;
@@ -344,4 +342,14 @@ export interface ICancelTokenFn {
344
342
  }
345
343
  declare type IVoidFn = () => void;
346
344
  export declare function onceTask(fn: IVoidFn): IVoidFn;
345
+ export interface IBeginMeasureData {
346
+ doc: BranchElement;
347
+ viewOptions: ViewOptions;
348
+ parser: object;
349
+ createParaFn: () => Element;
350
+ }
351
+ export interface ICreateRenderData {
352
+ options: ViewOptions;
353
+ renderCtx: RenderContextType;
354
+ }
347
355
  export {};
@@ -1,10 +1,11 @@
1
- import { Element, InlineGroupElement, ViewOptions } from "./element-define";
1
+ import { Element, IBeginMeasureData, InlineGroupElement, ViewOptions } from "./element-define";
2
2
  import { FillNullSpaceRenderObject } from "./impl";
3
3
  import { DocumentElement, DocumentRenderObject } from "./impl";
4
4
  import { ParagraphElement, ParagraphLineRectRenderObject, ParagraphRenderObject } from "./impl";
5
5
  import { TextGroupRenderObject } from "./impl";
6
6
  import { RenderContextType } from "./render-context";
7
7
  import { InlineGroupRenderObject, RenderObject } from "./render-define";
8
+ import { EditorContext } from "./document-context";
8
9
  interface ICutLineData {
9
10
  firstItem: RenderObject | null;
10
11
  lastItem: RenderObject | null;
@@ -14,9 +15,10 @@ interface ICutLineData {
14
15
  * 测量阶段,生成Render-UI
15
16
  */
16
17
  export declare class ElementMeasure {
17
- private options;
18
- private renderCtx;
19
- constructor(options: ViewOptions, renderCtx: RenderContextType);
18
+ docCtx: EditorContext;
19
+ renderCtx: RenderContextType;
20
+ options: ViewOptions;
21
+ constructor(docCtx: EditorContext, renderCtx: RenderContextType);
20
22
  measureDocument(document: DocumentElement): DocumentRenderObject;
21
23
  measureControl(element: Element, maxWidth: number): RenderObject | null;
22
24
  /**
@@ -86,7 +88,7 @@ export declare class ElementMeasure {
86
88
  * @param ele
87
89
  */
88
90
  setMeasureCompletedModifyFlag(ele: Element): void;
89
- clearPaintCache(ele: Element): void;
91
+ clearPaintCache(ele: Element, data: IBeginMeasureData): void;
90
92
  endMeasures(ele: Element): void;
91
93
  }
92
94
  export {};
@@ -2,8 +2,6 @@ import { RenderContextType } from "./render-context";
2
2
  import { Element, Position, SelectionContentRange, ViewOptions } from "./element-define";
3
3
  import { RenderObject } from "./render-define";
4
4
  import { DocumentContainerRender } from "./impl";
5
- import { CommentElement } from "./impl";
6
- import { CommsContainerRenderObject } from "./impl";
7
5
  import { EditorContext } from "./document-context";
8
6
  export interface PrintOptions {
9
7
  beforePrintPage: (pageIndex: number, pageCount: number) => void;
@@ -13,17 +11,10 @@ export declare class ElementPaint {
13
11
  private renderCtx;
14
12
  private docCtx;
15
13
  private selectedSets;
16
- private measureCommContainer;
17
- private rePaint;
18
14
  viewOptions: ViewOptions;
19
15
  constructor(renderCtx: RenderContextType, docCtx: EditorContext);
20
- paintCommMap: Array<{
21
- ele: CommentElement;
22
- render: RenderObject;
23
- pos: Position;
24
- }>;
25
16
  paintPagePos: Position;
26
- drawPages(docContainer: DocumentContainerRender, selectedSets: Map<Element, SelectionContentRange>, measureCommContainer: CommsContainerRenderObject, rePaint: boolean): void;
17
+ drawPages(docContainer: DocumentContainerRender, selectedSets: Map<Element, SelectionContentRange>): void;
27
18
  drawRenderObject(renderObject: RenderObject<any>, parent: {
28
19
  x: number;
29
20
  y: number;
@@ -39,16 +39,25 @@ export declare class TextProps extends INotifyPropertyChanged {
39
39
  }
40
40
  export declare enum ParagraphNumberType {
41
41
  none = -1,
42
+ /**
43
+ * 无序列表
44
+ */
42
45
  ul = 0,
46
+ /**
47
+ * 有序符号
48
+ */
43
49
  ol = 1
44
50
  }
51
+ export declare const defaultParaHanging = 30;
45
52
  export declare class ParagraphProps extends INotifyPropertyChanged {
46
53
  indent: number;
47
54
  hanging: number;
48
55
  lineHeight: number;
49
56
  textAlign: TextAlign;
50
57
  numberType: ParagraphNumberType;
51
- pageBreak: boolean;
58
+ marginTop: number;
59
+ marginBottom: number;
60
+ tabs: Array<number>;
52
61
  clone(dest?: ParagraphProps | null): ParagraphProps;
53
62
  getSerializeProps(viewOptions: ViewOptions): any;
54
63
  }
@@ -95,18 +104,16 @@ export declare class TableRowProps extends INotifyPropertyChanged {
95
104
  export declare type TableAlignment = 'start' | 'end' | 'center';
96
105
  export declare class TableProps extends INotifyPropertyChanged {
97
106
  id: string;
98
- width: number | string;
99
- cols: Array<number | string>;
107
+ cols: Array<number>;
100
108
  alignment: TableAlignment;
101
- border: 'all' | 'none';
109
+ border: 'all' | 'none' | 'dashed';
102
110
  allowBreakRow: boolean;
103
111
  clone(dest: TableProps): TableProps;
104
112
  getSerializeProps(viewOptions: ViewOptions): {
105
113
  id: string;
106
- width: string | number;
107
- cols: (string | number)[];
114
+ cols: number[];
108
115
  alignment: TableAlignment;
109
- border: "none" | "all";
116
+ border: "none" | "all" | "dashed";
110
117
  };
111
118
  }
112
119
  export declare type CellMergeType = 'col-merge' | 'row-merge';
@@ -157,6 +164,8 @@ export declare class DataEleBaseProps extends INotifyPropertyChanged {
157
164
  minLength: number;
158
165
  type: DataEleTypes;
159
166
  underline: boolean;
167
+ expression: string;
168
+ hidden: boolean;
160
169
  cloneBaseProps(destProps: DataEleBaseProps): void;
161
170
  private setPropValue;
162
171
  updateProps(props: DataEleBaseProps): void;
@@ -1,11 +1,9 @@
1
1
  import { EditorContext } from "./document-context";
2
2
  import { ElementFactory, Element } from "./element-define";
3
3
  import { DocumentElement } from "./impl/document/doc-impl";
4
- import { RenderContextType } from "./render-context";
5
4
  export declare class ElementReader {
6
5
  private docCtx;
7
- private renderCtx;
8
- constructor(docCtx: EditorContext, renderCtx: RenderContextType);
6
+ constructor(docCtx: EditorContext);
9
7
  factories: Array<ElementFactory>;
10
8
  addFactory<U extends null | object, T extends ElementFactory<U>>(c: new () => T): void;
11
9
  private initFactory;
@@ -1,29 +1,31 @@
1
- import { DocumentBodyRenderObject } from "./impl/document/doc-body-impl";
2
- import { DocumentElement, DocumentRenderObject } from "./impl/document/doc-impl";
1
+ import { DocumentBodyRenderObject } from "./impl";
2
+ import { DocumentElement, DocumentRenderObject } from "./impl";
3
3
  import { RenderContextType } from "./render-context";
4
4
  import { BlockContentRenderObject } from "./render-define";
5
5
  import { Rect, ViewOptions } from "./element-define";
6
- import { TableRowRenderObject } from "./impl/table/table-row-impl";
7
- import { TableCellRenderObject } from "./impl/table/table-cell-impl";
8
- import { TableRenderObject } from "./impl/table/table-impl";
6
+ import { TableRowRenderObject } from "./impl";
7
+ import { TableCellRenderObject } from "./impl";
8
+ import { TableRenderObject } from "./impl";
9
9
  export declare class ElementRenderCut {
10
10
  private options;
11
11
  private renderContext;
12
12
  constructor(options: ViewOptions, renderContext: RenderContextType);
13
13
  cutPage(documentRender: DocumentRenderObject, documentElement: DocumentElement): Array<DocumentRenderObject>;
14
- private checkPageBreak;
14
+ private getDocInnerRect;
15
15
  getFullViewDocRender(documentRender: DocumentRenderObject, documentElement: DocumentElement): Array<DocumentRenderObject>;
16
16
  createEmptyBodyRender(bodyRender: DocumentBodyRenderObject, limitRect: Rect): {
17
17
  emptyBody: DocumentBodyRenderObject;
18
18
  innerRect: Rect & {
19
19
  prevMargin: number;
20
+ } & {
21
+ maxHeight: number;
22
+ maxWidth: number;
20
23
  };
21
24
  };
22
25
  /**
23
26
  * 切割渲染元素
24
27
  * @param render 被切割的对象
25
28
  * @param limitHeight
26
- * @param addFunc
27
29
  * @returns
28
30
  */
29
31
  cutRenderItem(render: BlockContentRenderObject, limitHeight: number): BlockContentRenderObject | null;
@@ -1,5 +1,5 @@
1
1
  import { EditorContext } from "./document-context";
2
- import { BlockContainerElement, BranchElement, Element, LeafElement, Position, Rect, SelectionContentRange, ViewOptions } from "./element-define";
2
+ import { BranchElement, Element, LeafElement, Position, Rect, SelectionContentRange, ViewOptions } from "./element-define";
3
3
  import { HitRegion } from "./element-event-define";
4
4
  import { DataEleBaseProps, TextProps } from "./element-props";
5
5
  import { DataElementInlineGroup } from "./impl/data-element/data-element-base-impl";
@@ -19,6 +19,7 @@ export declare class ElementUtil {
19
19
  width: number;
20
20
  height: number;
21
21
  }): void;
22
+ static getDpr(): number;
22
23
  static getDprNumber(val: number, scale?: number): number;
23
24
  static readTextProps(dest: TextProps | null, props: TextProps | undefined, options: ViewOptions): TextProps;
24
25
  static readEleBaseProps(dest: DataEleBaseProps, props: DataEleBaseProps): DataEleBaseProps;
@@ -35,12 +36,6 @@ export declare class ElementUtil {
35
36
  * @param innerRect
36
37
  */
37
38
  static updateRenderHeightByInnerRect(render: RenderObject, innerRect: Rect): void;
38
- /**
39
- * 设置块级元素限制尺寸
40
- * @param render
41
- * @param parentLimitRect
42
- */
43
- static setBlockElementLimitSize(render: BlockContainerRenderObject | BlockContentRenderObject, parentLimitRect: Rect): void;
44
39
  /**
45
40
  * 克隆框体
46
41
  * @param rect
@@ -260,11 +255,6 @@ export declare class ElementUtil {
260
255
  * @returns
261
256
  */
262
257
  static fixParagraphContent(control: ParagraphElement): void;
263
- /**
264
- * 修正块级容器内容
265
- * @param control
266
- */
267
- static fixBlockContainer(control: BlockContainerElement): void;
268
258
  /**
269
259
  * 获取绘制元素相对于整个画布的绝对位置
270
260
  * 整个画布绘制的时候不一定从x=0,y=0时绘制的,下拉滚动时,上面从负y坐标开始绘制
@@ -3,12 +3,13 @@
3
3
  */
4
4
  export declare abstract class Subscription<T = any> {
5
5
  protected closed: boolean;
6
+ once: boolean;
6
7
  abstract invoke(data: T): void;
7
8
  abstract unsubscribe(): void;
8
9
  }
9
10
  export declare abstract class EventSourceCore<T> {
10
11
  protected closed: boolean;
11
- private subs;
12
+ subs: Array<Subscription>;
12
13
  next(data?: T): void;
13
14
  protected addSub(sub: Subscription): void;
14
15
  protected removeSub(sub: Subscription): void;
@@ -32,6 +33,7 @@ export declare class DOMSubscription<T> extends Subscription<T> {
32
33
  }
33
34
  export declare class Subject<T> extends EventSourceCore<T> {
34
35
  subscribe(listener: (data: T) => void): Subscription;
36
+ onceSubscribe(listener: (data: T) => void): Subscription;
35
37
  }
36
38
  export declare class SubjectSubscription extends Subscription {
37
39
  listener: (data: any) => void;
@@ -1,6 +1,5 @@
1
1
  import { ElementFactory, LeafElement, readElementProps, SerializeProps, ViewOptions } from "../../element-define";
2
2
  import { CheckBoxProps } from "../../element-props";
3
- import { RenderContextType } from "../../render-context";
4
3
  import { IRenderData, LeafRenderObject, RenderObject } from "../../render-define";
5
4
  import { ElementEvent } from "../../element-event-define";
6
5
  export declare class CheckBoxElement extends LeafElement<CheckBoxProps> {
@@ -12,7 +11,7 @@ export declare class CheckBoxElement extends LeafElement<CheckBoxProps> {
12
11
  }
13
12
  export declare class CheckBoxFactory extends ElementFactory<CheckBoxProps> {
14
13
  match(type: string): boolean;
15
- createElement(data: readElementProps<CheckBoxProps>, renderCtx: RenderContextType): CheckBoxElement;
14
+ createElement(data: readElementProps<CheckBoxProps>): CheckBoxElement;
16
15
  }
17
16
  export declare class CheckBoxRenderObject extends LeafRenderObject<CheckBoxElement> {
18
17
  render(e: IRenderData): void;