@tmagic/editor 1.0.0-rc.3 → 1.0.0-rc.4
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/coverage/clover.xml +361 -324
- package/coverage/coverage-final.json +7 -7
- package/coverage/lcov-report/index.html +39 -39
- package/coverage/lcov-report/src/Editor.vue.html +1 -1
- package/coverage/lcov-report/src/components/ContentMenu.vue.html +11 -11
- package/coverage/lcov-report/src/components/Icon.vue.html +2 -2
- package/coverage/lcov-report/src/components/ScrollViewer.vue.html +1 -1
- package/coverage/lcov-report/src/components/ToolButton.vue.html +25 -25
- package/coverage/lcov-report/src/components/index.html +5 -5
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/layouts/AddPageBox.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/Framework.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/NavMenu.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/PropsPanel.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/Resizer.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/index.html +1 -1
- package/coverage/lcov-report/src/layouts/sidebar/ComponentListPanel.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/sidebar/LayerMenu.vue.html +17 -17
- package/coverage/lcov-report/src/layouts/sidebar/LayerPanel.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/sidebar/Sidebar.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/sidebar/TabPane.vue.html +2 -2
- package/coverage/lcov-report/src/layouts/sidebar/index.html +19 -19
- package/coverage/lcov-report/src/layouts/workspace/PageBar.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/workspace/Stage.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/workspace/ViewerMenu.vue.html +69 -33
- package/coverage/lcov-report/src/layouts/workspace/Workspace.vue.html +79 -34
- package/coverage/lcov-report/src/layouts/workspace/index.html +28 -28
- package/coverage/lcov-report/src/services/BaseService.ts.html +2 -2
- package/coverage/lcov-report/src/services/componentList.ts.html +1 -1
- package/coverage/lcov-report/src/services/editor.ts.html +100 -10
- package/coverage/lcov-report/src/services/events.ts.html +1 -1
- package/coverage/lcov-report/src/services/history.ts.html +1 -1
- package/coverage/lcov-report/src/services/index.html +15 -15
- package/coverage/lcov-report/src/services/props.ts.html +1 -1
- package/coverage/lcov-report/src/services/ui.ts.html +1 -1
- package/coverage/lcov-report/src/type.ts.html +1 -1
- package/coverage/lcov-report/src/utils/compose.ts.html +1 -1
- package/coverage/lcov-report/src/utils/config.ts.html +1 -1
- package/coverage/lcov-report/src/utils/editor.ts.html +1 -1
- package/coverage/lcov-report/src/utils/index.html +1 -1
- package/coverage/lcov-report/src/utils/index.ts.html +1 -1
- package/coverage/lcov-report/src/utils/logger.ts.html +1 -1
- package/coverage/lcov-report/src/utils/props.ts.html +1 -1
- package/coverage/lcov-report/src/utils/scroll-viewer.ts.html +1 -1
- package/coverage/lcov-report/src/utils/undo-redo.ts.html +1 -1
- package/coverage/lcov.info +782 -683
- package/dist/tmagic-editor.es.js +75 -32
- package/dist/tmagic-editor.es.js.map +1 -1
- package/dist/tmagic-editor.umd.js +74 -31
- package/dist/tmagic-editor.umd.js.map +1 -1
- package/dist/types/src/services/BaseService.d.ts +1 -1
- package/package.json +7 -7
- package/src/components/ContentMenu.vue +1 -1
- package/src/layouts/sidebar/TabPane.vue +1 -1
- package/src/layouts/workspace/ViewerMenu.vue +14 -2
- package/src/layouts/workspace/Workspace.vue +38 -23
- package/src/services/BaseService.ts +1 -1
- package/src/services/editor.ts +31 -1
|
@@ -27,7 +27,7 @@ import { EventEmitter } from 'events';
|
|
|
27
27
|
* editorService.afterAdd();
|
|
28
28
|
* }
|
|
29
29
|
*
|
|
30
|
-
* 调用时的参数会透传到before方法的参数中, 然后before的return 会作为原方法的参数和after的参数,after
|
|
30
|
+
* 调用时的参数会透传到before方法的参数中, 然后before的return 会作为原方法的参数和after的参数,after第一个参数则是原方法的return值;
|
|
31
31
|
* 如需终止后续方法调用可以return new Error();
|
|
32
32
|
*
|
|
33
33
|
* 方法2:
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.0-rc.
|
|
2
|
+
"version": "1.0.0-rc.4",
|
|
3
3
|
"name": "@tmagic/editor",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"dist/*",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/core": "^7.18.0",
|
|
47
47
|
"@element-plus/icons": "0.0.11",
|
|
48
|
-
"@tmagic/core": "^1.0.0-rc.
|
|
49
|
-
"@tmagic/form": "^1.0.0-rc.
|
|
50
|
-
"@tmagic/schema": "^1.0.0-rc.
|
|
51
|
-
"@tmagic/stage": "^1.0.0-rc.
|
|
52
|
-
"@tmagic/utils": "^1.0.0-rc.
|
|
48
|
+
"@tmagic/core": "^1.0.0-rc.4",
|
|
49
|
+
"@tmagic/form": "^1.0.0-rc.4",
|
|
50
|
+
"@tmagic/schema": "^1.0.0-rc.4",
|
|
51
|
+
"@tmagic/stage": "^1.0.0-rc.4",
|
|
52
|
+
"@tmagic/utils": "^1.0.0-rc.4",
|
|
53
53
|
"buffer": "^6.0.3",
|
|
54
54
|
"color": "^3.1.3",
|
|
55
55
|
"element-plus": "^2.2.0",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"vite-plugin-dts": "^0.9.6",
|
|
89
89
|
"vue-tsc": "^0.0.24"
|
|
90
90
|
},
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "28d5ad4573a27fa240f5e7d0902d3368e8d936b6"
|
|
92
92
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div v-if="menuData.length
|
|
2
|
+
<div v-if="menuData.length && visible" class="magic-editor-content-menu" ref="menu" :style="menuStyle">
|
|
3
3
|
<div>
|
|
4
4
|
<tool-button
|
|
5
5
|
v-for="(item, index) in menuData"
|
|
@@ -69,8 +69,20 @@ export default defineComponent({
|
|
|
69
69
|
text: '粘贴',
|
|
70
70
|
display: () => canPaste.value,
|
|
71
71
|
handler: () => {
|
|
72
|
-
const
|
|
73
|
-
|
|
72
|
+
const stage = editorService?.get<StageCore>('stage');
|
|
73
|
+
|
|
74
|
+
const rect = menu.value?.$el.getBoundingClientRect();
|
|
75
|
+
const parentRect = stage?.container?.getBoundingClientRect();
|
|
76
|
+
let left = (rect?.left || 0) - (parentRect?.left || 0);
|
|
77
|
+
let top = (rect?.top || 0) - (parentRect?.top || 0);
|
|
78
|
+
|
|
79
|
+
if (node.value?.items && stage) {
|
|
80
|
+
const parentEl = stage.renderer.contentWindow?.document.getElementById(`${node.value.id}`);
|
|
81
|
+
const parentElRect = parentEl?.getBoundingClientRect();
|
|
82
|
+
left = left - (parentElRect?.left || 0);
|
|
83
|
+
top = top - (parentElRect?.top || 0);
|
|
84
|
+
}
|
|
85
|
+
|
|
74
86
|
editorService?.paste({ left, top });
|
|
75
87
|
},
|
|
76
88
|
},
|
|
@@ -82,10 +82,6 @@ export default defineComponent({
|
|
|
82
82
|
const ctrl = isMac ? 'meta' : 'ctrl';
|
|
83
83
|
|
|
84
84
|
keycon
|
|
85
|
-
.keydown((e) => {
|
|
86
|
-
console.log(e);
|
|
87
|
-
e.inputEvent.preventDefault();
|
|
88
|
-
})
|
|
89
85
|
.keyup('delete', (e) => {
|
|
90
86
|
e.inputEvent.preventDefault();
|
|
91
87
|
if (!node.value || isPage(node.value)) return;
|
|
@@ -96,63 +92,82 @@ export default defineComponent({
|
|
|
96
92
|
if (!node.value || isPage(node.value)) return;
|
|
97
93
|
services?.editorService.remove(node.value);
|
|
98
94
|
})
|
|
99
|
-
.keydown([ctrl, 'c'], () => {
|
|
95
|
+
.keydown([ctrl, 'c'], (e) => {
|
|
96
|
+
e.inputEvent.preventDefault();
|
|
100
97
|
node.value && services?.editorService.copy(node.value);
|
|
101
98
|
})
|
|
102
|
-
.keydown([ctrl, 'v'], () => {
|
|
99
|
+
.keydown([ctrl, 'v'], (e) => {
|
|
100
|
+
e.inputEvent.preventDefault();
|
|
103
101
|
node.value && services?.editorService.paste();
|
|
104
102
|
})
|
|
105
|
-
.keydown([ctrl, 'x'], () => {
|
|
103
|
+
.keydown([ctrl, 'x'], (e) => {
|
|
104
|
+
e.inputEvent.preventDefault();
|
|
106
105
|
if (!node.value || isPage(node.value)) return;
|
|
107
106
|
services?.editorService.copy(node.value);
|
|
108
107
|
services?.editorService.remove(node.value);
|
|
109
108
|
})
|
|
110
|
-
.keydown([ctrl, 'z'], () => {
|
|
109
|
+
.keydown([ctrl, 'z'], (e) => {
|
|
110
|
+
e.inputEvent.preventDefault();
|
|
111
111
|
services?.editorService.undo();
|
|
112
112
|
})
|
|
113
|
-
.keydown([ctrl, 'shift', 'z'], () => {
|
|
113
|
+
.keydown([ctrl, 'shift', 'z'], (e) => {
|
|
114
|
+
e.inputEvent.preventDefault();
|
|
114
115
|
services?.editorService.redo();
|
|
115
116
|
})
|
|
116
|
-
.keydown('up', () => {
|
|
117
|
+
.keydown('up', (e) => {
|
|
118
|
+
e.inputEvent.preventDefault();
|
|
117
119
|
services?.editorService.move(0, -1);
|
|
118
120
|
})
|
|
119
|
-
.keydown('down', () => {
|
|
121
|
+
.keydown('down', (e) => {
|
|
122
|
+
e.inputEvent.preventDefault();
|
|
120
123
|
services?.editorService.move(0, 1);
|
|
121
124
|
})
|
|
122
|
-
.keydown('left', () => {
|
|
125
|
+
.keydown('left', (e) => {
|
|
126
|
+
e.inputEvent.preventDefault();
|
|
123
127
|
services?.editorService.move(-1, 0);
|
|
124
128
|
})
|
|
125
|
-
.keydown('right', () => {
|
|
129
|
+
.keydown('right', (e) => {
|
|
130
|
+
e.inputEvent.preventDefault();
|
|
126
131
|
services?.editorService.move(1, 0);
|
|
127
132
|
})
|
|
128
|
-
.keydown([ctrl, 'up'], () => {
|
|
133
|
+
.keydown([ctrl, 'up'], (e) => {
|
|
134
|
+
e.inputEvent.preventDefault();
|
|
129
135
|
services?.editorService.move(0, -10);
|
|
130
136
|
})
|
|
131
|
-
.keydown([ctrl, 'down'], () => {
|
|
137
|
+
.keydown([ctrl, 'down'], (e) => {
|
|
138
|
+
e.inputEvent.preventDefault();
|
|
132
139
|
services?.editorService.move(0, 10);
|
|
133
140
|
})
|
|
134
|
-
.keydown([ctrl, 'left'], () => {
|
|
141
|
+
.keydown([ctrl, 'left'], (e) => {
|
|
142
|
+
e.inputEvent.preventDefault();
|
|
135
143
|
services?.editorService.move(-10, 0);
|
|
136
144
|
})
|
|
137
|
-
.keydown([ctrl, 'right'], () => {
|
|
145
|
+
.keydown([ctrl, 'right'], (e) => {
|
|
146
|
+
e.inputEvent.preventDefault();
|
|
138
147
|
services?.editorService.move(10, 0);
|
|
139
148
|
})
|
|
140
|
-
.keydown('tab', () => {
|
|
149
|
+
.keydown('tab', (e) => {
|
|
150
|
+
e.inputEvent.preventDefault();
|
|
141
151
|
services?.editorService.selectNextNode();
|
|
142
152
|
})
|
|
143
|
-
.keydown([ctrl, 'tab'], () => {
|
|
153
|
+
.keydown([ctrl, 'tab'], (e) => {
|
|
154
|
+
e.inputEvent.preventDefault();
|
|
144
155
|
services?.editorService.selectNextPage();
|
|
145
156
|
})
|
|
146
|
-
.keydown([ctrl, '='], () => {
|
|
157
|
+
.keydown([ctrl, '='], (e) => {
|
|
158
|
+
e.inputEvent.preventDefault();
|
|
147
159
|
services?.uiService.zoom(0.1);
|
|
148
160
|
})
|
|
149
|
-
.keydown([ctrl, 'numpadplus'], () => {
|
|
161
|
+
.keydown([ctrl, 'numpadplus'], (e) => {
|
|
162
|
+
e.inputEvent.preventDefault();
|
|
150
163
|
services?.uiService.zoom(0.1);
|
|
151
164
|
})
|
|
152
|
-
.keydown([ctrl, '-'], () => {
|
|
165
|
+
.keydown([ctrl, '-'], (e) => {
|
|
166
|
+
e.inputEvent.preventDefault();
|
|
153
167
|
services?.uiService.zoom(-0.1);
|
|
154
168
|
})
|
|
155
|
-
.keydown([ctrl, 'numpad-'], () => {
|
|
169
|
+
.keydown([ctrl, 'numpad-'], (e) => {
|
|
170
|
+
e.inputEvent.preventDefault();
|
|
156
171
|
services?.uiService.zoom(-0.1);
|
|
157
172
|
});
|
|
158
173
|
});
|
|
@@ -91,7 +91,7 @@ const doAction = async (
|
|
|
91
91
|
* editorService.afterAdd();
|
|
92
92
|
* }
|
|
93
93
|
*
|
|
94
|
-
* 调用时的参数会透传到before方法的参数中, 然后before的return 会作为原方法的参数和after的参数,after
|
|
94
|
+
* 调用时的参数会透传到before方法的参数中, 然后before的return 会作为原方法的参数和after的参数,after第一个参数则是原方法的return值;
|
|
95
95
|
* 如需终止后续方法调用可以return new Error();
|
|
96
96
|
*
|
|
97
97
|
* 方法2:
|
package/src/services/editor.ts
CHANGED
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
change2Fixed,
|
|
34
34
|
COPY_STORAGE_KEY,
|
|
35
35
|
Fixed2Other,
|
|
36
|
+
generatePageNameByApp,
|
|
36
37
|
getNodeIndex,
|
|
37
38
|
initPosition,
|
|
38
39
|
isFixed,
|
|
@@ -194,6 +195,20 @@ class Editor extends BaseService {
|
|
|
194
195
|
historyService.empty();
|
|
195
196
|
}
|
|
196
197
|
|
|
198
|
+
if (node?.id) {
|
|
199
|
+
this.get<StageCore>('stage')
|
|
200
|
+
?.renderer.runtime?.getApp?.()
|
|
201
|
+
?.emit(
|
|
202
|
+
'editor:select',
|
|
203
|
+
{
|
|
204
|
+
node,
|
|
205
|
+
page,
|
|
206
|
+
parent,
|
|
207
|
+
},
|
|
208
|
+
getNodePath(node.id, this.get<MApp>('root').items),
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
|
|
197
212
|
this.emit('select', node);
|
|
198
213
|
|
|
199
214
|
return node!;
|
|
@@ -488,6 +503,10 @@ class Editor extends BaseService {
|
|
|
488
503
|
};
|
|
489
504
|
}
|
|
490
505
|
|
|
506
|
+
if (isPage(config)) {
|
|
507
|
+
config.name = generatePageNameByApp(this.get('root'));
|
|
508
|
+
}
|
|
509
|
+
|
|
491
510
|
return await this.add(config);
|
|
492
511
|
}
|
|
493
512
|
|
|
@@ -504,7 +523,18 @@ class Editor extends BaseService {
|
|
|
504
523
|
return;
|
|
505
524
|
}
|
|
506
525
|
|
|
507
|
-
if (
|
|
526
|
+
if (!node.style) return;
|
|
527
|
+
|
|
528
|
+
const stage = this.get<StageCore>('stage');
|
|
529
|
+
const doc = stage?.renderer.contentWindow?.document;
|
|
530
|
+
|
|
531
|
+
if (doc) {
|
|
532
|
+
const parentEl = doc.getElementById(`${parent.id}`);
|
|
533
|
+
const el = doc.getElementById(`${node.id}`);
|
|
534
|
+
if (parentEl && el) {
|
|
535
|
+
node.style.left = (parentEl.clientWidth - el.clientWidth) / 2;
|
|
536
|
+
}
|
|
537
|
+
} else if (parent.style && isNumber(parent.style?.width) && isNumber(node.style?.width)) {
|
|
508
538
|
node.style.left = (parent.style.width - node.style.width) / 2;
|
|
509
539
|
}
|
|
510
540
|
|