@peter.naydenov/notice 2.3.2 → 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
@@ -2,6 +2,13 @@
2
2
 
3
3
 
4
4
 
5
+
6
+
7
+ ### 2.4.0 ( 2025-01-11 )
8
+ - [x] Types: Name of the event could be a symbol;
9
+
10
+
11
+
5
12
  ### 2.3.2 ( 2024-12-13 )
6
13
  - [x] JSDoc comments were added;
7
14
  - [x] TypeScript generated types were added;
@@ -12,11 +19,13 @@
12
19
  - [x] Fix: Callback stop should stop the wildcard callbacks as well;
13
20
 
14
21
 
22
+
15
23
  ### 2.3.0 ( 2024-03-14 )
16
24
  - [x] Stop execution of the event callbacks on first callback that returns string 'stop';
17
25
  - [ ] Bug: Callback stop should stop the wildcard callbacks as well;
18
26
 
19
27
 
28
+
20
29
  ### 2.2.3 ( 2024-01-29)
21
30
  - [x] Folder 'dist' was added. It contains compiled files for commonjs and es6 modules;
22
31
  - [x] Package.json: "exports" section was added. Allows you to use package as commonjs or es6 module without additional configuration;
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.59% </span>
26
+ <span class="strong">93.49% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>106/117</span>
28
+ <span class='fraction'>158/169</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.59% </span>
47
+ <span class="strong">93.49% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>106/117</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.59" 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.59" class="pct high">90.59%</td>
87
- <td data-value="117" class="abs high">106/117</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
88
  <td data-value="94.23" class="pct high">94.23%</td>
89
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.59" class="pct high">90.59%</td>
93
- <td data-value="117" class="abs high">106/117</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-12-13T13:43:45.041Z
104
+ at 2025-01-11T09:52:06.675Z
105
105
  </div>
106
106
  <script src="prettify.js"></script>
107
107
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">90.59% </span>
26
+ <span class="strong">93.49% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>106/117</span>
28
+ <span class='fraction'>158/169</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90.59% </span>
47
+ <span class="strong">93.49% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>106/117</span>
49
+ <span class='fraction'>158/169</span>
50
50
  </div>
51
51
 
52
52
 
@@ -182,7 +182,65 @@
182
182
  <a name='L117'></a><a href='#L117'>117</a>
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
184
  <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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>
186
244
  <span class="cline-any cline-yes">24x</span>
187
245
  <span class="cline-any cline-yes">24x</span>
188
246
  <span class="cline-any cline-yes">24x</span>
@@ -197,11 +255,26 @@
197
255
  <span class="cline-any cline-yes">32x</span>
198
256
  <span class="cline-any cline-yes">24x</span>
199
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>
200
264
  <span class="cline-any cline-yes">9x</span>
201
265
  <span class="cline-any cline-yes">9x</span>
202
266
  <span class="cline-any cline-yes">9x</span>
203
267
  <span class="cline-any cline-yes">24x</span>
204
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>
205
278
  <span class="cline-any cline-yes">7x</span>
206
279
  <span class="cline-any cline-yes">5x</span>
207
280
  <span class="cline-any cline-yes">5x</span>
@@ -213,15 +286,34 @@
213
286
  <span class="cline-any cline-yes">7x</span>
214
287
  <span class="cline-any cline-yes">24x</span>
215
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>
216
293
  <span class="cline-any cline-yes">1x</span>
217
294
  <span class="cline-any cline-yes">1x</span>
218
295
  <span class="cline-any cline-yes">1x</span>
219
296
  <span class="cline-any cline-yes">24x</span>
220
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>
221
306
  <span class="cline-any cline-no">&nbsp;</span>
222
307
  <span class="cline-any cline-no">&nbsp;</span>
223
308
  <span class="cline-any cline-yes">24x</span>
224
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>
225
317
  <span class="cline-any cline-yes">40x</span>
226
318
  <span class="cline-any cline-yes">40x</span>
227
319
  <span class="cline-any cline-no">&nbsp;</span>
