@hailin-zheng/editor-core 2.1.28 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. package/editor.css +19 -4
  2. package/index-cjs.d.ts +12 -12
  3. package/index-cjs.js +728 -1119
  4. package/index-cjs.js.map +1 -1
  5. package/index.d.ts +12 -12
  6. package/index.js +745 -1137
  7. package/index.js.map +1 -1
  8. package/med_editor/doc-editor.d.ts +10 -6
  9. package/med_editor/doc-rule.d.ts +1 -1
  10. package/med_editor/editor-core.d.ts +1 -1
  11. package/med_editor/framework/{document-eval-func.d.ts → code-interpreter/document-eval-func.d.ts} +1 -1
  12. package/med_editor/framework/{dynamic-execute.d.ts → code-interpreter/dynamic-execute.d.ts} +3 -3
  13. package/med_editor/framework/{document-arrange.d.ts → doc-layout/document-arrange.d.ts} +7 -12
  14. package/med_editor/framework/{paragraph-arrange.d.ts → doc-layout/paragraph-arrange.d.ts} +5 -5
  15. package/med_editor/framework/document-change.d.ts +1 -1
  16. package/med_editor/framework/document-context.d.ts +5 -12
  17. package/med_editor/framework/document-event.d.ts +3 -14
  18. package/med_editor/framework/document-input-cursor.d.ts +1 -1
  19. package/med_editor/framework/document-paginator.d.ts +1 -7
  20. package/med_editor/framework/document-svg.d.ts +12 -8
  21. package/med_editor/framework/element-define.d.ts +3 -9
  22. package/med_editor/framework/element-event-define.d.ts +2 -2
  23. package/med_editor/framework/element-props.d.ts +1 -2
  24. package/med_editor/framework/element-serialize.d.ts +1 -1
  25. package/med_editor/framework/{element-trace-manage.d.ts → history/element-trace-manage.d.ts} +3 -2
  26. package/med_editor/framework/{element-trace-tracking.d.ts → history/element-trace-tracking.d.ts} +2 -2
  27. package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +13 -0
  28. package/med_editor/framework/impl/document/doc-impl.d.ts +1 -11
  29. package/med_editor/framework/impl/index.d.ts +0 -1
  30. package/med_editor/framework/impl/table/table-split-cell.d.ts +1 -1
  31. package/med_editor/framework/impl/table/table-util.d.ts +1 -1
  32. package/med_editor/framework/impl/text/track-run-impl.d.ts +2 -2
  33. package/med_editor/framework/{document-print-offscreen.d.ts → print/document-print-offscreen.d.ts} +8 -8
  34. package/med_editor/framework/{document-print.d.ts → print/document-print.d.ts} +1 -1
  35. package/med_editor/framework/{document-selection.d.ts → selection/document-selection.d.ts} +5 -5
  36. package/med_editor/framework/{range-util.d.ts → selection/range-util.d.ts} +2 -2
  37. package/med_editor/framework/{selection-overlays.d.ts → selection/selection-overlays.d.ts} +1 -1
  38. package/med_editor/framework/util/adjust-viewport-elements.d.ts +12 -0
  39. package/med_editor/framework/{common-util.d.ts → util/common-util.d.ts} +2 -2
  40. package/med_editor/framework/{document-segmenter.d.ts → util/document-segmenter.d.ts} +1 -1
  41. package/med_editor/framework/{element-util.d.ts → util/element-util.d.ts} +13 -12
  42. package/med_editor/framework/{editor-calendar-vnode.d.ts → vnode/editor-calendar-vnode.d.ts} +4 -4
  43. package/package.json +2 -2
  44. package/controls/ButtonBase.d.ts +0 -10
  45. package/controls/Canvas.d.ts +0 -7
  46. package/controls/Config.d.ts +0 -12
  47. package/controls/FlexBox.d.ts +0 -81
  48. package/controls/Input.d.ts +0 -33
  49. package/controls/MedTimeLine/TimeAxis.d.ts +0 -21
  50. package/controls/MedTimeLine/TimeSlider.d.ts +0 -19
  51. package/controls/Menu.d.ts +0 -31
  52. package/controls/Node.d.ts +0 -232
  53. package/controls/NodeEvent.d.ts +0 -138
  54. package/controls/Rect.d.ts +0 -4
  55. package/controls/ScrollView.d.ts +0 -57
  56. package/controls/StackPanel.d.ts +0 -27
  57. package/controls/SurfaceView.d.ts +0 -44
  58. package/controls/Text.d.ts +0 -46
  59. package/controls/TextBase.d.ts +0 -19
  60. package/controls/ViewPaint.d.ts +0 -64
  61. package/controls/Window.d.ts +0 -27
  62. package/controls/WrapPanel.d.ts +0 -10
  63. package/controls/event-subject.d.ts +0 -42
  64. package/med_editor/framework/impl/comments/comments-util.d.ts +0 -5
  65. package/med_editor/rule-control.d.ts +0 -66
  66. package/timeline/TimeLineControl.d.ts +0 -47
  67. package/timeline/TimeValueGridControl.d.ts +0 -106
  68. package/timeline/TimelineConfig.d.ts +0 -68
  69. package/timeline/TimelineScrollbar.d.ts +0 -25
  70. package/timeline/TimelineStatus.d.ts +0 -61
  71. package/timeline/TimelineTick.d.ts +0 -63
  72. package/timeline/example.d.ts +0 -2
  73. /package/med_editor/framework/{ast-parser.d.ts → code-interpreter/ast-parser.d.ts} +0 -0
  74. /package/med_editor/framework/{event-subject.d.ts → infrastructure/event-subject.d.ts} +0 -0
  75. /package/med_editor/framework/{notify.d.ts → infrastructure/notify.d.ts} +0 -0
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "author": "hailin-zheng",
5
5
  "private": false,
