@tmagic/editor 1.1.0-beta.9 → 1.1.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/dist/style.css +53 -4
- package/dist/tmagic-editor.mjs +1134 -928
- package/dist/tmagic-editor.mjs.map +1 -1
- package/dist/tmagic-editor.umd.js +1138 -929
- package/dist/tmagic-editor.umd.js.map +1 -1
- package/package.json +10 -10
- package/src/Editor.vue +28 -8
- package/src/components/ContentMenu.vue +4 -4
- package/src/components/Icon.vue +11 -23
- package/src/components/ScrollBar.vue +147 -0
- package/src/components/ScrollViewer.vue +89 -44
- package/src/components/ToolButton.vue +40 -138
- package/src/fields/UISelect.vue +2 -2
- package/src/index.ts +2 -2
- package/src/layouts/NavMenu.vue +156 -23
- package/src/layouts/PropsPanel.vue +49 -51
- package/src/layouts/sidebar/ComponentListPanel.vue +78 -90
- package/src/layouts/sidebar/LayerMenu.vue +3 -3
- package/src/layouts/sidebar/LayerPanel.vue +39 -8
- package/src/layouts/sidebar/Sidebar.vue +4 -0
- package/src/layouts/sidebar/TabPane.vue +12 -0
- package/src/layouts/workspace/PageBar.vue +2 -2
- package/src/layouts/workspace/PageBarScrollContainer.vue +13 -3
- package/src/layouts/workspace/Stage.vue +10 -92
- package/src/layouts/workspace/ViewerMenu.vue +3 -3
- package/src/layouts/workspace/Workspace.vue +133 -138
- package/src/services/componentList.ts +5 -0
- package/src/services/editor.ts +57 -20
- package/src/services/events.ts +8 -2
- package/src/services/props.ts +31 -52
- package/src/services/storage.ts +4 -0
- package/src/services/ui.ts +33 -30
- package/src/theme/component-list-panel.scss +0 -5
- package/src/theme/content-menu.scss +4 -0
- package/src/theme/icon.scss +6 -0
- package/src/theme/index.scss +1 -0
- package/src/theme/nav-menu.scss +6 -0
- package/src/type.ts +28 -10
- package/src/utils/index.ts +1 -0
- package/src/utils/operator.ts +3 -3
- package/src/utils/props.ts +0 -3
- package/src/utils/scroll-viewer.ts +90 -158
- package/src/utils/stage.ts +91 -0
- package/types/Editor.vue.d.ts +7 -7
- package/types/components/ContentMenu.vue.d.ts +8 -8
- package/types/components/Icon.vue.d.ts +62 -12
- package/types/components/ScrollBar.vue.d.ts +83 -0
- package/types/components/ScrollViewer.vue.d.ts +131 -19
- package/types/components/ToolButton.vue.d.ts +56 -59
- package/types/index.d.ts +2 -1
- package/types/layouts/NavMenu.vue.d.ts +92 -23
- package/types/layouts/PropsPanel.vue.d.ts +25 -208
- package/types/layouts/sidebar/ComponentListPanel.vue.d.ts +50 -12
- package/types/layouts/sidebar/LayerMenu.vue.d.ts +7 -7
- package/types/layouts/sidebar/LayerPanel.vue.d.ts +17 -15
- package/types/layouts/workspace/Workspace.vue.d.ts +54 -4
- package/types/services/componentList.d.ts +1 -0
- package/types/services/editor.d.ts +1 -0
- package/types/services/events.d.ts +1 -0
- package/types/services/props.d.ts +41 -9
- package/types/services/storage.d.ts +1 -0
- package/types/services/ui.d.ts +4 -1
- package/types/type.d.ts +25 -10
- package/types/utils/index.d.ts +1 -0
- package/types/utils/operator.d.ts +1 -1
- package/types/utils/props.d.ts +0 -1
- package/types/utils/scroll-viewer.d.ts +16 -18
- package/types/utils/stage.d.ts +3 -0
- package/src/utils/polyfills.ts +0 -8
- package/types/utils/polyfills.d.ts +0 -0
|
@@ -1,16 +1,47 @@
|
|
|
1
1
|
import type { FormConfig } from '@tmagic/form';
|
|
2
|
-
import type { MNode
|
|
2
|
+
import type { MNode } from '@tmagic/schema';
|
|
3
3
|
import BaseService from './BaseService';
|
|
4
4
|
declare class Props extends BaseService {
|
|
5
5
|
private state;
|
|
6
6
|
constructor();
|
|
7
7
|
setPropsConfigs(configs: Record<string, FormConfig>): void;
|
|
8
|
+
fillConfig(config: FormConfig): Promise<{
|
|
9
|
+
type: string;
|
|
10
|
+
items: ({
|
|
11
|
+
title: string;
|
|
12
|
+
labelWidth: string;
|
|
13
|
+
items: (import("@tmagic/form").ChildConfig & {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
})[];
|
|
16
|
+
} | {
|
|
17
|
+
title: string;
|
|
18
|
+
items: {
|
|
19
|
+
type: string;
|
|
20
|
+
name: string;
|
|
21
|
+
items: ({
|
|
22
|
+
name: string;
|
|
23
|
+
label: string;
|
|
24
|
+
type: string;
|
|
25
|
+
options: (mForm: import("@tmagic/form").FormState, { formValue }: any) => {
|
|
26
|
+
text: string;
|
|
27
|
+
value: string;
|
|
28
|
+
}[];
|
|
29
|
+
} | {
|
|
30
|
+
name: string;
|
|
31
|
+
label: string;
|
|
32
|
+
type: string;
|
|
33
|
+
options?: undefined;
|
|
34
|
+
})[];
|
|
35
|
+
}[];
|
|
36
|
+
labelWidth?: undefined;
|
|
37
|
+
})[];
|
|
38
|
+
}[]>;
|
|
8
39
|
/**
|
|
9
40
|
* 为指定类型组件设置组件属性表单配置
|
|
10
41
|
* @param type 组件类型
|
|
11
42
|
* @param config 组件属性表单配置
|
|
12
43
|
*/
|
|
13
|
-
setPropsConfig(type: string, config: FormConfig): void
|
|
44
|
+
setPropsConfig(type: string, config: FormConfig): Promise<void>;
|
|
14
45
|
/**
|
|
15
46
|
* 获取指点类型的组件属性表单配置
|
|
16
47
|
* @param type 组件类型
|
|
@@ -30,18 +61,12 @@ declare class Props extends BaseService {
|
|
|
30
61
|
* @returns 组件初始值
|
|
31
62
|
*/
|
|
32
63
|
getPropsValue(type: string, { inputEvent, ...defaultValue }?: Record<string, any>): Promise<any>;
|
|
33
|
-
/**
|
|
34
|
-
* 生成指定位数的GUID,无【-】格式
|
|
35
|
-
* @param digit 位数,默认值8
|
|
36
|
-
* @returns
|
|
37
|
-
*/
|
|
38
|
-
guid(digit?: number): string;
|
|
39
64
|
createId(type: string | number): Promise<string>;
|
|
40
65
|
/**
|
|
41
66
|
* 将组件与组件的子元素配置中的id都设置成一个新的ID
|
|
42
67
|
* @param {Object} config 组件配置
|
|
43
68
|
*/
|
|
44
|
-
setNewItemId(config: MNode
|
|
69
|
+
setNewItemId(config: MNode): Promise<MNode>;
|
|
45
70
|
/**
|
|
46
71
|
* 获取默认属性配置
|
|
47
72
|
* @param type 组件类型
|
|
@@ -60,6 +85,13 @@ declare class Props extends BaseService {
|
|
|
60
85
|
layout?: undefined;
|
|
61
86
|
items?: undefined;
|
|
62
87
|
}>;
|
|
88
|
+
destroy(): void;
|
|
89
|
+
/**
|
|
90
|
+
* 生成指定位数的GUID,无【-】格式
|
|
91
|
+
* @param digit 位数,默认值8
|
|
92
|
+
* @returns
|
|
93
|
+
*/
|
|
94
|
+
private guid;
|
|
63
95
|
}
|
|
64
96
|
export declare type PropsService = Props;
|
|
65
97
|
declare const _default: Props;
|
|
@@ -49,6 +49,7 @@ export declare class WebStorage extends BaseService {
|
|
|
49
49
|
* 设置存储项,支持storageService.usePlugin
|
|
50
50
|
*/
|
|
51
51
|
setItem(key: string, value: any, options?: Options): Promise<void>;
|
|
52
|
+
destroy(): void;
|
|
52
53
|
private getValueAndProtocol;
|
|
53
54
|
}
|
|
54
55
|
export declare type StorageService = WebStorage;
|
package/types/services/ui.d.ts
CHANGED
|
@@ -20,15 +20,18 @@ declare const state: {
|
|
|
20
20
|
showGuides: boolean;
|
|
21
21
|
showRule: boolean;
|
|
22
22
|
propsPanelSize: "small" | "large" | "default";
|
|
23
|
+
showAddPageButton: boolean;
|
|
23
24
|
};
|
|
24
25
|
declare class Ui extends BaseService {
|
|
25
26
|
constructor();
|
|
26
27
|
set<T = any>(name: keyof UiState, value: T): void;
|
|
27
28
|
get<T>(name: keyof typeof state): T;
|
|
29
|
+
initColumnWidth(): void;
|
|
28
30
|
zoom(zoom: number): void;
|
|
31
|
+
calcZoom(): number;
|
|
32
|
+
destroy(): void;
|
|
29
33
|
private setColumnWidth;
|
|
30
34
|
private setStageRect;
|
|
31
|
-
private calcZoom;
|
|
32
35
|
}
|
|
33
36
|
export declare type UiService = Ui;
|
|
34
37
|
declare const _default: Ui;
|
package/types/type.d.ts
CHANGED
|
@@ -54,15 +54,20 @@ export interface PropsState {
|
|
|
54
54
|
export interface ComponentGroupState {
|
|
55
55
|
list: ComponentGroup[];
|
|
56
56
|
}
|
|
57
|
+
export declare enum ColumnLayout {
|
|
58
|
+
LEFT = "left",
|
|
59
|
+
CENTER = "center",
|
|
60
|
+
RIGHT = "right"
|
|
61
|
+
}
|
|
57
62
|
export interface SetColumnWidth {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
[ColumnLayout.LEFT]?: number;
|
|
64
|
+
[ColumnLayout.CENTER]?: number | 'auto';
|
|
65
|
+
[ColumnLayout.RIGHT]?: number;
|
|
61
66
|
}
|
|
62
67
|
export interface GetColumnWidth {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
[ColumnLayout.LEFT]: number;
|
|
69
|
+
[ColumnLayout.CENTER]: number;
|
|
70
|
+
[ColumnLayout.RIGHT]: number;
|
|
66
71
|
}
|
|
67
72
|
export interface StageRect {
|
|
68
73
|
width: number;
|
|
@@ -87,6 +92,8 @@ export interface UiState {
|
|
|
87
92
|
showRule: boolean;
|
|
88
93
|
/** 用于控制该属性配置表单内组件的尺寸 */
|
|
89
94
|
propsPanelSize: 'large' | 'default' | 'small';
|
|
95
|
+
/** 是否显示新增页面按钮 */
|
|
96
|
+
showAddPageButton: boolean;
|
|
90
97
|
}
|
|
91
98
|
export interface EditorNodeInfo {
|
|
92
99
|
node?: MNode;
|
|
@@ -139,6 +146,7 @@ export interface MenuButton {
|
|
|
139
146
|
/** type为button/dropdown时点击运行的方法 */
|
|
140
147
|
handler?: (data: Services, event: MouseEvent) => Promise<any> | any;
|
|
141
148
|
/** type为dropdown时,下拉的菜单列表, 或者有子菜单时 */
|
|
149
|
+
className?: string;
|
|
142
150
|
items?: MenuButton[];
|
|
143
151
|
}
|
|
144
152
|
export interface MenuComponent {
|
|
@@ -151,6 +159,7 @@ export interface MenuComponent {
|
|
|
151
159
|
listeners?: Record<string, Function>;
|
|
152
160
|
slots?: Record<string, any>;
|
|
153
161
|
/** 是否显示,默认为true */
|
|
162
|
+
className?: string;
|
|
154
163
|
display?: boolean | ((data?: Services) => Promise<boolean> | boolean);
|
|
155
164
|
}
|
|
156
165
|
/**
|
|
@@ -161,15 +170,15 @@ export interface MenuComponent {
|
|
|
161
170
|
* 'zoom-in': 放大按钮
|
|
162
171
|
* 'zoom-out': 缩小按钮
|
|
163
172
|
*/
|
|
164
|
-
export declare type MenuItem = '/' | 'delete' | 'undo' | 'redo' | 'zoom' | 'zoom-in' | 'zoom-out' | 'guides' | 'rule' | MenuButton | MenuComponent;
|
|
173
|
+
export declare type MenuItem = '/' | 'delete' | 'undo' | 'redo' | 'zoom' | 'zoom-in' | 'zoom-out' | 'guides' | 'rule' | MenuButton | MenuComponent | string;
|
|
165
174
|
/** 工具栏 */
|
|
166
175
|
export interface MenuBarData {
|
|
167
176
|
/** 顶部工具栏左边项 */
|
|
168
|
-
|
|
177
|
+
[ColumnLayout.LEFT]?: MenuItem[];
|
|
169
178
|
/** 顶部工具栏中间项 */
|
|
170
|
-
|
|
179
|
+
[ColumnLayout.CENTER]?: MenuItem[];
|
|
171
180
|
/** 顶部工具栏右边项 */
|
|
172
|
-
|
|
181
|
+
[ColumnLayout.RIGHT]?: MenuItem[];
|
|
173
182
|
}
|
|
174
183
|
export interface SideComponent extends MenuComponent {
|
|
175
184
|
/** 显示文案 */
|
|
@@ -228,3 +237,9 @@ export declare enum Keys {
|
|
|
228
237
|
}
|
|
229
238
|
export declare const H_GUIDE_LINE_STORAGE_KEY = "$MagicStageHorizontalGuidelinesData";
|
|
230
239
|
export declare const V_GUIDE_LINE_STORAGE_KEY = "$MagicStageVerticalGuidelinesData";
|
|
240
|
+
export interface ScrollViewerEvent {
|
|
241
|
+
scrollLeft: number;
|
|
242
|
+
scrollTop: number;
|
|
243
|
+
scrollHeight: number;
|
|
244
|
+
scrollWidth: number;
|
|
245
|
+
}
|
package/types/utils/index.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export declare const getPositionInContainer: (position: PastePosition | undefine
|
|
|
17
17
|
left: number;
|
|
18
18
|
top: number;
|
|
19
19
|
};
|
|
20
|
-
export declare const getAddParent: (
|
|
20
|
+
export declare const getAddParent: (node: MNode) => MContainer | undefined;
|
|
21
21
|
export declare const getDefaultConfig: (addNode: AddMNode, parentNode: MContainer) => Promise<any>;
|
package/types/utils/props.d.ts
CHANGED
|
@@ -1,35 +1,33 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
1
3
|
interface ScrollViewerOptions {
|
|
2
4
|
container: HTMLDivElement;
|
|
3
5
|
target: HTMLDivElement;
|
|
4
6
|
zoom: number;
|
|
5
7
|
}
|
|
6
|
-
export declare class ScrollViewer {
|
|
7
|
-
private enter;
|
|
8
|
-
private targetEnter;
|
|
9
|
-
private keydown;
|
|
8
|
+
export declare class ScrollViewer extends EventEmitter {
|
|
10
9
|
private container;
|
|
11
10
|
private target;
|
|
12
11
|
private zoom;
|
|
13
12
|
private scrollLeft;
|
|
14
13
|
private scrollTop;
|
|
15
|
-
private
|
|
16
|
-
private
|
|
14
|
+
private scrollHeight;
|
|
15
|
+
private scrollWidth;
|
|
16
|
+
private width;
|
|
17
|
+
private height;
|
|
18
|
+
private translateXCorrectionValue;
|
|
19
|
+
private translateYCorrectionValue;
|
|
17
20
|
private resizeObserver;
|
|
18
21
|
constructor(options: ScrollViewerOptions);
|
|
19
22
|
destroy(): void;
|
|
20
23
|
setZoom(zoom: number): void;
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
scrollTo({ left, top }: {
|
|
25
|
+
left?: number;
|
|
26
|
+
top?: number;
|
|
27
|
+
}): void;
|
|
23
28
|
private wheelHandler;
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
private
|
|
27
|
-
private targetMouseLeaveHandler;
|
|
28
|
-
private mousedownHandler;
|
|
29
|
-
private mouseupHandler;
|
|
30
|
-
private mousemoveHandler;
|
|
31
|
-
private keydownHandler;
|
|
32
|
-
private keyupHandler;
|
|
33
|
-
private setScrollOffset;
|
|
29
|
+
private getPos;
|
|
30
|
+
private setScrollSize;
|
|
31
|
+
private setSize;
|
|
34
32
|
}
|
|
35
33
|
export {};
|
package/src/utils/polyfills.ts
DELETED
|
File without changes
|