@hailin-zheng/editor-core 2.2.43 → 2.2.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/editor.css +679 -679
  2. package/index.d.ts +32 -32
  3. package/index.js +24553 -24460
  4. package/med_editor/doc-editor.d.ts +553 -547
  5. package/med_editor/doc-rule.d.ts +174 -174
  6. package/med_editor/editor-core.d.ts +18 -18
  7. package/med_editor/framework/code-interpreter/ast-parser.d.ts +4 -4
  8. package/med_editor/framework/code-interpreter/document-eval-func.d.ts +18 -18
  9. package/med_editor/framework/code-interpreter/dynamic-execute.d.ts +42 -42
  10. package/med_editor/framework/doc-layout/arrange-manager.d.ts +96 -0
  11. package/med_editor/framework/doc-layout/document-arrange.d.ts +95 -95
  12. package/med_editor/framework/doc-layout/paragraph-arrange.d.ts +110 -110
  13. package/med_editor/framework/document-change.d.ts +346 -346
  14. package/med_editor/framework/document-combine.d.ts +24 -24
  15. package/med_editor/framework/document-comment.d.ts +38 -38
  16. package/med_editor/framework/document-context.d.ts +162 -162
  17. package/med_editor/framework/document-event.d.ts +261 -261
  18. package/med_editor/framework/document-input-cursor.d.ts +32 -32
  19. package/med_editor/framework/document-paginator.d.ts +46 -46
  20. package/med_editor/framework/document-svg.d.ts +36 -36
  21. package/med_editor/framework/document-template.d.ts +13 -13
  22. package/med_editor/framework/document-textline-mode.d.ts +6 -6
  23. package/med_editor/framework/element-define.d.ts +439 -440
  24. package/med_editor/framework/element-event-define.d.ts +101 -102
  25. package/med_editor/framework/element-props.d.ts +344 -344
  26. package/med_editor/framework/element-reader.d.ts +20 -20
  27. package/med_editor/framework/element-serialize.d.ts +39 -39
  28. package/med_editor/framework/element-type-handler.d.ts +8 -8
  29. package/med_editor/framework/history/element-trace-manage.d.ts +107 -107
  30. package/med_editor/framework/history/element-trace-tracking.d.ts +89 -89
  31. package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +19 -19
  32. package/med_editor/framework/impl/comments/comment-content-impl.d.ts +39 -39
  33. package/med_editor/framework/impl/comments/comment-element-impl.d.ts +24 -24
  34. package/med_editor/framework/impl/comments/comments-container-impl.d.ts +19 -19
  35. package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +19 -19
  36. package/med_editor/framework/impl/data-element/data-container-impl.d.ts +25 -25
  37. package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +16 -16
  38. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +32 -32
  39. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +122 -122
  40. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +26 -26
  41. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +23 -23
  42. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +28 -28
  43. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +23 -23
  44. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +21 -21
  45. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +22 -22
  46. package/med_editor/framework/impl/data-element/qrcode.d.ts +93 -93
  47. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +16 -16
  48. package/med_editor/framework/impl/document/doc-body-impl.d.ts +19 -19
  49. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +22 -22
  50. package/med_editor/framework/impl/document/doc-container-impl.d.ts +7 -7
  51. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +19 -19
  52. package/med_editor/framework/impl/document/doc-header-impl.d.ts +19 -19
  53. package/med_editor/framework/impl/document/doc-impl.d.ts +85 -85
  54. package/med_editor/framework/impl/index.d.ts +41 -41
  55. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +31 -31
  56. package/med_editor/framework/impl/media-formula/permanent-teeth.d.ts +34 -34
  57. package/med_editor/framework/impl/paragraph/p-impl.d.ts +38 -38
  58. package/med_editor/framework/impl/picture/RectEle.d.ts +44 -44
  59. package/med_editor/framework/impl/picture/image-impl.d.ts +24 -24
  60. package/med_editor/framework/impl/radio/radio-impl.d.ts +17 -17
  61. package/med_editor/framework/impl/shape/line-impl.d.ts +31 -31
  62. package/med_editor/framework/impl/svg/svg-impl.d.ts +20 -20
  63. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +18 -18
  64. package/med_editor/framework/impl/symbol/p-symbol-impl.d.ts +16 -16
  65. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +20 -20
  66. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +15 -15
  67. package/med_editor/framework/impl/table/table-cell-impl.d.ts +34 -34
  68. package/med_editor/framework/impl/table/table-impl.d.ts +49 -49
  69. package/med_editor/framework/impl/table/table-row-impl.d.ts +27 -27
  70. package/med_editor/framework/impl/table/table-split-cell-patch.d.ts +20 -20
  71. package/med_editor/framework/impl/table/table-split-cell.d.ts +93 -93
  72. package/med_editor/framework/impl/table/table-util.d.ts +180 -180
  73. package/med_editor/framework/impl/text/text-impl.d.ts +34 -34
  74. package/med_editor/framework/impl/text/track-run-impl.d.ts +27 -27
  75. package/med_editor/framework/infrastructure/event-subject.d.ts +57 -57
  76. package/med_editor/framework/infrastructure/notify.d.ts +13 -13
  77. package/med_editor/framework/print/document-print-offscreen.d.ts +59 -59
  78. package/med_editor/framework/print/document-print.d.ts +19 -19
  79. package/med_editor/framework/render-context.d.ts +111 -111
  80. package/med_editor/framework/render-define.d.ts +169 -169
  81. package/med_editor/framework/search/search-panel.d.ts +31 -31
  82. package/med_editor/framework/selection/document-selection.d.ts +92 -92
  83. package/med_editor/framework/selection/range-util.d.ts +36 -36
  84. package/med_editor/framework/selection/selection-overlays.d.ts +36 -36
  85. package/med_editor/framework/suggestions/input-suggestions.d.ts +29 -29
  86. package/med_editor/framework/util/adjust-viewport-elements.d.ts +12 -12
  87. package/med_editor/framework/util/common-util.d.ts +78 -78
  88. package/med_editor/framework/util/document-segmenter.d.ts +2 -2
  89. package/med_editor/framework/util/element-util.d.ts +419 -417
  90. package/med_editor/framework/vnode/editor-calendar-vnode.d.ts +44 -44
  91. package/med_editor/framework/vnode/editor-list-vnode.d.ts +18 -18
  92. package/package.json +18 -18
  93. package/index-cjs.d.ts +0 -32
  94. package/index-cjs.js +0 -29731
  95. package/index-cjs.js.map +0 -1
  96. package/index.js.map +0 -1
