@hailin-zheng/editor-core 1.0.32 → 1.0.35

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 (79) hide show
  1. package/index-cjs.d.ts +1 -1
  2. package/index-cjs.js +9895 -9067
  3. package/index.d.ts +1 -1
  4. package/index.js +9888 -9069
  5. package/med_editor/controls/button.d.ts +10 -0
  6. package/med_editor/controls/core.d.ts +175 -0
  7. package/med_editor/controls/data-grid.d.ts +115 -0
  8. package/med_editor/controls/editor.d.ts +7 -0
  9. package/med_editor/controls/event.d.ts +22 -0
  10. package/med_editor/controls/grid.d.ts +11 -0
  11. package/med_editor/controls/label.d.ts +10 -0
  12. package/med_editor/controls/panel.d.ts +8 -0
  13. package/med_editor/controls/render-context.d.ts +59 -0
  14. package/med_editor/controls/report-sheet.d.ts +10 -0
  15. package/med_editor/controls/rule.d.ts +39 -0
  16. package/med_editor/controls/scroll-viewer.d.ts +60 -0
  17. package/med_editor/controls/surface.d.ts +23 -0
  18. package/med_editor/doc-ruler.d.ts +5 -6
  19. package/med_editor/framework/common-util.d.ts +2 -1
  20. package/med_editor/framework/document-change.d.ts +8 -7
  21. package/med_editor/framework/document-context.d.ts +4 -5
  22. package/med_editor/framework/document-event.d.ts +15 -4
  23. package/med_editor/framework/document-input-cursor.d.ts +1 -9
  24. package/med_editor/framework/document-paint.d.ts +21 -5
  25. package/med_editor/framework/document-print-offscreen.d.ts +5 -11
  26. package/med_editor/framework/document-print.d.ts +1 -11
  27. package/med_editor/framework/document-selection.d.ts +1 -2
  28. package/med_editor/framework/document-textline-mode.d.ts +2 -2
  29. package/med_editor/framework/element-define.d.ts +18 -10
  30. package/med_editor/framework/element-measure.d.ts +2 -2
  31. package/med_editor/framework/element-paint.d.ts +11 -11
  32. package/med_editor/framework/element-props.d.ts +8 -10
  33. package/med_editor/framework/element-reader.d.ts +3 -6
  34. package/med_editor/framework/element-render-cut.d.ts +2 -2
  35. package/med_editor/framework/element-trace-manage.d.ts +97 -0
  36. package/med_editor/framework/element-trace-tracking.d.ts +89 -0
  37. package/med_editor/framework/element-util.d.ts +20 -1
  38. package/med_editor/framework/event-subject.d.ts +43 -0
  39. package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +4 -8
  40. package/med_editor/framework/impl/comments/comment-content-impl.d.ts +7 -7
  41. package/med_editor/framework/impl/comments/comment-element-impl.d.ts +5 -8
  42. package/med_editor/framework/impl/comments/comments-container-impl.d.ts +6 -7
  43. package/med_editor/framework/impl/comments/comments-util.d.ts +2 -2
  44. package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +5 -6
  45. package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +4 -14
  46. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +6 -9
  47. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +18 -11
  48. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +4 -14
  49. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +5 -5
  50. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +10 -10
  51. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +8 -10
  52. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +5 -5
  53. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +5 -5
  54. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +4 -7
  55. package/med_editor/framework/impl/document/doc-body-impl.d.ts +4 -11
  56. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +4 -11
  57. package/med_editor/framework/impl/document/doc-container-impl.d.ts +2 -10
  58. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +4 -11
  59. package/med_editor/framework/impl/document/doc-header-impl.d.ts +4 -11
  60. package/med_editor/framework/impl/document/doc-impl.d.ts +5 -12
  61. package/med_editor/framework/impl/index.d.ts +1 -1
  62. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +5 -8
  63. package/med_editor/framework/impl/paragraph/p-impl.d.ts +11 -20
  64. package/med_editor/framework/impl/picture/image-impl.d.ts +8 -10
  65. package/med_editor/framework/impl/radio/radio-impl.d.ts +5 -8
  66. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +4 -7
  67. package/med_editor/framework/impl/symbol/p-symbol-impl.d.ts +3 -6
  68. package/med_editor/framework/impl/table/table-cell-impl.d.ts +4 -12
  69. package/med_editor/framework/impl/table/table-impl.d.ts +12 -17
  70. package/med_editor/framework/impl/table/table-row-impl.d.ts +4 -11
  71. package/med_editor/framework/impl/table/table-split-cell.d.ts +8 -6
  72. package/med_editor/framework/impl/text/text-impl.d.ts +11 -9
  73. package/med_editor/framework/impl/text/track-run-impl.d.ts +6 -7
  74. package/med_editor/framework/render-context.d.ts +42 -39
  75. package/med_editor/framework/render-define.d.ts +14 -13
  76. package/med_editor/texteditor.d.ts +42 -60
  77. package/package.json +2 -12
  78. package/lib/index-cjs.d.ts +0 -34
  79. package/med_editor/framework/document-history.d.ts +0 -26
