@hailin-zheng/editor-core 2.2.1 → 2.2.3

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 (90) hide show
  1. package/editor.css +610 -559
  2. package/index-cjs.d.ts +31 -31
  3. package/index-cjs.js +22202 -22146
  4. package/index-cjs.js.map +1 -1
  5. package/index.d.ts +31 -31
  6. package/index.js +22204 -22149
  7. package/index.js.map +1 -1
  8. package/med_editor/doc-editor.d.ts +464 -461
  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 -80
  15. package/med_editor/framework/doc-layout/paragraph-arrange.d.ts +107 -107
  16. package/med_editor/framework/document-change.d.ts +295 -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 +133 -136
  20. package/med_editor/framework/document-event.d.ts +251 -251
  21. package/med_editor/framework/document-input-cursor.d.ts +43 -43
  22. package/med_editor/framework/document-paginator.d.ts +46 -41
  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 +409 -406
  27. package/med_editor/framework/element-event-define.d.ts +107 -107
  28. package/med_editor/framework/element-props.d.ts +343 -344
  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 +9 -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-decorate-impl.d.ts +15 -15
  40. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +32 -32
  41. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +96 -96
  42. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +26 -26
  43. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +23 -23
  44. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +17 -17
  45. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +23 -23
  46. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +21 -21
  47. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +22 -22
  48. package/med_editor/framework/impl/data-element/qrcode.d.ts +93 -93
  49. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +16 -16
  50. package/med_editor/framework/impl/document/doc-body-impl.d.ts +19 -20
  51. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +22 -22
  52. package/med_editor/framework/impl/document/doc-container-impl.d.ts +7 -7
  53. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +19 -19
  54. package/med_editor/framework/impl/document/doc-header-impl.d.ts +19 -19
  55. package/med_editor/framework/impl/document/doc-impl.d.ts +72 -71
  56. package/med_editor/framework/impl/index.d.ts +39 -39
  57. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +31 -31
  58. package/med_editor/framework/impl/media-formula/permanent-teeth.d.ts +34 -34
  59. package/med_editor/framework/impl/paragraph/p-impl.d.ts +38 -38
  60. package/med_editor/framework/impl/picture/RectEle.d.ts +44 -44
  61. package/med_editor/framework/impl/picture/image-impl.d.ts +24 -24
  62. package/med_editor/framework/impl/radio/radio-impl.d.ts +17 -17
  63. package/med_editor/framework/impl/svg/svg-impl.d.ts +20 -20
  64. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +18 -18
  65. package/med_editor/framework/impl/symbol/p-symbol-impl.d.ts +16 -16
  66. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +20 -20
  67. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +15 -15
  68. package/med_editor/framework/impl/table/table-cell-impl.d.ts +34 -34
  69. package/med_editor/framework/impl/table/table-impl.d.ts +49 -49
  70. package/med_editor/framework/impl/table/table-row-impl.d.ts +27 -27
  71. package/med_editor/framework/impl/table/table-split-cell-patch.d.ts +20 -20
  72. package/med_editor/framework/impl/table/table-split-cell.d.ts +92 -92
  73. package/med_editor/framework/impl/table/table-util.d.ts +180 -180
  74. package/med_editor/framework/impl/text/text-impl.d.ts +34 -34
  75. package/med_editor/framework/impl/text/track-run-impl.d.ts +27 -27
  76. package/med_editor/framework/infrastructure/event-subject.d.ts +56 -56
  77. package/med_editor/framework/infrastructure/notify.d.ts +13 -13
  78. package/med_editor/framework/print/document-print-offscreen.d.ts +58 -58
  79. package/med_editor/framework/print/document-print.d.ts +18 -18
  80. package/med_editor/framework/render-context.d.ts +111 -111
  81. package/med_editor/framework/render-define.d.ts +141 -141
  82. package/med_editor/framework/selection/document-selection.d.ts +91 -97
  83. package/med_editor/framework/selection/range-util.d.ts +36 -36
  84. package/med_editor/framework/selection/selection-overlays.d.ts +32 -32
  85. package/med_editor/framework/util/adjust-viewport-elements.d.ts +12 -12
  86. package/med_editor/framework/util/common-util.d.ts +76 -76
  87. package/med_editor/framework/util/document-segmenter.d.ts +2 -2
  88. package/med_editor/framework/util/element-util.d.ts +410 -410
  89. package/med_editor/framework/vnode/editor-calendar-vnode.d.ts +42 -42
  90. package/package.json +19 -19
