@hailin-zheng/editor-core 2.2.27 → 2.2.29

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 (94) hide show
  1. package/editor.css +638 -638
  2. package/index-cjs.d.ts +32 -32
  3. package/index-cjs.js +23949 -23920
  4. package/index-cjs.js.map +1 -1
  5. package/index.d.ts +32 -32
  6. package/index.js +23949 -23920
  7. package/index.js.map +1 -1
  8. package/med_editor/doc-editor.d.ts +541 -543
  9. package/med_editor/doc-rule.d.ts +174 -174
  10. package/med_editor/editor-core.d.ts +18 -18
  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 +26 -26
  14. package/med_editor/framework/doc-layout/document-arrange.d.ts +95 -88
  15. package/med_editor/framework/doc-layout/paragraph-arrange.d.ts +110 -110
  16. package/med_editor/framework/document-change.d.ts +341 -341
  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 +154 -154
  20. package/med_editor/framework/document-event.d.ts +256 -256
  21. package/med_editor/framework/document-input-cursor.d.ts +32 -32
  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 +438 -438
  27. package/med_editor/framework/element-event-define.d.ts +102 -102
  28. package/med_editor/framework/element-props.d.ts +344 -344
  29. package/med_editor/framework/element-reader.d.ts +20 -20
  30. package/med_editor/framework/element-serialize.d.ts +36 -36
  31. package/med_editor/framework/element-type-handler.d.ts +8 -8
  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 -25
  40. package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +16 -16
  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 +120 -120
  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 +28 -28
  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 +84 -81
  57. package/med_editor/framework/impl/index.d.ts +40 -40
  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/shape/line-impl.d.ts +31 -0
  65. package/med_editor/framework/impl/svg/svg-impl.d.ts +20 -20
  66. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +18 -18
  67. package/med_editor/framework/impl/symbol/p-symbol-impl.d.ts +16 -16
  68. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +20 -20
  69. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +15 -15
  70. package/med_editor/framework/impl/table/table-cell-impl.d.ts +34 -34
  71. package/med_editor/framework/impl/table/table-impl.d.ts +49 -49
  72. package/med_editor/framework/impl/table/table-row-impl.d.ts +27 -27
  73. package/med_editor/framework/impl/table/table-split-cell-patch.d.ts +20 -20
  74. package/med_editor/framework/impl/table/table-split-cell.d.ts +93 -93
  75. package/med_editor/framework/impl/table/table-util.d.ts +180 -180
  76. package/med_editor/framework/impl/text/text-impl.d.ts +34 -34
  77. package/med_editor/framework/impl/text/track-run-impl.d.ts +27 -27
  78. package/med_editor/framework/infrastructure/event-subject.d.ts +57 -57
  79. package/med_editor/framework/infrastructure/notify.d.ts +13 -13
  80. package/med_editor/framework/print/document-print-offscreen.d.ts +58 -58
  81. package/med_editor/framework/print/document-print.d.ts +18 -18
  82. package/med_editor/framework/render-context.d.ts +111 -111
  83. package/med_editor/framework/render-define.d.ts +140 -140
  84. package/med_editor/framework/search/search-panel.d.ts +31 -31
  85. package/med_editor/framework/selection/document-selection.d.ts +92 -92
  86. package/med_editor/framework/selection/range-util.d.ts +36 -36
  87. package/med_editor/framework/selection/selection-overlays.d.ts +36 -36
  88. package/med_editor/framework/suggestions/input-suggestions.d.ts +29 -29
  89. package/med_editor/framework/util/adjust-viewport-elements.d.ts +12 -12
  90. package/med_editor/framework/util/common-util.d.ts +77 -77
  91. package/med_editor/framework/util/document-segmenter.d.ts +2 -2
  92. package/med_editor/framework/util/element-util.d.ts +417 -417
  93. package/med_editor/framework/vnode/editor-calendar-vnode.d.ts +43 -43
  94. package/package.json +18 -18
@@ -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,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
+ }