@@ -264,6 +356,12 @@
264
356
  <span class="cline-any cline-yes">21x</span>
265
357
  <span class="cline-any cline-yes">24x</span>
266
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>
267
365
  <span class="cline-any cline-yes">3x</span>
268
366
  <span class="cline-any cline-yes">1x</span>
269
367
  <span class="cline-any cline-yes">1x</span>
@@ -271,6 +369,12 @@
271
369
  <span class="cline-any cline-yes">2x</span>
272
370
  <span class="cline-any cline-yes">24x</span>
273
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>
274
378
  <span class="cline-any cline-yes">4x</span>
275
379
  <span class="cline-any cline-yes">1x</span>
276
380
  <span class="cline-any cline-yes">1x</span>
@@ -311,15 +415,36 @@ function notice () {
311
415
  , debugFlag = false
312
416
  , debugHeader = ''
313
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
+ */
314
424
  function on ( e, fn ) {
315
425
  if ( !scroll[e] ) scroll[e] = []
316
426
  scroll[e].push ( fn )
317
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
+ */
318
434
  function once ( e, fn ) {
319
435
  if ( e === '*' ) <span class="branch-0 cbranch-no" title="branch not covered" >return </span> // The wildcard '*' doesn't work for 'once' events
320
436
  if ( !scrollOnce[e] ) scrollOnce[e] = []
321
437
  scrollOnce[e].push ( fn )
322
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
+ */
323
448
  function off ( e, fx ) {
324
449
  if ( fx ) { // fx is optional
325
450
  if ( scroll[e] ) scroll[e] = scroll[e].filter ( fn =&gt; fn !== fx )
@@ -331,15 +456,34 @@ function notice () {
331
456
  if ( scrollOnce[e] ) delete scrollOnce[e]
332
457
  if ( scroll[e] ) delete scroll[e]
333
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
+ */
334
463
  function reset () {
335
464
  scroll = {'*':[]}
336
465
  scrollOnce = {}
337
466
  ignore = []
338
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
+ */
339
476
  <span class="fstat-no" title="function not covered" > function debug ( val, header ) {</span>
340
477
  <span class="cstat-no" title="statement not covered" > debugFlag = val ? true : false</span>
341
478
  <span class="cstat-no" title="statement not covered" > if ( header &amp;&amp; (typeof header === 'string') ) debugHeader = header</span>
342
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
+ */
343
487
  function emit () {
344
488
  const [ e, ...args ] = arguments
345
489
  if ( debugFlag ) <span class="branch-0 cbranch-no" title="branch not covered" >{ </span>
@@ -365,7 +509,7 @@ function notice () {
365
509
  }
366
510
  <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > return true</span></span>
367
511
  })
368
- if ( !stopped ) scroll['*'].forEach ( fn =&gt; fn(e,...args) )
512
+ if ( !stopped ) scroll['*'].forEach ( fn =&gt; fn(e,...args) )
369
513
  } // exeCallback func.
370
514
  &nbsp;
371
515
  if ( e === '*' ) { // The wildcard '*' doesn't work for 'once' events
@@ -382,6 +526,12 @@ function notice () {
382
526
  exeCallback ( e )
383
527
  }
384
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
+ */
385
535
  function start ( e ) {
386
536
  if ( e === '*' ) {
387
537
  ignore = []
@@ -389,6 +539,12 @@ function notice () {
389
539
  }
390
540
  ignore = ignore.filter ( type =&gt; e != type )
391
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
+ */
392
548
  function stop ( e ) {
393
549
  if ( e === '*' ) {
394
550
  const
@@ -427,7 +583,7 @@ export default notice
427
583
  <div class='footer quiet pad2 space-top1 center small'>
428
584
  Code coverage generated by
429
585
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
430
- at 2024-12-13T13:43:45.041Z
586
+ at 2025-01-11T09:52:06.675Z
431
587
  </div>
432
588
  <script src="prettify.js"></script>
433
589
  <script>