vis-data 7.1.8 → 7.1.9

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/dist/umd.js CHANGED
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Manage unstructured data using DataSet. Add, update, and remove data, and listen for changes in the data.
6
6
  *
7
- * @version 7.1.8
8
- * @date 2023-11-08T02:10:33.510Z
7
+ * @version 7.1.9
8
+ * @date 2023-11-24T17:54:21.708Z
9
9
  *
10
10
  * @copyright (c) 2011-2017 Almende B.V, http://almende.com
11
11
  * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
@@ -3421,179 +3421,112 @@
3421
3421
  var componentEmitter = {exports: {}};
3422
3422
 
3423
3423
  (function (module) {
3424
- /**
3425
- * Expose `Emitter`.
3426
- */
3427
-
3428
- {
3429
- module.exports = Emitter;
3430
- }
3431
-
3432
- /**
3433
- * Initialize a new `Emitter`.
3434
- *
3435
- * @api public
3436
- */
3437
-
3438
- function Emitter(obj) {
3439
- if (obj) return mixin(obj);
3440
- }
3441
- /**
3442
- * Mixin the emitter properties.
3443
- *
3444
- * @param {Object} obj
3445
- * @return {Object}
3446
- * @api private
3447
- */
3448
-
3449
- function mixin(obj) {
3450
- for (var key in Emitter.prototype) {
3451
- obj[key] = Emitter.prototype[key];
3452
- }
3453
- return obj;
3454
- }
3455
-
3456
- /**
3457
- * Listen on the given `event` with `fn`.
3458
- *
3459
- * @param {String} event
3460
- * @param {Function} fn
3461
- * @return {Emitter}
3462
- * @api public
3463
- */
3464
-
3465
- Emitter.prototype.on =
3466
- Emitter.prototype.addEventListener = function(event, fn){
3467
- this._callbacks = this._callbacks || {};
3468
- (this._callbacks['$' + event] = this._callbacks['$' + event] || [])
3469
- .push(fn);
3470
- return this;
3471
- };
3472
-
3473
- /**
3474
- * Adds an `event` listener that will be invoked a single
3475
- * time then automatically removed.
3476
- *
3477
- * @param {String} event
3478
- * @param {Function} fn
3479
- * @return {Emitter}
3480
- * @api public
3481
- */
3482
-
3483
- Emitter.prototype.once = function(event, fn){
3484
- function on() {
3485
- this.off(event, on);
3486
- fn.apply(this, arguments);
3487
- }
3488
-
3489
- on.fn = fn;
3490
- this.on(event, on);
3491
- return this;
3492
- };
3493
-
3494
- /**
3495
- * Remove the given callback for `event` or all
3496
- * registered callbacks.
3497
- *
3498
- * @param {String} event
3499
- * @param {Function} fn
3500
- * @return {Emitter}
3501
- * @api public
3502
- */
3503
-
3504
- Emitter.prototype.off =
3505
- Emitter.prototype.removeListener =
3506
- Emitter.prototype.removeAllListeners =
3507
- Emitter.prototype.removeEventListener = function(event, fn){
3508
- this._callbacks = this._callbacks || {};
3509
-
3510
- // all
3511
- if (0 == arguments.length) {
3512
- this._callbacks = {};
3513
- return this;
3514
- }
3515
-
3516
- // specific event
3517
- var callbacks = this._callbacks['$' + event];
3518
- if (!callbacks) return this;
3519
-
3520
- // remove all handlers
3521
- if (1 == arguments.length) {
3522
- delete this._callbacks['$' + event];
3523
- return this;
3524
- }
3525
-
3526
- // remove specific handler
3527
- var cb;
3528
- for (var i = 0; i < callbacks.length; i++) {
3529
- cb = callbacks[i];
3530
- if (cb === fn || cb.fn === fn) {
3531
- callbacks.splice(i, 1);
3532
- break;
3533
- }
3534
- }
3535
-
3536
- // Remove event specific arrays for event types that no
3537
- // one is subscribed for to avoid memory leak.
3538
- if (callbacks.length === 0) {
3539
- delete this._callbacks['$' + event];
3540
- }
3541
-
3542
- return this;
3543
- };
3544
-
3545
- /**
3546
- * Emit `event` with the given args.
3547
- *
3548
- * @param {String} event
3549
- * @param {Mixed} ...
3550
- * @return {Emitter}
3551
- */
3552
-
3553
- Emitter.prototype.emit = function(event){
3554
- this._callbacks = this._callbacks || {};
3555
-
3556
- var args = new Array(arguments.length - 1)
3557
- , callbacks = this._callbacks['$' + event];
3558
-
3559
- for (var i = 1; i < arguments.length; i++) {
3560
- args[i - 1] = arguments[i];
3561
- }
3562
-
3563
- if (callbacks) {
3564
- callbacks = callbacks.slice(0);
3565
- for (var i = 0, len = callbacks.length; i < len; ++i) {
3566
- callbacks[i].apply(this, args);
3567
- }
3568
- }
3569
-
3570
- return this;
3571
- };
3572
-
3573
- /**
3574
- * Return array of callbacks for `event`.
3575
- *
3576
- * @param {String} event
3577
- * @return {Array}
3578
- * @api public
3579
- */
3580
-
3581
- Emitter.prototype.listeners = function(event){
3582
- this._callbacks = this._callbacks || {};
3583
- return this._callbacks['$' + event] || [];
3584
- };
3585
-
3586
- /**
3587
- * Check if this emitter has `event` handlers.
3588
- *
3589
- * @param {String} event
3590
- * @return {Boolean}
3591
- * @api public
3592
- */
3593
-
3594
- Emitter.prototype.hasListeners = function(event){
3595
- return !! this.listeners(event).length;
3596
- };
3424
+ function Emitter(object) {
3425
+ if (object) {
3426
+ return mixin(object);
3427
+ }
3428
+
3429
+ this._callbacks = new Map();
3430
+ }
3431
+
3432
+ function mixin(object) {
3433
+ Object.assign(object, Emitter.prototype);
3434
+ object._callbacks = new Map();
3435
+ return object;
3436
+ }
3437
+
3438
+ Emitter.prototype.on = function (event, listener) {
3439
+ const callbacks = this._callbacks.get(event) ?? [];
3440
+ callbacks.push(listener);
3441
+ this._callbacks.set(event, callbacks);
3442
+ return this;
3443
+ };
3444
+
3445
+ Emitter.prototype.once = function (event, listener) {
3446
+ const on = (...arguments_) => {
3447
+ this.off(event, on);
3448
+ listener.apply(this, arguments_);
3449
+ };
3450
+
3451
+ on.fn = listener;
3452
+ this.on(event, on);
3453
+ return this;
3454
+ };
3455
+
3456
+ Emitter.prototype.off = function (event, listener) {
3457
+ if (event === undefined && listener === undefined) {
3458
+ this._callbacks.clear();
3459
+ return this;
3460
+ }
3461
+
3462
+ if (listener === undefined) {
3463
+ this._callbacks.delete(event);
3464
+ return this;
3465
+ }
3466
+
3467
+ const callbacks = this._callbacks.get(event);
3468
+ if (callbacks) {
3469
+ for (const [index, callback] of callbacks.entries()) {
3470
+ if (callback === listener || callback.fn === listener) {
3471
+ callbacks.splice(index, 1);
3472
+ break;
3473
+ }
3474
+ }
3475
+
3476
+ if (callbacks.length === 0) {
3477
+ this._callbacks.delete(event);
3478
+ } else {
3479
+ this._callbacks.set(event, callbacks);
3480
+ }
3481
+ }
3482
+
3483
+ return this;
3484
+ };
3485
+
3486
+ Emitter.prototype.emit = function (event, ...arguments_) {
3487
+ const callbacks = this._callbacks.get(event);
3488
+ if (callbacks) {
3489
+ // Create a copy of the callbacks array to avoid issues if it's modified during iteration
3490
+ const callbacksCopy = [...callbacks];
3491
+
3492
+ for (const callback of callbacksCopy) {
3493
+ callback.apply(this, arguments_);
3494
+ }
3495
+ }
3496
+
3497
+ return this;
3498
+ };
3499
+
3500
+ Emitter.prototype.listeners = function (event) {
3501
+ return this._callbacks.get(event) ?? [];
3502
+ };
3503
+
3504
+ Emitter.prototype.listenerCount = function (event) {
3505
+ if (event) {
3506
+ return this.listeners(event).length;
3507
+ }
3508
+
3509
+ let totalCount = 0;
3510
+ for (const callbacks of this._callbacks.values()) {
3511
+ totalCount += callbacks.length;
3512
+ }
3513
+
3514
+ return totalCount;
3515
+ };
3516
+
3517
+ Emitter.prototype.hasListeners = function (event) {
3518
+ return this.listenerCount(event) > 0;
3519
+ };
3520
+
3521
+ // Aliases
3522
+ Emitter.prototype.addEventListener = Emitter.prototype.on;
3523
+ Emitter.prototype.removeListener = Emitter.prototype.off;
3524
+ Emitter.prototype.removeEventListener = Emitter.prototype.off;
3525
+ Emitter.prototype.removeAllListeners = Emitter.prototype.off;
3526
+
3527
+ {
3528
+ module.exports = Emitter;
3529
+ }
3597
3530
  } (componentEmitter));
3598
3531
 
3599
3532
  var componentEmitterExports = componentEmitter.exports;
@@ -6592,8 +6525,8 @@
6592
6525
  *
6593
6526
  * utilitie collection for visjs
6594
6527
  *
6595
- * @version 5.0.6
6596
- * @date 2023-11-04T04:55:09.542Z
6528
+ * @version 5.0.7
6529
+ * @date 2023-11-20T09:06:51.067Z
6597
6530
  *
6598
6531
  * @copyright (c) 2011-2017 Almende B.V, http://almende.com
6599
6532
  * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs