@tmagic/editor 1.0.0-rc.5 → 1.0.0-rc.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/coverage/clover.xml +189 -167
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/index.html +42 -42
- package/coverage/lcov-report/src/Editor.vue.html +48 -9
- package/coverage/lcov-report/src/components/ContentMenu.vue.html +135 -36
- package/coverage/lcov-report/src/components/Icon.vue.html +1 -1
- package/coverage/lcov-report/src/components/ScrollViewer.vue.html +1 -1
- package/coverage/lcov-report/src/components/ToolButton.vue.html +1 -1
- package/coverage/lcov-report/src/components/index.html +18 -18
- package/coverage/lcov-report/src/index.html +15 -15
- 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 +15 -6
- 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 +1 -1
- package/coverage/lcov-report/src/layouts/sidebar/index.html +11 -11
- 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 +15 -6
- package/coverage/lcov-report/src/layouts/workspace/Workspace.vue.html +1 -1
- package/coverage/lcov-report/src/layouts/workspace/index.html +11 -11
- package/coverage/lcov-report/src/services/BaseService.ts.html +1 -1
- package/coverage/lcov-report/src/services/componentList.ts.html +1 -1
- package/coverage/lcov-report/src/services/editor.ts.html +3 -3
- 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 +1 -1
- package/coverage/lcov-report/src/services/props.ts.html +4 -4
- 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 +21 -9
- package/coverage/lcov-report/src/utils/index.html +12 -12
- 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 +495 -448
- package/dist/tmagic-editor.es.js +68 -28
- package/dist/tmagic-editor.es.js.map +1 -1
- package/dist/tmagic-editor.umd.js +69 -29
- package/dist/tmagic-editor.umd.js.map +1 -1
- package/dist/types/src/Editor.vue.d.ts +19 -1
- package/package.json +7 -7
- package/src/Editor.vue +14 -1
- package/src/components/ContentMenu.vue +58 -25
- package/src/layouts/sidebar/LayerMenu.vue +3 -0
- package/src/layouts/workspace/ViewerMenu.vue +3 -0
- package/src/services/editor.ts +2 -2
- package/src/services/props.ts +3 -3
|
@@ -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">58.84% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>978/1662</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">25.
|
|
33
|
+
<span class="strong">25.21% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>326/
|
|
35
|
+
<span class='fraction'>326/1293</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">52.
|
|
40
|
+
<span class="strong">52.11% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>209/401</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">61.
|
|
47
|
+
<span class="strong">61.36% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>910/1483</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,32 +80,32 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file high" data-value="src"><a href="src/index.html">src</a></td>
|
|
83
|
-
<td data-value="94.
|
|
83
|
+
<td data-value="94.36" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="94.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="94.36" class="pct high">94.36%</td>
|
|
87
|
+
<td data-value="71" class="abs high">67/71</td>
|
|
88
88
|
<td data-value="78.57" class="pct medium">78.57%</td>
|
|
89
89
|
<td data-value="14" class="abs medium">11/14</td>
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="95.
|
|
93
|
-
<td data-value="
|
|
90
|
+
<td data-value="90" class="pct high">90%</td>
|
|
91
|
+
<td data-value="30" class="abs high">27/30</td>
|
|
92
|
+
<td data-value="95.71" class="pct high">95.71%</td>
|
|
93
|
+
<td data-value="70" class="abs high">67/70</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
97
|
<td class="file medium" data-value="src/components"><a href="src/components/index.html">src/components</a></td>
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
98
|
+
<td data-value="59.85" class="pic medium">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 59%"></div><div class="cover-empty" style="width: 41%"></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="
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="
|
|
101
|
+
<td data-value="59.85" class="pct medium">59.85%</td>
|
|
102
|
+
<td data-value="142" class="abs medium">85/142</td>
|
|
103
|
+
<td data-value="36.02" class="pct low">36.02%</td>
|
|
104
|
+
<td data-value="161" class="abs low">58/161</td>
|
|
105
|
+
<td data-value="57.5" class="pct medium">57.5%</td>
|
|
106
|
+
<td data-value="40" class="abs medium">23/40</td>
|
|
107
|
+
<td data-value="66.4" class="pct medium">66.4%</td>
|
|
108
|
+
<td data-value="125" class="abs medium">83/125</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
@@ -125,32 +125,32 @@
|
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
127
127
|
<td class="file low" data-value="src/layouts/sidebar"><a href="src/layouts/sidebar/index.html">src/layouts/sidebar</a></td>
|
|
128
|
-
<td data-value="45.
|
|
128
|
+
<td data-value="45.85" class="pic low">
|
|
129
129
|
<div class="chart"><div class="cover-fill" style="width: 45%"></div><div class="cover-empty" style="width: 55%"></div></div>
|
|
130
130
|
</td>
|
|
131
|
-
<td data-value="45.
|
|
132
|
-
<td data-value="
|
|
131
|
+
<td data-value="45.85" class="pct low">45.85%</td>
|
|
132
|
+
<td data-value="181" class="abs low">83/181</td>
|
|
133
133
|
<td data-value="13.67" class="pct low">13.67%</td>
|
|
134
134
|
<td data-value="234" class="abs low">32/234</td>
|
|
135
135
|
<td data-value="34.54" class="pct low">34.54%</td>
|
|
136
136
|
<td data-value="55" class="abs low">19/55</td>
|
|
137
|
-
<td data-value="49.
|
|
138
|
-
<td data-value="
|
|
137
|
+
<td data-value="49.68" class="pct low">49.68%</td>
|
|
138
|
+
<td data-value="157" class="abs low">78/157</td>
|
|
139
139
|
</tr>
|
|
140
140
|
|
|
141
141
|
<tr>
|
|
142
142
|
<td class="file low" data-value="src/layouts/workspace"><a href="src/layouts/workspace/index.html">src/layouts/workspace</a></td>
|
|
143
|
-
<td data-value="38.
|
|
143
|
+
<td data-value="38.61" class="pic low">
|
|
144
144
|
<div class="chart"><div class="cover-fill" style="width: 38%"></div><div class="cover-empty" style="width: 62%"></div></div>
|
|
145
145
|
</td>
|
|
146
|
-
<td data-value="38.
|
|
147
|
-
<td data-value="
|
|
146
|
+
<td data-value="38.61" class="pct low">38.61%</td>
|
|
147
|
+
<td data-value="303" class="abs low">117/303</td>
|
|
148
148
|
<td data-value="12.64" class="pct low">12.64%</td>
|
|
149
149
|
<td data-value="506" class="abs low">64/506</td>
|
|
150
150
|
<td data-value="23.71" class="pct low">23.71%</td>
|
|
151
151
|
<td data-value="97" class="abs low">23/97</td>
|
|
152
|
-
<td data-value="
|
|
153
|
-
<td data-value="
|
|
152
|
+
<td data-value="40" class="pct low">40%</td>
|
|
153
|
+
<td data-value="270" class="abs low">108/270</td>
|
|
154
154
|
</tr>
|
|
155
155
|
|
|
156
156
|
<tr>
|
|
@@ -170,17 +170,17 @@
|
|
|
170
170
|
|
|
171
171
|
<tr>
|
|
172
172
|
<td class="file medium" data-value="src/utils"><a href="src/utils/index.html">src/utils</a></td>
|
|
173
|
-
<td data-value="
|
|
174
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
173
|
+
<td data-value="57.89" class="pic medium">
|
|
174
|
+
<div class="chart"><div class="cover-fill" style="width: 57%"></div><div class="cover-empty" style="width: 43%"></div></div>
|
|
175
175
|
</td>
|
|
176
|
-
<td data-value="
|
|
177
|
-
<td data-value="
|
|
176
|
+
<td data-value="57.89" class="pct medium">57.89%</td>
|
|
177
|
+
<td data-value="342" class="abs medium">198/342</td>
|
|
178
178
|
<td data-value="42.99" class="pct low">42.99%</td>
|
|
179
179
|
<td data-value="107" class="abs low">46/107</td>
|
|
180
180
|
<td data-value="55.38" class="pct medium">55.38%</td>
|
|
181
181
|
<td data-value="65" class="abs medium">36/65</td>
|
|
182
|
-
<td data-value="
|
|
183
|
-
<td data-value="
|
|
182
|
+
<td data-value="55.78" class="pct medium">55.78%</td>
|
|
183
|
+
<td data-value="294" class="abs medium">164/294</td>
|
|
184
184
|
</tr>
|
|
185
185
|
|
|
186
186
|
</tbody>
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
192
|
Code coverage generated by
|
|
193
193
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at
|
|
194
|
+
at Mon Jun 06 2022 15:27:48 GMT+0800 (China Standard Time)
|
|
195
195
|
</div>
|
|
196
196
|
<script src="prettify.js"></script>
|
|
197
197
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">93.44% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>57/61</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">88% </span>
|
|
40
|
+
<span class="strong">88.88% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>24/27</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">95% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>57/60</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -306,7 +306,20 @@
|
|
|
306
306
|
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
307
|
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
308
|
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
-
<a name='L244'></a><a href='#L244'>244</a
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
310
323
|
<span class="cline-any cline-neutral"> </span>
|
|
311
324
|
<span class="cline-any cline-neutral"> </span>
|
|
312
325
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -398,6 +411,16 @@
|
|
|
398
411
|
<span class="cline-any cline-neutral"> </span>
|
|
399
412
|
<span class="cline-any cline-neutral"> </span>
|
|
400
413
|
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-yes">1x</span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
417
|
+
<span class="cline-any cline-neutral"> </span>
|
|
418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
419
|
+
<span class="cline-any cline-yes">1x</span>
|
|
420
|
+
<span class="cline-any cline-neutral"> </span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
424
|
<span class="cline-any cline-neutral"> </span>
|
|
402
425
|
<span class="cline-any cline-yes">1x</span>
|
|
403
426
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -546,6 +569,9 @@
|
|
|
546
569
|
<span class="cline-any cline-yes">1x</span>
|
|
547
570
|
<span class="cline-any cline-neutral"> </span>
|
|
548
571
|
<span class="cline-any cline-yes">1x</span>
|
|
572
|
+
<span class="cline-any cline-yes">1x</span>
|
|
573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
574
|
+
<span class="cline-any cline-yes">1x</span>
|
|
549
575
|
<span class="cline-any cline-neutral"> </span>
|
|
550
576
|
<span class="cline-any cline-neutral"> </span>
|
|
551
577
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -607,7 +633,7 @@ import eventsService from '@editor/services/events';
|
|
|
607
633
|
import historyService from '@editor/services/history';
|
|
608
634
|
import propsService from '@editor/services/props';
|
|
609
635
|
import uiService from '@editor/services/ui';
|
|
610
|
-
import type { ComponentGroup, MenuBarData, Services, SideBarData, StageRect } from '@editor/type';
|
|
636
|
+
import type { ComponentGroup, MenuBarData, MenuItem, Services, SideBarData, StageRect } from '@editor/type';
|
|
611
637
|
|
|
612
638
|
export default defineComponent({
|
|
613
639
|
name: 'm-editor',
|
|
@@ -638,6 +664,16 @@ export default defineComponent({
|
|
|
638
664
|
sidebar: {
|
|
639
665
|
type: Object as PropType<SideBarData>,
|
|
640
666
|
},
|
|
667
|
+
|
|
668
|
+
layerContentMenu: {
|
|
669
|
+
type: Array as PropType<MenuItem[]>,
|
|
670
|
+
default: () => [],
|
|
671
|
+
},
|
|
672
|
+
|
|
673
|
+
stageContentMenu: {
|
|
674
|
+
type: Array as PropType<MenuItem[]>,
|
|
675
|
+
default: () => [],
|
|
676
|
+
},
|
|
641
677
|
|
|
642
678
|
/** 顶部工具栏配置 */
|
|
643
679
|
menu: {
|
|
@@ -787,6 +823,9 @@ export default defineComponent({
|
|
|
787
823
|
};
|
|
788
824
|
|
|
789
825
|
provide('services', services);
|
|
826
|
+
|
|
827
|
+
provide('layerContentMenu', props.layerContentMenu);
|
|
828
|
+
provide('stageContentMenu', props.stageContentMenu);
|
|
790
829
|
|
|
791
830
|
return services;
|
|
792
831
|
},
|
|
@@ -799,7 +838,7 @@ export default defineComponent({
|
|
|
799
838
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
800
839
|
Code coverage generated by
|
|
801
840
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
802
|
-
at
|
|
841
|
+
at Mon Jun 06 2022 15:27:48 GMT+0800 (China Standard Time)
|
|
803
842
|
</div>
|
|
804
843
|
<script src="../prettify.js"></script>
|
|
805
844
|
<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">34.04% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>16/47</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/40</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">20% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>2/
|
|
42
|
+
<span class='fraction'>2/10</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">36.36% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>16/44</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -170,7 +170,46 @@
|
|
|
170
170
|
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
171
|
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
172
|
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
-
<a name='L108'></a><a href='#L108'>108</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>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
208
|
+
<span class="cline-any cline-neutral"> </span>
|
|
209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
174
213
|
<span class="cline-any cline-neutral"> </span>
|
|
175
214
|
<span class="cline-any cline-neutral"> </span>
|
|
176
215
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -206,6 +245,13 @@
|
|
|
206
245
|
<span class="cline-any cline-neutral"> </span>
|
|
207
246
|
<span class="cline-any cline-neutral"> </span>
|
|
208
247
|
<span class="cline-any cline-neutral"> </span>
|
|
248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
254
|
+
<span class="cline-any cline-yes">3x</span>
|
|
209
255
|
<span class="cline-any cline-yes">3x</span>
|
|
210
256
|
<span class="cline-any cline-yes">3x</span>
|
|
211
257
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -218,21 +264,37 @@
|
|
|
218
264
|
<span class="cline-any cline-yes">3x</span>
|
|
219
265
|
<span class="cline-any cline-no"> </span>
|
|
220
266
|
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-no"> </span>
|
|
268
|
+
<span class="cline-any cline-no"> </span>
|
|
221
269
|
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-
|
|
223
|
-
<span class="cline-any cline-yes">3x</span>
|
|
270
|
+
<span class="cline-any cline-no"> </span>
|
|
224
271
|
<span class="cline-any cline-neutral"> </span>
|
|
225
272
|
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-yes">3x</span>
|
|
274
|
+
<span class="cline-any cline-no"> </span>
|
|
275
|
+
<span class="cline-any cline-no"> </span>
|
|
276
|
+
<span class="cline-any cline-no"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
226
278
|
<span class="cline-any cline-no"> </span>
|
|
227
279
|
<span class="cline-any cline-no"> </span>
|
|
228
280
|
<span class="cline-any cline-neutral"> </span>
|
|
229
281
|
<span class="cline-any cline-no"> </span>
|
|
230
282
|
<span class="cline-any cline-neutral"> </span>
|
|
231
283
|
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-yes">3x</span>
|
|
285
|
+
<span class="cline-any cline-yes">3x</span>
|
|
232
286
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
+
<span class="cline-any cline-yes">3x</span>
|
|
233
288
|
<span class="cline-any cline-neutral"> </span>
|
|
234
289
|
<span class="cline-any cline-neutral"> </span>
|
|
235
290
|
<span class="cline-any cline-yes">3x</span>
|
|
291
|
+
<span class="cline-any cline-no"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-no"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-yes">3x</span>
|
|
297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
298
|
<span class="cline-any cline-neutral"> </span>
|
|
237
299
|
<span class="cline-any cline-neutral"> </span>
|
|
238
300
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -243,6 +305,7 @@
|
|
|
243
305
|
<span class="cline-any cline-neutral"> </span>
|
|
244
306
|
<span class="cline-any cline-neutral"> </span>
|
|
245
307
|
<span class="cline-any cline-no"> </span>
|
|
308
|
+
<span class="cline-any cline-no"> </span>
|
|
246
309
|
<span class="cline-any cline-neutral"> </span>
|
|
247
310
|
<span class="cline-any cline-no"> </span>
|
|
248
311
|
<span class="cline-any cline-no"> </span>
|
|
@@ -257,6 +320,9 @@
|
|
|
257
320
|
<span class="cline-any cline-neutral"> </span>
|
|
258
321
|
<span class="cline-any cline-neutral"> </span>
|
|
259
322
|
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-no"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
260
326
|
<span class="cline-any cline-neutral"> </span>
|
|
261
327
|
<span class="cline-any cline-neutral"> </span>
|
|
262
328
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -290,13 +356,19 @@
|
|
|
290
356
|
></tool-button>
|
|
291
357
|
</div>
|
|
292
358
|
<teleport to="body">
|
|
293
|
-
<content-menu
|
|
359
|
+
<content-menu
|
|
360
|
+
class="sub-menu"
|
|
361
|
+
ref="subMenu"
|
|
362
|
+
:menu-data="subMenuData"
|
|
363
|
+
:is-sub-menu="true"
|
|
364
|
+
@hide="hide"
|
|
365
|
+
></content-menu>
|
|
294
366
|
</teleport>
|
|
295
367
|
</div>
|
|
296
368
|
</template>
|
|
297
369
|
|
|
298
370
|
<script lang="ts">
|
|
299
|
-
import { defineComponent, nextTick, onMounted, PropType, ref } from 'vue';
|
|
371
|
+
import { defineComponent, nextTick, onMounted, onUnmounted, PropType, ref } from 'vue';
|
|
300
372
|
|
|
301
373
|
import { MenuButton, MenuItem } from '@editor/type';
|
|
302
374
|
|
|
@@ -310,9 +382,16 @@ export default defineComponent({
|
|
|
310
382
|
type: Array as PropType<MenuItem[]>,
|
|
311
383
|
default: <span class="fstat-no" title="function not covered" >() => <span class="cstat-no" title="statement not covered" >[</span>],</span>
|
|
312
384
|
},
|
|
385
|
+
|
|
386
|
+
isSubMenu: {
|
|
387
|
+
type: Boolean,
|
|
388
|
+
default: false,
|
|
389
|
+
},
|
|
313
390
|
},
|
|
314
391
|
|
|
315
|
-
|
|
392
|
+
emits: ['hide', 'show'],
|
|
393
|
+
|
|
394
|
+
setup(props, { emit }) {
|
|
316
395
|
const menu = ref<HTMLDivElement>();
|
|
317
396
|
const subMenu = ref<any>();
|
|
318
397
|
const visible = ref(false);
|
|
@@ -323,20 +402,35 @@ export default defineComponent({
|
|
|
323
402
|
});
|
|
324
403
|
|
|
325
404
|
const hide = <span class="fstat-no" title="function not covered" >() => {</span>
|
|
405
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!visible.value) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
406
|
+
|
|
326
407
|
<span class="cstat-no" title="statement not covered" > visible.</span>value = false;
|
|
408
|
+
<span class="cstat-no" title="statement not covered" > subMenu.</span>value?.hide();
|
|
409
|
+
|
|
410
|
+
<span class="cstat-no" title="statement not covered" > emit(</span>'hide');
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
const hideHandler = <span class="fstat-no" title="function not covered" >(e</span>: MouseEvent) => {
|
|
414
|
+
const target = <span class="cstat-no" title="statement not covered" >e.target as HTMLElement | undefined;</span>
|
|
415
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!visible.value || !target) {</span>
|
|
416
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
417
|
+
}
|
|
418
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (menu.value?.contains(target) || subMenu.value?.$el?.contains(target)) {</span>
|
|
419
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
420
|
+
}
|
|
421
|
+
<span class="cstat-no" title="statement not covered" > hide();</span>
|
|
327
422
|
};
|
|
328
423
|
|
|
329
424
|
onMounted(() => {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
<span class="cstat-no" title="statement not covered" >
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
);
|
|
425
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (props.isSubMenu) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
426
|
+
|
|
427
|
+
globalThis.addEventListener('mousedown', hideHandler, true);
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
onUnmounted(<span class="fstat-no" title="function not covered" >() => {</span>
|
|
431
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (props.isSubMenu) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
432
|
+
|
|
433
|
+
<span class="cstat-no" title="statement not covered" > globalThis.</span>removeEventListener('mousedown', hideHandler, true);
|
|
340
434
|
});
|
|
341
435
|
|
|
342
436
|
return {
|
|
@@ -349,21 +443,26 @@ export default defineComponent({
|
|
|
349
443
|
hide,
|
|
350
444
|
|
|
351
445
|
<span class="fstat-no" title="function not covered" > show(</span>e: MouseEvent) {
|
|
352
|
-
|
|
446
|
+
// 加settimeout是以为,如果菜单中的按钮监听的是mouseup,那么菜单显示出来时鼠标如果正好在菜单上就会马上触发按钮的mouseup
|
|
447
|
+
<span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" ></span>() => {</span>
|
|
448
|
+
<span class="cstat-no" title="statement not covered" > visible.</span>value = true;
|
|
353
449
|
|
|
354
|
-
<span class="cstat-no" title="statement not covered" >
|
|
355
|
-
|
|
450
|
+
<span class="cstat-no" title="statement not covered" > nextTick(<span class="fstat-no" title="function not covered" >(</span>) => {</span>
|
|
451
|
+
const menuHeight = <span class="cstat-no" title="statement not covered" >menu.value?.clientHeight || 0;</span>
|
|
356
452
|
|
|
357
|
-
|
|
358
|
-
<span class="cstat-no" title="statement not covered" >
|
|
359
|
-
<span class="cstat-no" title="statement not covered" >
|
|
360
|
-
|
|
453
|
+
let top = <span class="cstat-no" title="statement not covered" >e.clientY;</span>
|
|
454
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (menuHeight + e.clientY > document.body.clientHeight) {</span>
|
|
455
|
+
<span class="cstat-no" title="statement not covered" > top </span>= document.body.clientHeight - menuHeight;
|
|
456
|
+
}
|
|
361
457
|
|
|
362
|
-
<span class="cstat-no" title="statement not covered" >
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
458
|
+
<span class="cstat-no" title="statement not covered" > menuStyle.</span>value = {
|
|
459
|
+
top: `${top}px`,
|
|
460
|
+
left: `${e.clientX}px`,
|
|
461
|
+
};
|
|
462
|
+
|
|
463
|
+
<span class="cstat-no" title="statement not covered" > emit(</span>'show');
|
|
464
|
+
});
|
|
465
|
+
}, 300);
|
|
367
466
|
},
|
|
368
467
|
|
|
369
468
|
<span class="fstat-no" title="function not covered" > showSubMenu(</span>item: MenuItem) {
|
|
@@ -391,7 +490,7 @@ export default defineComponent({
|
|
|
391
490
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
392
491
|
Code coverage generated by
|
|
393
492
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
394
|
-
at
|
|
493
|
+
at Mon Jun 06 2022 15:27:48 GMT+0800 (China Standard Time)
|
|
395
494
|
</div>
|
|
396
495
|
<script src="../../prettify.js"></script>
|
|
397
496
|
<script>
|
|
@@ -157,7 +157,7 @@ export default defineComponent({
|
|
|
157
157
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
158
158
|
Code coverage generated by
|
|
159
159
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
160
|
-
at
|
|
160
|
+
at Mon Jun 06 2022 15:27:48 GMT+0800 (China Standard Time)
|
|
161
161
|
</div>
|
|
162
162
|
<script src="../../prettify.js"></script>
|
|
163
163
|
<script>
|
|
@@ -268,7 +268,7 @@ export default defineComponent({
|
|
|
268
268
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
269
269
|
Code coverage generated by
|
|
270
270
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
271
|
-
at
|
|
271
|
+
at Mon Jun 06 2022 15:27:48 GMT+0800 (China Standard Time)
|
|
272
272
|
</div>
|
|
273
273
|
<script src="../../prettify.js"></script>
|
|
274
274
|
<script>
|
|
@@ -757,7 +757,7 @@ export default defineComponent({
|
|
|
757
757
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
758
758
|
Code coverage generated by
|
|
759
759
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
760
|
-
at
|
|
760
|
+
at Mon Jun 06 2022 15:27:48 GMT+0800 (China Standard Time)
|
|
761
761
|
</div>
|
|
762
762
|
<script src="../../prettify.js"></script>
|
|
763
763
|
<script>
|