@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.
Files changed (67) hide show
  1. package/Changelog.md +9 -1
  2. package/Migration.guide.md +93 -0
  3. package/README.md +52 -8
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +131 -0
  8. package/coverage/lcov-report/prettify.css +1 -0
  9. package/coverage/lcov-report/prettify.js +2 -0
  10. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  11. package/coverage/lcov-report/sorter.js +210 -0
  12. package/coverage/lcov-report/src/findInstructions.js.html +352 -0
  13. package/coverage/lcov-report/src/index.html +146 -0
  14. package/coverage/lcov-report/src/main.js.html +610 -0
  15. package/coverage/lcov-report/src/methods/hide.js.html +244 -0
  16. package/coverage/lcov-report/src/methods/index.html +206 -0
  17. package/coverage/lcov-report/src/methods/jump.js.html +148 -0
  18. package/coverage/lcov-report/src/methods/jumpBack.js.html +157 -0
  19. package/coverage/lcov-report/src/methods/jumpsReset.js.html +133 -0
  20. package/coverage/lcov-report/src/methods/listShortcuts.js.html +148 -0
  21. package/coverage/lcov-report/src/methods/setScenes.js.html +313 -0
  22. package/coverage/lcov-report/src/methods/show.js.html +466 -0
  23. package/coverage/lcov-report/src/setInstruction.js.html +157 -0
  24. package/coverage/lcov.info +461 -0
  25. package/cuts.png +0 -0
  26. package/cypress/support/component-index.html +11 -0
  27. package/dist/cuts.cjs +1 -1
  28. package/dist/cuts.esm.mjs +1 -1
  29. package/dist/cuts.umd.js +1 -1
  30. package/package.json +15 -15
  31. package/src/main.js +6 -4
  32. package/test/01-general.cy.js +348 -0
  33. package/test/blue.vue +13 -0
  34. package/test/dummy.vue +34 -0
  35. package/test/gray.vue +12 -0
  36. package/test/red.vue +11 -0
  37. package/tsconfig.json +14 -10
  38. package/types/main.d.ts +5 -5
  39. package/types/main.d.ts.map +1 -1
  40. package/types/methods/jumpBack.d.ts +1 -1
  41. package/types/methods/jumpBack.d.ts.map +1 -1
  42. package/types/methods/setScenes.d.ts +3 -3
  43. package/types/methods/setScenes.d.ts.map +1 -1
  44. package/types/methods/show.d.ts +1 -1
  45. package/types/methods/show.d.ts.map +1 -1
  46. package/types/src/findInstructions.d.ts +12 -0
  47. package/types/src/findInstructions.d.ts.map +1 -0
  48. package/types/src/main.d.ts +31 -0
  49. package/types/src/main.d.ts.map +1 -0
  50. package/types/src/methods/hide.d.ts +3 -0
  51. package/types/src/methods/hide.d.ts.map +1 -0
  52. package/types/src/methods/jump.d.ts +5 -0
  53. package/types/src/methods/jump.d.ts.map +1 -0
  54. package/types/src/methods/jumpBack.d.ts +5 -0
  55. package/types/src/methods/jumpBack.d.ts.map +1 -0
  56. package/types/src/methods/jumpsReset.d.ts +3 -0
  57. package/types/src/methods/jumpsReset.d.ts.map +1 -0
  58. package/types/src/methods/listShortcuts.d.ts +3 -0
  59. package/types/src/methods/listShortcuts.d.ts.map +1 -0
  60. package/types/src/methods/setScenes.d.ts +69 -0
  61. package/types/src/methods/setScenes.d.ts.map +1 -0
  62. package/types/src/methods/show.d.ts +8 -0
  63. package/types/src/methods/show.d.ts.map +1 -0
  64. package/types/src/setInstruction.d.ts +3 -0
  65. package/types/src/setInstruction.d.ts.map +1 -0
  66. package/test-vitest/01-findPosition.test.js +0 -119
  67. 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">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-yes">14x</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-yes">14x</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-yes">14x</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">14x</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-yes">14x</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-yes">14x</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-yes">14x</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-yes">18x</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-neutral">&nbsp;</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-neutral">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</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
+ &nbsp;
436
+ &nbsp;
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
+ &nbsp;
441
+ import findInstructions from './findInstructions.js'
442
+ import setInstruction from './setInstruction.js'
443
+ &nbsp;
444
+ &nbsp;
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
+ &nbsp;
453
+ &nbsp;
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) =&gt; {
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
+ &nbsp;
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
+ &nbsp;
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.&lt;pluginNames&gt;} plugins - list of plugins to load
501
+ * @returns {Promise.&lt;function[]&gt;} - loaded plugins in a sequence
502
+ *
503
+ * @example
504
+ * // script is instance of cuts
505
+ * await script.loadPlugins ( ['Key', 'Click'] )
506
+ * .then ( plugins =&gt; plugins.forEach ( plugin =&gt; script.enablePlugin ( plugin ) ) )
507
+ */
508
+ API.loadPlugins = async function loadPlugins ( plugins ) {
509
+ const pl = plugins.map ( name =&gt; `plugin${name}`);
510
+ const module = await import ( '@peter.naydenov/shortcuts')
511
+ return pl.map ( name =&gt; 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> =&gt; <span class="cstat-no" title="statement not covered" >shortcutMngr.setDependencies ( deps )</span>
521
+ &nbsp;
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> =&gt; <span class="cstat-no" title="statement not covered" >shortcutMngr.getDependencies ()</span>
528
+ &nbsp;
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>=&gt; <span class="cstat-no" title="statement not covered" >shortcutMngr.setNote ( note )</span>
535
+ &nbsp;
536
+ /**
537
+ * @function listScenes
538
+ * @description List all loaded Scene names
539
+ * @returns {Array.&lt;string&gt;} - list of scene names
540
+ */
541
+ API.listScenes = () =&gt; [ ...state.sceneNames ]
542
+ &nbsp;
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) =&gt; <span class="cstat-no" title="statement not covered" >shortcutMngr.enablePlugin ( plugin, options )</span>
551
+ &nbsp;
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 ) =&gt; <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 = () =&gt; ({
569
+ scene : state.currentScene
570
+ , parents : state.currentParents
571
+ , opened : state.opened
572
+ })
573
+ &nbsp;
574
+ &nbsp;
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 ) =&gt; <span class="cstat-no" title="statement not covered" >shortcutMngr.emit ( event, ...args )</span>
583
+ return API
584
+ } // main func.
585
+ &nbsp;
586
+ &nbsp;
587
+ &nbsp;
588
+ export default main
589
+ &nbsp;
590
+ &nbsp;
591
+ &nbsp;</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
+