@@ -1,57 +1,57 @@
1
- declare type EventHandler<T = void> = (data: T) => void;
2
- /**
3
- * 订阅者
4
- */
5
- export declare abstract class Subscription<T = any> {
6
- protected closed: boolean;
7
- once: boolean;
8
- abstract invoke(data: T): void;
9
- abstract unsubscribe(): void;
10
- }
11
- export declare abstract class EventSourceCore<T> {
12
- protected closed: boolean;
13
- subs: Array<Subscription>;
14
- state: 'pause' | 'running';
15
- next(data?: T): void;
16
- protected addSub(sub: Subscription): void;
17
- protected removeSub(sub: Subscription): void;
18
- unsubscribe(): void;
19
- }
20
- /**
21
- * DOM事件处理
22
- */
23
- export declare class DOMEventSource<T extends Event> extends EventSourceCore<T> {
24
- dom: Node;
25
- type: string;
26
- constructor(dom: Node, type: string);
27
- subscribe(listener: (evt: T) => void): Subscription;
28
- }
29
- export declare class DOMSubscription<T> extends Subscription<T> {
30
- listener: (evt: T) => void;
31
- cancel: () => void;
32
- constructor(listener: (evt: T) => void, cancel: () => void);
33
- invoke(data: any): void;
34
- unsubscribe(): void;
35
- }
36
- export declare class Subject<T> extends EventSourceCore<T> {
37
- subscribe(listener: (data: T) => void): Subscription;
38
- }
39
- export declare class OnceSubject<T> extends Subject<T> {
40
- subscribe(listener: (data: T) => void): Subscription;
41
- }
42
- export declare class SubjectSubscription extends Subscription {
43
- listener: (data: any) => void;
44
- cancel: () => void;
45
- constructor(listener: (data: any) => void, cancel: () => void);
46
- invoke(data: any): void;
47
- unsubscribe(): void;
48
- }
49
- export declare function fromEvent<T extends Event>(dom: Node, type: string): DOMEventSource<T>;
50
- export declare class EventBus {
51
- private subs;
52
- on(event: string, handler: EventHandler): void;
53
- off(event: string): void;
54
- emit(event: string, data: any): void;
55
- clear(): void;
56
- }
57
- export {};
1
+ declare type EventHandler<T = void> = (data: T) => void;
2
+ /**
3
+ * 订阅者
4
+ */
5
+ export declare abstract class Subscription<T = any> {
6
+ protected closed: boolean;
7
+ once: boolean;
8
+ abstract invoke(data: T): void;
9
+ abstract unsubscribe(): void;
10
+ }
11
+ export declare abstract class EventSourceCore<T> {
12
+ protected closed: boolean;
13
+ subs: Array<Subscription>;
14
+ state: 'pause' | 'running';
15
+ next(data?: T): void;
16
+ protected addSub(sub: Subscription): void;
17
+ protected removeSub(sub: Subscription): void;
18
+ unsubscribe(): void;
19
+ }
20
+ /**
21
+ * DOM事件处理
22
+ */
23
+ export declare class DOMEventSource<T extends Event> extends EventSourceCore<T> {
24
+ dom: Node;
25
+ type: string;
26
+ constructor(dom: Node, type: string);
27
+ subscribe(listener: (evt: T) => void): Subscription;
28
+ }
29
+ export declare class DOMSubscription<T> extends Subscription<T> {
30
+ listener: (evt: T) => void;
31
+ cancel: () => void;
32
+ constructor(listener: (evt: T) => void, cancel: () => void);
33
+ invoke(data: any): void;
34
+ unsubscribe(): void;
35
+ }
36
+ export declare class Subject<T> extends EventSourceCore<T> {
37
+ subscribe(listener: (data: T) => void): Subscription;
38
+ }
39
+ export declare class OnceSubject<T> extends Subject<T> {
40
+ subscribe(listener: (data: T) => void): Subscription;
41
+ }
42
+ export declare class SubjectSubscription extends Subscription {
43
+ listener: (data: any) => void;
44
+ cancel: () => void;
45
+ constructor(listener: (data: any) => void, cancel: () => void);
46
+ invoke(data: any): void;
47
+ unsubscribe(): void;
48
+ }
49
+ export declare function fromEvent<T extends Event>(dom: Node, type: string): DOMEventSource<T>;
50
+ export declare class EventBus {
51
+ private subs;
52
+ on(event: string, handler: EventHandler): void;
53
+ off(event: string): void;
54
+ emit(event: string, data: any): void;
55
+ clear(): void;
56
+ }
57
+ export {};
@@ -1,13 +1,13 @@
1
- export declare const reactiveMap: WeakMap<object, object>;
2
- export declare const targetMaps: WeakMap<object, Map<propType, Set<notifyCallback>>>;
3
- declare type propType = string | number | symbol;
4
- interface notifyCallback {
5
- (target: object, p: propType, oldValue: any, newValue: any): string | undefined | void;
6
- }
7
- export declare function watchChanged<T extends object>(source: T, cb: notifyCallback): T;
8
- export declare function setNotifyChangedCallback(target: object, p: propType, cb: notifyCallback): void;
9
- export declare const isDate: (val: unknown) => val is Date;
10
- export declare const objectToString: () => string;
11
- export declare const toTypeString: (value: unknown) => string;
12
- export declare const toRawType: (value: unknown) => string;
13
- export {};
1
+ export declare const reactiveMap: WeakMap<object, object>;
2
+ export declare const targetMaps: WeakMap<object, Map<propType, Set<notifyCallback>>>;
3
+ declare type propType = string | number | symbol;
4
+ interface notifyCallback {
5
+ (target: object, p: propType, oldValue: any, newValue: any): string | undefined | void;
6
+ }
7
+ export declare function watchChanged<T extends object>(source: T, cb: notifyCallback): T;
8
+ export declare function setNotifyChangedCallback(target: object, p: propType, cb: notifyCallback): void;
9
+ export declare const isDate: (val: unknown) => val is Date;
10
+ export declare const objectToString: () => string;
11
+ export declare const toTypeString: (value: unknown) => string;
12
+ export declare const toRawType: (value: unknown) => string;
13
+ export {};
@@ -1,59 +1,59 @@
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
- printDOMStyle: string;
29
- constructor();
30
- print(data: any | DocumentElement, ranges?: Array<number> | null): void;
31
- /**
32
- * 续打
33
- */
34
- printForContinuation(data: any | DocumentElement, options: {
35
- startY: number;
36
- startDocIndex: number;
37
- }): void;
38
- getPrintNodes(data: any | DocumentElement, ranges?: Array<number> | null): Array<string>;
39
- Encode64(str: any): string;
40
- /**
41
- * 读取数据,排版
42
- * @param data
43
- */
44
- prepare(data: any | DocumentElement): void;
45
- getSvgNodes(docRenders: Array<DocumentRenderObject>, printRanges?: Array<number> | null): Array<string>;
46
- abstract createCanvas(width: number, height: number): {
47
- canvas: HTMLCanvasElement;
48
- ctx: CanvasRenderingContext2D;
49
- };
50
- abstract createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
51
- }
52
- export declare class DocumentPrintOffscreen extends DocumentPrintOffscreenBase {
53
- createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
54
- createCanvas(width: number, height: number): {
55
- canvas: HTMLCanvasElement;
56
- ctx: CanvasRenderingContext2D;
57
- };
58
- }
59
- 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
+ printDOMStyle: string;
29
+ constructor();
30
+ print(data: any | DocumentElement, ranges?: Array<number> | null): void;
31
+ /**
32
+ * 续打
33
+ */
34
+ printForContinuation(data: any | DocumentElement, options: {
35
+ startY: number;
36
+ startDocIndex: number;
37
+ }): void;
38
+ getPrintNodes(data: any | DocumentElement, ranges?: Array<number> | null): Array<string>;
39
+ Encode64(str: any): string;
40
+ /**
41
+ * 读取数据,排版
42
+ * @param data
43
+ */
44
+ prepare(data: any | DocumentElement): void;
45
+ getSvgNodes(docRenders: Array<DocumentRenderObject>, printRanges?: Array<number> | null): Array<string>;
46
+ abstract createCanvas(width: number, height: number): {
47
+ canvas: HTMLCanvasElement;
48
+ ctx: CanvasRenderingContext2D;
49
+ };
50
+ abstract createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
51
+ }
52
+ export declare class DocumentPrintOffscreen extends DocumentPrintOffscreenBase {
53
+ createRenderCtx(mainCtx: CanvasRenderingContext2D, viewOptions: ViewOptions, docCtx: EditorContext): RenderContext;
54
+ createCanvas(width: number, height: number): {
55
+ canvas: HTMLCanvasElement;
56
+ ctx: CanvasRenderingContext2D;
57
+ };
58
+ }
59
+ export {};
@@ -1,19 +1,19 @@
1
- import { OrientType } from "../element-define";
2
- export declare function createPrintTemplate({ width, height, orient, printDOMStyle }: PrintPaperOptions): string;
3
- declare type PrintPaperOptions = {
4
- width: number;
5
- height: number;
6
- orient: OrientType;
7
- printDOMStyle?: string;
8
- };
9
- /**
10
- * 打印DOM
11
- * @param printNodes
12
- * @param options
13
- * @returns
14
- */
15
- export declare function printNodes(printNodes: Array<Node | string>, options: PrintPaperOptions, printEvent?: {
16
- beforePrint: () => void;
17
- afterPrint: () => void;
18
- } | null): void;
19
- export {};
1
+ import { OrientType } from "../element-define";
2
+ export declare function createPrintTemplate({ width, height, orient, printDOMStyle }: PrintPaperOptions): string;
3
+ declare type PrintPaperOptions = {
4
+ width: number;
5
+ height: number;
6
+ orient: OrientType;
7
+ printDOMStyle?: string;
8
+ };
9
+ /**
10
+ * 打印DOM
11
+ * @param printNodes
12
+ * @param options
13
+ * @returns
14
+ */
15
+ export declare function printNodes(printNodes: Array<Node | string>, options: PrintPaperOptions, printEvent?: {
16
+ beforePrint: () => void;
17
+ afterPrint: () => void;
18
+ } | null): void;
19
+ 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
+ }