@progress/kendo-charts 2.4.0 → 2.4.1-dev.202406251154

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.
@@ -119,8 +119,7 @@ var LegendItem = (function (BoxElement) {
119
119
  if (options.type === AREA) {
120
120
  this._square = new LegendItemSquare(Object.assign({}, {border: options.border,
121
121
  vAlign: options.markers.visible ? BOTTOM : CENTER,
122
- highlight: this._highlightOptions(),
123
- visual: options.visual},
122
+ highlight: this._highlightOptions()},
124
123
  options.area,
125
124
  {background: options.area.background || options.markerColor}));
126
125
  this.markerWrap.append(this._square);
@@ -1,5 +1,9 @@
1
1
  import isFunction from './is-function';
2
2
  import isArray from './is-array';
3
+ import guid from '../core/utils/guid';
4
+
5
+ var elementEventHandlers = new WeakMap();
6
+ var ID = Symbol('id');
3
7
 
4
8
  export function on(element, events, filter, handler, useCapture) {
5
9
  addEventListeners(element, events, filter, handler, useCapture);
@@ -31,7 +35,7 @@ function addEventListener(element, event, filter, handler, useCapture) {
31
35
  eventFilter = filter;
32
36
  }
33
37
 
34
- element.addEventListener(event, function(e) {
38
+ var attachedHandler = function(e) {
35
39
  var closestMatchingTarget = e.target ? e.target.closest(eventFilter) : null;
36
40
 
37
41
  if (!eventFilter ||
@@ -45,7 +49,18 @@ function addEventListener(element, event, filter, handler, useCapture) {
45
49
 
46
50
  eventHandler(e);
47
51
  }
48
- }, Boolean(useCapture));
52
+ };
53
+ eventHandler[ID] = guid();
54
+
55
+ var eventHandlers = elementEventHandlers.get(element);
56
+
57
+ if (!eventHandlers) {
58
+ eventHandlers = new Map();
59
+ elementEventHandlers.set(element, eventHandlers);
60
+ }
61
+
62
+ eventHandlers.set(eventHandler[ID], attachedHandler);
63
+ element.addEventListener(event, attachedHandler, Boolean(useCapture));
49
64
  }
50
65
 
51
66
  function removeEventListeners(element, events, handler, useCapture) {
@@ -57,5 +72,16 @@ function removeEventListeners(element, events, handler, useCapture) {
57
72
  }
58
73
 
59
74
  function removeEventListener(element, event, handler, useCapture) {
60
- element.removeEventListener(event, handler, Boolean(useCapture));
75
+ var eventHandlers = elementEventHandlers.get(element);
76
+
77
+ if (eventHandlers && handler && handler[ID]) {
78
+ var handlerId = handler[ID];
79
+ var attachedHandler = eventHandlers.get(handlerId);
80
+
81
+ eventHandlers.delete(handlerId);
82
+
83
+ if (attachedHandler) {
84
+ element.removeEventListener(event, attachedHandler, Boolean(useCapture));
85
+ }
86
+ }
61
87
  }
@@ -113,8 +113,7 @@ class LegendItem extends BoxElement {
113
113
  if (options.type === AREA) {
114
114
  this._square = new LegendItemSquare(Object.assign({}, {border: options.border,
115
115
  vAlign: options.markers.visible ? BOTTOM : CENTER,
116
- highlight: this._highlightOptions(),
117
- visual: options.visual},
116
+ highlight: this._highlightOptions()},
118
117
  options.area,
119
118
  {background: options.area.background || options.markerColor}));
120
119
  this.markerWrap.append(this._square);
@@ -1,5 +1,9 @@
1
1
  import isFunction from './is-function';
2
2
  import isArray from './is-array';
3
+ import guid from '../core/utils/guid';
4
+
5
+ const elementEventHandlers = new WeakMap();
6
+ const ID = Symbol('id');
3
7
 
4
8
  export function on(element, events, filter, handler, useCapture) {
5
9
  addEventListeners(element, events, filter, handler, useCapture);
@@ -31,7 +35,7 @@ function addEventListener(element, event, filter, handler, useCapture) {
31
35
  eventFilter = filter;
32
36
  }
33
37
 
34
- element.addEventListener(event, function(e) {
38
+ const attachedHandler = function(e) {
35
39
  const closestMatchingTarget = e.target ? e.target.closest(eventFilter) : null;
36
40
 
37
41
  if (!eventFilter ||
@@ -45,7 +49,18 @@ function addEventListener(element, event, filter, handler, useCapture) {
45
49
 
46
50
  eventHandler(e);
47
51
  }
48
- }, Boolean(useCapture));
52
+ };
53
+ eventHandler[ID] = guid();
54
+
55
+ let eventHandlers = elementEventHandlers.get(element);
56
+
57
+ if (!eventHandlers) {
58
+ eventHandlers = new Map();
59
+ elementEventHandlers.set(element, eventHandlers);
60
+ }
61
+
62
+ eventHandlers.set(eventHandler[ID], attachedHandler);
63
+ element.addEventListener(event, attachedHandler, Boolean(useCapture));
49
64
  }
50
65
 
51
66
  function removeEventListeners(element, events, handler, useCapture) {
@@ -57,5 +72,16 @@ function removeEventListeners(element, events, handler, useCapture) {
57
72
  }
58
73
 
59
74
  function removeEventListener(element, event, handler, useCapture) {
60
- element.removeEventListener(event, handler, Boolean(useCapture));
75
+ const eventHandlers = elementEventHandlers.get(element);
76
+
77
+ if (eventHandlers && handler && handler[ID]) {
78
+ const handlerId = handler[ID];
79
+ const attachedHandler = eventHandlers.get(handlerId);
80
+
81
+ eventHandlers.delete(handlerId);
82
+
83
+ if (attachedHandler) {
84
+ element.removeEventListener(event, attachedHandler, Boolean(useCapture));
85
+ }
86
+ }
61
87
  }