@peter.naydenov/notice 2.3.1 → 2.4.0

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 CHANGED
@@ -1,15 +1,31 @@
1
1
  # Release History
2
2
 
3
3
 
4
+
5
+
6
+
7
+ ### 2.4.0 ( 2025-01-11 )
8
+ - [x] Types: Name of the event could be a symbol;
9
+
10
+
11
+
12
+ ### 2.3.2 ( 2024-12-13 )
13
+ - [x] JSDoc comments were added;
14
+ - [x] TypeScript generated types were added;
15
+
16
+
17
+
4
18
  ### 2.3.1 ( 2024-03-15 )
5
19
  - [x] Fix: Callback stop should stop the wildcard callbacks as well;
6
20
 
7
21
 
22
+
8
23
  ### 2.3.0 ( 2024-03-14 )
9
24
  - [x] Stop execution of the event callbacks on first callback that returns string 'stop';
10
25
  - [ ] Bug: Callback stop should stop the wildcard callbacks as well;
11
26
 
12
27
 
28
+
13
29
  ### 2.2.3 ( 2024-01-29)
14
30
  - [x] Folder 'dist' was added. It contains compiled files for commonjs and es6 modules;
15
31
  - [x] Package.json: "exports" section was added. Allows you to use package as commonjs or es6 module without additional configuration;
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.26% </span>
26
+ <span class="strong">93.49% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>102/113</span>
28
+ <span class='fraction'>158/169</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">94.11% </span>
33
+ <span class="strong">94.23% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>48/51</span>
35
+ <span class='fraction'>49/52</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.26% </span>
47
+ <span class="strong">93.49% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>102/113</span>
49
+ <span class='fraction'>158/169</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="main.js"><a href="main.js.html">main.js</a></td>
83
- <td data-value="90.26" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
83
+ <td data-value="93.49" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
85
85
  </td>
86
- <td data-value="90.26" class="pct high">90.26%</td>
87
- <td data-value="113" class="abs high">102/113</td>
88
- <td data-value="94.11" class="pct high">94.11%</td>
89
- <td data-value="51" class="abs high">48/51</td>
86
+ <td data-value="93.49" class="pct high">93.49%</td>
87
+ <td data-value="169" class="abs high">158/169</td>
88
+ <td data-value="94.23" class="pct high">94.23%</td>
89
+ <td data-value="52" class="abs high">49/52</td>
90
90
  <td data-value="90.9" class="pct high">90.9%</td>
91
91
  <td data-value="11" class="abs high">10/11</td>
92
- <td data-value="90.26" class="pct high">90.26%</td>
93
- <td data-value="113" class="abs high">102/113</td>
92
+ <td data-value="93.49" class="pct high">93.49%</td>
93
+ <td data-value="169" class="abs high">158/169</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2024-03-14T06:34:16.346Z
104
+ at 2025-01-11T09:52:06.675Z
105
105
  </div>
106
106
  <script src="prettify.js"></script>
107
107
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.26% </span>
26
+ <span class="strong">93.49% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>102/113</span>
28
+ <span class='fraction'>158/169</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">94.11% </span>
33
+ <span class="strong">94.23% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>48/51</span>
35
+ <span class='fraction'>49/52</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.26% </span>
47
+ <span class="strong">93.49% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>102/113</span>
49
+ <span class='fraction'>158/169</span>
50
50
  </div>
51
51
 
52
52
 
@@ -178,26 +178,103 @@
178
178
  <a name='L113'></a><a href='#L113'>113</a>
179
179
  <a name='L114'></a><a href='#L114'>114</a>
180
180
  <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
