@peter.naydenov/cuts 2.1.3 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Changelog.md +12 -0
- package/coverage/lcov-report/index.html +29 -29
- package/coverage/lcov-report/src/findInstructions.js.html +29 -29
- package/coverage/lcov-report/src/index.html +23 -23
- package/coverage/lcov-report/src/main.js.html +64 -43
- package/coverage/lcov-report/src/methods/hide.js.html +106 -67
- package/coverage/lcov-report/src/methods/index.html +31 -31
- package/coverage/lcov-report/src/methods/jump.js.html +26 -11
- package/coverage/lcov-report/src/methods/jumpBack.js.html +5 -5
- package/coverage/lcov-report/src/methods/jumpsReset.js.html +2 -2
- package/coverage/lcov-report/src/methods/listShortcuts.js.html +5 -5
- package/coverage/lcov-report/src/methods/setScenes.js.html +16 -16
- package/coverage/lcov-report/src/methods/show.js.html +124 -67
- package/coverage/lcov-report/src/setInstruction.js.html +7 -7
- package/coverage/lcov.info +327 -306
- package/package.json +1 -1
- package/src/methods/hide.js +37 -37
- package/src/methods/jump.js +7 -2
- package/src/methods/setScenes.js +1 -1
- package/src/methods/show.js +12 -2
- package/test/02-cuts.test.js +270 -1
- package/vitest.config.js +1 -1
|
@@ -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">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>30/30</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>9/9</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>29/29</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 high'></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>
|
|
@@ -116,7 +116,20 @@
|
|
|
116
116
|
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
117
|
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
118
|
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
-
<a name='L54'></a><a href='#L54'>54</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
120
133
|
<span class="cline-any cline-neutral"> </span>
|
|
121
134
|
<span class="cline-any cline-neutral"> </span>
|
|
122
135
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -127,42 +140,55 @@
|
|
|
127
140
|
<span class="cline-any cline-neutral"> </span>
|
|
128
141
|
<span class="cline-any cline-neutral"> </span>
|
|
129
142
|
<span class="cline-any cline-neutral"> </span>
|
|
130
|
-
<span class="cline-any cline-yes">
|
|
143
|
+
<span class="cline-any cline-yes">33x</span>
|
|
131
144
|
<span class="cline-any cline-neutral"> </span>
|
|
132
|
-
<span class="cline-any cline-
|
|
133
|
-
<span class="cline-any cline-
|
|
134
|
-
<span class="cline-any cline-
|
|
135
|
-
<span class="cline-any cline-
|
|
136
|
-
<span class="cline-any cline-
|
|
145
|
+
<span class="cline-any cline-yes">7x</span>
|
|
146
|
+
<span class="cline-any cline-yes">7x</span>
|
|
147
|
+
<span class="cline-any cline-yes">7x</span>
|
|
148
|
+
<span class="cline-any cline-yes">7x</span>
|
|
149
|
+
<span class="cline-any cline-yes">7x</span>
|
|
137
150
|
<span class="cline-any cline-neutral"> </span>
|
|
138
151
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
+
<span class="cline-any cline-yes">7x</span>
|
|
153
|
+
<span class="cline-any cline-yes">1x</span>
|
|
154
|
+
<span class="cline-any cline-yes">1x</span>
|
|
139
155
|
<span class="cline-any cline-neutral"> </span>
|
|
140
|
-
<span class="cline-any cline-
|
|
141
|
-
<span class="cline-any cline-no"> </span>
|
|
156
|
+
<span class="cline-any cline-yes">6x</span>
|
|
142
157
|
<span class="cline-any cline-neutral"> </span>
|
|
143
|
-
<span class="cline-any cline-
|
|
158
|
+
<span class="cline-any cline-yes">7x</span>
|
|
159
|
+
<span class="cline-any cline-yes">7x</span>
|
|
144
160
|
<span class="cline-any cline-neutral"> </span>
|
|
145
|
-
<span class="cline-any cline-
|
|
146
|
-
<span class="cline-any cline-
|
|
147
|
-
<span class="cline-any cline-no"> </span>
|
|
148
|
-
<span class="cline-any cline-no"> </span>
|
|
149
|
-
<span class="cline-any cline-no"> </span>
|
|
161
|
+
<span class="cline-any cline-yes">1x</span>
|
|
162
|
+
<span class="cline-any cline-yes">1x</span>
|
|
150
163
|
<span class="cline-any cline-neutral"> </span>
|
|
151
164
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-no"> </span>
|
|
153
|
-
<span class="cline-any cline-no"> </span>
|
|
154
|
-
<span class="cline-any cline-no"> </span>
|
|
155
|
-
<span class="cline-any cline-no"> </span>
|
|
156
|
-
<span class="cline-any cline-no"> </span>
|
|
157
165
|
<span class="cline-any cline-neutral"> </span>
|
|
166
|
+
<span class="cline-any cline-yes">6x</span>
|
|
158
167
|
<span class="cline-any cline-neutral"> </span>
|
|
159
|
-
<span class="cline-any cline-no"> </span>
|
|
160
|
-
<span class="cline-any cline-no"> </span>
|
|
161
|
-
<span class="cline-any cline-no"> </span>
|
|
162
|
-
<span class="cline-any cline-no"> </span>
|
|
163
168
|
<span class="cline-any cline-neutral"> </span>
|
|
164
|
-
<span class="cline-any cline-no"> </span>
|
|
165
169
|
<span class="cline-any cline-neutral"> </span>
|
|
170
|
+
<span class="cline-any cline-yes">6x</span>
|
|
171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-yes">6x</span>
|
|
174
|
+
<span class="cline-any cline-yes">6x</span>
|
|
175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
|
+
<span class="cline-any cline-yes">6x</span>
|
|
177
|
+
<span class="cline-any cline-yes">7x</span>
|
|
178
|
+
<span class="cline-any cline-yes">3x</span>
|
|
179
|
+
<span class="cline-any cline-yes">3x</span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-yes">6x</span>
|
|
183
|
+
<span class="cline-any cline-yes">7x</span>
|
|
184
|
+
<span class="cline-any cline-neutral"> </span>
|
|
185
|
+
<span class="cline-any cline-yes">7x</span>
|
|
186
|
+
<span class="cline-any cline-yes">7x</span>
|
|
187
|
+
<span class="cline-any cline-yes">6x</span>
|
|
188
|
+
<span class="cline-any cline-yes">6x</span>
|
|
189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
190
|
+
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-yes">7x</span>
|
|
166
192
|
<span class="cline-any cline-neutral"> </span>
|
|
167
193
|
<span class="cline-any cline-neutral"> </span>
|
|
168
194
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -180,48 +206,61 @@ function hide ( dependencies, state ) {
|
|
|
180
206
|
* @param {number|string} endSteps - number of steps to end or '*' to end all scenes to the root
|
|
181
207
|
* @returns {Promise} - promise that resolves when the process 'end' is completed
|
|
182
208
|
*/
|
|
183
|
-
return function
|
|
209
|
+
return function hide ( endSteps=1 ) {
|
|
184
210
|
const
|
|
185
|
-
{ askForPromise, shortcutMngr, setInstruction } =
|
|
186
|
-
, { currentScene,
|
|
187
|
-
, hideTask =
|
|
188
|
-
,
|
|
189
|
-
,
|
|
211
|
+
{ askForPromise, shortcutMngr, setInstruction } = dependencies
|
|
212
|
+
, { currentScene, scenes } = state
|
|
213
|
+
, hideTask = askForPromise ()
|
|
214
|
+
, unloadTask = askForPromise ()
|
|
215
|
+
, hasBeforeHide = typeof scenes[currentScene].beforeHide === 'function'
|
|
190
216
|
;
|
|
191
|
-
let el;
|
|
192
|
-
|
|
193
|
-
<span class="cstat-no" title="statement not covered" > shortcutMngr.pause () </span> // Stop all shortcuts
|
|
194
|
-
<span class="cstat-no" title="statement not covered" > instructions.push ( setInstruction ( scenes[currentScene].hide )) </span> // Set instruction to hide current scene
|
|
195
217
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
<span class="cstat-no" title="statement not covered" > [...currentParents].reverse().forEach ( <span class="fstat-no" title="function not covered" >name </span>=> {</span>
|
|
200
|
-
<span class="cstat-no" title="statement not covered" > el = state.currentParents.at ( -1 )</span>
|
|
201
|
-
<span class="cstat-no" title="statement not covered" > state.currentScene = el</span>
|
|
202
|
-
<span class="cstat-no" title="statement not covered" > instructions.push ( setInstruction ( scenes[name].hide)) </span>
|
|
203
|
-
})
|
|
204
|
-
}
|
|
205
|
-
<span class="cstat-no" title="statement not covered" > if ( hasParents && ![ '*', 1].includes(endSteps) ) {</span>
|
|
206
|
-
<span class="cstat-no" title="statement not covered" > currentParents.slice ( `-${endSteps-1}` ).reverse().map ( <span class="fstat-no" title="function not covered" >name </span>=> {</span>
|
|
207
|
-
<span class="cstat-no" title="statement not covered" > el = state.currentParents.at ( -1 )</span>
|
|
208
|
-
<span class="cstat-no" title="statement not covered" > state.currentScene = el</span>
|
|
209
|
-
<span class="cstat-no" title="statement not covered" > instructions.push ( setInstruction (scenes[name].hide))</span>
|
|
210
|
-
})
|
|
218
|
+
if ( hasBeforeHide ) { // Execute 'beforeHide' function if exists - same guard 'show' honors when navigating away
|
|
219
|
+
const closingFn = scenes[currentScene].beforeHide;
|
|
220
|
+
closingFn ({ done:unloadTask.done, dependencies: shortcutMngr.getDependencies() })
|
|
211
221
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
222
|
+
else unloadTask.done ( true )
|
|
223
|
+
|
|
224
|
+
unloadTask.onComplete ( continueHiding => {
|
|
225
|
+
if ( !continueHiding ) {
|
|
226
|
+
// 'beforeHide' returned false - cancel, nothing was torn down or changed
|
|
227
|
+
hideTask.done ()
|
|
228
|
+
return hideTask.promise
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
const
|
|
232
|
+
instructions = []
|
|
233
|
+
// Work on a copy of the recorded ancestor chain - it's the source of truth for what to
|
|
234
|
+
// climb back to, including for wildcard-overlay scenes ('*' itself is never stored here,
|
|
235
|
+
// only the real scene name that was current when the overlay was shown).
|
|
236
|
+
, remaining = [ ...state.currentParents ]
|
|
237
|
+
;
|
|
238
|
+
|
|
239
|
+
shortcutMngr.pause () // Stop all shortcuts
|
|
240
|
+
instructions.push ( setInstruction ( scenes[currentScene].hide )) // Hiding the current scene is always at least 1 step
|
|
241
|
+
|
|
242
|
+
const ancestorsToHide = ( endSteps === '*' ) ? remaining.length : Math.min ( endSteps - 1, remaining.length )
|
|
243
|
+
for ( let i = 0; i < ancestorsToHide; i++ ) {
|
|
244
|
+
const name = remaining.pop ()
|
|
245
|
+
instructions.push ( setInstruction ( scenes[name].hide ))
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
state.currentScene = remaining.length > 0 ? remaining.pop () : null
|
|
249
|
+
state.currentParents = remaining
|
|
250
|
+
|
|
251
|
+
const goingTask = askForPromise.sequence ( instructions );
|
|
252
|
+
goingTask.onComplete ( () => {
|
|
253
|
+
shortcutMngr.changeContext ( state.currentScene ) // If state.currentScene is null, then all shortcuts are switched off and currentContext is null
|
|
254
|
+
hideTask.done ()
|
|
255
|
+
})
|
|
256
|
+
}) // unloadTask onComplete
|
|
257
|
+
return hideTask.promise
|
|
218
258
|
}} // hide func.
|
|
219
259
|
|
|
220
260
|
|
|
221
261
|
|
|
222
262
|
export default hide
|
|
223
263
|
|
|
224
|
-
|
|
225
264
|
</pre></td></tr></table></pre>
|
|
226
265
|
|
|
227
266
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -229,7 +268,7 @@ export default hide
|
|
|
229
268
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
230
269
|
Code coverage generated by
|
|
231
270
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
232
|
-
at 2026-
|
|
271
|
+
at 2026-07-09T05:05:03.811Z
|
|
233
272
|
</div>
|
|
234
273
|
<script src="../../prettify.js"></script>
|
|
235
274
|
<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">99.26% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>135/136</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">95.16% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>59/62</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">95.83% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>23/24</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>123/123</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 high'></div>
|
|
65
65
|
<div class="pad1">
|
|
66
66
|
<table class="coverage-summary">
|
|
67
67
|
<thead>
|
|
@@ -79,18 +79,18 @@
|
|
|
79
79
|
</tr>
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
|
-
<td class="file
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
82
|
+
<td class="file high" data-value="hide.js"><a href="hide.js.html">hide.js</a></td>
|
|
83
|
+
<td data-value="100" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
86
|
+
<td data-value="100" class="pct high">100%</td>
|
|
87
|
+
<td data-value="30" class="abs high">30/30</td>
|
|
88
|
+
<td data-value="100" class="pct high">100%</td>
|
|
89
|
+
<td data-value="9" class="abs high">9/9</td>
|
|
90
|
+
<td data-value="100" class="pct high">100%</td>
|
|
91
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
92
|
+
<td data-value="100" class="pct high">100%</td>
|
|
93
|
+
<td data-value="29" class="abs high">29/29</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
100
|
</td>
|
|
101
101
|
<td data-value="100" class="pct high">100%</td>
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="100" class="pct high">100%</td>
|
|
104
|
-
<td data-value="0" class="abs high">0/0</td>
|
|
102
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
105
103
|
<td data-value="100" class="pct high">100%</td>
|
|
106
104
|
<td data-value="2" class="abs high">2/2</td>
|
|
107
105
|
<td data-value="100" class="pct high">100%</td>
|
|
108
106
|
<td data-value="3" class="abs high">3/3</td>
|
|
107
|
+
<td data-value="100" class="pct high">100%</td>
|
|
108
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
@@ -170,17 +170,17 @@
|
|
|
170
170
|
|
|
171
171
|
<tr>
|
|
172
172
|
<td class="file high" data-value="show.js"><a href="show.js.html">show.js</a></td>
|
|
173
|
-
<td data-value="
|
|
174
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
173
|
+
<td data-value="100" class="pic high">
|
|
174
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
175
175
|
</td>
|
|
176
|
-
<td data-value="
|
|
177
|
-
<td data-value="
|
|
178
|
-
<td data-value="
|
|
179
|
-
<td data-value="
|
|
176
|
+
<td data-value="100" class="pct high">100%</td>
|
|
177
|
+
<td data-value="65" class="abs high">65/65</td>
|
|
178
|
+
<td data-value="94.73" class="pct high">94.73%</td>
|
|
179
|
+
<td data-value="38" class="abs high">36/38</td>
|
|
180
180
|
<td data-value="87.5" class="pct high">87.5%</td>
|
|
181
181
|
<td data-value="8" class="abs high">7/8</td>
|
|
182
182
|
<td data-value="100" class="pct high">100%</td>
|
|
183
|
-
<td data-value="
|
|
183
|
+
<td data-value="59" class="abs high">59/59</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 2026-
|
|
194
|
+
at 2026-07-09T05:05:03.811Z
|
|
195
195
|
</div>
|
|
196
196
|
<script src="../../prettify.js"></script>
|
|
197
197
|
<script>
|
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>5/5</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>2/2</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>3/3</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>4/4</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -84,20 +84,30 @@
|
|
|
84
84
|
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
85
|
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
86
|
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<span class="cline-any cline-neutral"> </span>
|
|
95
|
+
<span class="cline-any cline-neutral"> </span>
|
|
96
|
+
<span class="cline-any cline-neutral"> </span>
|
|
88
97
|
<span class="cline-any cline-neutral"> </span>
|
|
89
98
|
<span class="cline-any cline-neutral"> </span>
|
|
90
99
|
<span class="cline-any cline-neutral"> </span>
|
|
91
100
|
<span class="cline-any cline-neutral"> </span>
|
|
92
101
|
<span class="cline-any cline-neutral"> </span>
|
|
102
|
+
<span class="cline-any cline-yes">6x</span>
|
|
103
|
+
<span class="cline-any cline-yes">6x</span>
|
|
93
104
|
<span class="cline-any cline-neutral"> </span>
|
|
94
105
|
<span class="cline-any cline-neutral"> </span>
|
|
95
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
|
+
<span class="cline-any cline-yes">6x</span>
|
|
96
108
|
<span class="cline-any cline-neutral"> </span>
|
|
97
|
-
<span class="cline-any cline-yes">4x</span>
|
|
98
|
-
<span class="cline-any cline-yes">4x</span>
|
|
99
109
|
<span class="cline-any cline-neutral"> </span>
|
|
100
|
-
<span class="cline-any cline-yes">
|
|
110
|
+
<span class="cline-any cline-yes">33x</span>
|
|
101
111
|
<span class="cline-any cline-neutral"> </span>
|
|
102
112
|
<span class="cline-any cline-neutral"> </span>
|
|
103
113
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -115,8 +125,13 @@
|
|
|
115
125
|
* @returns {Promise} - promise that resolves when the jump is completed
|
|
116
126
|
*/
|
|
117
127
|
function jump ( { scene }, ...args ) {
|
|
118
|
-
|
|
119
|
-
return show ( { scene }, ...args )
|
|
128
|
+
const previousScene = state.currentScene
|
|
129
|
+
return show ( { scene }, ...args ).then ( () => {
|
|
130
|
+
// Only record the jump if it actually landed - 'show' silently no-ops on a
|
|
131
|
+
// blocked (beforeHide) or invalid navigation, and pushing anyway would leave
|
|
132
|
+
// a phantom entry that desyncs jumpBack() from what actually happened.
|
|
133
|
+
if ( state.currentScene === scene ) state.jumpStack.push ( previousScene )
|
|
134
|
+
})
|
|
120
135
|
}
|
|
121
136
|
return jump
|
|
122
137
|
} // jump func.
|
|
@@ -133,7 +148,7 @@ export default jump
|
|
|
133
148
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
149
|
Code coverage generated by
|
|
135
150
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
136
|
-
at 2026-
|
|
151
|
+
at 2026-07-09T05:05:03.811Z
|
|
137
152
|
</div>
|
|
138
153
|
<script src="../../prettify.js"></script>
|
|
139
154
|
<script>
|
|
@@ -97,14 +97,14 @@
|
|
|
97
97
|
<span class="cline-any cline-neutral"> </span>
|
|
98
98
|
<span class="cline-any cline-neutral"> </span>
|
|
99
99
|
<span class="cline-any cline-neutral"> </span>
|
|
100
|
-
<span class="cline-any cline-yes">
|
|
100
|
+
<span class="cline-any cline-yes">5x</span>
|
|
101
101
|
<span class="cline-any cline-yes">1x</span>
|
|
102
102
|
<span class="cline-any cline-neutral"> </span>
|
|
103
|
+
<span class="cline-any cline-yes">5x</span>
|
|
104
|
+
<span class="cline-any cline-yes">3x</span>
|
|
103
105
|
<span class="cline-any cline-yes">3x</span>
|
|
104
|
-
<span class="cline-any cline-yes">2x</span>
|
|
105
|
-
<span class="cline-any cline-yes">2x</span>
|
|
106
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
|
-
<span class="cline-any cline-yes">
|
|
107
|
+
<span class="cline-any cline-yes">33x</span>
|
|
108
108
|
<span class="cline-any cline-neutral"> </span>
|
|
109
109
|
<span class="cline-any cline-neutral"> </span>
|
|
110
110
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -142,7 +142,7 @@ export default jumpBack
|
|
|
142
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
143
143
|
Code coverage generated by
|
|
144
144
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
145
|
-
at 2026-
|
|
145
|
+
at 2026-07-09T05:05:03.811Z
|
|
146
146
|
</div>
|
|
147
147
|
<script src="../../prettify.js"></script>
|
|
148
148
|
<script>
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
<span class="cline-any cline-neutral"> </span>
|
|
86
86
|
<span class="cline-any cline-neutral"> </span>
|
|
87
87
|
<span class="cline-any cline-neutral"> </span>
|
|
88
|
-
<span class="cline-any cline-yes">
|
|
88
|
+
<span class="cline-any cline-yes">33x</span>
|
|
89
89
|
<span class="cline-any cline-yes">1x</span>
|
|
90
90
|
<span class="cline-any cline-neutral"> </span>
|
|
91
91
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -118,7 +118,7 @@ export default jumpsReset
|
|
|
118
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
119
|
Code coverage generated by
|
|
120
120
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
121
|
-
at 2026-
|
|
121
|
+
at 2026-07-09T05:05:03.811Z
|
|
122
122
|
</div>
|
|
123
123
|
<script src="../../prettify.js"></script>
|
|
124
124
|
<script>
|
|
@@ -93,11 +93,11 @@
|
|
|
93
93
|
<span class="cline-any cline-neutral"> </span>
|
|
94
94
|
<span class="cline-any cline-neutral"> </span>
|
|
95
95
|
<span class="cline-any cline-neutral"> </span>
|
|
96
|
-
<span class="cline-any cline-yes">
|
|
96
|
+
<span class="cline-any cline-yes">33x</span>
|
|
97
|
+
<span class="cline-any cline-yes">3x</span>
|
|
98
|
+
<span class="cline-any cline-yes">3x</span>
|
|
97
99
|
<span class="cline-any cline-yes">2x</span>
|
|
98
100
|
<span class="cline-any cline-yes">2x</span>
|
|
99
|
-
<span class="cline-any cline-yes">1x</span>
|
|
100
|
-
<span class="cline-any cline-yes">1x</span>
|
|
101
101
|
<span class="cline-any cline-neutral"> </span>
|
|
102
102
|
<span class="cline-any cline-neutral"> </span>
|
|
103
103
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -117,7 +117,7 @@ function listShortcuts ( dependencies, state ) {
|
|
|
117
117
|
return function listShortcuts ( sceneName ) {
|
|
118
118
|
const { scenes, sceneNames } = state;
|
|
119
119
|
if ( ! sceneNames.has ( sceneName ) ) return null
|
|
120
|
-
const { show, hide, parents,
|
|
120
|
+
const { show, hide, parents, beforeHide, afterShow, ...shortcuts } = scenes[sceneName];
|
|
121
121
|
return Object.keys ( shortcuts )
|
|
122
122
|
}} // listShortcuts func.
|
|
123
123
|
|
|
@@ -133,7 +133,7 @@ export default listShortcuts
|
|
|
133
133
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
134
|
Code coverage generated by
|
|
135
135
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
136
|
-
at 2026-
|
|
136
|
+
at 2026-07-09T05:05:03.811Z
|
|
137
137
|
</div>
|
|
138
138
|
<script src="../../prettify.js"></script>
|
|
139
139
|
<script>
|