@@ -0,0 +1,10 @@
1
+ import { ControlBase, Padding } from "./core";
2
+ import { RenderCtx } from "./render-context";
3
+ export declare class ButtonControl extends ControlBase {
4
+ constructor();
5
+ text: string;
6
+ fontSize: number;
7
+ fontName: string;
8
+ padding: Padding;
9
+ render(renderCtx: RenderCtx): void;
10
+ }
@@ -0,0 +1,175 @@
1
+ import { RenderCtx } from "./render-context";
2
+ export declare type EventType = 'MouseDown' | 'MouseMove' | 'MouseUp' | 'MouseEnter' | 'MouseLeave' | 'MouseOver' | 'MouseOut' | 'Click' | 'DblClick' | 'Wheel' | 'ContextMenu';
3
+ export declare type PropsEventMap = "isFocus" | 'isActived' | 'isMouseEnter' | 'isMouseDown' | 'isMouseUp';
4
+ export interface Position {
5
+ x: number;
6
+ y: number;
7
+ }
8
+ export interface TextUnits {
9
+ sourceSize: number;
10
+ actualSize: number;
11
+ char: string;
12
+ }
13
+ export declare class TextProps {
14
+ color: string;
15
+ fontName: string;
16
+ fontSize: number;
17
+ fontWeight: 'normal' | 'bold';
18
+ fontStyle: 'normal' | 'italic';
19
+ textDecoration: 'none' | 'underline' | 'overline' | 'line-through';
20
+ background: string;
21
+ /**
22
+ * 字符边框
23
+ */
24
+ border: boolean;
25
+ clearCache(): void;
26
+ clone(source: TextProps | null): TextProps;
27
+ protected __cacheFont: string | null;
28
+ getFont(): string;
29
+ equals(props: TextProps): boolean;
30
+ }
31
+ export declare function setCanvasProps(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, viewOptions: {
32
+ width: number;
33
+ height: number;
34
+ }, scale?: number): void;
35
+ export declare function getAbsolutePos(control: ControlBase, pos: Position): Position;
36
+ export declare function getOffsetPos(control: ControlBase, pos: Position): Position;
37
+ export declare class Padding {
38
+ left: number;
39
+ right: number;
40
+ top: number;
41
+ bottom: number;
42
+ }
43
+ export interface ControlEvent {
44
+ type: EventType;
45
+ position: Position;
46
+ target: ControlBase;
47
+ current: ControlBase;
48
+ prev: ControlBase;
49
+ stopPropagation?: boolean;
50
+ event: MouseEvent;
51
+ }
52
+ export interface ListenerFn<T = any> {
53
+ (event: T): void;
54
+ }
55
+ export declare const eventMap: WeakMap<Object, {
56
+ [key: string]: Array<ListenerFn>;
57
+ }>;
58
+ export interface RectPos {
59
+ x: number;
60
+ y: number;
61
+ width: number;
62
+ height: number;
63
+ }
64
+ export declare enum ModifyFlag {
65
+ None = 0,
66
+ Modify = 1,
67
+ Track = 2
68
+ }
69
+ export declare type DockStyle = 'none' | 'fill';
70
+ export declare abstract class ControlBase {
71
+ constructor();
72
+ supportbinarySearchPoint: boolean;
73
+ cursor: CursorType;
74
+ modifyFlag: ModifyFlag;
75
+ private _dock;
76
+ get dock(): DockStyle;
77
+ set dock(value: DockStyle);
78
+ get x(): number;
79
+ set x(value: number);
80
+ get y(): number;
81
+ set y(value: number);
82
+ get width(): number;
83
+ set width(value: number);
84
+ get height(): number;
85
+ set height(value: number);
86
+ get isFocus(): boolean;
87
+ set isFocus(value: boolean);
88
+ get isMouseEnter(): boolean;
89
+ set isMouseEnter(value: boolean);
90
+ get isMouseDown(): boolean;
91
+ set isMouseDown(value: boolean);
92
+ get isMouseUp(): boolean;
93
+ set isMouseUp(value: boolean);
94
+ get color(): string;
95
+ set color(value: string);
96
+ get bgColor(): string;
97
+ set bgColor(value: string);
98
+ get visible(): boolean;
99
+ set visible(value: boolean);
100
+ get enable(): boolean;
101
+ set enable(value: boolean);
102
+ protected _x: number;
103
+ protected _y: number;
104
+ protected _width: number;
105
+ protected _height: number;
106
+ protected _isFocus: boolean;
107
+ get isActived(): boolean;
108
+ protected _isMouseEnter: boolean;
109
+ protected _isMouseDown: boolean;
110
+ protected _isMouseUp: boolean;
111
+ protected _color: string;
112
+ protected _bgColor: string;
113
+ protected _visible: boolean;
114
+ protected _enable: boolean;
115
+ protected propertyChanged(prop: string, old: any, newV: any): void;
116
+ protected onChanged(): void;
117
+ onChildChanged(): void;
118
+ paintPostion: RectPos;
119
+ paintVisiable: boolean;
120
+ protected _parent: ControlBase;
121
+ get parent(): ControlBase;
122
+ set parent(value: ControlBase | null);
123
+ protected controls: Array<ControlBase>;
124
+ getMeasureItems(): Array<ControlBase>;
125
+ abstract render(renderCtx: RenderCtx): void;
126
+ get renderPos(): Position;
127
+ addChild(control: ControlBase, index?: number): void;
128
+ removeChild(index: number | ControlBase): void;
129
+ getChild(index: number): ControlBase;
130
+ getItems(): Array<ControlBase>;
131
+ getIndex(): number;
132
+ clearChildren(): void;
133
+ get length(): number;
134
+ measure(): void;
135
+ addEventListener(eventName: EventType, handler: ListenerFn<ControlEvent>): void;
136
+ removeEventListener(eventName: EventType, handler: ListenerFn<ControlEvent>): void;
137
+ dispatchEvent(eventName: EventType, e: ControlEvent): void;
138
+ hitTest(pos: Position): boolean;
139
+ }
140
+ export declare type CursorType = 'text' | 'row-resize' | 'col-resize' | 'none' | 'default' | 'move' | 'pointer' | 'w-resize' | 's-resize' | 'se-resize' | 'ne-resize';
141
+ export declare function addEventListener(target: object, eventName: string, callback: ListenerFn): void;
142
+ export declare function removeEventListener(target: object, eventName: string, callback: ListenerFn): void;
143
+ export declare function dispatchEvent(target: object, eventName: string, args: ControlEvent): void;
144
+ export interface Rect {
145
+ width: number;
146
+ height: number;
147
+ }
148
+ export declare function checkIntersect(posA: Position, posB: Position, rectA: Rect, rectB: Rect): boolean;
149
+ export declare function isInRect(pos: Position, rect: Position, width: number, height: number): boolean;
150
+ export declare function isPointInRect(pos: Position, rect: {
151
+ width: number;
152
+ height: number;
153
+ x: number;
154
+ y: number;
155
+ }): boolean;
156
+ export interface Size {
157
+ width: number;
158
+ height: number;
159
+ }
160
+ /**
161
+ * 横向排列
162
+ */
163
+ export declare function HorMeasure(control: ControlBase): Size;
164
+ export declare function VerMeasure(control: ControlBase): Size;
165
+ export declare function getParentByType<P extends ControlBase, T>(child: P | null, parentType: {
166
+ new (...args: any): T;
167
+ }): T | null;
168
+ export declare class RefValueImpl<T> {
169
+ constructor(initValue: T);
170
+ private _value;
171
+ get value(): T;
172
+ set value(value: T);
173
+ }
174
+ export declare function createRef<T>(value: T): RefValueImpl<T>;
175
+ export declare function pointInPoly(pt: Position, poly: Array<Position>): boolean;
@@ -0,0 +1,115 @@
1
+ import { ControlBase, RefValueImpl } from "./core";
2
+ import { LabelControl } from "./label";
3
+ import { PanelControl } from "./panel";
4
+ import { RenderCtx } from "./render-context";
5
+ export declare class GridColumn {
6
+ name: string;
7
+ caption: string;
8
+ width: number;
9
+ align: string;
10
+ format: string;
11
+ fieldName: string;
12
+ fontSize: number;
13
+ fontName: string;
14
+ color: string;
15
+ }
16
+ export declare class GridBandColumn {
17
+ name: string;
18
+ caption: string;
19
+ width: number;
20
+ align: string;
21
+ fontSize: number;
22
+ fontName: string;
23
+ color: string;
24
+ }
25
+ export declare function createNewColumn(name: string, caption: string, width: number, field: string): GridColumn;
26
+ export declare class DataGridControl extends ControlBase {
27
+ scroll: {
28
+ x: number;
29
+ y: number;
30
+ };
31
+ columns: Array<GridColumn>;
32
+ dataSource: Array<object>;
33
+ rowHeight: number;
34
+ headerHeight: number;
35
+ groups: Array<string>;
36
+ rowWidthRef: RefValueImpl<number>;
37
+ constructor();
38
+ getColumnIndex(column: GridColumn): number;
39
+ getColumnWidth(index: any): number;
40
+ measure(): void;
41
+ render(renderCtx: RenderCtx): void;
42
+ setColumnWidth(index: number, width: number, resizeBorder?: 'left' | 'right'): void;
43
+ isGenerateFlag: boolean;
44
+ generateControls(): void;
45
+ private generateBody;
46
+ private generateRows;
47
+ private generateRow;
48
+ private generateGroupsRows;
49
+ }
50
+ export declare class DataGridHeadBand extends ControlBase {
51
+ render(renderCtx: RenderCtx): void;
52
+ }
53
+ export declare class DataGridHeaderRow extends ControlBase {
54
+ constructor();
55
+ render(renderCtx: RenderCtx): void;
56
+ measure(): void;
57
+ }
58
+ export declare class DataGridBodyBand extends ControlBase {
59
+ constructor();
60
+ render(renderCtx: RenderCtx): void;
61
+ }
62
+ export declare class DataGridRow extends ControlBase {
63
+ rowData: object;
64
+ private _selected;
65
+ get selected(): boolean;
66
+ set selected(value: boolean);
67
+ constructor();
68
+ render(renderCtx: RenderCtx): void;
69
+ measure(): void;
70
+ }
71
+ export declare class DataGridGroupPanel extends ControlBase {
72
+ groupHeadPanel: PanelControl;
73
+ groupBodyPanel: PanelControl;
74
+ groupHeadText: LabelControl;
75
+ groupValue: string;
76
+ constructor();
77
+ private _expanded;
78
+ get expanded(): boolean;
79
+ set expanded(value: boolean);
80
+ private _groupFormat;
81
+ get groupFormat(): string;
82
+ set groupFormat(value: string);
83
+ private _fontSize;
84
+ get fontSize(): number;
85
+ set fontSize(value: number);
86
+ private _fontName;
87
+ get fontName(): string;
88
+ set fontName(value: string);
89
+ createGroupHeadPanel(): void;
90
+ measure(): void;
91
+ render(renderCtx: RenderCtx): void;
92
+ changeExpand(): void;
93
+ }
94
+ export declare class DataGridGroupRow extends ControlBase {
95
+ render(renderCtx: RenderCtx): void;
96
+ }
97
+ export declare class DataGridGroupBody extends PanelControl {
98
+ measure(): void;
99
+ }
100
+ export declare class DataGridHeaderCell extends ControlBase {
101
+ column: GridColumn;
102
+ get width(): number;
103
+ private enableResize;
104
+ private mouseDownPos;
105
+ private mouseDownColIndex;
106
+ private mouseDownWidth;
107
+ constructor();
108
+ render(renderCtx: RenderCtx): void;
109
+ }
110
+ export declare class DataGridRowCell extends ControlBase {
111
+ value: any;
112
+ column: GridColumn;
113
+ get width(): number;
114
+ render(renderCtx: RenderCtx): void;
115
+ }
@@ -0,0 +1,7 @@
1
+ import { ControlBase } from "./core";
2
+ import { RenderCtx } from "./render-context";
3
+ export declare class EditorControl extends ControlBase {
4
+ constructor();
5
+ render(renderCtx: RenderCtx): void;
6
+ measure(): void;
7
+ }
@@ -0,0 +1,22 @@
1
+ import { ControlBase, ControlEvent, EventType, Position, PropsEventMap, RectPos } from "./core";
2
+ import { CanvasSurface } from "./surface";
3
+ export declare class CanvasEvent {
4
+ canvas: HTMLCanvasElement;
5
+ surface: CanvasSurface;
6
+ private mouseDownControl;
7
+ private mouseEnterControl;
8
+ constructor(canvas: HTMLCanvasElement, surface: CanvasSurface);
9
+ initEvent(): void;
10
+ onMouseMove(evt: MouseEvent): void;
11
+ onContextMenu(evt: MouseEvent): void;
12
+ onClick(evt: MouseEvent, clickType: 'DblClick' | 'Click'): void;
13
+ onWheel(evt: WheelEvent): void;
14
+ dispatchEvent(control: ControlBase, eventName: EventType, event: ControlEvent): void;
15
+ onMouseDown(evt: MouseEvent): void;
16
+ onMouseUp(evt: MouseEvent): void;
17
+ setControlState<E extends PropsEventMap>(control: ControlBase, pos: Position, evtName: E): ControlBase | undefined;
18
+ private getHitControl;
19
+ getMousePos(canvas: HTMLCanvasElement, evt: MouseEvent): Position;
20
+ binarySearch(arr: number[], value: number): number;
21
+ binarySearchPoint(arr: Array<RectPos>, value: Position): number;
22
+ }
@@ -0,0 +1,11 @@
1
+ import { ControlBase } from "./core";
2
+ import { RenderCtx } from "./render-context";
3
+ export declare class GridControl extends ControlBase {
4
+ render(renderCtx: RenderCtx): void;
5
+ }
6
+ export declare class GridRowControl extends ControlBase {
7
+ render(renderCtx: RenderCtx): void;
8
+ }
9
+ export declare class GridCellControl extends ControlBase {
10
+ render(renderCtx: RenderCtx): void;
11
+ }
@@ -0,0 +1,10 @@
1
+ import { ControlBase, Padding } from "./core";
2
+ import { RenderCtx } from "./render-context";
3
+ export declare class LabelControl extends ControlBase {
4
+ text: string;
5
+ fontSize: number;
6
+ fontName: string;
7
+ padding: Padding;
8
+ constructor();
9
+ render(renderCtx: RenderCtx): void;
10
+ }
@@ -0,0 +1,8 @@
1
+ import { ControlBase } from "./core";
2
+ import { RenderCtx } from "./render-context";
3
+ export declare class PanelControl extends ControlBase {
4
+ measureFlag: 'None' | 'Hor' | 'Ver';
5
+ constructor();
6
+ render(renderCtx: RenderCtx): void;
7
+ measure(): void;
8
+ }
@@ -0,0 +1,59 @@
1
+ import { TextProps, TextUnits, Position } from "./core";
2
+ export declare class RenderCtx {
3
+ ctx: CanvasRenderingContext2D;
4
+ /**
5
+ * 限定当前绘制的区域
6
+ */
7
+ constructor(ctx: CanvasRenderingContext2D);
8
+ nextRender: (ctx: {
9
+ hostRenderCtx?: RenderCtx;
10
+ translate?: {
11
+ x: number;
12
+ y: number;
13
+ };
14
+ }) => void;
15
+ init(): void;
16
+ setGlobalAlpha(alpha: number): void;
17
+ getGlobalAlpha(): number;
18
+ clear(): void;
19
+ drawText(text: string, textProps: TextProps, x: number, y: number, limitWidth?: number, limitHeight?: number, horAlign?: 'left' | 'center' | 'right', verAlign?: 'top' | 'middle' | 'bottom'): void;
20
+ fillCircular(x: number, y: number, r: number, color?: string): void;
21
+ measureText(text: string, textProps: TextProps): {
22
+ width: number;
23
+ height: number;
24
+ };
25
+ measureTextUnits(units: Array<TextUnits>, textProps: TextProps): void;
26
+ clearRect(x: number, y: number, width: number, height: number): void;
27
+ save(): void;
28
+ restore(): void;
29
+ strokeRect(x: number, y: number, width: number, height: number, strokeColor?: string, strokeWidth?: number): void;
30
+ drawLine(x: number, y: number, width: number, lineColor?: string, lineWidth?: number): void;
31
+ fillRect(x: number, y: number, width: number, height: number, fillColor?: string, shadowBlur?: number, shadowColor?: string): void;
32
+ clip(pos: Position, width: number, height: number, cb?: (() => void)): void;
33
+ strokeLines(lines: Array<Position>, width?: number, strokeColor?: string): void;
34
+ fillLines(lines: Array<Position>, width?: number, fillColor?: string): void;
35
+ drawCheckBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
36
+ drawRadioBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
37
+ /**
38
+ * 绘制图片
39
+ * @param image
40
+ * @param sx image的矩形(裁剪)选择框的左上角 X 轴坐标
41
+ * @param sy image的矩形(裁剪)选择框的左上角 Y 轴坐标
42
+ * @param sWidth image的矩形(裁剪)选择框的宽度
43
+ * @param sHeight image的矩形(裁剪)选择框的高度
44
+ * @param dx image的左上角在目标canvas上 X 轴坐标
45
+ * @param dy image的左上角在目标canvas上 Y 轴坐标
46
+ * @param dWidth image在目标canvas上绘制的宽度
47
+ * @param dHeight image在目标canvas上绘制的高度
48
+ */
49
+ drawImage(image: HTMLImageElement, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): void;
50
+ drawDashLine(points: Array<Position>, lineDash: Array<number>, lineColor?: string, lineWidth?: number): void;
51
+ roundRect(x: number, y: number, width: number, height: number, radius: number | {
52
+ tl: number;
53
+ tr: number;
54
+ br: number;
55
+ bl: number;
56
+ }, fill: boolean, stroke: boolean, color: string): void;
57
+ drawLineByPos(points: Array<Position>, color: string, lineWidth: number): void;
58
+ tran(fn: () => void): void;
59
+ }
@@ -0,0 +1,10 @@
1
+ import { ControlBase } from "./core";
2
+ import { RenderCtx } from "./render-context";
3
+ export declare class ReportSheet {
4
+ }
5
+ export declare class SheetColsProps {
6
+ width: number;
7
+ }
8
+ export declare class ReportDesignSheet extends ControlBase {
9
+ render(renderCtx: RenderCtx): void;
10
+ }
@@ -0,0 +1,39 @@
1
+ import { ControlBase, Position } from "./core";
2
+ import { RenderCtx } from "./render-context";
3
+ export declare class RuleControl extends ControlBase {
4
+ private renderCtx;
5
+ private indentButton;
6
+ private hangingButton;
7
+ pagePL: number;
8
+ pagePR: number;
9
+ indent: number;
10
+ hanging: number;
11
+ mousedownBtn: ThumbButton | null;
12
+ mousedownPos: Position | null;
13
+ private onIndentChanged;
14
+ private onHangingChanged;
15
+ private _scale;
16
+ get scale(): number;
17
+ set scale(value: number);
18
+ constructor();
19
+ private onMouseMove;
20
+ private getRulePos;
21
+ render(renderCtx: RenderCtx): void;
22
+ measure(): void;
23
+ /**
24
+ * 绘制
25
+ */
26
+ private drawRule;
27
+ }
28
+ declare class ThumbButton extends ControlBase {
29
+ private drawPoints;
30
+ constructor(type: 'indent' | 'hanging');
31
+ type: 'indent' | 'hanging';
32
+ render(renderCtx: RenderCtx): void;
33
+ getRuleScale(): number;
34
+ hitTest(pos: Position): boolean;
35
+ private drawIndentThumb;
36
+ private getFillColor;
37
+ private drawHangThumb;
38
+ }
39
+ export {};
@@ -0,0 +1,60 @@
1
+ import { ButtonControl } from "./button";
2
+ import { ControlBase, Position, RefValueImpl } from "./core";
3
+ import { Subject } from "../framework/event-subject";
4
+ import { RenderCtx } from "./render-context";
5
+ export declare class ScrollViewer extends ControlBase {
6
+ horScrollBar: ScrollBar;
7
+ verScrollBar: ScrollBar;
8
+ contentPresenter: ScrollContentPresenter;
9
+ onValueChanged: Subject<{
10
+ x: number;
11
+ y: number;
12
+ }>;
13
+ private _overflow;
14
+ get overflow(): 'auto' | 'scroll';
15
+ set overflow(value: 'auto' | 'scroll');
16
+ private _scrollX;
17
+ get scrollX(): number;
18
+ set scrollX(value: number);
19
+ private _scrollY;
20
+ get scrollY(): number;
21
+ set scrollY(value: number);
22
+ getMeasureItems(): ControlBase[];
23
+ constructor();
24
+ measure(): void;
25
+ render(renderCtx: RenderCtx): void;
26
+ }
27
+ export declare class ScrollContentPresenter extends ControlBase {
28
+ private _scrollX_1;
29
+ get scrollX(): number;
30
+ set scrollX(value: number);
31
+ private _scrollY;
32
+ get scrollY(): number;
33
+ set scrollY(value: number);
34
+ widthRef: RefValueImpl<number>;
35
+ get width(): number;
36
+ set width(value: number);
37
+ constructor();
38
+ render(renderCtx: RenderCtx): void;
39
+ }
40
+ export declare class ScrollBar extends ControlBase {
41
+ trackBar: ButtonControl;
42
+ trackBarWidth: number;
43
+ mousedownpos: Position;
44
+ onValueChanged: Subject<number>;
45
+ orientation: 'horizontal' | 'vertical';
46
+ private _value;
47
+ get value(): number;
48
+ set value(value: number);
49
+ private _maxValue;
50
+ get maxValue(): number;
51
+ set maxValue(value: number);
52
+ private enableScroll;
53
+ constructor();
54
+ updateValue(num: number): void;
55
+ get valuePropName(): "width" | "height";
56
+ get scrollValue(): number;
57
+ getGS(): number;
58
+ render(renderCtx: RenderCtx): void;
59
+ measure(): void;
60
+ }
@@ -0,0 +1,23 @@
1
+ import { ControlBase, Position, RectPos } from "./core";
2
+ import { CanvasEvent } from "./event";
3
+ import { RenderCtx } from "./render-context";
4
+ export declare class CanvasSurface extends ControlBase {
5
+ canvas: HTMLCanvasElement;
6
+ renderCtx: RenderCtx;
7
+ event: CanvasEvent;
8
+ constructor(canvas: HTMLCanvasElement, width: number, height: number);
9
+ state: boolean;
10
+ onChildChanged(): void;
11
+ init(): void;
12
+ progress: number;
13
+ update(): void;
14
+ resharpPoints(points: Array<Position>): Array<Position>;
15
+ drawBezierCurve(ctx: any, start: any, end: any, end2: any): void;
16
+ easeOutQuad(x: number): number;
17
+ render(renderCtx: RenderCtx): void;
18
+ measure(): void;
19
+ private measureControls;
20
+ private renderControls;
21
+ private getViewPortItemIndex;
22
+ binarySearchPoint(arr: Array<RectPos>, value: RectPos): number;
23
+ }
@@ -1,5 +1,6 @@
1
1
  import { SelectionState } from "./framework/document-selection";