182
- <span class="cline-any cline-yes">23x</span>
183
- <span class="cline-any cline-yes">23x</span>
184
- <span class="cline-any cline-yes">23x</span>
185
- <span class="cline-any cline-yes">23x</span>
186
- <span class="cline-any cline-yes">23x</span>
187
- <span class="cline-any cline-yes">23x</span>
188
- <span class="cline-any cline-yes">23x</span>
189
- <span class="cline-any cline-yes">23x</span>
190
- <span class="cline-any cline-yes">23x</span>
191
- <span class="cline-any cline-yes">23x</span>
192
- <span class="cline-any cline-yes">29x</span>
193
- <span class="cline-any cline-yes">29x</span>
194
- <span class="cline-any cline-yes">23x</span>
195
- <span class="cline-any cline-yes">23x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
238
+ <span class="cline-any cline-yes">24x</span>
239
+ <span class="cline-any cline-yes">24x</span>
240
+ <span class="cline-any cline-yes">24x</span>
241
+ <span class="cline-any cline-yes">24x</span>
242
+ <span class="cline-any cline-yes">24x</span>
243
+ <span class="cline-any cline-yes">24x</span>
244
+ <span class="cline-any cline-yes">24x</span>
245
+ <span class="cline-any cline-yes">24x</span>
246
+ <span class="cline-any cline-yes">24x</span>
247
+ <span class="cline-any cline-yes">24x</span>
248
+ <span class="cline-any cline-yes">24x</span>
249
+ <span class="cline-any cline-yes">24x</span>
250
+ <span class="cline-any cline-yes">24x</span>
251
+ <span class="cline-any cline-yes">24x</span>
252
+ <span class="cline-any cline-yes">24x</span>
253
+ <span class="cline-any cline-yes">24x</span>
254
+ <span class="cline-any cline-yes">32x</span>
255
+ <span class="cline-any cline-yes">32x</span>
256
+ <span class="cline-any cline-yes">24x</span>
257
+ <span class="cline-any cline-yes">24x</span>
258
+ <span class="cline-any cline-yes">24x</span>
259
+ <span class="cline-any cline-yes">24x</span>
260
+ <span class="cline-any cline-yes">24x</span>
261
+ <span class="cline-any cline-yes">24x</span>
262
+ <span class="cline-any cline-yes">24x</span>
263
+ <span class="cline-any cline-yes">24x</span>
196
264
  <span class="cline-any cline-yes">9x</span>
197
265
  <span class="cline-any cline-yes">9x</span>
198
266
  <span class="cline-any cline-yes">9x</span>
199
- <span class="cline-any cline-yes">23x</span>
200
- <span class="cline-any cline-yes">23x</span>
267
+ <span class="cline-any cline-yes">24x</span>
268
+ <span class="cline-any cline-yes">24x</span>
269
+ <span class="cline-any cline-yes">24x</span>
270
+ <span class="cline-any cline-yes">24x</span>
271
+ <span class="cline-any cline-yes">24x</span>
272
+ <span class="cline-any cline-yes">24x</span>
273
+ <span class="cline-any cline-yes">24x</span>
274
+ <span class="cline-any cline-yes">24x</span>
275
+ <span class="cline-any cline-yes">24x</span>
276
+ <span class="cline-any cline-yes">24x</span>
277
+ <span class="cline-any cline-yes">24x</span>
201
278
  <span class="cline-any cline-yes">7x</span>
202
279
  <span class="cline-any cline-yes">5x</span>
203
280
  <span class="cline-any cline-yes">5x</span>
@@ -207,19 +284,38 @@
207
284
  <span class="cline-any cline-yes">5x</span>
208
285
  <span class="cline-any cline-yes">7x</span>
209
286
  <span class="cline-any cline-yes">7x</span>
210
- <span class="cline-any cline-yes">23x</span>
211
- <span class="cline-any cline-yes">23x</span>
287
+ <span class="cline-any cline-yes">24x</span>
288
+ <span class="cline-any cline-yes">24x</span>
289
+ <span class="cline-any cline-yes">24x</span>
290
+ <span class="cline-any cline-yes">24x</span>
291
+ <span class="cline-any cline-yes">24x</span>
292
+ <span class="cline-any cline-yes">24x</span>
212
293
  <span class="cline-any cline-yes">1x</span>
