@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.
Files changed (96) hide show
  1. package/controls/ButtonBase.d.ts +10 -0
  2. package/controls/Canvas.d.ts +10 -0
  3. package/controls/Config.d.ts +11 -0
  4. package/controls/FlexBox.d.ts +81 -0
  5. package/controls/Input.d.ts +33 -0
  6. package/controls/MedTimeLine/TimeAxis.d.ts +21 -0
  7. package/controls/MedTimeLine/TimeSlider.d.ts +19 -0
  8. package/controls/Menu.d.ts +31 -0
  9. package/controls/Node.d.ts +217 -0
  10. package/controls/NodeEvent.d.ts +136 -0
  11. package/controls/Rect.d.ts +4 -0
  12. package/controls/ScrollView.d.ts +56 -0
  13. package/controls/StackPanel.d.ts +27 -0
  14. package/controls/SurfaceView.d.ts +41 -0
  15. package/controls/Text.d.ts +45 -0
  16. package/controls/TextBase.d.ts +19 -0
  17. package/controls/ViewPaint.d.ts +57 -0
  18. package/controls/Window.d.ts +27 -0
  19. package/controls/WrapPanel.d.ts +10 -0
  20. package/controls/event-subject.d.ts +42 -0
  21. package/index-cjs.d.ts +0 -3
  22. package/index-cjs.js +12530 -7413
  23. package/index-cjs.js.map +1 -1
  24. package/index.d.ts +0 -3
  25. package/index.js +11092 -5992
  26. package/index.js.map +1 -1
  27. package/med_editor/framework/ast-parser.d.ts +3 -0
  28. package/med_editor/framework/document-arrange.d.ts +76 -0
  29. package/med_editor/framework/document-change.d.ts +5 -4
  30. package/med_editor/framework/document-comment.d.ts +4 -12
  31. package/med_editor/framework/document-event.d.ts +3 -2
  32. package/med_editor/framework/document-input-cursor.d.ts +3 -26
  33. package/med_editor/framework/document-paint.d.ts +9 -8
  34. package/med_editor/framework/document-textline-mode.d.ts +2 -3
  35. package/med_editor/framework/dynamic-executer.d.ts +23 -0
  36. package/med_editor/framework/element-define.d.ts +16 -8
  37. package/med_editor/framework/element-measure.d.ts +7 -5
  38. package/med_editor/framework/element-paint.d.ts +1 -10
  39. package/med_editor/framework/element-props.d.ts +16 -7
  40. package/med_editor/framework/element-reader.d.ts +1 -3
  41. package/med_editor/framework/element-render-cut.d.ts +9 -7
  42. package/med_editor/framework/element-util.d.ts +2 -12
  43. package/med_editor/framework/event-subject.d.ts +3 -1
  44. package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +1 -2
  45. package/med_editor/framework/impl/comments/comment-content-impl.d.ts +4 -3
  46. package/med_editor/framework/impl/comments/comment-element-impl.d.ts +4 -4
  47. package/med_editor/framework/impl/comments/comments-container-impl.d.ts +26 -5
  48. package/med_editor/framework/impl/comments/comments-util.d.ts +2 -9
  49. package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +1 -1
  50. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +1 -1
  51. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +4 -2
  52. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +1 -2
  53. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +1 -2
  54. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +2 -2
  55. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +1 -2
  56. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +2 -3
  57. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +1 -2
  58. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +1 -2
  59. package/med_editor/framework/impl/document/doc-body-impl.d.ts +3 -3
  60. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +1 -2
  61. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +3 -3
  62. package/med_editor/framework/impl/document/doc-header-impl.d.ts +3 -3
  63. package/med_editor/framework/impl/document/doc-impl.d.ts +2 -2
  64. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +3 -4
  65. package/med_editor/framework/impl/paragraph/p-impl.d.ts +6 -3
  66. package/med_editor/framework/impl/picture/image-impl.d.ts +1 -2
  67. package/med_editor/framework/impl/radio/radio-impl.d.ts +1 -2
  68. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +1 -2
  69. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +21 -0
  70. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +16 -0
  71. package/med_editor/framework/impl/table/table-cell-impl.d.ts +3 -4
  72. package/med_editor/framework/impl/table/table-impl.d.ts +6 -8
  73. package/med_editor/framework/impl/table/table-row-impl.d.ts +1 -2
  74. package/med_editor/framework/impl/table/table-util.d.ts +5 -0
  75. package/med_editor/framework/impl/text/text-impl.d.ts +4 -4
  76. package/med_editor/framework/impl/text/track-run-impl.d.ts +3 -4
  77. package/med_editor/framework/paragraph-arrange.d.ts +82 -0
  78. package/med_editor/framework/render-context.d.ts +14 -17
  79. package/med_editor/framework/render-define.d.ts +1 -0
  80. package/med_editor/rule-control.d.ts +66 -0
  81. package/med_editor/texteditor.d.ts +35 -32
  82. package/package.json +5 -2
  83. package/med_editor/controls/button.d.ts +0 -10
  84. package/med_editor/controls/core.d.ts +0 -175
  85. package/med_editor/controls/data-grid.d.ts +0 -115
  86. package/med_editor/controls/editor.d.ts +0 -7
  87. package/med_editor/controls/event.d.ts +0 -22
  88. package/med_editor/controls/grid.d.ts +0 -11
  89. package/med_editor/controls/label.d.ts +0 -10
  90. package/med_editor/controls/panel.d.ts +0 -8
  91. package/med_editor/controls/render-context.d.ts +0 -59
  92. package/med_editor/controls/report-sheet.d.ts +0 -10
  93. package/med_editor/controls/rule.d.ts +0 -39
  94. package/med_editor/controls/scroll-viewer.d.ts +0 -60
  95. package/med_editor/controls/surface.d.ts +0 -23
  96. 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 { RenderContextType, TextUnits } from "../../render-context";
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(options: ViewOptions, renderCtx: RenderContextType): RenderObject;
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, renderCtx: RenderContextType): Element;
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(options: ViewOptions, renderCtx: RenderContextType): NullableType<RenderObject>;
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>, renderCtx: RenderContextType): TrackRunElement;
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
- private contentOffCanvas;
32
- private overlayOffCanvas;
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
- export declare class CanvasTextEditor {
11
- private docScroll;
12
- private holdSpace;
13
- private ruleCanvas;
14
- private editCanvasContainer;
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 cursorWrapper;
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(docScroll: HTMLDivElement, holdSpace: HTMLDivElement, ruleCanvas: HTMLCanvasElement, editCanvasContainer: HTMLDivElement, editCanvas: HTMLCanvasElement, editInput: HTMLInputElement, editCursor: HTMLSpanElement, cursorWrapper: HTMLDivElement);
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
- resizeObserver: ResizeObserver | null;
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.62",
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;