@hailin-zheng/editor-core 1.0.61 → 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 (98) hide show
  1. package/README.md +91 -2
  2. package/controls/ButtonBase.d.ts +10 -0
  3. package/controls/Canvas.d.ts +10 -0
  4. package/controls/Config.d.ts +11 -0
  5. package/controls/FlexBox.d.ts +81 -0
  6. package/controls/Input.d.ts +33 -0
  7. package/controls/MedTimeLine/TimeAxis.d.ts +21 -0
  8. package/controls/MedTimeLine/TimeSlider.d.ts +19 -0
  9. package/controls/Menu.d.ts +31 -0
  10. package/controls/Node.d.ts +217 -0
  11. package/controls/NodeEvent.d.ts +136 -0
  12. package/controls/Rect.d.ts +4 -0
  13. package/controls/ScrollView.d.ts +56 -0
  14. package/controls/StackPanel.d.ts +27 -0
  15. package/controls/SurfaceView.d.ts +41 -0
  16. package/controls/Text.d.ts +45 -0
  17. package/controls/TextBase.d.ts +19 -0
  18. package/controls/ViewPaint.d.ts +57 -0
  19. package/controls/Window.d.ts +27 -0
  20. package/controls/WrapPanel.d.ts +10 -0
  21. package/controls/event-subject.d.ts +42 -0
  22. package/index-cjs.d.ts +0 -3
  23. package/index-cjs.js +14352 -9255
  24. package/index-cjs.js.map +1 -1
  25. package/index.d.ts +0 -3
  26. package/index.js +14336 -9256
  27. package/index.js.map +1 -1
  28. package/med_editor/framework/ast-parser.d.ts +3 -0
  29. package/med_editor/framework/document-arrange.d.ts +76 -0
  30. package/med_editor/framework/document-change.d.ts +6 -8
  31. package/med_editor/framework/document-comment.d.ts +4 -12
  32. package/med_editor/framework/document-event.d.ts +3 -2
  33. package/med_editor/framework/document-input-cursor.d.ts +3 -26
  34. package/med_editor/framework/document-paint.d.ts +9 -8
  35. package/med_editor/framework/document-textline-mode.d.ts +2 -3
  36. package/med_editor/framework/dynamic-executer.d.ts +23 -0
  37. package/med_editor/framework/element-define.d.ts +17 -8
  38. package/med_editor/framework/element-measure.d.ts +7 -5
  39. package/med_editor/framework/element-paint.d.ts +1 -10
  40. package/med_editor/framework/element-props.d.ts +23 -8
  41. package/med_editor/framework/element-reader.d.ts +1 -3
  42. package/med_editor/framework/element-render-cut.d.ts +9 -7
  43. package/med_editor/framework/element-util.d.ts +2 -12
  44. package/med_editor/framework/event-subject.d.ts +3 -1
  45. package/med_editor/framework/impl/checkbox/checkbox-impl.d.ts +1 -2
  46. package/med_editor/framework/impl/comments/comment-content-impl.d.ts +4 -3
  47. package/med_editor/framework/impl/comments/comment-element-impl.d.ts +4 -4
  48. package/med_editor/framework/impl/comments/comments-container-impl.d.ts +26 -5
  49. package/med_editor/framework/impl/comments/comments-util.d.ts +2 -9
  50. package/med_editor/framework/impl/comments/validate-msg-impl.d.ts +1 -1
  51. package/med_editor/framework/impl/data-element/data-element-barcode.d.ts +1 -1
  52. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +4 -2
  53. package/med_editor/framework/impl/data-element/data-element-check-impl.d.ts +1 -2
  54. package/med_editor/framework/impl/data-element/data-element-date-impl.d.ts +1 -2
  55. package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +2 -2
  56. package/med_editor/framework/impl/data-element/data-element-image-impl.d.ts +1 -2
  57. package/med_editor/framework/impl/data-element/data-element-list-impl.d.ts +2 -3
  58. package/med_editor/framework/impl/data-element/data-element-text-impl.d.ts +1 -2
  59. package/med_editor/framework/impl/decorate/fill-null-space-imple.d.ts +1 -2
  60. package/med_editor/framework/impl/document/doc-body-impl.d.ts +3 -3
  61. package/med_editor/framework/impl/document/doc-body-part-impl.d.ts +1 -2
  62. package/med_editor/framework/impl/document/doc-footer-impl.d.ts +3 -3
  63. package/med_editor/framework/impl/document/doc-header-impl.d.ts +3 -3
  64. package/med_editor/framework/impl/document/doc-impl.d.ts +2 -2
  65. package/med_editor/framework/impl/media-formula/menstrual-history.d.ts +3 -4
  66. package/med_editor/framework/impl/paragraph/p-impl.d.ts +7 -4
  67. package/med_editor/framework/impl/picture/image-impl.d.ts +1 -2
  68. package/med_editor/framework/impl/radio/radio-impl.d.ts +1 -2
  69. package/med_editor/framework/impl/symbol/br-symbol-impl.d.ts +1 -2
  70. package/med_editor/framework/impl/symbol/page-br-symbol-impl.d.ts +21 -0
  71. package/med_editor/framework/impl/symbol/tab-symbol-impl.d.ts +16 -0
  72. package/med_editor/framework/impl/table/table-cell-impl.d.ts +3 -4
  73. package/med_editor/framework/impl/table/table-impl.d.ts +6 -8
  74. package/med_editor/framework/impl/table/table-row-impl.d.ts +1 -2
  75. package/med_editor/framework/impl/table/table-util.d.ts +5 -0
  76. package/med_editor/framework/impl/text/text-impl.d.ts +4 -4
  77. package/med_editor/framework/impl/text/track-run-impl.d.ts +3 -4
  78. package/med_editor/framework/paragraph-arrange.d.ts +82 -0
  79. package/med_editor/framework/render-context.d.ts +14 -17
  80. package/med_editor/framework/render-define.d.ts +1 -0
  81. package/med_editor/rule-control.d.ts +66 -0
  82. package/med_editor/texteditor.d.ts +35 -33
  83. package/package.json +5 -2
  84. package/med_editor/controls/button.d.ts +0 -10
  85. package/med_editor/controls/core.d.ts +0 -175
  86. package/med_editor/controls/data-grid.d.ts +0 -115
  87. package/med_editor/controls/editor.d.ts +0 -7
  88. package/med_editor/controls/event.d.ts +0 -22
  89. package/med_editor/controls/grid.d.ts +0 -11
  90. package/med_editor/controls/label.d.ts +0 -10
  91. package/med_editor/controls/panel.d.ts +0 -8
  92. package/med_editor/controls/render-context.d.ts +0 -59
  93. package/med_editor/controls/report-sheet.d.ts +0 -10
  94. package/med_editor/controls/rule.d.ts +0 -39
  95. package/med_editor/controls/scroll-viewer.d.ts +0 -60
  96. package/med_editor/controls/surface.d.ts +0 -23
  97. package/med_editor/doc-ruler.d.ts +0 -50
  98. package/med_editor/framework/impl/paragraph/p-line-impl.d.ts +0 -24