213
294
  <span class="cline-any cline-yes">1x</span>
214
295
  <span class="cline-any cline-yes">1x</span>
215
- <span class="cline-any cline-yes">23x</span>
216
- <span class="cline-any cline-yes">23x</span>
296
+ <span class="cline-any cline-yes">24x</span>
297
+ <span class="cline-any cline-yes">24x</span>
298
+ <span class="cline-any cline-yes">24x</span>
299
+ <span class="cline-any cline-yes">24x</span>
300
+ <span class="cline-any cline-yes">24x</span>
301
+ <span class="cline-any cline-yes">24x</span>
302
+ <span class="cline-any cline-yes">24x</span>
303
+ <span class="cline-any cline-yes">24x</span>
304
+ <span class="cline-any cline-yes">24x</span>
305
+ <span class="cline-any cline-yes">24x</span>
217
306
  <span class="cline-any cline-no">&nbsp;</span>
218
307
  <span class="cline-any cline-no">&nbsp;</span>
219
- <span class="cline-any cline-yes">23x</span>
220
- <span class="cline-any cline-yes">23x</span>
221
- <span class="cline-any cline-yes">39x</span>
222
- <span class="cline-any cline-yes">39x</span>
308
+ <span class="cline-any cline-yes">24x</span>
309
+ <span class="cline-any cline-yes">24x</span>
310
+ <span class="cline-any cline-yes">24x</span>
311
+ <span class="cline-any cline-yes">24x</span>
312
+ <span class="cline-any cline-yes">24x</span>
313
+ <span class="cline-any cline-yes">24x</span>
314
+ <span class="cline-any cline-yes">24x</span>
315
+ <span class="cline-any cline-yes">24x</span>
316
+ <span class="cline-any cline-yes">24x</span>
317
+ <span class="cline-any cline-yes">40x</span>
318
+ <span class="cline-any cline-yes">40x</span>
223
319
  <span class="cline-any cline-no">&nbsp;</span>
224
320
  <span class="cline-any cline-no">&nbsp;</span>
225
321
  <span class="cline-any cline-no">&nbsp;</span>
@@ -228,41 +324,57 @@
228
324
  <span class="cline-any cline-no">&nbsp;</span>
229
325
  <span class="cline-any cline-no">&nbsp;</span>
230
326
  <span class="cline-any cline-no">&nbsp;</span>
231
- <span class="cline-any cline-yes">39x</span>
232
- <span class="cline-any cline-yes">39x</span>
233
- <span class="cline-any cline-yes">29x</span>
234
- <span class="cline-any cline-yes">29x</span>
235
- <span class="cline-any cline-yes">22x</span>
236
- <span class="cline-any cline-yes">24x</span>
237
- <span class="cline-any cline-yes">24x</span>
238
- <span class="cline-any cline-yes">1x</span>
327
+ <span class="cline-any cline-yes">40x</span>
328
+ <span class="cline-any cline-yes">40x</span>
329
+ <span class="cline-any cline-yes">30x</span>
330
+ <span class="cline-any cline-yes">30x</span>
331
+ <span class="cline-any cline-yes">30x</span>
332
+ <span class="cline-any cline-yes">23x</span>
333
+ <span class="cline-any cline-yes">25x</span>
334
+ <span class="cline-any cline-yes">25x</span>
335
+ <span class="cline-any cline-yes">2x</span>
336
+ <span class="cline-any cline-yes">2x</span>
337
+ <span class="cline-any cline-yes">2x</span>
338
+ <span class="cline-any cline-yes">2x</span>
239
339
  <span class="cline-any cline-no">&nbsp;</span>