6
6
  "license": "ISC",
7
- "version": "2.1.28",
7
+ "version": "2.2.1",
8
8
  "scripts": {},
9
9
  "dependencies": {
10
10
  "moment": "^2.29.3",
@@ -16,4 +16,4 @@
16
16
  "snabbdom-to-html": "^7.1.0",
17
17
  "jsbarcode": "^3.11.5"
18
18
  }
19
- }
19
+ }
@@ -1,10 +0,0 @@
1
- import { IMeasureEvent, IRenderData, Size } from "./Node";
2
- import { TextBase } from "./TextBase";
3
- export declare class ButtonBase extends TextBase {
4
- constructor();
5
- render(e: IRenderData): void;
6
- }
7
- export declare class Button extends ButtonBase {
8
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
9
- render(e: IRenderData): void;
10
- }
@@ -1,7 +0,0 @@
1
- import { AbsolutePanel, IRenderData } from "./Node";
2
- /**
3
- * 采用绝对布局系统的容器
4
- */
5
- export declare class Canvas extends AbsolutePanel {
6
- render(e: IRenderData): void;
7
- }
@@ -1,12 +0,0 @@
1
- export declare const ViewConfig: {
2
- surfaceBgColor: string;
3
- showMousePositionLine: boolean;
4
- primaryColor: string;
5
- onPrimaryColor: string;
6
- themeSecondaryColor: string;
7
- bgShadowBlur: number;
8
- bgShadowColor: string;
9
- textPrimaryColor: string;
10
- textSecondaryColor: string;
11
- buttonBgColor: string;
12
- };
@@ -1,81 +0,0 @@
1
- import { IArrangeEvent, IMeasureEvent, IRenderData, NodeCore, NodeItems, Rect, Size } from "./Node";
2
- export declare class FlexBox extends NodeItems {
3
- /**
4
- * 轴线方向
5
- */
6
- flexDirection: 'row' | 'column';
7
- /**
8
- * 当主轴方向无法放置主元素时是否换行显示
9
- */
10
- flexWrap: 'no' | 'wrap';
11
- /**
12
- * 定义元素在主轴方向如果有剩余空间时,如何排列子元素
13
- * 重要:如果容器禁止换行,而且内容超出主轴尺寸,justify-content会有影响
14
- * flex-start:从主轴方向默认从左向右排列
15
- * center:主轴方向居中
16
- * flex-end:主轴方向从右向左排列
17
- * space-between:除掉首尾元素,剩余空间执行->space-evenly算法
18
- * space-around:主轴剩余的空间除以(元素数量*2),均分到每个元素左右两侧
19
- * space-evenly:主轴剩余的空间除以(元素数量+1),均分到每个元素中间;类似space-between,但是不排除首尾元素
20
- */
21
- justifyContent: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch';
22
- /**
23
- * 定义交叉轴上元素的排列,算法与justifyContent一致
24
- * 重要:所有行的垂轴是同样的
25
- * 该属性对单行弹性盒子模型无效。(即:带有 flex-wrap: nowrap)
26
- * stretch:交叉轴方向拉伸元素大小适应"当前行",如果项目设定了尺寸,则项目属性尺寸的优先级最高,该属性不生效
27
- */
28
- alignContent: 'normal' | 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch';
29
- /**
30
- * 作用类似alignContent
31
- * 重要:每一行的垂轴对应到每一行
32
- */
33
- alignItems: 'flex-start' | 'center' | 'flex-end' | 'stretch';
34
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
35
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
36
- render(e: IRenderData): void;
37
- /**
38
- * 预先测量所有元素
39
- */
40
- private preMeasureItems;
41
- /**
42
- * 预先测量轴线方向为row
43
- */
44
- private measureRow;
45
- private arrangeRow;
46
- /**
47
- * 横轴排版,排版每行内子项的X
48
- * @param lines
49
- * @param finalSize
50
- */
51
- arrangeJustifyContent(lines: Array<MainAxisLine>, finalSize: Size): void;
52
- private arrangeAlignItems;
53
- /**
54
- * 获取行
55
- */
56
- private getRowLines;
57
- /**
58
- * 排版行
59
- * @private
60
- */
61
- private arrangeRowLines;
62
- private arrangeItems;
63
- private preMeasureColumn;
64
- }
65
- /**
66
- * 主轴线
67
- */
68
- interface MainAxisLine {
69
- height: number;
70
- width: number;
71
- maxItemWidth: number;
72
- maxItemHeight: number;
73
- items: Array<ItemPreArrangeRect>;
74
- x: number;
75
- y: number;
76
- }
77
- interface ItemPreArrangeRect {
78
- node: NodeCore;
79
- finalRect: Rect;
80
- }
81
- export {};
@@ -1,33 +0,0 @@
1
- import { TextSelectionRange } from "./Text";
2
- import { IOnMousedownEvent, IOnMousemoveEvent } from "./NodeEvent";
3
- import { IRenderData } from "./Node";
4
- import { TextBase } from "./TextBase";
5
- export declare class InputCore extends TextBase {
6
- selectionRange: TextSelectionRange | null;
7
- lines: Array<TextLine>;
8
- constructor();
9
- private input;
10
- private onBackspaceHandler;
11
- focus(): void;
12
- blur(): void;
13
- onMousedownHandler(evt: IOnMousedownEvent): void;
14
- onMousedownMoveHandler(evt: IOnMousemoveEvent): void;
15
- private getClickTextOffset;
16
- /**
17
- * 绘制光标
18
- * @private
19
- */
20
- private drawCaret;
21
- private getCaretPos;
22
- render(e: IRenderData): void;
23
- }
24
- interface TextLine {
25
- width: number;
26
- height: number;
27
- x: number;
28
- y: number;
29
- lineUnits: Array<{
30
- sourceSize: number;
31
- }>;
32
- }
33
- export {};
@@ -1,21 +0,0 @@
1
- import { IArrangeEvent, IMeasureEvent, IRenderData, NodeCore, NodeItems, Size } from "../Node";
2
- export declare class TimeAxis extends NodeItems {
3
- get startDate(): Date;
4
- set startDate(value: Date);
5
- get endDate(): Date;
6
- set endDate(value: Date);
7
- dataPoints: Array<TimeAxisPoint>;
8
- private _startDate;
9
- private _endDate;
10
- constructor();
11
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
12
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
13
- render(e: IRenderData): void;
14
- }
15
- export declare class TimeAxisPoint extends NodeCore {
16
- xTime: Date;
17
- yValue: number;
18
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
19
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
20
- render(e: IRenderData): void;
21
- }
@@ -1,19 +0,0 @@
1
- import { IArrangeEvent, IMeasureEvent, IRenderData, NodeItems, Size } from "../Node";
2
- import { ButtonBase } from "../ButtonBase";
3
- export declare class TimeSlider extends NodeItems {
4
- leftButton: TimeSlideButton;
5
- rightButton: TimeSlideButton;
6
- constructor();
7
- get startDate(): Date;
8
- set startDate(value: Date);
9
- get endDate(): Date;
10
- set endDate(value: Date);
11
- private _startDate;
12
- private _endDate;
13
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
14
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
15
- render(e: IRenderData): void;
16
- }
17
- export declare class TimeSlideButton extends ButtonBase {
18
- render(e: IRenderData): void;
19
- }
@@ -1,31 +0,0 @@
1
- import { IArrangeEvent, IMeasureEvent, IRenderData, NodeItems, Size } from "./Node";
2
- import { LabelNode } from "./Text";
3
- export declare class Menu extends NodeItems {
4
- isFocused: boolean;
5
- constructor();
6
- /**
7
- * 关闭所有的菜单
8
- * @private
9
- */
10
- private closeAllMenu;
11
- private switchMenuContainerVisible;
12
- protected measureOverride(e: IMeasureEvent, availableSize: Size): Size;
13
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
14
- render(e: IRenderData): void;
15
- }
16
- export declare class MenuItem extends NodeItems {
17
- headerText: LabelNode;
18
- menuContainer: MenuContainer;
19
- constructor();
20
- setMenuContainerVisible(visible: boolean): void;
21
- getMenuContainerVisible(): boolean;
22
- protected measureOverride(e: IMeasureEvent, availableSize: Size): Size;
23
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
24
- render(e: IRenderData): void;
25
- }
26
- export declare class MenuContainer extends NodeItems {
27
- protected measureOverride(e: IMeasureEvent, availableSize: Size): Size;
28
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
29
- preRender(e: IRenderData): boolean;
30
- render(e: IRenderData): void;
31
- }
@@ -1,232 +0,0 @@
1
- import { Subject, Subscription } from "./event-subject";
2
- import { SurfaceView } from "./SurfaceView";
3
- import { EventMap, EventTypes, IOnChangedEvent, ListenerEventData, ListenerFunc, NodeEvent, PercentType } from "./NodeEvent";
4
- import { Position } from "../med_editor/framework/element-define";
5
- import { ViewPaint } from "./ViewPaint";
6
- export interface Size {
7
- width: number;
8
- height: number;
9
- }
10
- export interface Rect extends Size {
11
- x: number;
12
- y: number;
13
- }
14
- export declare enum ModifyFlag {
15
- None = 0,
16
- Modify = 1,
17
- Track = 2
18
- }
19
- export interface AttachedPropType {
20
- StackPanel_VerticalAlignment: 'top' | 'bottom' | 'center' | 'stretch';
21
- StackPanel_HorizontalAlignment: 'left' | 'right' | 'center' | 'stretch';
22
- }
23
- export declare type AttachedKey = keyof AttachedPropType;
24
- export declare type AttachedKeyPairValueType<T extends AttachedKey> = AttachedPropType[T];
25
- export declare type CursorType = 'text' | 'row-resize' | 'col-resize' | 'none' | 'default' | 'move' | 'pointer' | 'w-resize' | 's-resize' | 'se-resize' | 'ne-resize' | 'nwse-resize' | 'nesw-resize';
26
- export declare type OutLineStyle = 'none' | 'solid' | 'dashed';
27
- export interface IMeasureEvent {
28
- render: ViewPaint;
29
- }
30
- export interface IArrangeEvent {
31
- render: ViewPaint;
32
- }
33
- export interface IAppState {
34
- pos: Position;
35
- mousedown: boolean;
36
- mousedownPos: Position;
37
- sourceNode: NodeCore | null;
38
- sourceNodePos: Position;
39
- sourceHitPos: Position;
40
- surface: SurfaceView;
41
- }
42
- export declare abstract class NodeCore {
43
- enableClip: boolean;
44
- pointEvent: boolean;
45
- allowHitTest: boolean;
46
- hitTest(hitPos: Position, currPos: Position): boolean;
47
- get enable(): boolean;
48
- set enable(value: boolean);
49
- private _enable;
50
- enableFocus: boolean;
51
- isFocused: boolean;
52
- get cursor(): CursorType;
53
- set cursor(value: CursorType);
54
- private _cursor;
55
- get visible(): boolean;
56
- set visible(value: boolean);
57
- private _visible;
58
- get borderRadius(): number;
59
- set borderRadius(value: number);
60
- get width(): number | PercentType;
61
- set width(value: number | PercentType);
62
- get height(): number | PercentType;
63
- set height(value: number | PercentType);
64
- get x(): number;
65
- set x(value: number);
66
- get y(): number;
67
- set y(value: number);
68
- private _minWidth;
69
- private _minHeight;
70
- get minWidth(): number;
71
- set minWidth(value: number);
72
- get minHeight(): number;
73
- set minHeight(value: number);
74
- get bgColor(): string;
75
- set bgColor(value: string);
76
- private _border;
77
- get border(): number;
78
- set border(value: number);
79
- private _padding;
80
- get padding(): number;
81
- set padding(value: number);
82
- private _borderRadius;
83
- private _borderColor;
84
- get borderColor(): string;
85
- set borderColor(value: string);
86
- private _shadowBlur;
87
- private _shadowColor;
88
- get shadowBlur(): number;
89
- set shadowBlur(value: number);
90
- get shadowColor(): string;
91
- set shadowColor(value: string);
92
- private _isMouseenter;
93
- get isMouseenter(): boolean;
94
- set isMouseenter(value: boolean);
95
- private _overflowHidden;
96
- get overflowHidden(): boolean;
97
- set overflowHidden(value: boolean);
98
- outlineColor: string;
99
- outlineStyle: OutLineStyle;
100
- outlineWidth: number;
101
- protected _width: number | PercentType;
102
- protected _height: number | PercentType;
103
- protected _x: number;
104
- protected _y: number;
105
- desiredSize: Size;
106
- renderSize: Size;
107
- finalRect: Rect;
108
- protected _bgColor: string;
109
- protected _modifyFlag: ModifyFlag;
110
- get modifyFlag(): ModifyFlag;
111
- set modifyFlag(value: ModifyFlag);
112
- onChangedEvent: Subject<IOnChangedEvent>;
113
- listenerEvents: Array<ListenerEventData>;
114
- parent: NodeItems | null;
115
- protected propertyChanged(prop: string, old: any, newV: any): void;
116
- protected onChanged(): void;
117
- addEventListener<T extends EventTypes>(name: T, listener: ListenerFunc<EventMap[T]>, useCapture?: boolean): void;
118
- removeEventListener<T extends EventTypes>(name: T, listener: ListenerFunc<EventMap[T]>, useCapture?: boolean): void;
119
- /**
120
- * 父容器传入参数,子容器设置坐标位置
121
- * @param e
122
- * @param finalRect
123
- */
124
- arrange(e: IArrangeEvent, finalRect: Rect): void;
125
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
126
- /**
127
- * 测量阶段
128
- * @param e
129
- * @param availableSize
130
- */
131
- measure(e: IMeasureEvent, availableSize: Size): void;
132
- getPercentWidth(val: number): number;
133
- getPercentHeight(val: number): number;
134
- /**
135
- * 获取内容尺寸
136
- * 元素模型为边框模型,元素的大小为默认包含边框大小,内容大小需要减去边框大小
137
- * @private
138
- * @param width
139
- * @param height
140
- */
141
- protected getContentSize(width: number, height: number): Size;
142
- /**
143
- * 获取外部尺寸
144
- * @param availableSize
145
- * @private
146
- */
147
- protected getOuterSize(availableSize: Size): Size;
148
- /**
149
- * 子元素需重写该方法
150
- * @param e
151
- * @param availableSize
152
- */
153
- protected measureOverride(e: IMeasureEvent, availableSize: Size): Size;
154
- abstract render(e: IRenderData): void;
155
- preRender(e: IRenderData): boolean;
156
- private attachedProp;
157
- setAttachedProp<K extends AttachedKey>(name: K, val: AttachedKeyPairValueType<K>): void;
158
- getAttachedPropValue<K extends AttachedKey>(name: K): AttachedKeyPairValueType<K>;
159
- removeAttachedProp(name: string): void;
160
- /**
161
- * 绘制轮廓
162
- */
163
- renderOutline(renderCtx: ViewPaint): void;
164
- }
165
- export interface IRenderData {
166
- render: ViewPaint;
167
- next: (rc: ViewPaint) => void;
168
- appState: IAppState;
169
- renderPos: Position;
170
- }
171
- export declare abstract class NodeItems extends NodeCore {
172
- controls: Array<NodeCore>;
173
- eventMap: WeakMap<NodeCore, Array<Subscription>>;
174
- absoluteItems: boolean;
175
- containerPropName: string;
176
- constructor();
177
- addChild(control: NodeCore, index?: number): void;
178
- getRenderItems(): Array<NodeCore>;
179
- removeChild(index: number | NodeCore): void;
180
- private addChildSub;
181
- private removeChildSub;
182
- getChild(index: number): NodeCore;
183
- getItems(): Array<NodeCore>;
184
- getIndex(): number;
185
- clearChildren(): void;
186
- get length(): number;
187
- }
188
- export declare abstract class Panel extends NodeItems {
189
- }
190
- /**
191
- * 子内容采用绝对定位的容器
192
- */
193
- export declare abstract class AbsolutePanel extends NodeItems {
194
- constructor();
195
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
196
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
197
- }
198
- export interface ActiveAppContext {
199
- root: SurfaceView;
200
- render: () => void;
201
- }
202
- export declare function getCurrentActiveAppContext(): ActiveAppContext | null;
203
- export declare function setCurrentActiveAppContext(ctx: ActiveAppContext | null): void;
204
- export declare type RenderTaskSchedule = () => void;
205
- export declare function renderApp(root: SurfaceView, renderCtx: ViewPaint, nodeEvent: NodeEvent): RenderTaskSchedule;
206
- export declare function renderNode(node: NodeCore, renderCtx: ViewPaint, appState: IAppState, parentPos: Position): void;
207
- /**
208
- * 绘制边框
209
- * @param node
210
- * @param renderCtx
211
- */
212
- export declare function drawBorderline(node: NodeCore, renderCtx: ViewPaint): void;
213
- /**
214
- * 绘制外轮廓
215
- */
216
- export declare function drawOutline(node: NodeCore, renderCtx: ViewPaint): void;
217
- export declare function clipContent(node: NodeCore, renderCtx: ViewPaint): void;
218
- export declare function translate(renderCtx: ViewPaint, x: number, y: number): void;
219
- export declare function getParents(node: NodeCore): Array<NodeCore>;
220
- /**
221
- * 判断坐标是否在矩形框内
222
- * @param rect
223
- * @param position
224
- * @returns
225
- */
226
- export declare function isInsideRectByPosition(rect: Rect, position: Position): boolean;
227
- export declare function checkIntersect(rectA: Rect, rectB: Rect): boolean;
228
- export declare function getNodePosition(node: NodeCore, currPos: Position): Position;
229
- export declare function getMatchParent<T>(currNode: NodeCore, parentType: {
230
- new (...args: any[]): T;
231
- }): T;
232
- export declare function getPredicateParent<T>(currNode: NodeCore, predicate: (node: NodeCore) => boolean): T;
@@ -1,138 +0,0 @@
1
- import { Subject } from "./event-subject";
2
- import { SurfaceView } from "./SurfaceView";
3
- import { IAppState, NodeCore } from "./Node";
4
- import { Position } from "../med_editor/framework/element-define";
5
- export declare class NodeEvent {
6
- root: SurfaceView;
7
- canvas: HTMLCanvasElement;
8
- appState: IAppState;
9
- onSignal: Subject<void>;
10
- hitInfo: IHitInfo | null;
11
- mouseenterNodes: Array<NodeCore>;
12
- prevNode: NodeCore;
13
- prevFocusNodes: Array<NodeCore>;
14
- constructor(root: SurfaceView, canvas: HTMLCanvasElement);
15
- private setActiveAppContext;
16
- setAppState(hitInfo: IHitInfo | null): void;
17
- hitTest(evt: MouseEvent): IHitInfo | null;
18
- onMousedownHandler(evt: MouseEvent): void;
19
- onMousemoveHandler(evt: MouseEvent): void;
20
- onMouseupHandler(evt: MouseEvent): void;
21
- onDblClickHandler(evt: MouseEvent): void;
22
- onMouseleaveHandler(evt: MouseEvent): void;
23
- /**
24
- * TODO:需要重新获取鼠标上的元素进行onWheel
25
- * @param evt
26
- */
27
- onWheelHandler(evt: WheelEvent): void;
28
- onContextMenuHandler(evt: MouseEvent): void;
29
- onCopyHandler(evt: ClipboardEvent): void;
30
- onKeydownHandler(evt: KeyboardEvent): void;
31
- getHitNode(hitPos: Position, parentPos: Position): IHitInfo | null;
32
- getMouseHitNode(node: NodeCore, hitPos: Position, parentPos: Position): IHitInfo | null;
33
- invokeNodeFocusedEvent(prevNode: NodeCore | null, prevParents: Array<NodeCore>, currNode: NodeCore | null): void;
34
- }
35
- /**
36
- * 触发事件
37
- * @returns 当前事件是否被取消
38
- */
39
- export declare function invokeEvent(event: IEventCore, eventName: EventTypes, node: NodeCore, useCaptureEvent?: boolean): boolean;
40
- export declare function invokeNodeEvent(node: NodeCore, event: IEventCore, name: EventTypes, useCapture: boolean): boolean;
41
- export interface IEventCore {
42
- target: NodeCore;
43
- source: NodeCore;
44
- cancelable: boolean;
45
- isCancel: boolean;
46
- }
47
- export interface PercentType {
48
- value: number;
49
- }
50
- export interface IOnKeyEvent extends IEventCore {
51
- }
52
- export interface IOnKeydownEvent extends IOnKeyEvent {
53
- sourceEvt: KeyboardEvent;
54
- }
55
- export interface IOnMouseEvent extends IEventCore {
56
- pos: Position;
57
- sourceHitPos: Position;
58
- sourcePos: Position;
59
- sourceEvt: Event;
60
- }
61
- export interface IOnMousemoveEvent extends IOnMouseEvent {
62
- }
63
- export interface IOnMousedownEvent extends IOnMouseEvent {
64
- }
65
- export interface IOnMouseupEvent extends IOnMouseEvent {
66
- }
67
- export interface IOnChangedEvent extends IEventCore {
68
- }
69
- export interface IOnClickEvent extends IOnMouseEvent {
70
- }
71
- export interface IOnDblClickEvent extends IOnMouseEvent {
72
- }
73
- export interface IOnMouseenterEvent extends IOnMouseEvent {
74
- }
75
- export interface IOnMouseleaveEvent extends IOnMouseEvent {
76
- }
77
- export interface IOnMouseoverEvent extends IOnMouseEvent {
78
- }
79
- export interface IOnMouseoutEvent extends IOnMouseEvent {
80
- }
81
- export interface IOnGotFocusEvent extends IEventCore {
82
- }
83
- export interface IOnLostFocusEvent extends IEventCore {
84
- }
85
- export interface IOnKeydownEvent extends IEventCore {
86
- }
87
- export interface IOnContextMenuEvent extends IOnMouseEvent {
88
- }
89
- export interface IOnWheelEvent extends IEventCore {
90
- deltaX: number;
91
- deltaY: number;
92
- }
93
- export interface IOnCopyEvent extends IEventCore {
94
- sourceEvt: ClipboardEvent;
95
- }
96
- export interface IOnPasteEvent extends IEventCore {
97
- sourceEvt: ClipboardEvent;
98
- }
99
- export interface IOnCutEvent extends IEventCore {
100
- sourceEvt: ClipboardEvent;
101
- }
102
- export interface IOnInputEvent extends IEventCore {
103
- data: string;
104
- }
105
- export interface EventMap {
106
- mousemove: IOnMousemoveEvent;
107
- mousedown: IOnMousedownEvent;
108
- mouseup: IOnMouseupEvent;
109
- click: IOnClickEvent;
110
- dblclick: IOnDblClickEvent;
111
- mouseenter: IOnMouseenterEvent;
112
- mouseleave: IOnMouseleaveEvent;
113
- wheel: IOnWheelEvent;
114
- mouseover: IOnMouseoverEvent;
115
- mouseout: IOnMouseoutEvent;
116
- gotFocus: IOnGotFocusEvent;
117
- lostFocus: IOnLostFocusEvent;
118
- preGotFocus: IOnGotFocusEvent;
119
- input: IOnInputEvent;
120
- keydown: IOnKeydownEvent;
121
- copy: IOnCopyEvent;
122
- paste: IOnPasteEvent;
123
- cut: IOnCutEvent;
124
- contextmenu: IOnContextMenuEvent;
125
- }
126
- export declare type EventTypes = keyof EventMap;
127
- export declare type ListenerFunc<T extends IEventCore = IEventCore> = (evt: T) => void;
128
- export declare type ListenerEventMap = Map<EventTypes, Array<ListenerFunc>>;
129
- export declare type ListenerEventData = {
130
- name: EventTypes;
131
- listener: ListenerFunc;
132
- useCapture: boolean;
133
- };
134
- export interface IHitInfo {
135
- target: NodeCore;
136
- targetPos: Position;
137
- hitPos: Position;
138
- }
@@ -1,4 +0,0 @@
1
- import { NodeCore, IRenderData } from "./Node";
2
- export declare class RectNode extends NodeCore {
3
- render(e: IRenderData): void;
4
- }
@@ -1,57 +0,0 @@
1
- import { AbsolutePanel, 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
- scrollTo(x: number, y: number): void;
22
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
23
- getRenderItems(): Array<NodeCore>;
24
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
25
- render(e: IRenderData): void;
26
- }
27
- declare type OrientationType = 'horizontal' | 'vertical';
28
- export declare class ScrollContent extends AbsolutePanel {
29
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
30
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
31
- renderOutline(renderCtx: ViewPaint): void;
32
- render(e: IRenderData): void;
33
- }
34
- export declare class ScrollBar extends NodeItems {
35
- orientation: OrientationType;
36
- thumb: ScrollThumb;
37
- thumbSize: number;
38
- scrollChanged: Subject<number>;
39
- constructor(orientation: OrientationType);
40
- updateScroll(x: number, y: number): void;
41
- updateScrollByCurrent(increaseX: number, increaseY: number): void;
42
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
43
- /**
44
- * 横向滚动条测量
45
- */
46
- private measureHorizontalBar;
47
- private measureVerticalBar;
48
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
49
- render(e: IRenderData): void;
50
- }
51
- export declare class ScrollThumb extends ButtonBase {
52
- constructor();
53
- measureOverride(e: IMeasureEvent, availableSize: Size): Size;
54
- protected arrangeOverride(e: IArrangeEvent, finalSize: Size): Size;
55
- render(e: IRenderData): void;
56
- }
57
- export {};