@tmagic/stage 1.3.16 → 1.4.0-beta.2
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/README.md +2 -2
- package/dist/tmagic-stage.js +155 -103
- package/dist/tmagic-stage.umd.cjs +155 -103
- package/package.json +6 -6
- package/src/ActionManager.ts +57 -24
- package/src/DragResizeHelper.ts +12 -8
- package/src/MoveableActionsAble.ts +1 -1
- package/src/StageCore.ts +41 -25
- package/src/StageDragResize.ts +50 -23
- package/src/StageMask.ts +12 -1
- package/src/StageMultiDragResize.ts +18 -3
- package/src/StageRender.ts +22 -26
- package/src/TargetShadow.ts +1 -1
- package/src/const.ts +31 -0
- package/src/types.ts +73 -37
- package/src/util.ts +2 -2
- package/types/ActionManager.d.ts +10 -8
- package/types/DragResizeHelper.d.ts +2 -2
- package/types/StageCore.d.ts +9 -7
- package/types/StageDragResize.d.ts +8 -6
- package/types/StageMask.d.ts +3 -1
- package/types/StageMultiDragResize.d.ts +5 -2
- package/types/StageRender.d.ts +5 -3
- package/types/const.d.ts +27 -0
- package/types/types.d.ts +67 -33
- package/types/util.d.ts +2 -2
package/types/types.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { GuidesOptions } from '@scena/guides';
|
|
3
|
-
import type { MoveableOptions } from 'moveable';
|
|
3
|
+
import type { MoveableOptions, OnDragStart } from 'moveable';
|
|
4
4
|
import Core from '@tmagic/core';
|
|
5
5
|
import type { Id, MApp, MContainer, MNode } from '@tmagic/schema';
|
|
6
|
-
import { GuidesType, ZIndex } from './const';
|
|
6
|
+
import { AbleActionEventType, ContainerHighlightType, GuidesType, RenderType, ZIndex } from './const';
|
|
7
7
|
import DragResizeHelper from './DragResizeHelper';
|
|
8
8
|
import StageCore from './StageCore';
|
|
9
9
|
export type TargetElement = HTMLElement | SVGElement;
|
|
@@ -12,25 +12,14 @@ export type IsContainer = (el: HTMLElement) => boolean | Promise<boolean>;
|
|
|
12
12
|
export type CustomizeRender = (renderer: StageCore) => Promise<HTMLElement> | HTMLElement;
|
|
13
13
|
/** 业务方自定义的moveableOptions,可以是配置,也可以是回调函数 */
|
|
14
14
|
export type CustomizeMoveableOptions = ((config?: CustomizeMoveableOptionsCallbackConfig) => MoveableOptions) | MoveableOptions | undefined;
|
|
15
|
-
/** render
|
|
16
|
-
export type GetTargetElement = (
|
|
15
|
+
/** render提供给的接口,id转成el */
|
|
16
|
+
export type GetTargetElement = (id: Id) => HTMLElement | null;
|
|
17
17
|
/** render提供的接口,通过坐标获得坐标下所有HTML元素数组 */
|
|
18
18
|
export type GetElementsFromPoint = (point: Point) => HTMLElement[];
|
|
19
19
|
export type GetRenderDocument = () => Document | undefined;
|
|
20
20
|
export type DelayedMarkContainer = (event: MouseEvent, exclude: Element[]) => NodeJS.Timeout | undefined;
|
|
21
21
|
export type MarkContainerEnd = () => HTMLElement | null;
|
|
22
22
|
export type GetRootContainer = () => HTMLDivElement | undefined;
|
|
23
|
-
/** 将组件添加到容器的方式 */
|
|
24
|
-
export declare enum ContainerHighlightType {
|
|
25
|
-
/** 默认方式:组件在容器上方悬停一段时间后加入 */
|
|
26
|
-
DEFAULT = "default",
|
|
27
|
-
/** 按住alt键,并在容器上方悬停一段时间后加入 */
|
|
28
|
-
ALT = "alt"
|
|
29
|
-
}
|
|
30
|
-
export declare enum RenderType {
|
|
31
|
-
IFRAME = "iframe",
|
|
32
|
-
NATIVE = "native"
|
|
33
|
-
}
|
|
34
23
|
export type UpdateDragEl = (el: TargetElement, target: TargetElement, container: HTMLElement) => void;
|
|
35
24
|
export interface StageCoreConfig {
|
|
36
25
|
/** 需要对齐的dom节点的CSS选择器字符串 */
|
|
@@ -75,7 +64,7 @@ export interface MoveableOptionsManagerConfig {
|
|
|
75
64
|
getRootContainer: GetRootContainer;
|
|
76
65
|
}
|
|
77
66
|
export interface CustomizeMoveableOptionsCallbackConfig {
|
|
78
|
-
targetEl
|
|
67
|
+
targetEl: HTMLElement | null;
|
|
79
68
|
targetElId?: string;
|
|
80
69
|
targetEls?: HTMLElement[];
|
|
81
70
|
targetElIds?: string[];
|
|
@@ -114,22 +103,6 @@ export interface DragResizeHelperConfig {
|
|
|
114
103
|
container: HTMLElement;
|
|
115
104
|
updateDragEl?: UpdateDragEl;
|
|
116
105
|
}
|
|
117
|
-
/** 选择状态 */
|
|
118
|
-
export declare enum SelectStatus {
|
|
119
|
-
/** 单选 */
|
|
120
|
-
SELECT = "select",
|
|
121
|
-
/** 多选 */
|
|
122
|
-
MULTI_SELECT = "multiSelect"
|
|
123
|
-
}
|
|
124
|
-
/** 拖动状态 */
|
|
125
|
-
export declare enum StageDragStatus {
|
|
126
|
-
/** 开始拖动 */
|
|
127
|
-
START = "start",
|
|
128
|
-
/** 拖动中 */
|
|
129
|
-
ING = "ing",
|
|
130
|
-
/** 拖动结束 */
|
|
131
|
-
END = "end"
|
|
132
|
-
}
|
|
133
106
|
export type Rect = {
|
|
134
107
|
width: number;
|
|
135
108
|
height: number;
|
|
@@ -186,7 +159,6 @@ export interface RemoveData {
|
|
|
186
159
|
}
|
|
187
160
|
export interface Runtime {
|
|
188
161
|
getApp?: () => Core | undefined;
|
|
189
|
-
beforeSelect?: (el: HTMLElement) => Promise<boolean> | boolean;
|
|
190
162
|
updateRootConfig?: (config: MApp) => void;
|
|
191
163
|
updatePageId?: (id: Id) => void;
|
|
192
164
|
select?: (id: Id) => Promise<HTMLElement> | HTMLElement;
|
|
@@ -217,3 +189,65 @@ export interface TargetShadowConfig {
|
|
|
217
189
|
export interface RuleOptions {
|
|
218
190
|
guidesOptions?: Partial<GuidesOptions>;
|
|
219
191
|
}
|
|
192
|
+
export interface CoreEvents {
|
|
193
|
+
mounted: [];
|
|
194
|
+
'runtime-ready': [runtime: Runtime];
|
|
195
|
+
'page-el-update': [el: HTMLElement];
|
|
196
|
+
'change-guides': [data: GuidesEventData];
|
|
197
|
+
select: [selectedEl: HTMLElement, event: MouseEvent];
|
|
198
|
+
'multi-select': [selectedElList: HTMLElement[], event: MouseEvent];
|
|
199
|
+
dblclick: [event: MouseEvent];
|
|
200
|
+
update: [data: UpdateEventData];
|
|
201
|
+
sort: [data: SortEventData];
|
|
202
|
+
'select-parent': [];
|
|
203
|
+
remove: [data: RemoveEventData];
|
|
204
|
+
highlight: [highlightEl: HTMLElement];
|
|
205
|
+
mousemove: [event: MouseEvent];
|
|
206
|
+
mouseleave: [event: MouseEvent];
|
|
207
|
+
'drag-start': [event: OnDragStart];
|
|
208
|
+
}
|
|
209
|
+
export interface RenderEvents {
|
|
210
|
+
onload: [];
|
|
211
|
+
'page-el-update': [el: HTMLElement];
|
|
212
|
+
'runtime-ready': [runtime: Runtime];
|
|
213
|
+
}
|
|
214
|
+
export interface MaskEvents {
|
|
215
|
+
scroll: [event: WheelEvent];
|
|
216
|
+
'change-guides': [
|
|
217
|
+
data: {
|
|
218
|
+
type: GuidesType.HORIZONTAL;
|
|
219
|
+
guides: number[];
|
|
220
|
+
}
|
|
221
|
+
];
|
|
222
|
+
}
|
|
223
|
+
export interface ActionManagerEvents {
|
|
224
|
+
dblclick: [event: MouseEvent];
|
|
225
|
+
mousemove: [event: MouseEvent];
|
|
226
|
+
mouseleave: [event: MouseEvent];
|
|
227
|
+
highlight: [el: HTMLElement];
|
|
228
|
+
update: [data: UpdateEventData];
|
|
229
|
+
sort: [data: SortEventData];
|
|
230
|
+
remove: [data: RemoveEventData];
|
|
231
|
+
select: [selectedEl: HTMLElement | null, event: MouseEvent];
|
|
232
|
+
'select-parent': [];
|
|
233
|
+
'drag-start': [event: OnDragStart];
|
|
234
|
+
'multi-update': [data: UpdateEventData];
|
|
235
|
+
'change-to-select': [id: Id, event: MouseEvent];
|
|
236
|
+
'before-multi-select': [selectedElList: HTMLElement[]];
|
|
237
|
+
'before-select': [el: HTMLElement, event: MouseEvent];
|
|
238
|
+
'multi-select': [selectedElList: HTMLElement[], event: MouseEvent];
|
|
239
|
+
'get-elements-from-point': [els: HTMLElement[]];
|
|
240
|
+
}
|
|
241
|
+
export interface DrEvents {
|
|
242
|
+
'update-moveable': [];
|
|
243
|
+
[AbleActionEventType.REMOVE]: [];
|
|
244
|
+
[AbleActionEventType.SELECT_PARENT]: [];
|
|
245
|
+
'drag-start': [event: OnDragStart];
|
|
246
|
+
update: [data: UpdateEventData];
|
|
247
|
+
sort: [data: SortEventData];
|
|
248
|
+
}
|
|
249
|
+
export interface MultiDrEvents {
|
|
250
|
+
'update-moveable': [];
|
|
251
|
+
'change-to-select': [id: Id, event: MouseEvent];
|
|
252
|
+
update: [data: UpdateEventData];
|
|
253
|
+
}
|
package/types/util.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare const calcValueByFontsize: (doc: Document, value: number) => numb
|
|
|
21
21
|
* @param {number} deltaTop 偏移量
|
|
22
22
|
* @param {Object} detail 当前选中的组件配置
|
|
23
23
|
*/
|
|
24
|
-
export declare const down: (deltaTop: number, target: TargetElement) => SortEventData
|
|
24
|
+
export declare const down: (deltaTop: number, target: TargetElement) => SortEventData;
|
|
25
25
|
/**
|
|
26
26
|
* 上移组件位置
|
|
27
27
|
* @param {Array} brothers 处于同一容器下的所有子组件配置
|
|
@@ -29,7 +29,7 @@ export declare const down: (deltaTop: number, target: TargetElement) => SortEven
|
|
|
29
29
|
* @param {number} deltaTop 偏移量
|
|
30
30
|
* @param {Object} detail 当前选中的组件配置
|
|
31
31
|
*/
|
|
32
|
-
export declare const up: (deltaTop: number, target: TargetElement) => SortEventData
|
|
32
|
+
export declare const up: (deltaTop: number, target: TargetElement) => SortEventData;
|
|
33
33
|
export declare const isMoveableButton: (target: Element) => boolean | undefined;
|
|
34
34
|
export declare const getMarginValue: (el: Element) => {
|
|
35
35
|
marginLeft: number;
|