@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,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
+ };