@@ -1,58 +1,58 @@
1
- import { EditorContext } from "../document-context";
2
- import { DocumentPaginator } from "../document-paginator";
3
- import { ViewOptions } from "../element-define";
4
- import { ElementReader } from "../element-reader";
5
- import { DocumentElement, DocumentRenderObject } from "../impl/document/doc-impl";
6
- import { IRenderContextContract, RenderContext } from "../render-context";
7
- import { Subject } from "../infrastructure/event-subject";
8
- import { EditorVNodeObject } from "../render-define";
9
- interface IAfterRenderEvent {
10
- index: number;
11
- renderCtx: IRenderContextContract;
12
- docRender: DocumentRenderObject;
13
- pageSvgVNode: EditorVNodeObject;
14
- }
15
- /**
16
- * 离屏打印
17
- */
18
- export declare abstract class DocumentPrintOffscreenBase {
19
- documentPaginator: DocumentPaginator;
20
- viewOptions: ViewOptions;
21
- docCtx: EditorContext;
22
- renderCtx: RenderContext;
23
- elementReader: ElementReader;
24
- beforeRenderEvent: Subject<IAfterRenderEvent>;
25
- afterRenderEvent: Subject<IAfterRenderEvent>;
26
- beforePrint: Subject<void>;
27
- afterPrint: Subject<void>;
28
- constructor();
29
- print(data: any | DocumentElement, ranges?: Array<number> | null): void;
30
- /**
31
- * 续打
32
- */
33
- printForContinuation(data: any | DocumentElement, options: {
34
- startY: number;
35
- startDocIndex: number;
36
- }): void;
37
- getPrintNodes(data: any | DocumentElement, ranges?: Array<number> | null): Array<string>;
38
- Encode64(str: any): string;
39
- /**
40
- * 读取数据,排版
41
- * @param data
42
- */
43
- prepare(data: any | DocumentElement): void;
44
- getSvgNodes(docRenders: Array<DocumentRenderObject>, printRanges?: Array<number> | null): Array<string>;
45
- abstract createCanvas(width: number, height: number): {
46
- canvas: HTMLCanvasElement;
47
- ctx: CanvasRenderingContext2D;
48
- };
49
- abstract createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
50
- }
51
- export declare class DocumentPrintOffscreen extends DocumentPrintOffscreenBase {
52
- createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
53
- createCanvas(width: number, height: number): {
54
- canvas: HTMLCanvasElement;
55
- ctx: CanvasRenderingContext2D;
56
- };
57
- }
58
- export {};
1
+ import { EditorContext } from "../document-context";
2
+ import { DocumentPaginator } from "../document-paginator";
3
+ import { ViewOptions } from "../element-define";
4
+ import { ElementReader } from "../element-reader";
5
+ import { DocumentElement, DocumentRenderObject } from "../impl/document/doc-impl";
6
+ import { IRenderContextContract, RenderContext } from "../render-context";
7
+ import { Subject } from "../infrastructure/event-subject";
8
+ import { EditorVNodeObject } from "../render-define";
9
+ interface IAfterRenderEvent {
10
+ index: number;
11
+ renderCtx: IRenderContextContract;
12
+ docRender: DocumentRenderObject;
13
+ pageSvgVNode: EditorVNodeObject;
14
+ }
15
+ /**
16
+ * 离屏打印
17
+ */
18
+ export declare abstract class DocumentPrintOffscreenBase {
19
+ documentPaginator: DocumentPaginator;
20
+ viewOptions: ViewOptions;
21
+ docCtx: EditorContext;
22
+ renderCtx: RenderContext;
23
+ elementReader: ElementReader;
24
+ beforeRenderEvent: Subject<IAfterRenderEvent>;
25
+ afterRenderEvent: Subject<IAfterRenderEvent>;
26
+ beforePrint: Subject<void>;
27
+ afterPrint: Subject<void>;
28
+ constructor();
29
+ print(data: any | DocumentElement, ranges?: Array<number> | null): void;
30
+ /**
31
+ * 续打
32
+ */
33
+ printForContinuation(data: any | DocumentElement, options: {
34
+ startY: number;
35
+ startDocIndex: number;
36
+ }): void;
37
+ getPrintNodes(data: any | DocumentElement, ranges?: Array<number> | null): Array<string>;
38
+ Encode64(str: any): string;
39
+ /**
40
+ * 读取数据,排版
41
+ * @param data
42
+ */
43
+ prepare(data: any | DocumentElement): void;
44
+ getSvgNodes(docRenders: Array<DocumentRenderObject>, printRanges?: Array<number> | null): Array<string>;
45
+ abstract createCanvas(width: number, height: number): {
46
+ canvas: HTMLCanvasElement;
47
+ ctx: CanvasRenderingContext2D;
48
+ };
49
+ abstract createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
50
+ }
51
+ export declare class DocumentPrintOffscreen extends DocumentPrintOffscreenBase {
52
+ createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
53
+ createCanvas(width: number, height: number): {
54
+ canvas: HTMLCanvasElement;
55
+ ctx: CanvasRenderingContext2D;
56
+ };
57
+ }
58
+ export {};
@@ -1,18 +1,18 @@
1
- import { OrientType } from "../element-define";
2
- export declare function createPrintTemplate({ width, height, orient }: PrintPaperOptions): string;
3
- declare type PrintPaperOptions = {
4
- width: number;
5
- height: number;
6
- orient: OrientType;
7
- };
8
- /**
9
- * 打印DOM
10
- * @param printNodes
11
- * @param options
12
- * @returns
13
- */
14
- export declare function printNodes(printNodes: Array<Node | string>, options: PrintPaperOptions, printEvent?: {
15
- beforePrint: () => void;
16
- afterPrint: () => void;
17
- } | null): void;
18
- export {};
1
+ import { OrientType } from "../element-define";
2
+ export declare function createPrintTemplate({ width, height, orient }: PrintPaperOptions): string;
3
+ declare type PrintPaperOptions = {
4
+ width: number;
5
+ height: number;
6
+ orient: OrientType;
7
+ };
8
+ /**
9
+ * 打印DOM
10
+ * @param printNodes
11
+ * @param options
12
+ * @returns
13
+ */
14
+ export declare function printNodes(printNodes: Array<Node | string>, options: PrintPaperOptions, printEvent?: {
15
+ beforePrint: () => void;
16
+ afterPrint: () => void;
17
+ } | null): void;
18
+ export {};
@@ -1,111 +1,111 @@
1
- import { Position, Rect } from "./element-define";
2
- import { TextProps } from "./element-props";
3
- import { TextGroupElement, TextGroupRenderObject } from "./impl/text/text-impl";
4
- export declare enum TextUnitsHolder {
5
- char = 0,
6
- sourceSize = 1,
7
- actualSize = 2,
8
- actualBoundingBoxAscent = 3
9
- }
10
- export interface TextUnits {
11
- sourceSize: number;
12
- actualSize: number;
13
- char: string;
14
- }
15
- export interface IRenderContextContract {
16
- contentContext: PaintContent;
17
- overlaysContext: PaintContent;
18
- mainContext: PaintContent;
19
- drawMode: 'view' | 'print';
20
- clear(): void;
21
- commit(pageSetting: ISetCanvasPageProps, pageOffset: Position): void;
22
- init(pageSetting: ISetCanvasPageProps): void;
23
- tran(effect: () => void): void;
24
- update(pageSetting: ISetCanvasPageProps): void;
25
- }
26
- export declare type RenderContextType = IRenderContextContract;
27
- export declare type ISetCanvasPageProps = {
28
- width: number;
29
- height: number;
30
- scale: number;
31
- };
32
- export declare class RenderContext implements IRenderContextContract {
33
- readonly mainContext: PaintContent;
34
- contentContext: PaintContent;
35
- overlaysContext: PaintContent;
36
- drawMode: 'view' | 'print';
37
- contentOffCanvas: HTMLCanvasElement;
38
- overlayOffCanvas: HTMLCanvasElement;
39
- constructor(mainContext: PaintContent);
40
- pageSetting: ISetCanvasPageProps;
41
- pageRect: Rect;
42
- init(pageSetting: ISetCanvasPageProps): void;
43
- /**
44
- * 更新绘制画布大小
45
- */
46
- update(pageSetting: ISetCanvasPageProps): void;
47
- clear(): void;
48
- commit(pageSetting: ISetCanvasPageProps, pageOffset: Position): void;
49
- tran(effect: () => void): void;
50
- }
51
- export declare class PaintContent {
52
- ctx: CanvasRenderingContext2D;
53
- constructor(ctx: CanvasRenderingContext2D);
54
- init(): void;
55
- private cacheFontBoundingBoxAscentMap;
56
- getActualFontBoundingBoxAscent(font: string): number | undefined;
57
- setGlobalAlpha(alpha: number): void;
58
- getGlobalAlpha(): number;
59
- clear(): void;
60
- drawText(text: string, textProps: TextProps, x: number, y: number, width: number, height: number): void;
61
- fillCircular(x: number, y: number, r: number, color?: string): void;
62
- drawTextUnits(textGroupRender: TextGroupRenderObject, x: number, y: number): void;
63
- drawText2(str: string, font: string, color: string, x: number, y: number, width: number, height: number): void;
64
- getParaLineHeight(textEle: TextGroupElement): number;
65
- measureText(text: string, textProps: TextProps): {
66
- width: number;
67
- height: number;
68
- };
69
- measureTextMetrics(font: string, str?: string): {
70
- fontBoundingBoxAscent?: number;
71
- fontBoundingBoxDescent?: number;
72
- width: number;
73
- actualBoundingBoxAscent: number;
74
- actualBoundingBoxDescent: number;
75
- actualBoundingBoxLeft: number;
76
- actualBoundingBoxRight: number;
77
- };
78
- measureTextWidth(text: string, font: {
79
- fontSize: number;
80
- fontName: string;
81
- }): number;
82
- measureTextUnits(units: Array<TextUnits>, textProps: TextProps): void;
83
- clearRect(x: number, y: number, width: number, height: number): void;
84
- save(): void;
85
- restore(): void;
86
- scale(ratio: number): void;
87
- /**
88
- * 包装任务执行:save->exec->restore
89
- * @param effect
90
- */
91
- tran(effect: () => void): void;
92
- strokeRect(x: number, y: number, width: number, height: number, strokeColor?: string, strokeWidth?: number, radius?: number): void;
93
- /**
94
- * 绘制水平线
95
- * @param x
96
- * @param y
97
- * @param width
98
- * @param lineColor
99
- * @param lineWidth
100
- */
101
- drawHoriLine(x: number, y: number, width: number, lineColor?: string, lineWidth?: number): void;
102
- fillRect(x: number, y: number, width: number, height: number, fillColor?: string, shadowBlur?: number, shadowColor?: string, borderRadius?: number): void;
103
- strokeLines(lines: Array<Position>, width?: number, strokeColor?: string): void;
104
- fillLines(lines: Array<Position>, width?: number, fillColor?: string, lineDash?: Array<number>): void;
105
- drawCheckBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
106
- drawRadioBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
107
- drawDashLine(points: Array<Position>, lineDash: Array<number>, lineColor?: string, lineWidth?: number): void;
108
- roundRect(x: number, y: number, width: number, height: number, radius: number): void;
109
- clip(x: number, y: number, width: number, height: number): void;
110
- clipFunc(pathFunc: () => void): void;
111
- }
1
+ import { Position, Rect } from "./element-define";
2
+ import { TextProps } from "./element-props";
3
+ import { TextGroupElement, TextGroupRenderObject } from "./impl/text/text-impl";
4
+ export declare enum TextUnitsHolder {
5
+ char = 0,
6
+ sourceSize = 1,
7
+ actualSize = 2,
8
+ actualBoundingBoxAscent = 3
9
+ }
10
+ export interface TextUnits {
11
+ sourceSize: number;
12
+ actualSize: number;
13
+ char: string;
14
+ }
15
+ export interface IRenderContextContract {
16
+ contentContext: PaintContent;
17
+ overlaysContext: PaintContent;
18
+ mainContext: PaintContent;
19
+ drawMode: 'view' | 'print';
20
+ clear(): void;
21
+ commit(pageSetting: ISetCanvasPageProps, pageOffset: Position): void;
22
+ init(pageSetting: ISetCanvasPageProps): void;
23
+ tran(effect: () => void): void;
24
+ update(pageSetting: ISetCanvasPageProps): void;
25
+ }
26
+ export declare type RenderContextType = IRenderContextContract;
27
+ export declare type ISetCanvasPageProps = {
28
+ width: number;
29
+ height: number;
30
+ scale: number;
31
+ };
32
+ export declare class RenderContext implements IRenderContextContract {
33
+ readonly mainContext: PaintContent;
34
+ contentContext: PaintContent;
35
+ overlaysContext: PaintContent;
36
+ drawMode: 'view' | 'print';
37
+ contentOffCanvas: HTMLCanvasElement;
38
+ overlayOffCanvas: HTMLCanvasElement;
39
+ constructor(mainContext: PaintContent);
40
+ pageSetting: ISetCanvasPageProps;
41
+ pageRect: Rect;
42
+ init(pageSetting: ISetCanvasPageProps): void;
43
+ /**
44
+ * 更新绘制画布大小
45
+ */
46
+ update(pageSetting: ISetCanvasPageProps): void;
47
+ clear(): void;
48
+ commit(pageSetting: ISetCanvasPageProps, pageOffset: Position): void;
49
+ tran(effect: () => void): void;
50
+ }
51
+ export declare class PaintContent {
52
+ ctx: CanvasRenderingContext2D;
53
+ constructor(ctx: CanvasRenderingContext2D);
54
+ init(): void;
55
+ private cacheFontBoundingBoxAscentMap;
56
+ getActualFontBoundingBoxAscent(font: string): number | undefined;
57
+ setGlobalAlpha(alpha: number): void;
58
+ getGlobalAlpha(): number;
59
+ clear(): void;
60
+ drawText(text: string, textProps: TextProps, x: number, y: number, width: number, height: number): void;
61
+ fillCircular(x: number, y: number, r: number, color?: string): void;
62
+ drawTextUnits(textGroupRender: TextGroupRenderObject, x: number, y: number): void;
63
+ drawText2(str: string, font: string, color: string, x: number, y: number, width: number, height: number): void;
64
+ getParaLineHeight(textEle: TextGroupElement): number;
65
+ measureText(text: string, textProps: TextProps): {
66
+ width: number;
67
+ height: number;
68
+ };
69
+ measureTextMetrics(font: string, str?: string): {
70
+ fontBoundingBoxAscent?: number;
71
+ fontBoundingBoxDescent?: number;
72
+ width: number;
73
+ actualBoundingBoxAscent: number;
74
+ actualBoundingBoxDescent: number;
75
+ actualBoundingBoxLeft: number;
76
+ actualBoundingBoxRight: number;
77
+ };
78
+ measureTextWidth(text: string, font: {
79
+ fontSize: number;
80
+ fontName: string;
81
+ }): number;
82
+ measureTextUnits(units: Array<TextUnits>, textProps: TextProps): void;
83
+ clearRect(x: number, y: number, width: number, height: number): void;
84
+ save(): void;
85
+ restore(): void;
86
+ scale(ratio: number): void;
87
+ /**
88
+ * 包装任务执行:save->exec->restore
89
+ * @param effect
90
+ */
91
+ tran(effect: () => void): void;
92
+ strokeRect(x: number, y: number, width: number, height: number, strokeColor?: string, strokeWidth?: number, radius?: number): void;
93
+ /**
94
+ * 绘制水平线
95
+ * @param x
96
+ * @param y
97
+ * @param width
98
+ * @param lineColor
99
+ * @param lineWidth
100
+ */
101
+ drawHoriLine(x: number, y: number, width: number, lineColor?: string, lineWidth?: number): void;
102
+ fillRect(x: number, y: number, width: number, height: number, fillColor?: string, shadowBlur?: number, shadowColor?: string, borderRadius?: number): void;
103
+ strokeLines(lines: Array<Position>, width?: number, strokeColor?: string): void;
104
+ fillLines(lines: Array<Position>, width?: number, fillColor?: string, lineDash?: Array<number>): void;
105
+ drawCheckBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
106
+ drawRadioBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
107
+ drawDashLine(points: Array<Position>, lineDash: Array<number>, lineColor?: string, lineWidth?: number): void;
108
+ roundRect(x: number, y: number, width: number, height: number, radius: number): void;
109
+ clip(x: number, y: number, width: number, height: number): void;
110
+ clipFunc(pathFunc: () => void): void;
111
+ }
@@ -1,141 +1,141 @@
1
- import { Rect, Element, MarginProps, PaddingProps, Position, ViewOptions } from './element-define';
2
- import { RenderContext, RenderContextType } from './render-context';
3
- import { EditorContext } from "./document-context";
4
- /**
5
- * 定义组件的UI形式的渲染
6
- */
7
- export declare abstract class RenderObject<T extends Element = Element> {
8
- element: T;
9
- margin: MarginProps;
10
- padding: PaddingProps;
11
- rect: Rect;
12
- parent: BranchRenderObject;
13
- /**
14
- * 可点击性,例如:null-text 占位符元素不具备可点击能力
15
- */
16
- disableClick: boolean;
17
- constructor(element: T);
18
- abstract clone(): RenderObject;
19
- destroy(): void;
20
- /**
21
- * 获取内容区域框体
22
- * @param render
23
- * @returns
24
- */
25
- getInnerRect(): Rect;
26
- getInnerMaxWidth(): number;
27
- /**
28
- * 根据内框内容高度,更新外框框体高度
29
- * @param innerRect
30
- */
31
- updateRenderHeight(innerRect: Rect | number): void;
32
- getIndex(): number;
33
- exportSVG(event: IEditorVNodeOptions): any;
34
- }
35
- export declare type ElementExportTypes = 'svg';
36
- /**
37
- * 叶子节点渲染元素
38
- */
39
- export declare abstract class LeafRenderObject<T extends Element = Element> extends RenderObject<T> {
40
- constructor(element: T | null);
41
- }
42
- /**
43
- * 枝干节点渲染元素
44
- */
45
- export declare abstract class BranchRenderObject<T extends Element = Element> extends RenderObject<T> {
46
- t: number;
47
- constructor(element: T | null);
48
- private children;
49
- getItems<T extends RenderObject = RenderObject>(): Array<T>;
50
- addChild(...items: Array<RenderObject>): void;
51
- insertChild(item: RenderObject, index: number): void;
52
- removeChild(child: RenderObject): void;
53
- removeChildByIndex(index: number): void;
54
- clear(): void;
55
- get length(): number;
56
- getChild<T extends RenderObject = RenderObject>(index: number): T;
57
- getChildIndex(child: RenderObject): number;
58
- destroy(): void;
59
- }
60
- export interface IRenderData {
61
- render: RenderContextType;
62
- position: Position;
63
- docCtx: EditorContext;
64
- nextRender: () => void;
65
- }
66
- /**
67
- * 块级渲染元素
68
- */
69
- export declare abstract class BlockContentRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
70
- setRenderWidth(maxWidth: number): void;
71
- }
72
- export declare abstract class InlineGroupRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
73
- paintPos: Position;
74
- }
75
- /**
76
- * 包含块级渲染元素的容器元素,例如body、table-cell等
77
- */
78
- export declare abstract class BlockContainerRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
79
- setRenderWidth(maxWidth: number): void;
80
- }
81
- /**
82
- * 多级 ‘BlockLineRectRenderObject’ 包裹元素,例如 p、table
83
- */
84
- export declare abstract class MuiltBlockLineRenderObject<T extends Element = Element> extends BlockContentRenderObject<T> {
85
- }
86
- /**
87
- * 容器-子内容为多个行内块级元素,例如table-row
88
- */
89
- export declare abstract class InlineBlockContainer extends MuiltBlockLineRenderObject {
90
- }
91
- /**
92
- * 服务于table-cell
93
- * 可被多级拆分的元素
94
- */
95
- export declare abstract class InlineMuiltBlockLineRenderObject<T extends Element = Element> extends MuiltBlockLineRenderObject<T> {
96
- }
97
- /**
98
- * 最小不可分割单位的块级行框,例如 p-line
99
- * 一行不可存在于两个页面中,块级行框不能分布在两个页面中
100
- */
101
- export declare abstract class BlockLineRectRenderObject extends BlockContentRenderObject {
102
- }
103
- export declare type BorderType = 'left' | 'right' | 'top' | 'bottom' | 'left-middle' | 'right-middle' | 'top-middle' | 'bottom-middle' | 'none' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom';
104
- export declare type CursorType = 'text' | 'row-resize' | 'col-resize' | 'none' | 'default' | 'move' | 'pointer' | 'w-resize' | 's-resize' | 'se-resize' | 'ne-resize';
105
- export declare enum RenderObjectType {
106
- Branch = 0,
107
- Leaf = 1
108
- }
109
- export interface IMeasureRenderStruct<T> {
110
- rect: Rect;
111
- render: T;
112
- }
113
- export declare type EditorVNodeObject = {
114
- sel: string;
115
- data?: {
116
- attrs?: {
117
- [key: string]: any;
118
- };
119
- props?: {
120
- [key: string]: any;
121
- };
122
- on?: {
123
- [key: string]: Function;
124
- };
125
- [key: string]: any;
126
- };
127
- key?: string;
128
- text?: string;
129
- children?: Array<EditorVNodeObject | string>;
130
- };
131
- export declare type IEditorVNodeOptions = {
132
- getChildNodes: (node: RenderObject) => EditorVNodeObject[] | EditorVNodeObject | null | undefined;
133
- options: ViewOptions;
134
- highlights: Array<EditorVNodeObject>;
135
- relativePagePos: Position;
136
- globalPos: Position;
137
- renderCtx: RenderContext;
138
- getCounter: (key: string) => number;
139
- mode: 'print' | 'view';
140
- addChangeTips: (tipVNode: EditorVNodeObject) => void;
141
- };
1
+ import { Rect, Element, MarginProps, PaddingProps, Position, ViewOptions } from './element-define';
2
+ import { RenderContext, RenderContextType } from './render-context';
3
+ import { EditorContext } from "./document-context";
4
+ /**
5
+ * 定义组件的UI形式的渲染
6
+ */
7
+ export declare abstract class RenderObject<T extends Element = Element> {
8
+ element: T;
9
+ margin: MarginProps;
10
+ padding: PaddingProps;
11
+ rect: Rect;
12
+ parent: BranchRenderObject;
13
+ /**
14
+ * 可点击性,例如:null-text 占位符元素不具备可点击能力
15
+ */
16
+ disableClick: boolean;
17
+ constructor(element: T);
18
+ abstract clone(): RenderObject;
19
+ destroy(): void;
20
+ /**
21
+ * 获取内容区域框体
22
+ * @param render
23
+ * @returns
24
+ */
25
+ getInnerRect(): Rect;
26
+ getInnerMaxWidth(): number;
27
+ /**
28
+ * 根据内框内容高度,更新外框框体高度
29
+ * @param innerRect
30
+ */
31
+ updateRenderHeight(innerRect: Rect | number): void;
32
+ getIndex(): number;
33
+ exportSVG(event: IEditorVNodeOptions): any;
34
+ }
35
+ export declare type ElementExportTypes = 'svg';
36
+ /**
37
+ * 叶子节点渲染元素
38
+ */
39
+ export declare abstract class LeafRenderObject<T extends Element = Element> extends RenderObject<T> {
40
+ constructor(element: T | null);
41
+ }
42
+ /**
43
+ * 枝干节点渲染元素
44
+ */
45
+ export declare abstract class BranchRenderObject<T extends Element = Element> extends RenderObject<T> {
46
+ t: number;
47
+ constructor(element: T | null);
48
+ private children;
49
+ getItems<T extends RenderObject = RenderObject>(): Array<T>;
50
+ addChild(...items: Array<RenderObject>): void;
51
+ insertChild(item: RenderObject, index: number): void;
52
+ removeChild(child: RenderObject): void;
53
+ removeChildByIndex(index: number): void;
54
+ clear(): void;
55
+ get length(): number;
56
+ getChild<T extends RenderObject = RenderObject>(index: number): T;
57
+ getChildIndex(child: RenderObject): number;
58
+ destroy(): void;
59
+ }
60
+ export interface IRenderData {
61
+ render: RenderContextType;
62
+ position: Position;
63
+ docCtx: EditorContext;
64
+ nextRender: () => void;
65
+ }
66
+ /**
67
+ * 块级渲染元素
68
+ */
69
+ export declare abstract class BlockContentRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
70
+ setRenderWidth(maxWidth: number): void;
71
+ }
72
+ export declare abstract class InlineGroupRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
73
+ paintPos: Position;
74
+ }
75
+ /**
76
+ * 包含块级渲染元素的容器元素,例如body、table-cell等
77
+ */
78
+ export declare abstract class BlockContainerRenderObject<T extends Element = Element> extends BranchRenderObject<T> {
79
+ setRenderWidth(maxWidth: number): void;
80
+ }
81
+ /**
82
+ * 多级 ‘BlockLineRectRenderObject’ 包裹元素,例如 p、table
83
+ */
84
+ export declare abstract class MuiltBlockLineRenderObject<T extends Element = Element> extends BlockContentRenderObject<T> {
85
+ }
86
+ /**
87
+ * 容器-子内容为多个行内块级元素,例如table-row
88
+ */
89
+ export declare abstract class InlineBlockContainer extends MuiltBlockLineRenderObject {
90
+ }
91
+ /**
92
+ * 服务于table-cell
93
+ * 可被多级拆分的元素
94
+ */
95
+ export declare abstract class InlineMuiltBlockLineRenderObject<T extends Element = Element> extends MuiltBlockLineRenderObject<T> {
96
+ }
97
+ /**
98
+ * 最小不可分割单位的块级行框,例如 p-line
99
+ * 一行不可存在于两个页面中,块级行框不能分布在两个页面中
100
+ */
101
+ export declare abstract class BlockLineRectRenderObject extends BlockContentRenderObject {
102
+ }
103
+ export declare type BorderType = 'left' | 'right' | 'top' | 'bottom' | 'left-middle' | 'right-middle' | 'top-middle' | 'bottom-middle' | 'none' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom';
104
+ export declare type CursorType = 'text' | 'row-resize' | 'col-resize' | 'none' | 'default' | 'move' | 'pointer' | 'w-resize' | 's-resize' | 'se-resize' | 'ne-resize';
105
+ export declare enum RenderObjectType {
106
+ Branch = 0,
107
+ Leaf = 1
108
+ }
109
+ export interface IMeasureRenderStruct<T> {
110
+ rect: Rect;
111
+ render: T;
112
+ }
113
+ export declare type EditorVNodeObject = {
114
+ sel: string;
115
+ data?: {
116
+ attrs?: {
117
+ [key: string]: any;
118
+ };
119
+ props?: {
120
+ [key: string]: any;
121
+ };
122
+ on?: {
123
+ [key: string]: Function;
124
+ };
125
+ [key: string]: any;
126
+ };
127
+ key?: string;
128
+ text?: string;
129
+ children?: Array<EditorVNodeObject | string>;
130
+ };
131
+ export declare type IEditorVNodeOptions = {
132
+ getChildNodes: (node: RenderObject) => EditorVNodeObject[] | EditorVNodeObject | null | undefined;
133
+ options: ViewOptions;
134
+ highlights: Array<EditorVNodeObject>;
135
+ relativePagePos: Position;
136
+ globalPos: Position;
137
+ renderCtx: RenderContext;
138
+ getCounter: (key: string) => number;
139
+ mode: 'print' | 'view';
140
+ addChangeTips: (tipVNode: EditorVNodeObject) => void;
141
+ };