@peter.naydenov/cuts 1.6.0 → 2.0.1
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/Changelog.md +9 -1
- package/Migration.guide.md +93 -0
- package/README.md +52 -8
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +131 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/src/findInstructions.js.html +352 -0
- package/coverage/lcov-report/src/index.html +146 -0
- package/coverage/lcov-report/src/main.js.html +610 -0
- package/coverage/lcov-report/src/methods/hide.js.html +244 -0
- package/coverage/lcov-report/src/methods/index.html +206 -0
- package/coverage/lcov-report/src/methods/jump.js.html +148 -0
- package/coverage/lcov-report/src/methods/jumpBack.js.html +157 -0
- package/coverage/lcov-report/src/methods/jumpsReset.js.html +133 -0
- package/coverage/lcov-report/src/methods/listShortcuts.js.html +148 -0
- package/coverage/lcov-report/src/methods/setScenes.js.html +313 -0
- package/coverage/lcov-report/src/methods/show.js.html +466 -0
- package/coverage/lcov-report/src/setInstruction.js.html +157 -0
- package/coverage/lcov.info +461 -0
- package/cuts.png +0 -0
- package/cypress/support/component-index.html +11 -0
- package/dist/cuts.cjs +1 -1
- package/dist/cuts.esm.mjs +1 -1
- package/dist/cuts.umd.js +1 -1
- package/package.json +15 -15
- package/src/main.js +6 -4
- package/test/01-general.cy.js +348 -0
- package/test/blue.vue +13 -0
- package/test/dummy.vue +34 -0
- package/test/gray.vue +12 -0
- package/test/red.vue +11 -0
- package/tsconfig.json +14 -10
- package/types/main.d.ts +5 -5
- package/types/main.d.ts.map +1 -1
- package/types/methods/jumpBack.d.ts +1 -1
- package/types/methods/jumpBack.d.ts.map +1 -1
- package/types/methods/setScenes.d.ts +3 -3
- package/types/methods/setScenes.d.ts.map +1 -1
- package/types/methods/show.d.ts +1 -1
- package/types/methods/show.d.ts.map +1 -1
- package/types/src/findInstructions.d.ts +12 -0
- package/types/src/findInstructions.d.ts.map +1 -0
- package/types/src/main.d.ts +31 -0
- package/types/src/main.d.ts.map +1 -0
- package/types/src/methods/hide.d.ts +3 -0
- package/types/src/methods/hide.d.ts.map +1 -0
- package/types/src/methods/jump.d.ts +5 -0
- package/types/src/methods/jump.d.ts.map +1 -0
- package/types/src/methods/jumpBack.d.ts +5 -0
- package/types/src/methods/jumpBack.d.ts.map +1 -0
- package/types/src/methods/jumpsReset.d.ts +3 -0
- package/types/src/methods/jumpsReset.d.ts.map +1 -0
- package/types/src/methods/listShortcuts.d.ts +3 -0
- package/types/src/methods/listShortcuts.d.ts.map +1 -0
- package/types/src/methods/setScenes.d.ts +69 -0
- package/types/src/methods/setScenes.d.ts.map +1 -0
- package/types/src/methods/show.d.ts +8 -0
- package/types/src/methods/show.d.ts.map +1 -0
- package/types/src/setInstruction.d.ts +3 -0
- package/types/src/setInstruction.d.ts.map +1 -0
- package/test-vitest/01-findPosition.test.js +0 -119
- package/test-vitest/02-cuts.test.js +0 -412
|
@@ -0,0 +1,610 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/main.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> main.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">85% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>34/40</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">80% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>4/5</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">53.84% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>7/13</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>30/30</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</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>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</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>
|
|
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>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a></td><td class="line-coverage quiet"><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>
|
|
245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
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-neutral"> </span>
|
|
255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
276
|
+
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
280
|
+
<span class="cline-any cline-neutral"> </span>
|
|
281
|
+
<span class="cline-any cline-yes">14x</span>
|
|
282
|
+
<span class="cline-any cline-yes">14x</span>
|
|
283
|
+
<span class="cline-any cline-yes">14x</span>
|
|
284
|
+
<span class="cline-any cline-yes">4x</span>
|
|
285
|
+
<span class="cline-any cline-yes">4x</span>
|
|
286
|
+
<span class="cline-any cline-yes">4x</span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-yes">14x</span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-yes">14x</span>
|
|
298
|
+
<span class="cline-any cline-yes">14x</span>
|
|
299
|
+
<span class="cline-any cline-yes">14x</span>
|
|
300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
310
|
+
<span class="cline-any cline-yes">14x</span>
|
|
311
|
+
<span class="cline-any cline-yes">14x</span>
|
|
312
|
+
<span class="cline-any cline-yes">14x</span>
|
|
313
|
+
<span class="cline-any cline-yes">14x</span>
|
|
314
|
+
<span class="cline-any cline-yes">14x</span>
|
|
315
|
+
<span class="cline-any cline-yes">14x</span>
|
|
316
|
+
<span class="cline-any cline-yes">14x</span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-yes">14x</span>
|
|
334
|
+
<span class="cline-any cline-yes">2x</span>
|
|
335
|
+
<span class="cline-any cline-yes">1x</span>
|
|
336
|
+
<span class="cline-any cline-yes">2x</span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-yes">14x</span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-yes">14x</span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
359
|
+
<span class="cline-any cline-yes">14x</span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-yes">14x</span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-yes">14x</span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">14x</span>
|
|
384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-yes">18x</span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
402
|
+
<span class="cline-any cline-neutral"> </span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
|
+
<span class="cline-any cline-yes">14x</span>
|
|
408
|
+
<span class="cline-any cline-yes">14x</span>
|
|
409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
416
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict'
|
|
417
|
+
/**
|
|
418
|
+
* Cuts
|
|
419
|
+
* ===============
|
|
420
|
+
*
|
|
421
|
+
* SPA Scene manager.
|
|
422
|
+
*
|
|
423
|
+
* History notes:
|
|
424
|
+
* - Started as @peter.naydenov/screen-writer on gitHub for the first time on 2023-11-24;
|
|
425
|
+
* - Version 2.0.0 of screen-writer. Works with shortcuts@3.0.1. Published on March 6th, 2024;
|
|
426
|
+
* - Version 2.0.0 of cuts. Works with shortcuts@4.0.0. Published on November 9th, 2025;
|
|
427
|
+
* - Rename to @peter.naydenov/cuts
|
|
428
|
+
* Changes in documentation and some methods were renamed accordingly.
|
|
429
|
+
* Version 1.0.0.
|
|
430
|
+
* Published for first time as package '@peter.naydenov/cuts' on May 8th, 2024;
|
|
431
|
+
* Extend 'scene' with optional 'afterShow' and 'beforeHide' methods. December 21st, 2024;
|
|
432
|
+
* - Shortcuts@3.2.x. Plugin 'form' is available. August 15th, 2025;
|
|
433
|
+
* - Shortcuts@4.0.0. New plugins 'scroll' and 'hover' are available. November 9th, 2025;
|
|
434
|
+
*/
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
import { shortcuts } from '@peter.naydenov/shortcuts' // Docs : https://github.com/PeterNaydenov/shortcuts
|
|
438
|
+
import askForPromise from 'ask-for-promise' // Docs : https://github.com/PeterNaydenov/ask-for-promise
|
|
439
|
+
import createLog from '@peter.naydenov/log' // Docs : https://github.com/PeterNaydenov/log
|
|
440
|
+
|
|
441
|
+
import findInstructions from './findInstructions.js'
|
|
442
|
+
import setInstruction from './setInstruction.js'
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
import hide from './methods/hide.js'
|
|
446
|
+
import listShortcuts from './methods/listShortcuts.js'
|
|
447
|
+
import setScenes from './methods/setScenes.js'
|
|
448
|
+
import show from './methods/show.js'
|
|
449
|
+
import jump from './methods/jump.js'
|
|
450
|
+
import jumpBack from './methods/jumpBack.js'
|
|
451
|
+
import jumpsReset from './methods/jumpsReset.js'
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
function main ( cfg= {logLevel:0} ) {
|
|
455
|
+
const
|
|
456
|
+
shortcutMngr = shortcuts ({ errorEventName: '@app-error' })
|
|
457
|
+
, logLevel = cfg.logLevel || 1
|
|
458
|
+
, log = createLog ({ level:logLevel }, (arg) => {
|
|
459
|
+
const { type } = arg;
|
|
460
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if ( type === 'error' ) {
|
|
461
|
+
shortcutMngr.emit ( '@app-error', arg )
|
|
462
|
+
}
|
|
463
|
+
})
|
|
464
|
+
, state = {
|
|
465
|
+
currentScene : null // Current scene name;
|
|
466
|
+
, currentParents : null // Current scene parents if any;
|
|
467
|
+
, sceneNames : new Set () // Set with all loaded scenes;
|
|
468
|
+
, scenes : {} // Collection of all scenes;
|
|
469
|
+
, opened : false // Flag to indicate if the scene manager is opened
|
|
470
|
+
, jumpStack : [] // Stack of jump instructions
|
|
471
|
+
}
|
|
472
|
+
, API = {}
|
|
473
|
+
, inAPI = {}
|
|
474
|
+
, dependencies = {
|
|
475
|
+
shortcutMngr
|
|
476
|
+
, API
|
|
477
|
+
, inAPI
|
|
478
|
+
, findInstructions
|
|
479
|
+
, askForPromise
|
|
480
|
+
, setInstruction : setInstruction ({ askForPromise, deps: shortcutMngr.getDependencies })
|
|
481
|
+
, log
|
|
482
|
+
}
|
|
483
|
+
;
|
|
484
|
+
|
|
485
|
+
API.hide = hide ( dependencies, state )
|
|
486
|
+
API.listShortcuts = listShortcuts ( dependencies, state )
|
|
487
|
+
API.setScenes = setScenes ( dependencies, state )
|
|
488
|
+
API.show = show ( dependencies, state )
|
|
489
|
+
API.jump = jump ( state, API.show )
|
|
490
|
+
API.jumpBack = jumpBack ( state, API.show )
|
|
491
|
+
API.jumpsReset = jumpsReset ( state )
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* @typedef {'Key'|'Click'|'Form'|'Hover'|'Scroll' } pluginNames
|
|
495
|
+
* @description List of possible plugin names: 'Key', 'Click', 'Form', 'Hover', 'Scroll'
|
|
496
|
+
*
|
|
497
|
+
* Load a needed shortcut plugins - 'Key', 'Click', 'Form', 'Hover', 'Scroll' and so on.
|
|
498
|
+
* It's a async function. Don't forget to 'await' it.
|
|
499
|
+
* @function loadPlugins
|
|
500
|
+
* @param {Array.<pluginNames>} plugins - list of plugins to load
|
|
501
|
+
* @returns {Promise.<function[]>} - loaded plugins in a sequence
|
|
502
|
+
*
|
|
503
|
+
* @example
|
|
504
|
+
* // script is instance of cuts
|
|
505
|
+
* await script.loadPlugins ( ['Key', 'Click'] )
|
|
506
|
+
* .then ( plugins => plugins.forEach ( plugin => script.enablePlugin ( plugin ) ) )
|
|
507
|
+
*/
|
|
508
|
+
API.loadPlugins = async function loadPlugins ( plugins ) {
|
|
509
|
+
const pl = plugins.map ( name => `plugin${name}`);
|
|
510
|
+
const module = await import ( '@peter.naydenov/shortcuts')
|
|
511
|
+
return pl.map ( name => module[name] )
|
|
512
|
+
} // loadPlugins func.
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* @function setDependencies
|
|
516
|
+
* @description Set dependencies for the Scenes
|
|
517
|
+
* @param {*} deps - dependencies objects
|
|
518
|
+
* @returns void
|
|
519
|
+
*/
|
|
520
|
+
API.setDependencies = <span class="fstat-no" title="function not covered" >deps </span> => <span class="cstat-no" title="statement not covered" >shortcutMngr.setDependencies ( deps )</span>
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* @function getDependencies
|
|
524
|
+
* @description Get dependencies for the Scenes
|
|
525
|
+
* @returns {*} - dependencies objects
|
|
526
|
+
*/
|
|
527
|
+
API.getDependencies = <span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >shortcutMngr.getDependencies ()</span>
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* @function setNote
|
|
531
|
+
* @param {string} note - note, provided to action functions
|
|
532
|
+
* @returns void
|
|
533
|
+
*/
|
|
534
|
+
API.setNote = <span class="fstat-no" title="function not covered" >note </span>=> <span class="cstat-no" title="statement not covered" >shortcutMngr.setNote ( note )</span>
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* @function listScenes
|
|
538
|
+
* @description List all loaded Scene names
|
|
539
|
+
* @returns {Array.<string>} - list of scene names
|
|
540
|
+
*/
|
|
541
|
+
API.listScenes = () => [ ...state.sceneNames ]
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* @function enablePlugin
|
|
545
|
+
* @description Enable a shortcut plugin
|
|
546
|
+
* @param {function} plugin - plugin library
|
|
547
|
+
* @param {*} [options] - plugin options
|
|
548
|
+
* @returns void
|
|
549
|
+
*/
|
|
550
|
+
API.enablePlugin = <span class="fstat-no" title="function not covered" >(p</span>lugin,options) => <span class="cstat-no" title="statement not covered" >shortcutMngr.enablePlugin ( plugin, options )</span>
|
|
551
|
+
|
|
552
|
+
/**
|
|
553
|
+
* Disable a shortcut plugin
|
|
554
|
+
* @function disablePlugin
|
|
555
|
+
* @param {string} pluginName - plugin name
|
|
556
|
+
* @returns void
|
|
557
|
+
*/
|
|
558
|
+
API.disablePlugin = <span class="fstat-no" title="function not covered" >( </span>pluginName ) => <span class="cstat-no" title="statement not covered" >shortcutMngr.disablePlugin ( pluginName )</span>
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* Get the current state of the application
|
|
562
|
+
* @function getState
|
|
563
|
+
* @returns {Object} with properties:
|
|
564
|
+
* - scene: current scene name
|
|
565
|
+
* - parents: current parent scene names
|
|
566
|
+
* - opened: boolean indicating if the application is opened
|
|
567
|
+
*/
|
|
568
|
+
API.getState = () => ({
|
|
569
|
+
scene : state.currentScene
|
|
570
|
+
, parents : state.currentParents
|
|
571
|
+
, opened : state.opened
|
|
572
|
+
})
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* @function emit
|
|
577
|
+
* @description Emit an event
|
|
578
|
+
* @param {string} event - event name
|
|
579
|
+
* @param {...*} args - Extra data to pass to the listeners
|
|
580
|
+
* @returns void
|
|
581
|
+
*/
|
|
582
|
+
API.emit = <span class="fstat-no" title="function not covered" >( </span>event, ...args ) => <span class="cstat-no" title="statement not covered" >shortcutMngr.emit ( event, ...args )</span>
|
|
583
|
+
return API
|
|
584
|
+
} // main func.
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
export default main
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
</pre></td></tr></table></pre>
|
|
592
|
+
|
|
593
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
594
|
+
</div><!-- /wrapper -->
|
|
595
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
596
|
+
Code coverage generated by
|
|
597
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
598
|
+
at 2025-11-09T11:05:03.156Z
|
|
599
|
+
</div>
|
|
600
|
+
<script src="../prettify.js"></script>
|
|
601
|
+
<script>
|
|
602
|
+
window.onload = function () {
|
|
603
|
+
prettyPrint();
|
|
604
|
+
};
|
|
605
|
+
</script>
|
|
606
|
+
<script src="../sorter.js"></script>
|
|
607
|
+
<script src="../block-navigation.js"></script>
|
|
608
|
+
</body>
|
|
609
|
+
</html>
|
|
610
|
+
|