2
2
  import { ViewOptions } from "./framework/element-define";
3
+ import { EditorContext } from "./framework/document-context";
3
4
  export interface RuleOptions {
4
5
  width: number;
5
6
  pagePL: number;
@@ -8,8 +9,7 @@ export interface RuleOptions {
8
9
  }
9
10
  export declare class DocRule {
10
11
  canvas: HTMLCanvasElement;
11
- viewOptions: ViewOptions;
12
- ss: SelectionState;
12
+ private docCtx;
13
13
  private ctx;
14
14
  private options;
15
15
  private ruleHeight;
@@ -18,7 +18,9 @@ export declare class DocRule {
18
18
  private indentThumbPoints;
19
19
  private hangThumbPoints;
20
20
  private mouseDownThumbType;
21
- constructor(canvas: HTMLCanvasElement, viewOptions: ViewOptions, ss: SelectionState);
21
+ viewOptions: ViewOptions;
22
+ ss: SelectionState;
23
+ constructor(canvas: HTMLCanvasElement, docCtx: EditorContext);
22
24
  destroy(): void;
23
25
  setRuleOptions(options: RuleOptions): void;
24
26
  getParentWidth(): number;
@@ -30,8 +32,6 @@ export declare class DocRule {
30
32
  private drawText;
31
33
  /**
32
34
  * 刷新新的状态
33
- * @param indent
34
- * @param hang
35
35
  */
36
36
  refreshRule(): void;
37
37
  private canvasMousedown;
@@ -47,5 +47,4 @@ export declare class DocRule {
47
47
  private getCurrPara;
48
48
  private setParentMarksPos;
49
49
  private drawCellMark;
50
- scaleView(): void;
51
50
  }
@@ -11,7 +11,7 @@ export declare class CommonUtil {
11
11
  * @param position
12
12
  * @returns
13
13
  */
14
- static isInsideRectByPosition(rect: Rect, position: Position): boolean;
14
+ static isInsideRectByPosition(rect: Omit<Rect, 'maxWidth' | 'maxHeight'>, position: Position): boolean;
15
15
  static isInsideRectByRect(rect: Rect, position: Rect): boolean;
16
16
  /**
17
17
  * 判断坐标是否在矩形的边框上
@@ -59,5 +59,6 @@ export declare class CommonUtil {
59
59
  static parseText(text: string, data: object): string;
60
60
  static getNowDiffSeconds(date: Date | string): number;
61
61
  static isDate(str: string): boolean;
62
+ static cloneValue(val: any): any;
62
63
  }
63
64
  export {};
@@ -1,6 +1,6 @@
1
- import { InputData } from "./document-input-cursor";
1
+ import { DocumentInput, InputData } from "./document-input-cursor";
2
2
  import { SelectionState } from "./document-selection";
3
- import { Element, LeafElement, SelectionContentRange, ViewOptions } from "./element-define";
3
+ import { Element, LeafElement, SelectionContentRange } from "./element-define";
4
4
  import { TextGroupElement } from "./impl/text/text-impl";
5
5
  import { ParagraphElement } from "./impl/paragraph/p-impl";
6
6
  import { TableElement } from "./impl/table/table-impl";
@@ -13,18 +13,19 @@ import { TrackRunTypeEnum } from "./impl/text/track-run-impl";
13
13
  * 文档内容改变
14
14
  */
15
15
  export declare class DocumentChange {
16
- private selectionState;
17
- private viewOptions;
18
16
  private eleReader;
19
17
  private docCtx;
20
18
  private docComment;
21
- constructor(selectionState: SelectionState, viewOptions: ViewOptions, eleReader: ElementReader, docCtx: EditorContext, docComment: DocumentComment);
19
+ private documentInput;
20
+ private selectionState;
21
+ private viewOptions;
22
+ constructor(eleReader: ElementReader, docCtx: EditorContext, docComment: DocumentComment, documentInput: DocumentInput);
22
23
  newInput(data: InputData): void;
23
24
  /**
24
25
  * 选中区域后进行输入
25
26
  * 需要处理将选中的区域删除后,进行输入的情况
26
27
  */
27
- onInputBySelection(data: InputData): void;
28
+ onInputBySelectRange(data: InputData): void;
28
29
  /**
29
30
  * 当前元素是否在正确的留痕区域(ins-run、del-run),情况分为以下情况
30
31
  * 1.留痕块类型为新增,但是留痕块的创建者为其他用户,此时需要拆分留痕区域
@@ -208,7 +209,7 @@ export declare class DocumentChange {
208
209
  * @param setterFunc
209
210
  * @returns
210
211
  */
211
- static setTextStyle(ss: SelectionState, setterFunc: (tp: TextProps) => void): void;
212
+ static setTextStyle(ss: SelectionState, setterFunc: (text: TextGroupElement) => void): void;
212
213
  private static recursionSetRangeTextStyle;
213
214
  static setParaAlign(ss: SelectionState, setterFunc: (tp: ParagraphProps) => void): void;
214
215
  /**