@tmagic/editor 1.1.0-beta.5 → 1.1.0-beta.6
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/{tmagic-editor.es.js → tmagic-editor.mjs} +1383 -1199
- package/dist/tmagic-editor.mjs.map +1 -0
- package/dist/tmagic-editor.umd.js +1396 -1211
- package/dist/tmagic-editor.umd.js.map +1 -1
- package/package.json +21 -19
- package/src/Editor.vue +14 -12
- package/src/components/ContentMenu.vue +87 -99
- package/src/components/ScrollViewer.vue +1 -1
- package/src/components/ToolButton.vue +150 -167
- package/src/fields/UISelect.vue +50 -70
- package/src/index.ts +1 -0
- package/src/layouts/AddPageBox.vue +2 -2
- package/src/layouts/Framework.vue +1 -1
- package/src/layouts/NavMenu.vue +2 -2
- package/src/layouts/PropsPanel.vue +1 -1
- package/src/layouts/Resizer.vue +1 -1
- package/src/layouts/sidebar/ComponentListPanel.vue +2 -2
- package/src/layouts/sidebar/LayerMenu.vue +2 -2
- package/src/layouts/sidebar/LayerPanel.vue +3 -3
- package/src/layouts/sidebar/Sidebar.vue +1 -1
- package/src/layouts/sidebar/TabPane.vue +2 -2
- package/src/layouts/workspace/PageBar.vue +53 -64
- package/src/layouts/workspace/Stage.vue +195 -222
- package/src/layouts/workspace/ViewerMenu.vue +142 -146
- package/src/layouts/workspace/Workspace.vue +11 -11
- package/src/services/BaseService.ts +1 -1
- package/src/services/componentList.ts +3 -3
- package/src/services/editor.ts +114 -133
- package/src/services/events.ts +1 -1
- package/src/services/history.ts +1 -1
- package/src/services/props.ts +18 -5
- package/src/services/storage.ts +133 -0
- package/src/services/ui.ts +2 -2
- package/src/type.ts +22 -6
- package/src/utils/config.ts +1 -1
- package/src/utils/editor.ts +1 -1
- package/src/utils/operator.ts +210 -0
- package/src/utils/props.ts +2 -2
- package/src/utils/scroll-viewer.ts +1 -1
- package/tsconfig.build.json +13 -0
- package/{dist/types/src → types}/Editor.vue.d.ts +7 -8
- package/types/components/ContentMenu.vue.d.ts +116 -0
- package/types/components/Icon.vue.d.ts +13 -0
- package/types/components/ScrollViewer.vue.d.ts +22 -0
- package/types/components/ToolButton.vue.d.ts +109 -0
- package/types/fields/Code.vue.d.ts +23 -0
- package/{dist/types/src → types}/fields/CodeLink.vue.d.ts +4 -6
- package/types/fields/UISelect.vue.d.ts +87 -0
- package/{dist/types/src → types}/index.d.ts +4 -1
- package/types/layouts/AddPageBox.vue.d.ts +4 -0
- package/{dist/types/src → types}/layouts/CodeEditor.vue.d.ts +11 -13
- package/types/layouts/Framework.vue.d.ts +22 -0
- package/types/layouts/NavMenu.vue.d.ts +25 -0
- package/types/layouts/PropsPanel.vue.d.ts +245 -0
- package/types/layouts/Resizer.vue.d.ts +12 -0
- package/types/layouts/sidebar/ComponentListPanel.vue.d.ts +14 -0
- package/types/layouts/sidebar/LayerMenu.vue.d.ts +100 -0
- package/types/layouts/sidebar/LayerPanel.vue.d.ts +1099 -0
- package/{dist/types/src → types}/layouts/sidebar/Sidebar.vue.d.ts +3 -5
- package/types/layouts/sidebar/TabPane.vue.d.ts +14 -0
- package/types/layouts/workspace/PageBar.vue.d.ts +54 -0
- package/types/layouts/workspace/Stage.vue.d.ts +46 -0
- package/types/layouts/workspace/ViewerMenu.vue.d.ts +88 -0
- package/types/layouts/workspace/Workspace.vue.d.ts +6 -0
- package/{dist/types/src → types}/services/BaseService.d.ts +0 -0
- package/types/services/componentList.d.ts +14 -0
- package/{dist/types/src → types}/services/editor.d.ts +26 -11
- package/{dist/types/src → types}/services/events.d.ts +0 -0
- package/{dist/types/src → types}/services/history.d.ts +0 -0
- package/{dist/types/src → types}/services/props.d.ts +6 -0
- package/types/services/storage.d.ts +56 -0
- package/{dist/types/src → types}/services/ui.d.ts +1 -1
- package/{dist/types/src → types}/type.d.ts +15 -0
- package/{dist/types/src → types}/utils/compose.d.ts +1 -1
- package/{dist/types/src → types}/utils/config.d.ts +0 -0
- package/{dist/types/src → types}/utils/editor.d.ts +2 -2
- package/{dist/types/src → types}/utils/index.d.ts +0 -0
- package/{dist/types/src → types}/utils/logger.d.ts +0 -0
- package/types/utils/operator.d.ts +44 -0
- package/{dist/types/src → types}/utils/polyfills.d.ts +0 -0
- package/{dist/types/src → types}/utils/props.d.ts +2 -2
- package/{dist/types/src → types}/utils/scroll-viewer.d.ts +0 -0
- package/{dist/types/src → types}/utils/undo-redo.d.ts +0 -0
- package/dist/tmagic-editor.es.js.map +0 -1
- package/dist/types/src/components/Icon.vue.d.ts +0 -14
- package/dist/types/src/components/ScrollViewer.vue.d.ts +0 -24
- package/dist/types/src/fields/Code.vue.d.ts +0 -25
- package/dist/types/src/layouts/AddPageBox.vue.d.ts +0 -5
- package/dist/types/src/layouts/Framework.vue.d.ts +0 -24
- package/dist/types/src/layouts/NavMenu.vue.d.ts +0 -27
- package/dist/types/src/layouts/PropsPanel.vue.d.ts +0 -13
- package/dist/types/src/layouts/Resizer.vue.d.ts +0 -14
- package/dist/types/src/layouts/sidebar/ComponentListPanel.vue.d.ts +0 -16
- package/dist/types/src/layouts/sidebar/TabPane.vue.d.ts +0 -16
- package/dist/types/src/layouts/workspace/Workspace.vue.d.ts +0 -8
- package/dist/types/src/shims-vue.d.ts +0 -6
- package/dist/types/src/vite-env.d.ts +0 -1
- package/src/vite-env.d.ts +0 -1
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { toRaw } from 'vue';
|
|
2
|
+
import { cloneDeep, isEmpty } from 'lodash-es';
|
|
3
|
+
|
|
4
|
+
import { Id, MApp, MContainer, MNode, NodeType } from '@tmagic/schema';
|
|
5
|
+
import StageCore from '@tmagic/stage';
|
|
6
|
+
import { isPage } from '@tmagic/utils';
|
|
7
|
+
|
|
8
|
+
import editorService from '../services/editor';
|
|
9
|
+
import historyService from '../services/history';
|
|
10
|
+
import propsService from '../services/props';
|
|
11
|
+
import { AddMNode, Layout, PastePosition } from '../type';
|
|
12
|
+
import { fixNodeLeft, generatePageNameByApp, getInitPositionStyle, getNodeIndex } from '../utils/editor';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 粘贴前置操作:返回分配了新id以及校准了坐标的配置
|
|
16
|
+
* @param position 粘贴的坐标
|
|
17
|
+
* @param config 待粘贴的元素配置(复制时保存的那份配置)
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
export const beforePaste = async (position: PastePosition, config: MNode[]) => {
|
|
21
|
+
if (!config[0]?.style) return config;
|
|
22
|
+
const curNode = editorService.get<MContainer>('node');
|
|
23
|
+
// 将数组中第一个元素的坐标作为参照点
|
|
24
|
+
const { left: referenceLeft, top: referenceTop } = config[0].style;
|
|
25
|
+
// 坐标校准后的粘贴数据
|
|
26
|
+
const pasteConfigs: MNode[] = await Promise.all(
|
|
27
|
+
config.map(async (configItem: MNode): Promise<MNode> => {
|
|
28
|
+
// 解构 position 对象,从 position 删除 offsetX、offsetY字段
|
|
29
|
+
const { offsetX = 0, offsetY = 0, ...positionClone } = position;
|
|
30
|
+
let pastePosition = positionClone;
|
|
31
|
+
|
|
32
|
+
if (!isEmpty(pastePosition) && curNode.items) {
|
|
33
|
+
// 如果没有传入粘贴坐标则可能为键盘操作,不再转换
|
|
34
|
+
// 如果粘贴时选中了容器,则将元素粘贴到容器内,坐标需要转换为相对于容器的坐标
|
|
35
|
+
pastePosition = getPositionInContainer(pastePosition, curNode.id);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// 将所有待粘贴元素坐标相对于多选第一个元素坐标重新计算,以保证多选粘贴后元素间距不变
|
|
39
|
+
if (pastePosition.left && configItem.style?.left) {
|
|
40
|
+
pastePosition.left = configItem.style.left - referenceLeft + pastePosition.left;
|
|
41
|
+
}
|
|
42
|
+
if (pastePosition.top && configItem.style?.top) {
|
|
43
|
+
pastePosition.top = configItem.style?.top - referenceTop + pastePosition.top;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const pasteConfig = await propsService.setNewItemId(configItem, editorService.get('root'));
|
|
47
|
+
|
|
48
|
+
if (pasteConfig.style) {
|
|
49
|
+
const { left, top } = pasteConfig.style;
|
|
50
|
+
// 判断能转换为数字时,做粘贴偏移量计算
|
|
51
|
+
if (typeof left === 'number' || (!!left && !isNaN(Number(left)))) {
|
|
52
|
+
pasteConfig.style.left = Number(left) + offsetX;
|
|
53
|
+
}
|
|
54
|
+
if (typeof top === 'number' || (!!top && !isNaN(Number(top)))) {
|
|
55
|
+
pasteConfig.style.top = Number(top) + offsetY;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
pasteConfig.style = {
|
|
59
|
+
...pasteConfig.style,
|
|
60
|
+
...pastePosition,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (isPage(pasteConfig)) {
|
|
64
|
+
pasteConfig.name = generatePageNameByApp(editorService.get('root'));
|
|
65
|
+
}
|
|
66
|
+
return pasteConfig as MNode;
|
|
67
|
+
}),
|
|
68
|
+
);
|
|
69
|
+
return pasteConfigs;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 新增元素前置操作,实现了在编辑器中新增元素节点,并返回新增元素信息以供stage更新
|
|
74
|
+
* @param addNode 待添加元素的配置
|
|
75
|
+
* @param parent 父级容器(可选)
|
|
76
|
+
* @returns 新增的元素,父级元素,布局方式,是否为根页面
|
|
77
|
+
*/
|
|
78
|
+
export const beforeAdd = async (
|
|
79
|
+
addNode: AddMNode,
|
|
80
|
+
parent?: MContainer | null,
|
|
81
|
+
): Promise<{ parentNode: MContainer; newNode: MNode; layout: Layout; isPage: boolean }> => {
|
|
82
|
+
// 加入inputEvent是为给业务扩展时可以获取到更多的信息,只有在使用拖拽添加组件时才有改对象
|
|
83
|
+
const { type, inputEvent, ...config } = addNode;
|
|
84
|
+
const curNode = editorService.get<MContainer>('node');
|
|
85
|
+
|
|
86
|
+
let parentNode: MContainer | undefined;
|
|
87
|
+
const isPage = type === NodeType.PAGE;
|
|
88
|
+
|
|
89
|
+
if (isPage) {
|
|
90
|
+
parentNode = editorService.get<MApp>('root');
|
|
91
|
+
// 由于支持中间件扩展,在parent参数为undefined时,parent会变成next函数
|
|
92
|
+
} else if (parent && typeof parent !== 'function') {
|
|
93
|
+
parentNode = parent;
|
|
94
|
+
} else if (curNode.items) {
|
|
95
|
+
parentNode = curNode;
|
|
96
|
+
} else {
|
|
97
|
+
parentNode = editorService.getParentById(curNode.id, false);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (!parentNode) throw new Error('未找到父元素');
|
|
101
|
+
|
|
102
|
+
const layout = await editorService.getLayout(toRaw(parentNode), addNode as MNode);
|
|
103
|
+
const newNode = { ...toRaw(await propsService.getPropsValue(type, config)) };
|
|
104
|
+
newNode.style = getInitPositionStyle(newNode.style, layout, parentNode, editorService.get<StageCore>('stage'));
|
|
105
|
+
|
|
106
|
+
if ((parentNode?.type === NodeType.ROOT || curNode.type === NodeType.ROOT) && newNode.type !== NodeType.PAGE) {
|
|
107
|
+
throw new Error('app下不能添加组件');
|
|
108
|
+
}
|
|
109
|
+
// 新增节点添加到配置中
|
|
110
|
+
parentNode?.items?.push(newNode);
|
|
111
|
+
// 返回新增信息以供stage更新
|
|
112
|
+
return {
|
|
113
|
+
parentNode,
|
|
114
|
+
newNode,
|
|
115
|
+
layout,
|
|
116
|
+
isPage,
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* 将元素粘贴到容器内时,将相对于画布坐标转换为相对于容器的坐标
|
|
122
|
+
* @param position PastePosition 粘贴时相对于画布的坐标
|
|
123
|
+
* @param id 元素id
|
|
124
|
+
* @returns PastePosition 转换后的坐标
|
|
125
|
+
*/
|
|
126
|
+
export const getPositionInContainer = (position: PastePosition = {}, id: Id) => {
|
|
127
|
+
let { left = 0, top = 0 } = position;
|
|
128
|
+
const parentEl = editorService.get<StageCore>('stage')?.renderer?.contentWindow?.document.getElementById(`${id}`);
|
|
129
|
+
const parentElRect = parentEl?.getBoundingClientRect();
|
|
130
|
+
left = left - (parentElRect?.left || 0);
|
|
131
|
+
top = top - (parentElRect?.top || 0);
|
|
132
|
+
return {
|
|
133
|
+
left,
|
|
134
|
+
top,
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* 将新增元素事件通知到stage以更新渲染
|
|
140
|
+
* @param parentNode 父元素
|
|
141
|
+
* @param newNode 当前新增元素
|
|
142
|
+
* @param layout 布局方式
|
|
143
|
+
*/
|
|
144
|
+
export const notifyAddToStage = async (parentNode: MContainer, newNode: MNode, layout: Layout) => {
|
|
145
|
+
const stage = editorService.get<StageCore | null>('stage');
|
|
146
|
+
const root = editorService.get<MApp>('root');
|
|
147
|
+
|
|
148
|
+
await stage?.add({ config: cloneDeep(newNode), parent: cloneDeep(parentNode), root: cloneDeep(root) });
|
|
149
|
+
|
|
150
|
+
if (layout === Layout.ABSOLUTE) {
|
|
151
|
+
const fixedLeft = fixNodeLeft(newNode, parentNode, stage?.renderer.contentWindow?.document);
|
|
152
|
+
if (typeof fixedLeft !== 'undefined' && newNode.style) {
|
|
153
|
+
newNode.style.left = fixedLeft;
|
|
154
|
+
await stage?.update({ config: cloneDeep(newNode), root: cloneDeep(root) });
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* 删除前置操作:实现了在编辑器中删除元素节点,并返回父级元素信息以供stage更新
|
|
161
|
+
* @param node 待删除的节点
|
|
162
|
+
* @returns 父级元素,root根元素
|
|
163
|
+
*/
|
|
164
|
+
export const beforeRemove = async (node: MNode): Promise<MContainer | void> => {
|
|
165
|
+
if (!node?.id) return;
|
|
166
|
+
|
|
167
|
+
const stage = editorService.get<StageCore | null>('stage');
|
|
168
|
+
const root = editorService.get<MApp | null>('root');
|
|
169
|
+
|
|
170
|
+
if (!root) throw new Error('没有root');
|
|
171
|
+
|
|
172
|
+
const { parent, node: curNode } = editorService.getNodeInfo(node.id, false);
|
|
173
|
+
|
|
174
|
+
if (!parent || !curNode) throw new Error('找不要删除的节点');
|
|
175
|
+
|
|
176
|
+
const index = getNodeIndex(curNode, parent);
|
|
177
|
+
|
|
178
|
+
if (typeof index !== 'number' || index === -1) throw new Error('找不要删除的节点');
|
|
179
|
+
// 从配置中删除元素
|
|
180
|
+
parent.items?.splice(index, 1);
|
|
181
|
+
|
|
182
|
+
// 通知stage更新
|
|
183
|
+
stage?.remove({ id: node.id, root: cloneDeep(root) });
|
|
184
|
+
|
|
185
|
+
if (node.type === NodeType.PAGE) {
|
|
186
|
+
editorService.state.pageLength -= 1;
|
|
187
|
+
|
|
188
|
+
if (root.items[0]) {
|
|
189
|
+
await editorService.select(root.items[0]);
|
|
190
|
+
stage?.select(root.items[0].id);
|
|
191
|
+
} else {
|
|
192
|
+
editorService.set('node', null);
|
|
193
|
+
editorService.set('nodes', []);
|
|
194
|
+
editorService.set('parent', null);
|
|
195
|
+
editorService.set('page', null);
|
|
196
|
+
editorService.set('stage', null);
|
|
197
|
+
editorService.set('highlightNode', null);
|
|
198
|
+
editorService.resetModifiedNodeId();
|
|
199
|
+
historyService.reset();
|
|
200
|
+
|
|
201
|
+
editorService.emit('remove', node);
|
|
202
|
+
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
} else {
|
|
206
|
+
await editorService.select(parent);
|
|
207
|
+
stage?.select(parent.id);
|
|
208
|
+
}
|
|
209
|
+
return parent;
|
|
210
|
+
};
|
package/src/utils/props.ts
CHANGED
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
import { FormConfig, FormState } from '@tmagic/form';
|
|
20
20
|
|
|
21
|
-
import editorService from '
|
|
22
|
-
import eventsService from '
|
|
21
|
+
import editorService from '../services/editor';
|
|
22
|
+
import eventsService from '../services/events';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* 统一为组件属性表单加上事件、高级、样式配置
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { DefineComponent, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from '@vue/runtime-core';
|
|
2
1
|
import { PropType } from 'vue';
|
|
3
2
|
import type { FormConfig } from '@tmagic/form';
|
|
4
3
|
import type { MApp, MNode } from '@tmagic/schema';
|
|
5
4
|
import type StageCore from '@tmagic/stage';
|
|
6
5
|
import { MoveableOptions } from '@tmagic/stage';
|
|
7
6
|
import type { ComponentGroup, MenuBarData, MenuItem, Services, SideBarData, StageRect } from './type';
|
|
8
|
-
declare const _default: DefineComponent<{
|
|
7
|
+
declare const _default: import("vue").DefineComponent<{
|
|
9
8
|
/** 页面初始值 */
|
|
10
9
|
modelValue: {
|
|
11
10
|
type: PropType<MApp>;
|
|
@@ -62,11 +61,11 @@ declare const _default: DefineComponent<{
|
|
|
62
61
|
};
|
|
63
62
|
/** 画布中组件选中框的移动范围 */
|
|
64
63
|
moveableOptions: {
|
|
65
|
-
type: PropType<MoveableOptions | ((core?: StageCore
|
|
64
|
+
type: PropType<MoveableOptions | ((core?: StageCore) => MoveableOptions)>;
|
|
66
65
|
};
|
|
67
66
|
/** 编辑器初始化时默认选中的组件ID */
|
|
68
67
|
defaultSelected: {
|
|
69
|
-
type: (
|
|
68
|
+
type: (NumberConstructor | StringConstructor)[];
|
|
70
69
|
};
|
|
71
70
|
canSelect: {
|
|
72
71
|
type: PropType<(el: HTMLElement) => boolean | Promise<boolean>>;
|
|
@@ -94,7 +93,7 @@ declare const _default: DefineComponent<{
|
|
|
94
93
|
updateDragEl: {
|
|
95
94
|
type: PropType<(el: HTMLDivElement, target: HTMLElement) => void>;
|
|
96
95
|
};
|
|
97
|
-
}, Services, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("props-panel-mounted" | "update:modelValue")[], "props-panel-mounted" | "update:modelValue", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
96
|
+
}, Services, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("props-panel-mounted" | "update:modelValue")[], "props-panel-mounted" | "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
98
97
|
/** 页面初始值 */
|
|
99
98
|
modelValue: {
|
|
100
99
|
type: PropType<MApp>;
|
|
@@ -151,11 +150,11 @@ declare const _default: DefineComponent<{
|
|
|
151
150
|
};
|
|
152
151
|
/** 画布中组件选中框的移动范围 */
|
|
153
152
|
moveableOptions: {
|
|
154
|
-
type: PropType<MoveableOptions | ((core?: StageCore
|
|
153
|
+
type: PropType<MoveableOptions | ((core?: StageCore) => MoveableOptions)>;
|
|
155
154
|
};
|
|
156
155
|
/** 编辑器初始化时默认选中的组件ID */
|
|
157
156
|
defaultSelected: {
|
|
158
|
-
type: (
|
|
157
|
+
type: (NumberConstructor | StringConstructor)[];
|
|
159
158
|
};
|
|
160
159
|
canSelect: {
|
|
161
160
|
type: PropType<(el: HTMLElement) => boolean | Promise<boolean>>;
|
|
@@ -188,9 +187,9 @@ declare const _default: DefineComponent<{
|
|
|
188
187
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
189
188
|
}, {
|
|
190
189
|
menu: MenuBarData;
|
|
190
|
+
codeOptions: Record<string, any>;
|
|
191
191
|
layerContentMenu: MenuItem[];
|
|
192
192
|
stageContentMenu: MenuItem[];
|
|
193
|
-
codeOptions: Record<string, any>;
|
|
194
193
|
modelValue: MApp;
|
|
195
194
|
componentGroupList: ComponentGroup[];
|
|
196
195
|
autoScrollIntoView: boolean;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { nextTick } from 'vue';
|
|
2
|
+
import { MenuItem } from '../type';
|
|
3
|
+
declare const _default: {
|
|
4
|
+
new (...args: any[]): {
|
|
5
|
+
$: import("vue").ComponentInternalInstance;
|
|
6
|
+
$data: {};
|
|
7
|
+
$props: Partial<{
|
|
8
|
+
menuData: MenuItem[];
|
|
9
|
+
isSubMenu: boolean;
|
|
10
|
+
}> & Omit<Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
11
|
+
menuData?: MenuItem[] | undefined;
|
|
12
|
+
isSubMenu?: boolean | undefined;
|
|
13
|
+
}>, {
|
|
14
|
+
menuData: () => never[];
|
|
15
|
+
isSubMenu: boolean;
|
|
16
|
+
}>>> & {
|
|
17
|
+
onHide?: ((...args: any[]) => any) | undefined;
|
|
18
|
+
onShow?: ((...args: any[]) => any) | undefined;
|
|
19
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "menuData" | "isSubMenu">;
|
|
20
|
+
$attrs: {
|
|
21
|
+
[x: string]: unknown;
|
|
22
|
+
};
|
|
23
|
+
$refs: {
|
|
24
|
+
[x: string]: unknown;
|
|
25
|
+
};
|
|
26
|
+
$slots: Readonly<{
|
|
27
|
+
[name: string]: import("vue").Slot | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
$root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
|
|
30
|
+
$parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
|
|
31
|
+
$emit: (event: "hide" | "show", ...args: any[]) => void;
|
|
32
|
+
$el: any;
|
|
33
|
+
$options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
34
|
+
menuData?: MenuItem[] | undefined;
|
|
35
|
+
isSubMenu?: boolean | undefined;
|
|
36
|
+
}>, {
|
|
37
|
+
menuData: () => never[];
|
|
38
|
+
isSubMenu: boolean;
|
|
39
|
+
}>>> & {
|
|
40
|
+
onHide?: ((...args: any[]) => any) | undefined;
|
|
41
|
+
onShow?: ((...args: any[]) => any) | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
hide: () => void;
|
|
44
|
+
show: (e: MouseEvent) => void;
|
|
45
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("hide" | "show")[], string, {
|
|
46
|
+
menuData: MenuItem[];
|
|
47
|
+
isSubMenu: boolean;
|
|
48
|
+
}> & {
|
|
49
|
+
beforeCreate?: ((() => void) | (() => void)[]) | undefined;
|
|
50
|
+
created?: ((() => void) | (() => void)[]) | undefined;
|
|
51
|
+
beforeMount?: ((() => void) | (() => void)[]) | undefined;
|
|
52
|
+
mounted?: ((() => void) | (() => void)[]) | undefined;
|
|
53
|
+
beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
|
|
54
|
+
updated?: ((() => void) | (() => void)[]) | undefined;
|
|
55
|
+
activated?: ((() => void) | (() => void)[]) | undefined;
|
|
56
|
+
deactivated?: ((() => void) | (() => void)[]) | undefined;
|
|
57
|
+
beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
|
|
58
|
+
beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
|
|
59
|
+
destroyed?: ((() => void) | (() => void)[]) | undefined;
|
|
60
|
+
unmounted?: ((() => void) | (() => void)[]) | undefined;
|
|
61
|
+
renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
|
|
62
|
+
renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
|
|
63
|
+
errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void)[]) | undefined;
|
|
64
|
+
};
|
|
65
|
+
$forceUpdate: () => void;
|
|
66
|
+
$nextTick: typeof nextTick;
|
|
67
|
+
$watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
|
|
68
|
+
} & Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
69
|
+
menuData?: MenuItem[] | undefined;
|
|
70
|
+
isSubMenu?: boolean | undefined;
|
|
71
|
+
}>, {
|
|
72
|
+
menuData: () => never[];
|
|
73
|
+
isSubMenu: boolean;
|
|
74
|
+
}>>> & {
|
|
75
|
+
onHide?: ((...args: any[]) => any) | undefined;
|
|
76
|
+
onShow?: ((...args: any[]) => any) | undefined;
|
|
77
|
+
} & import("vue").ShallowUnwrapRef<{
|
|
78
|
+
hide: () => void;
|
|
79
|
+
show: (e: MouseEvent) => void;
|
|
80
|
+
}> & {} & import("vue").ComponentCustomProperties;
|
|
81
|
+
__isFragment?: undefined;
|
|
82
|
+
__isTeleport?: undefined;
|
|
83
|
+
__isSuspense?: undefined;
|
|
84
|
+
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
85
|
+
menuData?: MenuItem[] | undefined;
|
|
86
|
+
isSubMenu?: boolean | undefined;
|
|
87
|
+
}>, {
|
|
88
|
+
menuData: () => never[];
|
|
89
|
+
isSubMenu: boolean;
|
|
90
|
+
}>>> & {
|
|
91
|
+
onHide?: ((...args: any[]) => any) | undefined;
|
|
92
|
+
onShow?: ((...args: any[]) => any) | undefined;
|
|
93
|
+
}, {
|
|
94
|
+
hide: () => void;
|
|
95
|
+
show: (e: MouseEvent) => void;
|
|
96
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("hide" | "show")[], "hide" | "show", {
|
|
97
|
+
menuData: MenuItem[];
|
|
98
|
+
isSubMenu: boolean;
|
|
99
|
+
}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
100
|
+
$slots: {};
|
|
101
|
+
});
|
|
102
|
+
export default _default;
|
|
103
|
+
declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
104
|
+
declare type __VLS_TypePropsToRuntimeProps<T> = {
|
|
105
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
106
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
107
|
+
} : {
|
|
108
|
+
type: import('vue').PropType<T[K]>;
|
|
109
|
+
required: true;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
declare type __VLS_WithDefaults<P, D> = {
|
|
113
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? P[K] & {
|
|
114
|
+
default: D[K];
|
|
115
|
+
} : P[K];
|
|
116
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component, PropType, toRaw } from 'vue';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<{
|
|
3
|
+
icon: {
|
|
4
|
+
type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
|
|
5
|
+
};
|
|
6
|
+
}, {
|
|
7
|
+
toRaw: typeof toRaw;
|
|
8
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
9
|
+
icon: {
|
|
10
|
+
type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
|
|
11
|
+
};
|
|
12
|
+
}>>, {}>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
width: NumberConstructor;
|
|
3
|
+
height: NumberConstructor;
|
|
4
|
+
zoom: {
|
|
5
|
+
type: NumberConstructor;
|
|
6
|
+
default: number;
|
|
7
|
+
};
|
|
8
|
+
}, {
|
|
9
|
+
container: import("vue").Ref<HTMLDivElement | undefined>;
|
|
10
|
+
el: import("vue").Ref<HTMLDivElement | undefined>;
|
|
11
|
+
style: import("vue").ComputedRef<string>;
|
|
12
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
13
|
+
width: NumberConstructor;
|
|
14
|
+
height: NumberConstructor;
|
|
15
|
+
zoom: {
|
|
16
|
+
type: NumberConstructor;
|
|
17
|
+
default: number;
|
|
18
|
+
};
|
|
19
|
+
}>>, {
|
|
20
|
+
zoom: number;
|
|
21
|
+
}>;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import type { MenuButton, MenuComponent } from '../type';
|
|
3
|
+
declare const _default: {
|
|
4
|
+
new (...args: any[]): {
|
|
5
|
+
$: import("vue").ComponentInternalInstance;
|
|
6
|
+
$data: {};
|
|
7
|
+
$props: Partial<{
|
|
8
|
+
data: string | MenuButton | MenuComponent;
|
|
9
|
+
eventType: "click" | "mousedown" | "mouseup";
|
|
10
|
+
}> & Omit<Readonly<import("vue").ExtractPropTypes<{
|
|
11
|
+
data: {
|
|
12
|
+
type: PropType<string | MenuButton | MenuComponent>;
|
|
13
|
+
require: boolean;
|
|
14
|
+
default: () => {
|
|
15
|
+
type: string;
|
|
16
|
+
display: boolean;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
eventType: {
|
|
20
|
+
type: PropType<"click" | "mousedown" | "mouseup">;
|
|
21
|
+
default: string;
|
|
22
|
+
};
|
|
23
|
+
}>> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "data" | "eventType">;
|
|
24
|
+
$attrs: {
|
|
25
|
+
[x: string]: unknown;
|
|
26
|
+
};
|
|
27
|
+
$refs: {
|
|
28
|
+
[x: string]: unknown;
|
|
29
|
+
};
|
|
30
|
+
$slots: Readonly<{
|
|
31
|
+
[name: string]: import("vue").Slot | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
$root: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
|
|
34
|
+
$parent: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
|
|
35
|
+
$emit: (event: string, ...args: any[]) => void;
|
|
36
|
+
$el: any;
|
|
37
|
+
$options: import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
|
|
38
|
+
data: {
|
|
39
|
+
type: PropType<string | MenuButton | MenuComponent>;
|
|
40
|
+
require: boolean;
|
|
41
|
+
default: () => {
|
|
42
|
+
type: string;
|
|
43
|
+
display: boolean;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
eventType: {
|
|
47
|
+
type: PropType<"click" | "mousedown" | "mouseup">;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
50
|
+
}>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
|
51
|
+
data: string | MenuButton | MenuComponent;
|
|
52
|
+
eventType: "click" | "mousedown" | "mouseup";
|
|
53
|
+
}> & {
|
|
54
|
+
beforeCreate?: ((() => void) | (() => void)[]) | undefined;
|
|
55
|
+
created?: ((() => void) | (() => void)[]) | undefined;
|
|
56
|
+
beforeMount?: ((() => void) | (() => void)[]) | undefined;
|
|
57
|
+
mounted?: ((() => void) | (() => void)[]) | undefined;
|
|
58
|
+
beforeUpdate?: ((() => void) | (() => void)[]) | undefined;
|
|
59
|
+
updated?: ((() => void) | (() => void)[]) | undefined;
|
|
60
|
+
activated?: ((() => void) | (() => void)[]) | undefined;
|
|
61
|
+
deactivated?: ((() => void) | (() => void)[]) | undefined;
|
|
62
|
+
beforeDestroy?: ((() => void) | (() => void)[]) | undefined;
|
|
63
|
+
beforeUnmount?: ((() => void) | (() => void)[]) | undefined;
|
|
64
|
+
destroyed?: ((() => void) | (() => void)[]) | undefined;
|
|
65
|
+
unmounted?: ((() => void) | (() => void)[]) | undefined;
|
|
66
|
+
renderTracked?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
|
|
67
|
+
renderTriggered?: (((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[]) | undefined;
|
|
68
|
+
errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void)[]) | undefined;
|
|
69
|
+
};
|
|
70
|
+
$forceUpdate: () => void;
|
|
71
|
+
$nextTick: typeof import("vue").nextTick;
|
|
72
|
+
$watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
|
|
73
|
+
} & Readonly<import("vue").ExtractPropTypes<{
|
|
74
|
+
data: {
|
|
75
|
+
type: PropType<string | MenuButton | MenuComponent>;
|
|
76
|
+
require: boolean;
|
|
77
|
+
default: () => {
|
|
78
|
+
type: string;
|
|
79
|
+
display: boolean;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
eventType: {
|
|
83
|
+
type: PropType<"click" | "mousedown" | "mouseup">;
|
|
84
|
+
default: string;
|
|
85
|
+
};
|
|
86
|
+
}>> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties;
|
|
87
|
+
__isFragment?: undefined;
|
|
88
|
+
__isTeleport?: undefined;
|
|
89
|
+
__isSuspense?: undefined;
|
|
90
|
+
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
|
|
91
|
+
data: {
|
|
92
|
+
type: PropType<string | MenuButton | MenuComponent>;
|
|
93
|
+
require: boolean;
|
|
94
|
+
default: () => {
|
|
95
|
+
type: string;
|
|
96
|
+
display: boolean;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
eventType: {
|
|
100
|
+
type: PropType<"click" | "mousedown" | "mouseup">;
|
|
101
|
+
default: string;
|
|
102
|
+
};
|
|
103
|
+
}>>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
|
104
|
+
data: string | MenuButton | MenuComponent;
|
|
105
|
+
eventType: "click" | "mousedown" | "mouseup";
|
|
106
|
+
}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
107
|
+
$slots: {};
|
|
108
|
+
});
|
|
109
|
+
export default _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<Readonly<{
|
|
2
|
+
name?: any;
|
|
3
|
+
model?: any;
|
|
4
|
+
config?: any;
|
|
5
|
+
prop?: any;
|
|
6
|
+
}>, {
|
|
7
|
+
height: import("vue").ComputedRef<string>;
|
|
8
|
+
language: import("vue").ComputedRef<any>;
|
|
9
|
+
save(v: string): void;
|
|
10
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<Readonly<{
|
|
11
|
+
name?: any;
|
|
12
|
+
model?: any;
|
|
13
|
+
config?: any;
|
|
14
|
+
prop?: any;
|
|
15
|
+
}>>> & {
|
|
16
|
+
onChange?: ((...args: any[]) => any) | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
readonly name?: any;
|
|
19
|
+
readonly model?: any;
|
|
20
|
+
readonly config?: any;
|
|
21
|
+
readonly prop?: any;
|
|
22
|
+
}>;
|
|
23
|
+
export default _default;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { Ref, ComputedRef } from '@vue/reactivity';
|
|
2
|
-
import type { DefineComponent, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from '@vue/runtime-core';
|
|
3
1
|
import { PropType } from 'vue';
|
|
4
2
|
interface CodeLinkConfig {
|
|
5
3
|
type: 'code-link';
|
|
@@ -7,7 +5,7 @@ interface CodeLinkConfig {
|
|
|
7
5
|
text?: string;
|
|
8
6
|
formTitle?: string;
|
|
9
7
|
}
|
|
10
|
-
declare const _default: DefineComponent<{
|
|
8
|
+
declare const _default: import("vue").DefineComponent<{
|
|
11
9
|
config: {
|
|
12
10
|
type: PropType<CodeLinkConfig>;
|
|
13
11
|
};
|
|
@@ -21,10 +19,10 @@ declare const _default: DefineComponent<{
|
|
|
21
19
|
type: StringConstructor;
|
|
22
20
|
};
|
|
23
21
|
}, {
|
|
24
|
-
modelValue: Ref<{
|
|
22
|
+
modelValue: import("vue").Ref<{
|
|
25
23
|
form: Record<string, any>;
|
|
26
24
|
}>;
|
|
27
|
-
formConfig: ComputedRef<{
|
|
25
|
+
formConfig: import("vue").ComputedRef<{
|
|
28
26
|
text: string;
|
|
29
27
|
type: string;
|
|
30
28
|
form: {
|
|
@@ -35,7 +33,7 @@ declare const _default: DefineComponent<{
|
|
|
35
33
|
formTitle?: string | undefined;
|
|
36
34
|
}>;
|
|
37
35
|
changeHandler(v: Record<string, any>): void;
|
|
38
|
-
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "change"[], "change", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
36
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
39
37
|
config: {
|
|
40
38
|
type: PropType<CodeLinkConfig>;
|
|
41
39
|
};
|