240
- <span class="cline-any cline-yes">22x</span>
241
- <span class="cline-any cline-yes">22x</span>
242
- <span class="cline-any cline-yes">39x</span>
243
- <span class="cline-any cline-yes">39x</span>
244
- <span class="cline-any cline-yes">39x</span>
340
+ <span class="cline-any cline-yes">23x</span>
341
+ <span class="cline-any cline-yes">30x</span>
342
+ <span class="cline-any cline-yes">40x</span>
343
+ <span class="cline-any cline-yes">40x</span>
344
+ <span class="cline-any cline-yes">40x</span>
245
345
  <span class="cline-any cline-yes">3x</span>
246
346
  <span class="cline-any cline-yes">3x</span>
247
347
  <span class="cline-any cline-yes">3x</span>
248
348
  <span class="cline-any cline-yes">3x</span>
249
- <span class="cline-any cline-yes">39x</span>
349
+ <span class="cline-any cline-yes">40x</span>
250
350
  <span class="cline-any cline-yes">6x</span>
251
351
  <span class="cline-any cline-yes">5x</span>
252
352
  <span class="cline-any cline-yes">5x</span>
253
353
  <span class="cline-any cline-yes">5x</span>
254
- <span class="cline-any cline-yes">39x</span>
255
- <span class="cline-any cline-yes">20x</span>
256
- <span class="cline-any cline-yes">20x</span>
257
- <span class="cline-any cline-yes">23x</span>
258
- <span class="cline-any cline-yes">23x</span>
354
+ <span class="cline-any cline-yes">40x</span>
355
+ <span class="cline-any cline-yes">21x</span>
356
+ <span class="cline-any cline-yes">21x</span>
357
+ <span class="cline-any cline-yes">24x</span>
358
+ <span class="cline-any cline-yes">24x</span>
359
+ <span class="cline-any cline-yes">24x</span>
360
+ <span class="cline-any cline-yes">24x</span>
361
+ <span class="cline-any cline-yes">24x</span>
362
+ <span class="cline-any cline-yes">24x</span>
363
+ <span class="cline-any cline-yes">24x</span>
364
+ <span class="cline-any cline-yes">24x</span>
259
365
  <span class="cline-any cline-yes">3x</span>
260
366
  <span class="cline-any cline-yes">1x</span>
261
367
  <span class="cline-any cline-yes">1x</span>
262
368
  <span class="cline-any cline-yes">1x</span>
263
369
  <span class="cline-any cline-yes">2x</span>
264
- <span class="cline-any cline-yes">23x</span>
265
- <span class="cline-any cline-yes">23x</span>
370
+ <span class="cline-any cline-yes">24x</span>
371
+ <span class="cline-any cline-yes">24x</span>
372
+ <span class="cline-any cline-yes">24x</span>
373
+ <span class="cline-any cline-yes">24x</span>
374
+ <span class="cline-any cline-yes">24x</span>
375
+ <span class="cline-any cline-yes">24x</span>
376
+ <span class="cline-any cline-yes">24x</span>
377
+ <span class="cline-any cline-yes">24x</span>
266
378
  <span class="cline-any cline-yes">4x</span>
267
379
  <span class="cline-any cline-yes">1x</span>
268
380
  <span class="cline-any cline-yes">1x</span>
@@ -272,21 +384,21 @@
272
384
  <span class="cline-any cline-yes">1x</span>
273
385
  <span class="cline-any cline-yes">1x</span>
274
386
  <span class="cline-any cline-yes">3x</span>