@@ -0,0 +1,56 @@
1
+ import { IArrangeEvent, IMeasureEvent, IRenderData, NodeCore, NodeItems, Size } from "./Node";
2
+ import { ButtonBase } from "./ButtonBase";
3
+ import { Subject } from "./event-subject";
4
+ import { ViewPaint } from "./ViewPaint";
5
+ export declare const ScrollBarSize = 14;
6
+ export declare class ScrollView extends NodeItems {
7
+ content: ScrollContent;
8
+ horBar: ScrollBar;
9
+ verBar: ScrollBar;
10
+ private _scrollX;
11
+ private _scrollY;
12
+ onScrollEvent: Subject<{
13
+ x: number;
14
+ y: number;
15
+ }>;
16
+ get scrollX(): number;
17
+ set scrollX(value: number);
18
+ get scrollY(): number;
19
+ set scrollY(value: number);
20
+ constructor();
21
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
22
+ getRenderItems(): Array<NodeCore>;
23
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
24
+ render(e: IRenderData): void;
25
+ }
26
+ declare type OrientationType = 'horizontal' | 'vertical';
27
+ export declare class ScrollContent extends NodeItems {
28
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
29
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
30
+ renderOutline(renderCtx: ViewPaint): void;
31
+ render(e: IRenderData): void;
32
+ }
33
+ export declare class ScrollBar extends NodeItems {
34
+ orientation: OrientationType;
35
+ thumb: ScrollThumb;
36
+ thumbSize: number;
37
+ scrollChanged: Subject<number>;
38
+ constructor(orientation: OrientationType);
39
+ updateScroll(x: number, y: number): void;
40
+ updateScrollByCurrent(increaseX: number, increaseY: number): void;
41
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
42
+ /**
43
+ * 横向滚动条测量
44
+ */
45
+ private measureHorizontalBar;
46
+ private measureVerticalBar;
47
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
48
+ render(e: IRenderData): void;
49
+ }
50
+ export declare class ScrollThumb extends ButtonBase {
51
+ constructor();
52
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
53
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
54
+ render(e: IRenderData): void;
55
+ }
56
+ export {};
@@ -0,0 +1,27 @@
1
+ import { IArrangeEvent, IMeasureEvent, IRenderData, Panel, Size } from "./Node";
2
+ export declare type OrientationType = 'horizontal' | 'vertical';
3
+ /**
4
+ * 将子元素排列成水平或垂直的一行。
5
+ */
6
+ export declare class StackPanel extends Panel {
7
+ private _orientation;
8
+ get orientation(): OrientationType;
9
+ set orientation(value: OrientationType);
10
+ /**
11
+ * 处理项目在水平方向分布时,项目在纵向对齐时的情况
12
+ * @param finalRect
13
+ * @param item
14
+ * @returns
15
+ */
16
+ private getItemVerticalAlignRect;
17
+ /**
18
+ * 处理项目在纵向分布时,项目的对齐情况
19
+ * @param finalRect
20
+ * @param item
21
+ * @returns
22
+ */
23
+ private getItemHorizontalAlignRect;
24
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
25
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
26
+ render(e: IRenderData): void;
27
+ }
@@ -0,0 +1,41 @@
1
+ import { IArrangeEvent, IMeasureEvent, IRenderData, NodeCore, NodeItems, Rect, RenderTaskSchedule, Size } from "./Node";
2
+ import { NodeEvent } from "./NodeEvent";
3
+ import { ViewPaint } from "./ViewPaint";
4
+ import { Subject } from "./event-subject";
5
+ export declare class SurfaceView extends NodeItems {
6
+ canvas: HTMLCanvasElement;
7
+ input: HTMLInputElement;
8
+ private container;
9
+ renderSchedule: RenderTaskSchedule;
10
+ nodeEvent: NodeEvent;
11
+ renderCtx: ViewPaint;
12
+ onSizeChanged: Subject<{
13
+ width: number;
14
+ height: number;
15
+ }>;
16
+ constructor(canvas: HTMLCanvasElement, input: HTMLInputElement);
17
+ initRenderCtx(): void;
18
+ resizeObserver: ResizeObserver | null;
19
+ listenContainerHeight(): void;
20
+ reLayout: boolean;
21
+ updateCanvasHeight(): void;
22
+ getContainerHeight(): {
23
+ height: number;
24
+ width: number;
25
+ };
26
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
27
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
28
+ render(e: IRenderData): void;
29
+ start(): void;
30
+ popNodes: Array<NodeCore>;
31
+ registerPopNode(node: NodeCore): void;
32
+ clearPopNodes(): void;
33
+ initInputEvent(): void;
34
+ invokeClipboardEvent(evt: ClipboardEvent, type: 'copy' | 'cut' | 'paste'): void;
35
+ invokeInput(data: string): void;
36
+ invokeKeydown(evt: KeyboardEvent): void;
37
+ setInputPosition({ x, y, height }: Omit<Rect, 'width'>): void;
38
+ private setInputFocus;
39
+ hiddenInput(): void;
40
+ endInput(): void;
41
+ }
@@ -0,0 +1,45 @@
1
+ import { Size, IRenderData, IMeasureEvent, IArrangeEvent } from "./Node";
2
+ import { TextBase } from "./TextBase";
3
+ export declare type TextVertAlign = 'superscript' | 'subscript';
4
+ /**
5
+ * 文本元素尺寸默认按照横向排列进行测量,内容高度等于字体大小
6
+ * 如果有默认宽度限制,而且支持换行显示,则内容高度等于多行累计高度
7
+ */
8
+ export declare class LabelNode extends TextBase {
9
+ private _textWrapping;
10
+ get textWrapping(): "wrap" | "no";
11
+ set textWrapping(value: "wrap" | "no");
12
+ protected cacheTextRect: TextMeasureRect;
13
+ private textUnits;
14
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
15
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
16
+ private getTextProps;
17
+ private measureTextRect;
18
+ render(e: IRenderData): void;
19
+ /**
20
+ * 绘制文字选区效果
21
+ */
22
+ renderOverlays(): void;
23
+ private drawLine;
24
+ }
25
+ interface TextMeasureRect {
26
+ lines: Array<TextLine>;
27
+ width: number;
28
+ height: number;
29
+ desiredWidth: number;
30
+ desiredHeight: number;
31
+ }
32
+ interface TextLine {
33
+ lineUnits: Array<TextUnits>;
34
+ x: number;
35
+ y: number;
36
+ width: number;
37
+ height: number;
38
+ }
39
+ import { TextUnits } from "../med_editor/framework/render-context";
40
+ export declare class TextSelectionRange {
41
+ startOffset: number;
42
+ endOffset: number;
43
+ get collapsed(): boolean;
44
+ }
45
+ export {};
@@ -0,0 +1,19 @@
1
+ import { NodeCore } from "./Node";
2
+ /**
3
+ * 文本组件基类
4
+ * button、input可继承
5
+ */
6
+ export declare abstract class TextBase extends NodeCore {
7
+ private _fontName;
8
+ get fontName(): string;
9
+ set fontName(value: string);
10
+ private _fontSize;
11
+ get fontSize(): number;
12
+ set fontSize(value: number);
13
+ private _color;
14
+ get color(): string;
15
+ set color(value: string);
16
+ private _text;
17
+ get text(): string;
18
+ set text(value: string);
19
+ }
@@ -0,0 +1,57 @@
1
+ import { TextProps } from "../med_editor/framework/element-props";
2
+ import { Position, Rect } from "../med_editor/framework/element-define";
3
+ import { ISetCanvasPageProps, TextUnits } from "../med_editor/framework/render-context";
4
+ import { Subject } from "../med_editor/framework/event-subject";
5
+ export declare class ViewPaint {
6
+ ctx: CanvasRenderingContext2D;
7
+ onRenderCompleted: Subject<ViewPaint>;
8
+ pageSetting: ISetCanvasPageProps;
9
+ pageRect: Rect;
10
+ constructor(ctx: CanvasRenderingContext2D);
11
+ init(): void;
12
+ /**
13
+ * 更新绘制画布大小
14
+ */
15
+ update(pageSetting: ISetCanvasPageProps): void;
16
+ setGlobalAlpha(alpha: number): void;
17
+ getGlobalAlpha(): number;
18
+ clear(): void;
19
+ drawText(text: string, textProps: TextProps, x: number, y: number, width: number, height: number): 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
+ scale(ratio: number): void;
30
+ /**
31
+ * 包装任务执行:save->exec->restore
32
+ * @param effect
33
+ */
34
+ tran(effect: () => void): void;
35
+ strokeRect(x: number, y: number, width: number, height: number, strokeColor?: string, strokeWidth?: number, radius?: number): void;
36
+ /**
37
+ * 绘制水平线
38
+ * @param x
39
+ * @param y
40
+ * @param width
41
+ * @param lineColor
42
+ * @param lineWidth
43
+ */
44
+ drawHoriLine(x: number, y: number, width: number, lineColor?: string, lineWidth?: number): void;
45
+ fillRect(x: number, y: number, width: number, height: number, fillColor?: string, shadowBlur?: number, shadowColor?: string, borderRadius?: number): void;
46
+ strokeLines(lines: Array<Position>, width?: number, strokeColor?: string): void;
47
+ fillLines(lines: Array<Position>, width?: number, fillColor?: string, lineDash?: Array<number>): void;
48
+ drawCheckBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
49
+ drawRadioBox(x: number, y: number, width: number, height: number, isChecked: boolean): void;
50
+ drawImage(image: CanvasImageSource, sx: number, sy: number): void;
51
+ drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number): void;
52
+ drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
53
+ drawDashLine(points: Array<Position>, lineDash: Array<number>, lineColor?: string, lineWidth?: number): void;
54
+ roundRect(x: number, y: number, width: number, height: number, radius: number): void;
55
+ clip(x: number, y: number, width: number, height: number): void;
56
+ clipFunc(pathFunc: () => void): void;
57
+ }
@@ -0,0 +1,27 @@
1
+ import { IArrangeEvent, IMeasureEvent, IRenderData, NodeItems, Size } from "./Node";
2
+ import { ButtonBase } from "./ButtonBase";
3
+ export declare class Window extends NodeItems {
4
+ title: WindowTitle;
5
+ content: WindowContent;
6
+ resizeBar: ResizeBar;
7
+ constructor();
8
+ private moveWindow;
9
+ private resizeWindow;
10
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
11
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
12
+ render(e: IRenderData): void;
13
+ }
14
+ export declare class WindowTitle extends NodeItems {
15
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
16
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
17
+ render(e: IRenderData): void;
18
+ }
19
+ export declare class WindowContent extends NodeItems {
20
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
21
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
22
+ render(e: IRenderData): void;
23
+ }
24
+ export declare class ResizeBar extends ButtonBase {
25
+ constructor();
26
+ render(e: IRenderData): void;
27
+ }
@@ -0,0 +1,10 @@
1
+ import { IArrangeEvent, IMeasureEvent, IRenderData, Panel, Size } from "./Node";
2
+ export declare type OrientationType = 'horizontal' | 'vertical';
3
+ export declare class WrapPanel extends Panel {
4
+ private _orientation;
5
+ get orientation(): OrientationType;
6
+ set orientation(value: OrientationType);
7
+ measureOverride(e: IMeasureEvent, availableSize: Size): Size;
8
+ protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
9
+ render(e: IRenderData): void;
10
+ }
@@ -0,0 +1,42 @@
1
+ export declare abstract class Subscription<T = any> {
2
+ protected closed: boolean;
3
+ once: boolean;
4
+ abstract invoke(data: T): void;
5
+ abstract unsubscribe(): void;
6
+ }
7
+ export declare abstract class EventSourceCore<T> {
8
+ protected closed: boolean;
9
+ subs: Array<Subscription>;
10
+ next(data?: T): void;
11
+ protected addSub(sub: Subscription): void;
12
+ protected removeSub(sub: Subscription): void;
13
+ unsubscribe(): void;
14
+ }
15
+ /**
16
+ * DOM事件处理
17
+ */
18
+ export declare class DOMEventSource<T extends Event> extends EventSourceCore<T> {
19
+ dom: Node;
20
+ type: string;
21
+ constructor(dom: Node, type: string);
22
+ subscribe(listener: (evt: T) => void): Subscription;
23
+ }
24
+ export declare class DOMSubscription<T> extends Subscription<T> {
25
+ listener: (evt: T) => void;
26
+ cancel: () => void;
27
+ constructor(listener: (evt: T) => void, cancel: () => void);
28
+ invoke(data: any): void;
29
+ unsubscribe(): void;
30
+ }
31
+ export declare class Subject<T> extends EventSourceCore<T> {
32
+ subscribe(listener: (data: T) => void): Subscription;
33
+ onceSubscribe(listener: (data: T) => void): Subscription;
34
+ }
35
+ export declare class SubjectSubscription extends Subscription {
36
+ listener: (data: any) => void;
37
+ cancel: () => void;
38
+ constructor(listener: (data: any) => void, cancel: () => void);
39
+ invoke(data: any): void;
40
+ unsubscribe(): void;
41
+ }
42
+ export declare function fromEvent<T extends Event>(dom: Node, type: string): DOMEventSource<T>;
package/index-cjs.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './med_editor/doc-ruler';
2
1
  export * from './med_editor/texteditor';
3
2
  export * from './med_editor/framework/common-util';
4
3
  export * from './med_editor/framework/document-change';
@@ -18,11 +17,9 @@ export * from './med_editor/framework/document-template';
18
17
  export * from './med_editor/framework/document-textline-mode';
19
18
  export * from './med_editor/framework/element-define';
20
19
  export * from './med_editor/framework/element-event-define';
21
- export * from './med_editor/framework/element-measure';
22
20
  export * from './med_editor/framework/element-paint';
23
21
  export * from './med_editor/framework/element-props';
24
22
  export * from './med_editor/framework/element-reader';
25
- export * from './med_editor/framework/element-render-cut';
26
23
  export * from './med_editor/framework/element-serialize';
27
24
  export * from './med_editor/framework/element-util';
28
25
  export * from './med_editor/framework/notify';