@tmagic/editor 1.0.0-beta.13 → 1.0.0-beta.16
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 +703 -601
- package/coverage/coverage-final.json +35 -33
- package/coverage/lcov-report/index.html +56 -56
- package/coverage/lcov-report/src/Editor.vue.html +1 -1
- package/coverage/lcov-report/{layouts/sidebar/LayerMenu.vue.html → src/components/ContentMenu.vue.html} +137 -95
- package/coverage/lcov-report/src/components/Icon.vue.html +5 -5
- package/coverage/lcov-report/src/components/ScrollViewer.vue.html +1 -1
- package/coverage/lcov-report/src/components/ToolButton.vue.html +180 -63
- package/coverage/lcov-report/src/components/index.html +34 -19
- 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 +13 -13
- 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 +15 -15
- package/coverage/lcov-report/src/layouts/sidebar/ComponentListPanel.vue.html +78 -12
- package/coverage/lcov-report/src/layouts/sidebar/LayerMenu.vue.html +149 -92
- package/coverage/lcov-report/src/layouts/sidebar/LayerPanel.vue.html +43 -121
- package/coverage/lcov-report/src/layouts/sidebar/Sidebar.vue.html +23 -140
- package/coverage/lcov-report/{utils/undo-redo.ts.html → src/layouts/sidebar/TabPane.vue.html} +94 -118
- package/coverage/lcov-report/src/layouts/sidebar/index.html +64 -49
- package/coverage/lcov-report/src/layouts/workspace/PageBar.vue.html +99 -12
- package/coverage/lcov-report/src/layouts/workspace/Stage.vue.html +86 -95
- package/coverage/lcov-report/src/layouts/workspace/ViewerMenu.vue.html +208 -97
- package/coverage/lcov-report/src/layouts/workspace/Workspace.vue.html +3 -3
- package/coverage/lcov-report/src/layouts/workspace/index.html +35 -35
- package/coverage/lcov-report/src/services/BaseService.ts.html +11 -11
- package/coverage/lcov-report/src/services/componentList.ts.html +1 -1
- package/coverage/lcov-report/src/services/editor.ts.html +103 -10
- package/coverage/lcov-report/src/services/events.ts.html +1 -1
- package/coverage/lcov-report/src/services/history.ts.html +29 -8
- package/coverage/lcov-report/src/services/index.html +25 -25
- package/coverage/lcov-report/src/services/props.ts.html +4 -7
- package/coverage/lcov-report/src/services/ui.ts.html +1 -1
- package/coverage/lcov-report/src/type.ts.html +8 -14
- package/coverage/lcov-report/src/utils/compose.ts.html +4 -4
- package/coverage/lcov-report/src/utils/config.ts.html +1 -1
- package/coverage/lcov-report/src/utils/editor.ts.html +2 -2
- 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 +59 -2
- 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 +1679 -1402
- package/dist/style.css +47 -20
- package/dist/tmagic-editor.es.js +732 -485
- package/dist/tmagic-editor.es.js.map +1 -1
- package/dist/tmagic-editor.umd.js +733 -485
- package/dist/tmagic-editor.umd.js.map +1 -1
- package/dist/types/src/Editor.vue.d.ts +1 -1
- package/dist/types/src/components/ToolButton.vue.d.ts +12 -1
- package/dist/types/src/fields/UISelect.vue.d.ts +4 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/layouts/CodeEditor.vue.d.ts +13 -4
- package/dist/types/src/layouts/sidebar/ComponentListPanel.vue.d.ts +1 -0
- package/dist/types/src/layouts/sidebar/Sidebar.vue.d.ts +2 -3
- package/dist/types/src/layouts/sidebar/TabPane.vue.d.ts +14 -0
- package/dist/types/src/layouts/workspace/PageBar.vue.d.ts +2 -0
- package/dist/types/src/services/history.d.ts +1 -0
- package/dist/types/src/services/props.d.ts +2 -2
- package/dist/types/src/type.d.ts +6 -8
- package/dist/types/src/utils/polyfills.d.ts +0 -0
- package/package.json +15 -10
- package/src/components/ContentMenu.vue +107 -0
- package/src/components/ToolButton.vue +66 -27
- package/src/fields/UISelect.vue +14 -6
- package/src/index.ts +2 -0
- package/src/layouts/CodeEditor.vue +20 -10
- package/src/layouts/Framework.vue +6 -6
- package/src/layouts/sidebar/ComponentListPanel.vue +23 -1
- package/src/layouts/sidebar/LayerMenu.vue +91 -72
- package/src/layouts/sidebar/LayerPanel.vue +23 -49
- package/src/layouts/sidebar/Sidebar.vue +13 -52
- package/src/layouts/sidebar/TabPane.vue +68 -0
- package/src/layouts/workspace/PageBar.vue +35 -6
- package/src/layouts/workspace/Stage.vue +41 -44
- package/src/layouts/workspace/ViewerMenu.vue +104 -67
- package/src/layouts/workspace/Workspace.vue +2 -2
- package/src/services/editor.ts +33 -2
- package/src/services/history.ts +7 -0
- package/src/services/props.ts +2 -3
- package/src/theme/common/var.scss +1 -0
- package/src/theme/component-list-panel.scss +2 -0
- package/src/theme/content-menu.scss +33 -26
- package/src/theme/layer-panel.scss +1 -1
- package/src/theme/nav-menu.scss +6 -2
- package/src/theme/page-bar.scss +22 -1
- package/src/theme/props-panel.scss +4 -0
- package/src/type.ts +6 -8
- package/src/utils/editor.ts +1 -1
- package/src/utils/polyfills.ts +22 -0
- package/src/utils/props.ts +19 -0
- package/coverage/lcov-report/Icon.vue.html +0 -172
- package/coverage/lcov-report/ToolButton.vue.html +0 -655
- package/coverage/lcov-report/layouts/sidebar/index.html +0 -116
- package/coverage/lcov-report/utils/index.html +0 -116
- package/dist/types/src/layouts/sidebar/LayerPanel.vue.d.ts +0 -980
- package/dist/types/src/layouts/workspace/Stage.vue.d.ts +0 -188
- package/dist/types/src/layouts/workspace/ViewerMenu.vue.d.ts +0 -18
|
@@ -253,7 +253,7 @@ export default defineComponent({
|
|
|
253
253
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
254
254
|
Code coverage generated by
|
|
255
255
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
256
|
-
at Fri
|
|
256
|
+
at Fri May 13 2022 20:42:37 GMT+0800 (China Standard Time)
|
|
257
257
|
</div>
|
|
258
258
|
<script src="../../prettify.js"></script>
|
|
259
259
|
<script>
|
|
@@ -23,23 +23,23 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">62.92% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>56/89</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">30.43% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>21/69</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">61.9% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>13/21</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
@@ -95,15 +95,15 @@
|
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
97
|
<td class="file medium" data-value="Framework.vue"><a href="Framework.vue.html">Framework.vue</a></td>
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
98
|
+
<td data-value="75" class="pic medium">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="
|
|
104
|
-
<td data-value="
|
|
105
|
-
<td data-value="
|
|
106
|
-
<td data-value="6" class="abs
|
|
101
|
+
<td data-value="75" class="pct medium">75%</td>
|
|
102
|
+
<td data-value="16" class="abs medium">12/16</td>
|
|
103
|
+
<td data-value="45.83" class="pct low">45.83%</td>
|
|
104
|
+
<td data-value="24" class="abs low">11/24</td>
|
|
105
|
+
<td data-value="66.66" class="pct medium">66.66%</td>
|
|
106
|
+
<td data-value="6" class="abs medium">4/6</td>
|
|
107
107
|
<td data-value="76.92" class="pct medium">76.92%</td>
|
|
108
108
|
<td data-value="13" class="abs medium">10/13</td>
|
|
109
109
|
</tr>
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
162
162
|
Code coverage generated by
|
|
163
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
164
|
-
at Fri
|
|
164
|
+
at Fri May 13 2022 20:42:37 GMT+0800 (China Standard Time)
|
|
165
165
|
</div>
|
|
166
166
|
<script src="../../prettify.js"></script>
|
|
167
167
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">42.3% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>11/26</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">35.29% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>6/
|
|
35
|
+
<span class='fraction'>6/17</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">37.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>3/
|
|
42
|
+
<span class='fraction'>3/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">57.89% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>11/19</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -132,7 +132,36 @@
|
|
|
132
132
|
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
133
|
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
134
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
165
|
<span class="cline-any cline-neutral"> </span>
|
|
137
166
|
<span class="cline-any cline-neutral"> </span>
|
|
138
167
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -161,6 +190,7 @@
|
|
|
161
190
|
<span class="cline-any cline-neutral"> </span>
|
|
162
191
|
<span class="cline-any cline-neutral"> </span>
|
|
163
192
|
<span class="cline-any cline-yes">1x</span>
|
|
193
|
+
<span class="cline-any cline-yes">1x</span>
|
|
164
194
|
<span class="cline-any cline-neutral"> </span>
|
|
165
195
|
<span class="cline-any cline-yes">1x</span>
|
|
166
196
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -198,6 +228,20 @@
|
|
|
198
228
|
<span class="cline-any cline-neutral"> </span>
|
|
199
229
|
<span class="cline-any cline-neutral"> </span>
|
|
200
230
|
<span class="cline-any cline-neutral"> </span>
|
|
231
|
+
<span class="cline-any cline-no"> </span>
|
|
232
|
+
<span class="cline-any cline-no"> </span>
|
|
233
|
+
<span class="cline-any cline-no"> </span>
|
|
234
|
+
<span class="cline-any cline-no"> </span>
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
201
245
|
<span class="cline-any cline-neutral"> </span>
|
|
202
246
|
<span class="cline-any cline-neutral"> </span>
|
|
203
247
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -215,7 +259,14 @@
|
|
|
215
259
|
<template v-for="(group, index) in list">
|
|
216
260
|
<el-collapse-item v-if="group.items && group.items.length" :key="index" :name="index">
|
|
217
261
|
<template #title><i class="el-icon-s-grid"></i>{{ group.title }}</template>
|
|
218
|
-
<div
|
|
262
|
+
<div
|
|
263
|
+
class="component-item"
|
|
264
|
+
v-for="item in group.items"
|
|
265
|
+
draggable="true"
|
|
266
|
+
:key="item.type"
|
|
267
|
+
@click="appendComponent(item)"
|
|
268
|
+
@dragstart="dragstartHandler(item, $event)"
|
|
269
|
+
>
|
|
219
270
|
<m-icon :icon="item.icon"></m-icon>
|
|
220
271
|
|
|
221
272
|
<el-tooltip effect="dark" placement="bottom" :content="item.text">
|
|
@@ -230,6 +281,7 @@
|
|
|
230
281
|
|
|
231
282
|
<script lang="ts">
|
|
232
283
|
import { computed, defineComponent, inject, ref } from 'vue';
|
|
284
|
+
import serialize from 'serialize-javascript';
|
|
233
285
|
|
|
234
286
|
import MIcon from '@editor/components/Icon.vue';
|
|
235
287
|
import type { ComponentGroup, ComponentItem, Services } from '@editor/type';
|
|
@@ -266,6 +318,20 @@ export default defineComponent({
|
|
|
266
318
|
...data,
|
|
267
319
|
});
|
|
268
320
|
},
|
|
321
|
+
|
|
322
|
+
<span class="fstat-no" title="function not covered" > dragstartHandler(</span>{ text<span class="cstat-no" title="statement not covered" >, t</span>ype<span class="cstat-no" title="statement not covered" >, <span class="cstat-no" title="statement not covered" >d</span>ata<span class="cstat-no" title="statement not covered" > </span>= {} }: ComponentItem, e</span>: DragEvent) {
|
|
323
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (e.dataTransfer) {</span>
|
|
324
|
+
<span class="cstat-no" title="statement not covered" > e.</span>dataTransfer.effectAllowed = 'move';
|
|
325
|
+
<span class="cstat-no" title="statement not covered" > e.</span>dataTransfer.setData(
|
|
326
|
+
'data',
|
|
327
|
+
serialize({
|
|
328
|
+
name: text,
|
|
329
|
+
type,
|
|
330
|
+
...data,
|
|
331
|
+
}).replace(/"(\w+)":\s/g, '$1: '),
|
|
332
|
+
);
|
|
333
|
+
}
|
|
334
|
+
},
|
|
269
335
|
};
|
|
270
336
|
},
|
|
271
337
|
});
|
|
@@ -277,7 +343,7 @@ export default defineComponent({
|
|
|
277
343
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
344
|
Code coverage generated by
|
|
279
345
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
280
|
-
at Fri
|
|
346
|
+
at Fri May 13 2022 20:42:37 GMT+0800 (China Standard Time)
|
|
281
347
|
</div>
|
|
282
348
|
<script src="../../../prettify.js"></script>
|
|
283
349
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">68.57% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>24/35</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">23.43% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>15/64</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>9/18</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">70% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>21/30</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -156,23 +156,56 @@
|
|
|
156
156
|
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
157
|
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
158
|
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
-
<a name='L94'></a><a href='#L94'>94</a
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
160
179
|
<span class="cline-any cline-neutral"> </span>
|
|
161
180
|
<span class="cline-any cline-neutral"> </span>
|
|
162
181
|
<span class="cline-any cline-neutral"> </span>
|
|
163
182
|
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-yes">1x</span>
|
|
184
|
+
<span class="cline-any cline-yes">1x</span>
|
|
164
185
|
<span class="cline-any cline-neutral"> </span>
|
|
186
|
+
<span class="cline-any cline-yes">1x</span>
|
|
165
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-yes">1x</span>
|
|
166
189
|
<span class="cline-any cline-neutral"> </span>
|
|
167
190
|
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-yes">1x</span>
|
|
168
192
|
<span class="cline-any cline-neutral"> </span>
|
|
169
193
|
<span class="cline-any cline-neutral"> </span>
|
|
170
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-yes">1x</span>
|
|
196
|
+
<span class="cline-any cline-yes">1x</span>
|
|
197
|
+
<span class="cline-any cline-yes">1x</span>
|
|
198
|
+
<span class="cline-any cline-yes">1x</span>
|
|
199
|
+
<span class="cline-any cline-yes">1x</span>
|
|
200
|
+
<span class="cline-any cline-yes">1x</span>
|
|
171
201
|
<span class="cline-any cline-neutral"> </span>
|
|
202
|
+
<span class="cline-any cline-yes">1x</span>
|
|
203
|
+
<span class="cline-any cline-no"> </span>
|
|
172
204
|
<span class="cline-any cline-neutral"> </span>
|
|
173
205
|
<span class="cline-any cline-neutral"> </span>
|
|
174
206
|
<span class="cline-any cline-neutral"> </span>
|
|
175
207
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
+
<span class="cline-any cline-no"> </span>
|
|
176
209
|
<span class="cline-any cline-neutral"> </span>
|
|
177
210
|
<span class="cline-any cline-neutral"> </span>
|
|
178
211
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -180,19 +213,26 @@
|
|
|
180
213
|
<span class="cline-any cline-neutral"> </span>
|
|
181
214
|
<span class="cline-any cline-neutral"> </span>
|
|
182
215
|
<span class="cline-any cline-neutral"> </span>
|
|
216
|
+
<span class="cline-any cline-yes">1x</span>
|
|
217
|
+
<span class="cline-any cline-yes">1x</span>
|
|
218
|
+
<span class="cline-any cline-no"> </span>
|
|
183
219
|
<span class="cline-any cline-neutral"> </span>
|
|
184
220
|
<span class="cline-any cline-neutral"> </span>
|
|
185
221
|
<span class="cline-any cline-neutral"> </span>
|
|
186
222
|
<span class="cline-any cline-neutral"> </span>
|
|
187
223
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
+
<span class="cline-any cline-no"> </span>
|
|
188
225
|
<span class="cline-any cline-neutral"> </span>
|
|
189
226
|
<span class="cline-any cline-neutral"> </span>
|
|
190
227
|
<span class="cline-any cline-neutral"> </span>
|
|
191
228
|
<span class="cline-any cline-neutral"> </span>
|
|
192
229
|
<span class="cline-any cline-neutral"> </span>
|
|
193
230
|
<span class="cline-any cline-neutral"> </span>
|
|
231
|
+
<span class="cline-any cline-yes">1x</span>
|
|
232
|
+
<span class="cline-any cline-no"> </span>
|
|
194
233
|
<span class="cline-any cline-neutral"> </span>
|
|
195
234
|
<span class="cline-any cline-neutral"> </span>
|
|
235
|
+
<span class="cline-any cline-no"> </span>
|
|
196
236
|
<span class="cline-any cline-neutral"> </span>
|
|
197
237
|
<span class="cline-any cline-neutral"> </span>
|
|
198
238
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -205,30 +245,28 @@
|
|
|
205
245
|
<span class="cline-any cline-neutral"> </span>
|
|
206
246
|
<span class="cline-any cline-neutral"> </span>
|
|
207
247
|
<span class="cline-any cline-neutral"> </span>
|
|
208
|
-
<span class="cline-any cline-yes">2x</span>
|
|
209
248
|
<span class="cline-any cline-neutral"> </span>
|
|
210
249
|
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-yes">1x</span>
|
|
211
251
|
<span class="cline-any cline-neutral"> </span>
|
|
212
252
|
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-yes">1x</span>
|
|
213
254
|
<span class="cline-any cline-neutral"> </span>
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
255
|
+
<span class="cline-any cline-yes">1x</span>
|
|
215
256
|
<span class="cline-any cline-neutral"> </span>
|
|
216
257
|
<span class="cline-any cline-neutral"> </span>
|
|
217
258
|
<span class="cline-any cline-neutral"> </span>
|
|
218
|
-
<span class="cline-any cline-yes">5x</span>
|
|
219
|
-
<span class="cline-any cline-yes">5x</span>
|
|
220
|
-
<span class="cline-any cline-yes">5x</span>
|
|
221
259
|
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-yes">
|
|
260
|
+
<span class="cline-any cline-yes">1x</span>
|
|
223
261
|
<span class="cline-any cline-neutral"> </span>
|
|
224
262
|
<span class="cline-any cline-neutral"> </span>
|
|
225
263
|
<span class="cline-any cline-neutral"> </span>
|
|
226
264
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-no"> </span>
|
|
228
265
|
<span class="cline-any cline-neutral"> </span>
|
|
229
266
|
<span class="cline-any cline-neutral"> </span>
|
|
230
267
|
<span class="cline-any cline-yes">1x</span>
|
|
231
268
|
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-no"> </span>
|
|
232
270
|
<span class="cline-any cline-neutral"> </span>
|
|
233
271
|
<span class="cline-any cline-neutral"> </span>
|
|
234
272
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -237,106 +275,125 @@
|
|
|
237
275
|
<span class="cline-any cline-neutral"> </span>
|
|
238
276
|
<span class="cline-any cline-yes">1x</span>
|
|
239
277
|
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-no"> </span>
|
|
240
279
|
<span class="cline-any cline-neutral"> </span>
|
|
241
280
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-yes">1x</span>
|
|
243
281
|
<span class="cline-any cline-neutral"> </span>
|
|
244
282
|
<span class="cline-any cline-neutral"> </span>
|
|
245
283
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-
|
|
284
|
+
<span class="cline-any cline-no"> </span>
|
|
247
285
|
<span class="cline-any cline-neutral"> </span>
|
|
248
286
|
<span class="cline-any cline-neutral"> </span>
|
|
249
287
|
<span class="cline-any cline-neutral"> </span>
|
|
250
288
|
<span class="cline-any cline-neutral"> </span>
|
|
251
289
|
<span class="cline-any cline-neutral"> </span>
|
|
252
290
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><template>
|
|
253
|
-
<
|
|
254
|
-
<div
|
|
255
|
-
v-if="node.items"
|
|
256
|
-
class="magic-editor-content-menu-item"
|
|
257
|
-
@mouseenter="setSubVisitable(true)"
|
|
258
|
-
@mouseleave="setSubVisitable(false)"
|
|
259
|
-
>
|
|
260
|
-
新增
|
|
261
|
-
</div>
|
|
262
|
-
<div v-if="node.type !== 'app'" class="magic-editor-content-menu-item" @click="() => copy(node)">复制</div>
|
|
263
|
-
<div
|
|
264
|
-
v-if="node.type !== 'app' && node.type !== 'page'"
|
|
265
|
-
class="magic-editor-content-menu-item"
|
|
266
|
-
@click="() => remove()"
|
|
267
|
-
>
|
|
268
|
-
删除
|
|
269
|
-
</div>
|
|
270
|
-
<div class="subMenu" v-show="subVisible" @mouseenter="setSubVisitable(true)" @mouseleave="setSubVisitable(false)">
|
|
271
|
-
<el-scrollbar>
|
|
272
|
-
<template v-if="node.type === 'tabs'">
|
|
273
|
-
<div
|
|
274
|
-
class="magic-editor-content-menu-item"
|
|
275
|
-
@click="
|
|
276
|
-
() =>
|
|
277
|
-
append({
|
|
278
|
-
type: 'tab-pane',
|
|
279
|
-
})
|
|
280
|
-
"
|
|
281
|
-
>
|
|
282
|
-
标签
|
|
283
|
-
</div>
|
|
284
|
-
</template>
|
|
285
|
-
<template v-else-if="node.items">
|
|
286
|
-
<div v-for="list in componentGroupList" :key="list.title">
|
|
287
|
-
<template v-for="item in list.items">
|
|
288
|
-
<div class="magic-editor-content-menu-item" v-if="item" :key="item.type" @click="() => append(item)">
|
|
289
|
-
{{ item.text }}
|
|
290
|
-
</div>
|
|
291
|
-
</template>
|
|
292
|
-
<div class="separation"></div>
|
|
293
|
-
</div>
|
|
294
|
-
</template>
|
|
295
|
-
</el-scrollbar>
|
|
296
|
-
</div>
|
|
297
|
-
</div>
|
|
291
|
+
<content-menu :menu-data="menuData" ref="menu" style="overflow: initial"></content-menu>
|
|
298
292
|
</template>
|
|
299
293
|
|
|
300
294
|
<script lang="ts">
|
|
301
|
-
import { computed, defineComponent, inject, ref } from 'vue';
|
|
295
|
+
import { computed, defineComponent, inject, markRaw, ref } from 'vue';
|
|
296
|
+
import { Delete, DocumentCopy, Files, Plus } from '@element-plus/icons';
|
|
302
297
|
|
|
303
|
-
import
|
|
298
|
+
import { NodeType } from '@tmagic/schema';
|
|
304
299
|
|
|
305
|
-
import
|
|
300
|
+
import ContentMenu from '@editor/components/ContentMenu.vue';
|
|
301
|
+
import type { ComponentGroup, MenuButton, MenuItem, Services } from '@editor/type';
|
|
306
302
|
|
|
307
303
|
export default defineComponent({
|
|
308
|
-
|
|
304
|
+
components: { ContentMenu },
|
|
309
305
|
|
|
310
306
|
setup() {
|
|
311
307
|
const services = inject<Services>('services');
|
|
312
|
-
const
|
|
308
|
+
const menu = ref<InstanceType<typeof ContentMenu>>();
|
|
313
309
|
const node = computed(() => services<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>ditorService.get('node'));
|
|
310
|
+
const isRoot = computed(() => node.value<span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >?.t</span>ype === N</span>odeType.ROOT);
|
|
311
|
+
const isPage = computed(() => node.value<span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >?.t</span>ype === N</span>odeType.PAGE);
|
|
312
|
+
const componentList = computed(<span class="fstat-no" title="function not covered" >() => <span class="cstat-no" title="statement not covered" >s</span>ervices?</span>.componentListService.getList() || []);
|
|
314
313
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
314
|
+
const createMenuItems = <span class="fstat-no" title="function not covered" >(g</span>roup: ComponentGroup): MenuButton[] =>
|
|
315
|
+
<span class="cstat-no" title="statement not covered" > group.</span>items.map(<span class="fstat-no" title="function not covered" >(c</span>omponent) => <span class="cstat-no" title="statement not covered" >({</span>
|
|
316
|
+
text: component.text,
|
|
317
|
+
type: 'button',
|
|
318
|
+
icon: component.icon,
|
|
319
|
+
handler: <span class="fstat-no" title="function not covered" >() => {</span>
|
|
320
|
+
<span class="cstat-no" title="statement not covered" > services?</span>.editorService.add({
|
|
321
|
+
name: component.text,
|
|
322
|
+
type: component.type,
|
|
323
|
+
...(component.data || {}),
|
|
324
|
+
});
|
|
325
|
+
},
|
|
326
|
+
}));
|
|
319
327
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
328
|
+
const getSubMenuData = computed<MenuButton[]>(() => {
|
|
329
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (node.value<span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >?.t</span>ype === '</span>tabs') {
|
|
330
|
+
<span class="cstat-no" title="statement not covered" > return [</span>
|
|
331
|
+
{
|
|
332
|
+
text: '标签页',
|
|
333
|
+
type: 'button',
|
|
334
|
+
icon: Files,
|
|
335
|
+
handler: <span class="fstat-no" title="function not covered" >() => {</span>
|
|
336
|
+
<span class="cstat-no" title="statement not covered" > services?</span>.editorService.add({
|
|
337
|
+
type: 'tab-pane',
|
|
338
|
+
});
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
];
|
|
342
|
+
}
|
|
343
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (node.value<span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >?.i</span>tems) {</span>
|
|
344
|
+
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
345
|
+
componentList.value.reduce(
|
|
346
|
+
<span class="fstat-no" title="function not covered" > (s</span>ubMenuData: MenuButton[], group: ComponentGroup, index) =>
|
|
347
|
+
<span class="cstat-no" title="statement not covered" > subMenuData.</span>concat(
|
|
348
|
+
createMenuItems(group),
|
|
349
|
+
index < componentList.value.length - 1
|
|
350
|
+
? [
|
|
351
|
+
{
|
|
352
|
+
type: 'divider',
|
|
353
|
+
direction: 'horizontal',
|
|
354
|
+
},
|
|
355
|
+
]
|
|
356
|
+
: [],
|
|
357
|
+
),
|
|
358
|
+
[],
|
|
359
|
+
) || []
|
|
360
|
+
);
|
|
361
|
+
}
|
|
362
|
+
return [];
|
|
363
|
+
});
|
|
329
364
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
365
|
+
return {
|
|
366
|
+
menu,
|
|
367
|
+
menuData: computed<MenuItem[]>(() => [
|
|
368
|
+
{
|
|
369
|
+
type: 'button',
|
|
370
|
+
text: '新增',
|
|
371
|
+
icon: markRaw(Plus),
|
|
372
|
+
display: () => node.value<span class="branch-1 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >?.i</span>tems,</span>
|
|
373
|
+
items: getSubMenuData.value,
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
type: 'button',
|
|
377
|
+
text: '复制',
|
|
378
|
+
icon: markRaw(DocumentCopy),
|
|
379
|
+
display: () => !isRoot.value,
|
|
380
|
+
handler: <span class="fstat-no" title="function not covered" >() => {</span>
|
|
381
|
+
<span class="cstat-no" title="statement not covered" > node.</span>value && services?.editorService.copy(node.value);
|
|
382
|
+
},
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
type: 'button',
|
|
386
|
+
text: '删除',
|
|
387
|
+
icon: markRaw(Delete),
|
|
388
|
+
display: () => !isRoot.value && !isPage.value,
|
|
389
|
+
handler: <span class="fstat-no" title="function not covered" >() => {</span>
|
|
390
|
+
<span class="cstat-no" title="statement not covered" > node.</span>value && services?.editorService.remove(node.value);
|
|
391
|
+
},
|
|
392
|
+
},
|
|
393
|
+
]),
|
|
337
394
|
|
|
338
|
-
|
|
339
|
-
|
|
395
|
+
<span class="fstat-no" title="function not covered" > show(</span>e: MouseEvent) {
|
|
396
|
+
<span class="cstat-no" title="statement not covered" > menu.</span>value?.show(e);
|
|
340
397
|
},
|
|
341
398
|
};
|
|
342
399
|
},
|
|
@@ -349,7 +406,7 @@ export default defineComponent({
|
|
|
349
406
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
350
407
|
Code coverage generated by
|
|
351
408
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
352
|
-
at Fri
|
|
409
|
+
at Fri May 13 2022 20:42:37 GMT+0800 (China Standard Time)
|
|
353
410
|
</div>
|
|
354
411
|
<script src="../../../prettify.js"></script>
|
|
355
412
|
<script>
|