275
- <span class="cline-any cline-yes">23x</span>
276
- <span class="cline-any cline-yes">23x</span>
277
- <span class="cline-any cline-yes">23x</span>
278
- <span class="cline-any cline-yes">23x</span>
279
- <span class="cline-any cline-yes">23x</span>
280
- <span class="cline-any cline-yes">23x</span>
281
- <span class="cline-any cline-yes">23x</span>
282
- <span class="cline-any cline-yes">23x</span>
283
- <span class="cline-any cline-yes">23x</span>
284
- <span class="cline-any cline-yes">23x</span>
285
- <span class="cline-any cline-yes">23x</span>
286
- <span class="cline-any cline-yes">23x</span>
287
- <span class="cline-any cline-yes">23x</span>
288
- <span class="cline-any cline-yes">23x</span>
289
- <span class="cline-any cline-yes">23x</span>
387
+ <span class="cline-any cline-yes">24x</span>
388
+ <span class="cline-any cline-yes">24x</span>
389
+ <span class="cline-any cline-yes">24x</span>
390
+ <span class="cline-any cline-yes">24x</span>
391
+ <span class="cline-any cline-yes">24x</span>
392
+ <span class="cline-any cline-yes">24x</span>
393
+ <span class="cline-any cline-yes">24x</span>
394
+ <span class="cline-any cline-yes">24x</span>
395
+ <span class="cline-any cline-yes">24x</span>
396
+ <span class="cline-any cline-yes">24x</span>
397
+ <span class="cline-any cline-yes">24x</span>
398
+ <span class="cline-any cline-yes">24x</span>
399
+ <span class="cline-any cline-yes">24x</span>
400
+ <span class="cline-any cline-yes">24x</span>
401
+ <span class="cline-any cline-yes">24x</span>
290
402
  <span class="cline-any cline-yes">1x</span>
291
403
  <span class="cline-any cline-yes">1x</span>
292
404
  <span class="cline-any cline-yes">1x</span>
