@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.
- package/editor.css +610 -559
- package/index-cjs.d.ts +31 -31
- package/index-cjs.js +22202 -22146
- package/index-cjs.js.map +1 -1
- package/index.d.ts +31 -31
- package/index.js +22204 -22149
- package/index.js.map +1 -1
- package/med_editor/doc-editor.d.ts +464 -461
- package/med_editor/doc-rule.d.ts +46 -46
- package/med_editor/editor-core.d.ts +21 -21
- package/med_editor/framework/code-interpreter/ast-parser.d.ts +4 -4
- package/med_editor/framework/code-interpreter/document-eval-func.d.ts +18 -18
- package/med_editor/framework/code-interpreter/dynamic-execute.d.ts +23 -23
- package/med_editor/framework/doc-layout/document-arrange.d.ts +86 -80
- package/med_editor/framework/doc-layout/paragraph-arrange.d.ts +107 -107
- package/med_editor/framework/document-change.d.ts +295 -295
- package/med_editor/framework/document-combine.d.ts +24 -24
- package/med_editor/framework/document-comment.d.ts +38 -38
- package/med_editor/framework/document-context.d.ts +133 -136
- package/med_editor/framework/document-event.d.ts +251 -251
- package/med_editor/framework/document-input-cursor.d.ts +43 -43
- package/med_editor/framework/document-paginator.d.ts +46 -41
- package/med_editor/framework/document-svg.d.ts +36 -36
- package/med_editor/framework/document-template.d.ts +13 -13
- package/med_editor/framework/document-textline-mode.d.ts +6 -6
- package/med_editor/framework/element-define.d.ts +409 -406
- package/med_editor/framework/element-event-define.d.ts +107 -107
- package/med_editor/framework/element-props.d.ts +343 -344
- package/med_editor/framework/element-reader.d.ts +20 -20
- package/med_editor/framework/element-serialize.d.ts +36 -36
- package/med_editor/framework/element-type-handler.d.ts +9 -9
- package/med_editor/framework/history/element-trace-manage.d.ts +107 -107
- package/med_editor/framework/history/element-trace-tracking.d.ts +89 -89
- package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +19 -19
- package/med_editor/framework/impl/comments/comment-content-impl.d.ts +39 -39
- package/med_editor/framework/impl/comments/comment-element-impl.d.ts +24 -24
- package/med_editor/framework/impl/comments/comments-container-impl.d.ts +19 -19
- package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +19 -19
- package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +15 -15
- package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +32 -32
- package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +96 -96
- package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +26 -26
- package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +23 -23
- package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +17 -17
- package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +23 -23
- package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +21 -21
- package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +22 -22
- package/med_editor/framework/impl/data-element/qrcode.d.ts +93 -93
- package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +16 -16
- package/med_editor/framework/impl/document/doc-body-impl.d.ts +19 -20
- package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +22 -22
- package/med_editor/framework/impl/document/doc-container-impl.d.ts +7 -7
- package/med_editor/framework/impl/document/doc-footer-impl.d.ts +19 -19
- package/med_editor/framework/impl/document/doc-header-impl.d.ts +19 -19
- package/med_editor/framework/impl/document/doc-impl.d.ts +72 -71
- package/med_editor/framework/impl/index.d.ts +39 -39
- package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +31 -31
- package/med_editor/framework/impl/media-formula/permanent-teeth.d.ts +34 -34
- package/med_editor/framework/impl/paragraph/p-impl.d.ts +38 -38
- package/med_editor/framework/impl/picture/RectEle.d.ts +44 -44
- package/med_editor/framework/impl/picture/image-impl.d.ts +24 -24
- package/med_editor/framework/impl/radio/radio-impl.d.ts +17 -17
- package/med_editor/framework/impl/svg/svg-impl.d.ts +20 -20
- package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +18 -18
- package/med_editor/framework/impl/symbol/p-symbol-impl.d.ts +16 -16
- package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +20 -20
- package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +15 -15
- package/med_editor/framework/impl/table/table-cell-impl.d.ts +34 -34
- package/med_editor/framework/impl/table/table-impl.d.ts +49 -49
- package/med_editor/framework/impl/table/table-row-impl.d.ts +27 -27
- package/med_editor/framework/impl/table/table-split-cell-patch.d.ts +20 -20
- package/med_editor/framework/impl/table/table-split-cell.d.ts +92 -92
- package/med_editor/framework/impl/table/table-util.d.ts +180 -180
- package/med_editor/framework/impl/text/text-impl.d.ts +34 -34
- package/med_editor/framework/impl/text/track-run-impl.d.ts +27 -27
- package/med_editor/framework/infrastructure/event-subject.d.ts +56 -56
- package/med_editor/framework/infrastructure/notify.d.ts +13 -13
- package/med_editor/framework/print/document-print-offscreen.d.ts +58 -58
- package/med_editor/framework/print/document-print.d.ts +18 -18
- package/med_editor/framework/render-context.d.ts +111 -111
- package/med_editor/framework/render-define.d.ts +141 -141
- package/med_editor/framework/selection/document-selection.d.ts +91 -97
- package/med_editor/framework/selection/range-util.d.ts +36 -36
- package/med_editor/framework/selection/selection-overlays.d.ts +32 -32
- package/med_editor/framework/util/adjust-viewport-elements.d.ts +12 -12
- package/med_editor/framework/util/common-util.d.ts +76 -76
- package/med_editor/framework/util/document-segmenter.d.ts +2 -2
- package/med_editor/framework/util/element-util.d.ts +410 -410
- package/med_editor/framework/vnode/editor-calendar-vnode.d.ts +42 -42
- 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
|
+
};
|