@hailin-zheng/editor-core 1.0.62 → 1.1.0
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/controls/ButtonBase.d.ts +10 -0
- package/controls/Canvas.d.ts +10 -0
- package/controls/Config.d.ts +11 -0
- package/controls/FlexBox.d.ts +81 -0
- package/controls/Input.d.ts +33 -0
- package/controls/MedTimeLine/TimeAxis.d.ts +21 -0
- package/controls/MedTimeLine/TimeSlider.d.ts +19 -0
- package/controls/Menu.d.ts +31 -0
- package/controls/Node.d.ts +217 -0
- package/controls/NodeEvent.d.ts +136 -0
- package/controls/Rect.d.ts +4 -0
- package/controls/ScrollView.d.ts +56 -0
- package/controls/StackPanel.d.ts +27 -0
- package/controls/SurfaceView.d.ts +41 -0
- package/controls/Text.d.ts +45 -0
- package/controls/TextBase.d.ts +19 -0
- package/controls/ViewPaint.d.ts +57 -0
- package/controls/Window.d.ts +27 -0
- package/controls/WrapPanel.d.ts +10 -0
- package/controls/event-subject.d.ts +42 -0
- package/index-cjs.d.ts +0 -3
- package/index-cjs.js +12530 -7413
- package/index-cjs.js.map +1 -1
- package/index.d.ts +0 -3
- package/index.js +11092 -5992
- package/index.js.map +1 -1
- package/med_editor/framework/ast-parser.d.ts +3 -0
- package/med_editor/framework/document-arrange.d.ts +76 -0
- package/med_editor/framework/document-change.d.ts +5 -4
- package/med_editor/framework/document-comment.d.ts +4 -12
- package/med_editor/framework/document-event.d.ts +3 -2
- package/med_editor/framework/document-input-cursor.d.ts +3 -26
- package/med_editor/framework/document-paint.d.ts +9 -8
- package/med_editor/framework/document-textline-mode.d.ts +2 -3
- package/med_editor/framework/dynamic-executer.d.ts +23 -0
- package/med_editor/framework/element-define.d.ts +16 -8
- package/med_editor/framework/element-measure.d.ts +7 -5
- package/med_editor/framework/element-paint.d.ts +1 -10
- package/med_editor/framework/element-props.d.ts +16 -7
- package/med_editor/framework/element-reader.d.ts +1 -3
- package/med_editor/framework/element-render-cut.d.ts +9 -7
- package/med_editor/framework/element-util.d.ts +2 -12
- package/med_editor/framework/event-subject.d.ts +3 -1
- package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +1 -2
- package/med_editor/framework/impl/comments/comment-content-impl.d.ts +4 -3
- package/med_editor/framework/impl/comments/comment-element-impl.d.ts +4 -4
- package/med_editor/framework/impl/comments/comments-container-impl.d.ts +26 -5
- package/med_editor/framework/impl/comments/comments-util.d.ts +2 -9
- package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +1 -1
- package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +1 -1
- package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +4 -2
- package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +1 -2
- package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +1 -2
- package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +2 -2
- package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +1 -2
- package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +2 -3
- package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +1 -2
- package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +1 -2
- package/med_editor/framework/impl/document/doc-body-impl.d.ts +3 -3
- package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +1 -2
- package/med_editor/framework/impl/document/doc-footer-impl.d.ts +3 -3
- package/med_editor/framework/impl/document/doc-header-impl.d.ts +3 -3
- package/med_editor/framework/impl/document/doc-impl.d.ts +2 -2
- package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +3 -4
- package/med_editor/framework/impl/paragraph/p-impl.d.ts +6 -3
- package/med_editor/framework/impl/picture/image-impl.d.ts +1 -2
- package/med_editor/framework/impl/radio/radio-impl.d.ts +1 -2
- package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +1 -2
- package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +21 -0
- package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +16 -0
- package/med_editor/framework/impl/table/table-cell-impl.d.ts +3 -4
- package/med_editor/framework/impl/table/table-impl.d.ts +6 -8
- package/med_editor/framework/impl/table/table-row-impl.d.ts +1 -2
- package/med_editor/framework/impl/table/table-util.d.ts +5 -0
- package/med_editor/framework/impl/text/text-impl.d.ts +4 -4
- package/med_editor/framework/impl/text/track-run-impl.d.ts +3 -4
- package/med_editor/framework/paragraph-arrange.d.ts +82 -0
- package/med_editor/framework/render-context.d.ts +14 -17
- package/med_editor/framework/render-define.d.ts +1 -0
- package/med_editor/rule-control.d.ts +66 -0
- package/med_editor/texteditor.d.ts +35 -32
- package/package.json +5 -2
- package/med_editor/controls/button.d.ts +0 -10
- package/med_editor/controls/core.d.ts +0 -175
- package/med_editor/controls/data-grid.d.ts +0 -115
- package/med_editor/controls/editor.d.ts +0 -7
- package/med_editor/controls/event.d.ts +0 -22
- package/med_editor/controls/grid.d.ts +0 -11
- package/med_editor/controls/label.d.ts +0 -10
- package/med_editor/controls/panel.d.ts +0 -8
- package/med_editor/controls/render-context.d.ts +0 -59
- package/med_editor/controls/report-sheet.d.ts +0 -10
- package/med_editor/controls/rule.d.ts +0 -39
- package/med_editor/controls/scroll-viewer.d.ts +0 -60
- package/med_editor/controls/surface.d.ts +0 -23
- package/med_editor/doc-ruler.d.ts +0 -50
@@ -1,7 +1,7 @@
|
|
1
1
|
import { TextProps } from "../../element-props";
|
2
2
|
import { IRenderData, LeafRenderObject, RenderObject } from "../../render-define";
|
3
|
-
import { LeafElement, ElementFactory, Element, SerializeProps, ViewOptions } from "../../element-define";
|
4
|
-
import {
|
3
|
+
import { LeafElement, ElementFactory, Element, SerializeProps, ViewOptions, ICreateRenderData } from "../../element-define";
|
4
|
+
import { TextUnits } from "../../render-context";
|
5
5
|
export declare class TextGroupElement extends LeafElement<TextProps> {
|
6
6
|
textMeasures: Array<TextUnits>;
|
7
7
|
isMeasure: boolean;
|
@@ -9,7 +9,7 @@ export declare class TextGroupElement extends LeafElement<TextProps> {
|
|
9
9
|
set text(val: string);
|
10
10
|
splice(index: number, deleteCount: number, addText?: string | null): Array<TextUnits>;
|
11
11
|
get text(): string;
|
12
|
-
createRenderObject(
|
12
|
+
createRenderObject(data: ICreateRenderData): RenderObject;
|
13
13
|
serialize(viewOptions: ViewOptions): SerializeProps & any;
|
14
14
|
clone(data: boolean): TextGroupElement;
|
15
15
|
destroy(): void;
|
@@ -30,5 +30,5 @@ export declare class TextGroupRenderObject extends LeafRenderObject<TextGroupEle
|
|
30
30
|
}
|
31
31
|
export declare class TextGroupFactory extends ElementFactory<null> {
|
32
32
|
match(type: string): boolean;
|
33
|
-
createElement(data: any
|
33
|
+
createElement(data: any): Element;
|
34
34
|
}
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import { InlineGroupElement, SerializeProps, ViewOptions, Element, ElementFactory, readElementProps } from "../../element-define";
|
2
|
-
import { RenderContextType } from "../../render-context";
|
1
|
+
import { InlineGroupElement, SerializeProps, ViewOptions, Element, ElementFactory, readElementProps, ICreateRenderData } from "../../element-define";
|
3
2
|
import { InlineGroupRenderObject, IRenderData, RenderObject } from "../../render-define";
|
4
3
|
import { TrackRunProps } from "../../element-props";
|
5
4
|
export declare enum TrackRunTypeEnum {
|
@@ -10,7 +9,7 @@ declare type NullableType<T> = T | null;
|
|
10
9
|
export declare class TrackRunElement extends InlineGroupElement<TrackRunProps> {
|
11
10
|
constructor(trackType: TrackRunTypeEnum);
|
12
11
|
clone(data: boolean): Element;
|
13
|
-
createRenderObject(
|
12
|
+
createRenderObject(data: ICreateRenderData): NullableType<RenderObject>;
|
14
13
|
serialize(viewOptions: ViewOptions): SerializeProps | null;
|
15
14
|
split(index: number): TrackRunElement | null;
|
16
15
|
}
|
@@ -20,7 +19,7 @@ export declare class TrackRunRenderObject extends InlineGroupRenderObject<TrackR
|
|
20
19
|
clone(): RenderObject;
|
21
20
|
}
|
22
21
|
export declare class RunElementFactory extends ElementFactory<TrackRunProps> {
|
23
|
-
createElement(data: readElementProps<TrackRunProps
|
22
|
+
createElement(data: readElementProps<TrackRunProps>): TrackRunElement;
|
24
23
|
match(type: string): boolean;
|
25
24
|
}
|
26
25
|
export {};
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import { LeafRenderObject, RenderObject } from "./render-define";
|
2
|
+
import { FillNullSpaceRenderObject, ParagraphElement, ParagraphRenderObject, TextGroupRenderObject } from "./impl";
|
3
|
+
import { Element, InlineGroupElement, LeafElement, ViewOptions } from "./element-define";
|
4
|
+
import { RenderContextType } from "./render-context";
|
5
|
+
export declare class ParagraphMeasure {
|
6
|
+
options: ViewOptions;
|
7
|
+
renderCtx: RenderContextType;
|
8
|
+
constructor(options: ViewOptions, renderCtx: RenderContextType);
|
9
|
+
/**
|
10
|
+
* 段落排版:
|
11
|
+
* 1.当前段落不存在项目符号,按照缩进和悬挂处理
|
12
|
+
* 2.存在项目符号
|
13
|
+
* 2.1首行要缩进 30:"一个项目符号的长度位置"
|
14
|
+
* @param p
|
15
|
+
* @param limitWidth
|
16
|
+
*/
|
17
|
+
measureParagraph(p: ParagraphElement, limitWidth: Readonly<number>): Array<ParagraphRenderObject>;
|
18
|
+
/**
|
19
|
+
* 获取段落行布局横向坐标起始位置,被段落text-align影响
|
20
|
+
*/
|
21
|
+
private setParaTextAlign;
|
22
|
+
/**
|
23
|
+
* 设置两端对齐
|
24
|
+
* @param render
|
25
|
+
* @param count
|
26
|
+
* @param spaceWidth
|
27
|
+
*/
|
28
|
+
private setAlignJustify;
|
29
|
+
arrange(parentLine: MeasureLine, ele: Element): void;
|
30
|
+
arrangeInlineGroupElement(parentLine: MeasureLine, ele: InlineGroupElement): void;
|
31
|
+
arrangeLeafElement(parentLine: MeasureLine, ele: LeafElement): void;
|
32
|
+
arrangeLeafRender(parentLine: MeasureLine, render: LeafRenderObject): void;
|
33
|
+
cutTextRender(render: TextGroupRenderObject, limitWidth: number, lineEmpty: boolean): ICutLineData;
|
34
|
+
/**
|
35
|
+
* 处理前置标点,前置标点不能出现在末尾
|
36
|
+
* @param render
|
37
|
+
* @param i
|
38
|
+
*/
|
39
|
+
private patchHandleLeadingPunctuation;
|
40
|
+
/**
|
41
|
+
* 处理后置标点,后置标点不能出现在行首
|
42
|
+
* @param render
|
43
|
+
* @param i
|
44
|
+
* @param lineEmpty
|
45
|
+
*/
|
46
|
+
private patchHandlePostPunctuation;
|
47
|
+
/**
|
48
|
+
* 是否包含后置标点
|
49
|
+
* @param str
|
50
|
+
* @returns
|
51
|
+
*/
|
52
|
+
private containPostPunctuation;
|
53
|
+
private containLeadingPunctuation;
|
54
|
+
/**
|
55
|
+
* 文本开头是否包含后置标点
|
56
|
+
* @param render
|
57
|
+
* @returns
|
58
|
+
*/
|
59
|
+
private containerStartSymbolInTextStart;
|
60
|
+
cutFillNullRender(render: FillNullSpaceRenderObject, limitWidth: number): ICutLineData;
|
61
|
+
/**
|
62
|
+
* 获取段落行渲染单位个数,字符需要计算为字符长度
|
63
|
+
*/
|
64
|
+
private getRenderUnitLength;
|
65
|
+
}
|
66
|
+
interface MeasureLine {
|
67
|
+
add(child: RenderObject): void;
|
68
|
+
lineWidth(): number;
|
69
|
+
updateHeight(child: RenderObject): void;
|
70
|
+
limitWidth: number;
|
71
|
+
lineLength(): number;
|
72
|
+
applyNewLine(): void;
|
73
|
+
applyNewPara(): void;
|
74
|
+
parent: MeasureLine | null;
|
75
|
+
arrange(): void;
|
76
|
+
}
|
77
|
+
interface ICutLineData {
|
78
|
+
firstItem: RenderObject | null;
|
79
|
+
lastItem: RenderObject | null;
|
80
|
+
br?: boolean;
|
81
|
+
}
|
82
|
+
export {};
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import { Position } from "./element-define";
|
1
|
+
import { Position, Rect } from "./element-define";
|
2
2
|
import { TextProps } from "./element-props";
|
3
|
+
import { Subject } from "./event-subject";
|
3
4
|
import { TextGroupElement, TextGroupRenderObject } from "./impl/text/text-impl";
|
4
5
|
export interface TextUnits {
|
5
6
|
sourceSize: number;
|
@@ -12,7 +13,7 @@ export interface IRenderContextContract {
|
|
12
13
|
mainContext: PaintContent;
|
13
14
|
drawMode: 'view' | 'print';
|
14
15
|
clear(): void;
|
15
|
-
commit(pageSetting: ISetCanvasPageProps): void;
|
16
|
+
commit(pageSetting: ISetCanvasPageProps, pageOffset: Position): void;
|
16
17
|
init(pageSetting: ISetCanvasPageProps): void;
|
17
18
|
tran(effect: () => void): void;
|
18
19
|
update(pageSetting: ISetCanvasPageProps): void;
|
@@ -28,16 +29,19 @@ export declare class RenderContext implements IRenderContextContract {
|
|
28
29
|
contentContext: PaintContent;
|
29
30
|
overlaysContext: PaintContent;
|
30
31
|
drawMode: 'view' | 'print';
|
31
|
-
|
32
|
-
|
32
|
+
contentOffCanvas: HTMLCanvasElement;
|
33
|
+
overlayOffCanvas: HTMLCanvasElement;
|
34
|
+
onRenderCompleted: Subject<RenderContext>;
|
33
35
|
constructor(mainContext: PaintContent);
|
36
|
+
pageSetting: ISetCanvasPageProps;
|
37
|
+
pageRect: Rect;
|
34
38
|
init(pageSetting: ISetCanvasPageProps): void;
|
35
39
|
/**
|
36
40
|
* 更新绘制画布大小
|
37
41
|
*/
|
38
42
|
update(pageSetting: ISetCanvasPageProps): void;
|
39
43
|
clear(): void;
|
40
|
-
commit(pageSetting: ISetCanvasPageProps): void;
|
44
|
+
commit(pageSetting: ISetCanvasPageProps, pageOffset: Position): void;
|
41
45
|
tran(effect: () => void): void;
|
42
46
|
}
|
43
47
|
export declare class PaintContent {
|
@@ -65,7 +69,7 @@ export declare class PaintContent {
|
|
65
69
|
* @param effect
|
66
70
|
*/
|
67
71
|
tran(effect: () => void): void;
|
68
|
-
strokeRect(x: number, y: number, width: number, height: number, strokeColor?: string, strokeWidth?: number): void;
|
72
|
+
strokeRect(x: number, y: number, width: number, height: number, strokeColor?: string, strokeWidth?: number, radius?: number): void;
|
69
73
|
/**
|
70
74
|
* 绘制水平线
|
71
75
|
* @param x
|
@@ -75,20 +79,13 @@ export declare class PaintContent {
|
|
75
79
|
* @param lineWidth
|
76
80
|
*/
|
77
81
|
drawHoriLine(x: number, y: number, width: number, lineColor?: string, lineWidth?: number): void;
|
78
|
-
fillRect(x: number, y: number, width: number, height: number, fillColor?: string, shadowBlur?: number, shadowColor?: string): void;
|
82
|
+
fillRect(x: number, y: number, width: number, height: number, fillColor?: string, shadowBlur?: number, shadowColor?: string, borderRadius?: number): void;
|
79
83
|
strokeLines(lines: Array<Position>, width?: number, strokeColor?: string): void;
|
80
|
-
fillLines(lines: Array<Position>, width?: number, fillColor?: string): void;
|
84
|
+
fillLines(lines: Array<Position>, width?: number, fillColor?: string, lineDash?: Array<number>): void;
|
81
85
|
drawCheckBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
|
82
86
|
drawRadioBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
|
83
|
-
drawImage(image: CanvasImageSource, sx: number, sy: number): void;
|
84
|
-
drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number): void;
|
85
|
-
drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
|
86
87
|
drawDashLine(points: Array<Position>, lineDash: Array<number>, lineColor?: string, lineWidth?: number): void;
|
87
|
-
roundRect(x: number, y: number, width: number, height: number, radius: number
|
88
|
-
tl: number;
|
89
|
-
tr: number;
|
90
|
-
br: number;
|
91
|
-
bl: number;
|
92
|
-
}, fill: boolean, stroke: boolean): void;
|
88
|
+
roundRect(x: number, y: number, width: number, height: number, radius: number): void;
|
93
89
|
clip(x: number, y: number, width: number, height: number): void;
|
90
|
+
clipFunc(pathFunc: () => void): void;
|
94
91
|
}
|
@@ -43,6 +43,7 @@ export declare abstract class LeafRenderObject<T extends Element = Element> exte
|
|
43
43
|
* 枝干节点渲染元素
|
44
44
|
*/
|
45
45
|
export declare abstract class BranchRenderObject<T extends Element = Element> extends RenderObject<T> {
|
46
|
+
t: number;
|
46
47
|
constructor(element: T | null);
|
47
48
|
private children;
|
48
49
|
getItems(): Array<RenderObject>;
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { IArrangeEvent, IMeasureEvent, IRenderData, NodeItems, Size } from "../controls/Node";
|
2
|
+
import { Position } from "./framework/element-define";
|
3
|
+
import { EditorContext } from "./framework/document-context";
|
4
|
+
import { SelectionState } from "./framework/document-selection";
|
5
|
+
import { ParagraphElement } from "./framework/impl";
|
6
|
+
export declare class RuleControl extends NodeItems {
|
7
|
+
private docCtx;
|
8
|
+
get pagePL(): number;
|
9
|
+
set pagePL(value: number);
|
10
|
+
get pagePR(): number;
|
11
|
+
set pagePR(value: number);
|
12
|
+
get indent(): number;
|
13
|
+
set indent(value: number);
|
14
|
+
get hanging(): number;
|
15
|
+
set hanging(value: number);
|
16
|
+
private options;
|
17
|
+
private indentButton;
|
18
|
+
private hangingButton;
|
19
|
+
private _pagePL;
|
20
|
+
private _pagePR;
|
21
|
+
private _indent;
|
22
|
+
private _hanging;
|
23
|
+
ruleSize: number;
|
24
|
+
private onIndentChanged;
|
25
|
+
private onHangingChanged;
|
26
|
+
private tabsButton;
|
27
|
+
ss: SelectionState;
|
28
|
+
protected measureOverride(e: IMeasureEvent, availableSize: Size): Size;
|
29
|
+
protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
|
30
|
+
constructor(docCtx: EditorContext);
|
31
|
+
setRuleOptions(options: RuleOptions): void;
|
32
|
+
/**
|
33
|
+
* 设置制表位元素
|
34
|
+
* @private
|
35
|
+
*/
|
36
|
+
private setRuleTabs;
|
37
|
+
render(e: IRenderData): void;
|
38
|
+
/**
|
39
|
+
* 双击标尺插入制表位
|
40
|
+
* @param evt
|
41
|
+
* @private
|
42
|
+
*/
|
43
|
+
private onDblClickHandler;
|
44
|
+
/**
|
45
|
+
* 双击指标位进行移除
|
46
|
+
* @param tab
|
47
|
+
* @private
|
48
|
+
*/
|
49
|
+
private removeTabs;
|
50
|
+
/**
|
51
|
+
* 绘制
|
52
|
+
*/
|
53
|
+
private drawRule;
|
54
|
+
getCurrentParagraph(): ParagraphElement | null;
|
55
|
+
private getRuleMarksPos;
|
56
|
+
private setParentMarksPos;
|
57
|
+
private drawCellMark;
|
58
|
+
}
|
59
|
+
export declare function pointInPoly(pt: Position, poly: Array<Position>): boolean;
|
60
|
+
interface RuleOptions {
|
61
|
+
width: number;
|
62
|
+
pagePL: number;
|
63
|
+
pagePR: number;
|
64
|
+
docLeft: number;
|
65
|
+
}
|
66
|
+
export {};
|
@@ -3,17 +3,20 @@ import { ElementReader } from './framework/element-reader';
|
|
3
3
|
import { SelectionState } from './framework/document-selection';
|
4
4
|
import { BranchElement, Element, ICancelTokenFn, LeafElement, MarginProps, OrientType, PageLayoutMode, Position, Rect, TextAlign, ViewOptions } from './framework/element-define';
|
5
5
|
import { DataElementInlineGroup, DataElementLeaf, DocumentElement } from './framework/impl';
|
6
|
-
import { ParagraphProps, TextProps } from './framework/element-props';
|
6
|
+
import { ParagraphNumberType, ParagraphProps, TextProps } from './framework/element-props';
|
7
7
|
import { EditorContext } from './framework/document-context';
|
8
8
|
import { ElementTrackManage } from './framework/element-trace-manage';
|
9
9
|
import { Subject } from './framework/event-subject';
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
import { IRenderData, NodeItems } from "../controls/Node";
|
11
|
+
import { Menu } from "../controls/Menu";
|
12
|
+
/**
|
13
|
+
* Node宽度定义
|
14
|
+
* 1.在单页模式下,文档最小宽度为单个文档宽度+合适的外边距
|
15
|
+
* 2.在多页模式下,文档最小宽度为单个文档宽度+合适的外边距
|
16
|
+
*/
|
17
|
+
export declare class CanvasTextEditor extends NodeItems {
|
15
18
|
private editCanvas;
|
16
|
-
private
|
19
|
+
private editInput;
|
17
20
|
private contentCtx;
|
18
21
|
viewOptions: ViewOptions;
|
19
22
|
docCtx: EditorContext;
|
@@ -26,8 +29,6 @@ export declare class CanvasTextEditor {
|
|
26
29
|
private documentInput;
|
27
30
|
private documentChange;
|
28
31
|
private selectionOverlays;
|
29
|
-
private docRule;
|
30
|
-
private eventMap;
|
31
32
|
historyMange: ElementTrackManage;
|
32
33
|
selectionChanged: Subject<SelectionState>;
|
33
34
|
beforeRenderSubject: Subject<void>;
|
@@ -39,7 +40,7 @@ export declare class CanvasTextEditor {
|
|
39
40
|
onScrollViewEvent: Subject<number>;
|
40
41
|
onDocChangedEvent: Subject<void>;
|
41
42
|
onBeforeRefreshDocument: Subject<void>;
|
42
|
-
constructor(
|
43
|
+
constructor(editCanvas: HTMLCanvasElement, editInput: HTMLInputElement);
|
43
44
|
/**
|
44
45
|
* 设置标尺
|
45
46
|
*/
|
@@ -48,7 +49,7 @@ export declare class CanvasTextEditor {
|
|
48
49
|
measureMMToPixs(): number;
|
49
50
|
flushTask: (() => void) | null;
|
50
51
|
private trackChangeState;
|
51
|
-
flushToSchedule(): void;
|
52
|
+
flushToSchedule(): Promise<void> | null;
|
52
53
|
/**
|
53
54
|
* 触发文档改变事件
|
54
55
|
* @returns
|
@@ -60,13 +61,6 @@ export declare class CanvasTextEditor {
|
|
60
61
|
*/
|
61
62
|
noEffectChange(fn: () => void): void;
|
62
63
|
loadDoc(data: any | DocumentElement): void;
|
63
|
-
/**
|
64
|
-
* 更新滚动高度
|
65
|
-
* 1.文档内容高度
|
66
|
-
* 2.文档缩放值
|
67
|
-
*/
|
68
|
-
setScrollSize(): void;
|
69
|
-
scrollView(evt: Event): void;
|
70
64
|
/**
|
71
65
|
* 刷新文档,重新测量并设置光标等
|
72
66
|
* @returns
|
@@ -74,7 +68,6 @@ export declare class CanvasTextEditor {
|
|
74
68
|
private refreshDocument;
|
75
69
|
/**
|
76
70
|
* 刷新绘制文档
|
77
|
-
* TODO:选区改变时,直接调用该方法
|
78
71
|
* @param rePaint
|
79
72
|
*/
|
80
73
|
private refreshView;
|
@@ -139,9 +132,7 @@ export declare class CanvasTextEditor {
|
|
139
132
|
* @param evt
|
140
133
|
*/
|
141
134
|
onContextMenu(evt: MouseEvent): void;
|
142
|
-
|
143
|
-
listenContainerHeight(): void;
|
144
|
-
private updateDocHeight;
|
135
|
+
private updateDocSize;
|
145
136
|
resetViewer(type?: 'demand' | 'force' | undefined): void;
|
146
137
|
/**
|
147
138
|
* 缩放视图
|
@@ -156,10 +147,6 @@ export declare class CanvasTextEditor {
|
|
156
147
|
*/
|
157
148
|
private _scaleView;
|
158
149
|
private updateRenderCtx;
|
159
|
-
getContainerHeight(): {
|
160
|
-
height: number;
|
161
|
-
width: number;
|
162
|
-
};
|
163
150
|
/**
|
164
151
|
* 在当前位置插入表格
|
165
152
|
* @param rows
|
@@ -201,7 +188,7 @@ export declare class CanvasTextEditor {
|
|
201
188
|
/**
|
202
189
|
* 切换当前段落项目符号状态
|
203
190
|
*/
|
204
|
-
setParagraphNumberType(): void;
|
191
|
+
setParagraphNumberType(numType: ParagraphNumberType): void;
|
205
192
|
/**
|
206
193
|
* 删除当前批注
|
207
194
|
* @param id
|
@@ -219,6 +206,10 @@ export declare class CanvasTextEditor {
|
|
219
206
|
* 清除所有批注
|
220
207
|
*/
|
221
208
|
clearAllComments(): void;
|
209
|
+
/**
|
210
|
+
* 插入分页符
|
211
|
+
*/
|
212
|
+
insertPageBreakSymbol(): void;
|
222
213
|
cutTable(): void;
|
223
214
|
/**
|
224
215
|
* 初始化当前文档创建用户信息
|
@@ -265,10 +256,6 @@ export declare class CanvasTextEditor {
|
|
265
256
|
* @param height
|
266
257
|
*/
|
267
258
|
setPaperSize(width: number, height: number): void;
|
268
|
-
/**
|
269
|
-
* 插入强制换页符
|
270
|
-
*/
|
271
|
-
insertPageBreakPara(): void;
|
272
259
|
/**
|
273
260
|
* 显示当前元素到视图中
|
274
261
|
* @param element
|
@@ -291,10 +278,26 @@ export declare class CanvasTextEditor {
|
|
291
278
|
* @param ele
|
292
279
|
*/
|
293
280
|
insertNewElement(ele: Element): void;
|
294
|
-
showHistory(): void;
|
295
281
|
getControlById(index: number): Element<any> | null;
|
296
282
|
getControlId(ele: Element): number;
|
297
283
|
switchPageLayout(mode: PageLayoutMode): void;
|
284
|
+
randomHex: () => string;
|
285
|
+
randomNum: (start: number, end: number) => number;
|
286
|
+
private scrollView;
|
287
|
+
private surfaceView;
|
288
|
+
private rule;
|
289
|
+
start(): void;
|
290
|
+
/**
|
291
|
+
* 页面大小改变时,更新排版
|
292
|
+
*/
|
293
|
+
updateLayout(): void;
|
294
|
+
createMenu(): Menu;
|
295
|
+
render(e: IRenderData): void;
|
296
|
+
/**
|
297
|
+
* 绘制光标
|
298
|
+
* @private
|
299
|
+
*/
|
300
|
+
private drawCaret;
|
298
301
|
}
|
299
302
|
export declare type EditorCurrentPos = {
|
300
303
|
pos: Position;
|
package/package.json
CHANGED
@@ -4,11 +4,14 @@
|
|
4
4
|
"author": "hailin-zheng",
|
5
5
|
"private": false,
|
6
6
|
"license": "ISC",
|
7
|
-
"version": "1.0
|
7
|
+
"version": "1.1.0",
|
8
8
|
"scripts": {},
|
9
9
|
"dependencies": {
|
10
10
|
"bwip-js": "^3.0.5",
|
11
11
|
"moment": "^2.29.3",
|
12
|
-
"nanoid": "^3.1.30"
|
12
|
+
"nanoid": "^3.1.30",
|
13
|
+
"acorn": "^8.8.0",
|
14
|
+
"astring": "^1.8.3",
|
15
|
+
"estraverse": "^5.3.0"
|
13
16
|
}
|
14
17
|
}
|
@@ -1,10 +0,0 @@
|
|
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
|
-
}
|
@@ -1,175 +0,0 @@
|
|
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;
|