@@ -303,15 +415,36 @@ function notice () {
303
415
  , debugFlag = false
304
416
  , debugHeader = ''
305
417
  ;
418
+ /**
419
+ * Register a regular event.
420
+ * @param {string|Symbol} e - Name of the event;
421
+ * @param {function} fn - Behaviour that will be assigned to this eventName;
422
+ * @returns void
423
+ */
306
424
  function on ( e, fn ) {
307
425
  if ( !scroll[e] ) scroll[e] = []
308
426
  scroll[e].push ( fn )
309
427
  } // on func.
428
+ &nbsp;
429
+ /**
430
+ * Register a single event that will be triggered only once.
431
+ * @param {string|Symbol} e - Name of the event; the wildcard '*' is not supported.
432
+ * @param {function} fn - Behaviour that will be executed when the event is triggered.
433
+ */
310
434
  function once ( e, fn ) {
311
435
  if ( e === '*' ) <span class="branch-0 cbranch-no" title="branch not covered" >return </span> // The wildcard '*' doesn't work for 'once' events
312
436
  if ( !scrollOnce[e] ) scrollOnce[e] = []
313
437
  scrollOnce[e].push ( fn )
314
438
  } // once func.
439
+ /**
440
+ * Remove a behavior (function) related to the specified event.
441
+ * If 'fx' is provided, only that specific function will be removed from the event.
442
+ * If 'fx' is not provided, all functions related to the event will be removed.
443
+ * Works with both regular and single events.
444
+ *
445
+ * @param {string|Symbol} e - Name of the event.
446
+ * @param {function} [fx] - Optional. The specific function to be removed.
447
+ */
315
448
  function off ( e, fx ) {
316
449
  if ( fx ) { // fx is optional
317
450
  if ( scroll[e] ) scroll[e] = scroll[e].filter ( fn =&gt; fn !== fx )
@@ -323,15 +456,34 @@ function notice () {
323
456
  if ( scrollOnce[e] ) delete scrollOnce[e]
324
457
  if ( scroll[e] ) delete scroll[e]
325
458
  } // off func.
459
+ /**
460
+ * Resets all event-related data structures.
461
+ * Clears all general and single event subscriptions, as well as the ignore list.
462
+ */
326
463
  function reset () {
327
464
  scroll = {'*':[]}
328
465
  scrollOnce = {}
329
466
  ignore = []
330
467
  } // reset func.
468
+ /**
469
+ * Enables or disables debug mode.
470
+ * In debug mode, every triggered event prints a message to the console, including the event name and arguments.
471
+ * The header argument is optional and can be used to provide a prefix string for the debug message.
472
+ * @param {boolean} val - Enable or disable debug mode.
473
+ * @param {string} [header] - Optional. The header string for the debug message.
474
+ * @returns void
475
+ */
331
476
  <span class="fstat-no" title="function not covered" > function debug ( val, header ) {</span>
332
477
  <span class="cstat-no" title="statement not covered" > debugFlag = val ? true : false</span>
333
478
  <span class="cstat-no" title="statement not covered" > if ( header &amp;&amp; (typeof header === 'string') ) debugHeader = header</span>
334
479
  } // debug func.
480
+ /**
481
+ * Triggers an event and executes all associated functions.
482
+ *
483
+ * @param {string|Symbol} e - Name of the event to be triggered.
484
+ * @param {...*} [args] - Optional. Arguments to be passed to the callback functions.
485
+ * @returns void
486
+ */
335
487
  function emit () {
336
488
  const [ e, ...args ] = arguments
337
489
  if ( debugFlag ) <span class="branch-0 cbranch-no" title="branch not covered" >{ </span>
@@ -345,15 +497,19 @@ function notice () {
345
497
  <span class="cstat-no" title="statement not covered" > }</span>
346
498
  &nbsp;
347
499
  function exeCallback ( name ) {
500
+ let stopped = false;
348
501
  if ( name === '*' ) return
349
502
  if ( ignore.includes(name) ) return
350
503
  scroll[name].every ( fn =&gt; {
351
504
  const r = fn ( ...args );
352
505
  if ( typeof(r) !== 'string' ) return true
353
- if ( r.toUpperCase() === 'STOP' ) return false
506
+ if ( r.toUpperCase() === 'STOP' ) {
507
+ stopped = true
508
+ return false
509
+ }
354
510
  <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > return true</span></span>
355
511
  })
356
- scroll['*'].forEach ( fn =&gt; fn(e,...args) )
512
+ if ( !stopped ) scroll['*'].forEach ( fn =&gt; fn(e,...args) )
357
513
  } // exeCallback func.
358
514
  &nbsp;
359
515
  if ( e === '*' ) { // The wildcard '*' doesn't work for 'once' events
@@ -370,6 +526,12 @@ function notice () {
370
526
  exeCallback ( e )
371
527
  }
372
528
  } // emit func.
529
+ /**
530
+ * Enables again specified event.
531
+ *
532
+ * @param {string|Symbol} e - Name of the event to be enabled again; the wildcard '*' is supported.
533
+ * @returns void
534
+ */
373
535
  function start ( e ) {
374
536
  if ( e === '*' ) {
375
537
  ignore = []
@@ -377,6 +539,12 @@ function notice () {
377
539
  }
378
540
  ignore = ignore.filter ( type =&gt; e != type )
379
541
  } // start func.
542
+ /**
543
+ * Temporarily disables specified event.
544
+ *
545
+ * @param {string|Symbol} e - Name of the event to be disabled; the wildcard '*' is supported.
546
+ * @returns void
547
+ */
380
548
  function stop ( e ) {
381
549
  if ( e === '*' ) {
382
550
  const
@@ -400,7 +568,7 @@ function notice () {
400
568
  , debug
401
569
  }
402
570
  } // notice fn.
403
- return new Notice ()
571
+ return Notice ()
404
572
  }
405
573
  &nbsp;
406
574
  &nbsp;
@@ -415,7 +583,7 @@ export default notice
415
583
  <div class='footer quiet pad2 space-top1 center small'>
416
584
  Code coverage generated by
417
585
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
418
- at 2024-03-14T06:34:16.346Z
586
+ at 2025-01-11T09:52:06.675Z
419
587
  </div>
420
588
  <script src="prettify.js"></script>
421
589
  <script>