bootstrap 5.0.0.alpha2 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/README.md +7 -4
  4. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  5. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  6. data/assets/javascripts/bootstrap-sprockets.js +10 -7
  7. data/assets/javascripts/bootstrap.js +2554 -2564
  8. data/assets/javascripts/bootstrap.min.js +3 -3
  9. data/assets/javascripts/bootstrap/alert.js +119 -115
  10. data/assets/javascripts/bootstrap/base-component.js +63 -0
  11. data/assets/javascripts/bootstrap/button.js +67 -69
  12. data/assets/javascripts/bootstrap/carousel.js +340 -331
  13. data/assets/javascripts/bootstrap/collapse.js +214 -209
  14. data/assets/javascripts/bootstrap/dom/data.js +35 -48
  15. data/assets/javascripts/bootstrap/dom/event-handler.js +105 -98
  16. data/assets/javascripts/bootstrap/dom/manipulator.js +26 -34
  17. data/assets/javascripts/bootstrap/dom/selector-engine.js +28 -41
  18. data/assets/javascripts/bootstrap/dropdown.js +392 -325
  19. data/assets/javascripts/bootstrap/modal.js +492 -434
  20. data/assets/javascripts/bootstrap/offcanvas.js +671 -0
  21. data/assets/javascripts/bootstrap/popover.js +114 -132
  22. data/assets/javascripts/bootstrap/scrollspy.js +172 -180
  23. data/assets/javascripts/bootstrap/tab.js +168 -144
  24. data/assets/javascripts/bootstrap/toast.js +141 -150
  25. data/assets/javascripts/bootstrap/tooltip.js +466 -452
  26. data/assets/stylesheets/_bootstrap-grid.scss +9 -9
  27. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  28. data/assets/stylesheets/_bootstrap.scss +5 -3
  29. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  30. data/assets/stylesheets/bootstrap/_alert.scss +10 -3
  31. data/assets/stylesheets/bootstrap/_breadcrumb.scss +2 -4
  32. data/assets/stylesheets/bootstrap/_button-group.scss +5 -7
  33. data/assets/stylesheets/bootstrap/_buttons.scss +2 -15
  34. data/assets/stylesheets/bootstrap/_card.scss +2 -29
  35. data/assets/stylesheets/bootstrap/_carousel.scss +35 -18
  36. data/assets/stylesheets/bootstrap/_close.scss +2 -3
  37. data/assets/stylesheets/bootstrap/_dropdown.scss +33 -29
  38. data/assets/stylesheets/bootstrap/_forms.scss +1 -1
  39. data/assets/stylesheets/bootstrap/_functions.scss +11 -12
  40. data/assets/stylesheets/bootstrap/_list-group.scss +23 -6
  41. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  42. data/assets/stylesheets/bootstrap/_modal.scss +2 -9
  43. data/assets/stylesheets/bootstrap/_nav.scss +12 -0
  44. data/assets/stylesheets/bootstrap/_navbar.scss +15 -2
  45. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  46. data/assets/stylesheets/bootstrap/_pagination.scss +3 -3
  47. data/assets/stylesheets/bootstrap/_popover.scss +10 -22
  48. data/assets/stylesheets/bootstrap/_progress.scss +4 -1
  49. data/assets/stylesheets/bootstrap/_reboot.scss +48 -44
  50. data/assets/stylesheets/bootstrap/_root.scss +5 -5
  51. data/assets/stylesheets/bootstrap/_spinners.scss +18 -5
  52. data/assets/stylesheets/bootstrap/_tables.scss +15 -16
  53. data/assets/stylesheets/bootstrap/_toasts.scss +15 -12
  54. data/assets/stylesheets/bootstrap/_tooltip.scss +12 -12
  55. data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
  56. data/assets/stylesheets/bootstrap/_utilities.scss +133 -70
  57. data/assets/stylesheets/bootstrap/_variables.scss +363 -207
  58. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +5 -5
  59. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-check.scss +21 -11
  61. data/assets/stylesheets/bootstrap/forms/_form-control.scss +112 -9
  62. data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -46
  63. data/assets/stylesheets/bootstrap/forms/_form-select.scss +1 -16
  64. data/assets/stylesheets/bootstrap/forms/_input-group.scss +21 -40
  65. data/assets/stylesheets/bootstrap/forms/_validation.scss +1 -1
  66. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
  67. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
  68. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +1 -1
  69. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -1
  70. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +8 -6
  71. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +10 -5
  72. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -6
  73. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  74. data/assets/stylesheets/bootstrap/mixins/_container.scss +2 -4
  75. data/assets/stylesheets/bootstrap/mixins/_forms.scss +26 -22
  76. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +5 -1
  77. data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -13
  78. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -1
  79. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +5 -3
  80. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +7 -7
  81. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +19 -0
  82. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +3 -2
  83. data/assets/stylesheets/bootstrap/utilities/_api.scss +1 -1
  84. data/bootstrap.gemspec +1 -3
  85. data/lib/bootstrap/version.rb +2 -2
  86. data/tasks/updater/js.rb +20 -5
  87. data/tasks/updater/network.rb +7 -1
  88. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  89. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  90. data/test/dummy_rails/app/views/pages/root.html +89 -0
  91. data/test/dummy_rails/config/application.rb +0 -3
  92. data/test/gemfiles/rails_6_1.gemfile +7 -0
  93. metadata +20 -40
  94. data/assets/javascripts/bootstrap/dom/polyfill.js +0 -110
  95. data/assets/stylesheets/bootstrap/forms/_form-file.scss +0 -91
  96. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap data.js v5.0.0-alpha2 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap data.js v5.0.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -11,7 +11,7 @@
11
11
 
12
12
  /**
13
13
  * --------------------------------------------------------------------------
14
- * Bootstrap (v5.0.0-alpha2): dom/data.js
14
+ * Bootstrap (v5.0.0): dom/data.js
15
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
16
  * --------------------------------------------------------------------------
17
17
  */
@@ -21,61 +21,48 @@
21
21
  * Constants
22
22
  * ------------------------------------------------------------------------
23
23
  */
24
- var mapData = function () {
25
- var storeData = {};
26
- var id = 1;
27
- return {
28
- set: function set(element, key, data) {
29
- if (typeof element.bsKey === 'undefined') {
30
- element.bsKey = {
31
- key: key,
32
- id: id
33
- };
34
- id++;
35
- }
24
+ const elementMap = new Map();
25
+ var data = {
26
+ set(element, key, instance) {
27
+ if (!elementMap.has(element)) {
28
+ elementMap.set(element, new Map());
29
+ }
36
30
 
37
- storeData[element.bsKey.id] = data;
38
- },
39
- get: function get(element, key) {
40
- if (!element || typeof element.bsKey === 'undefined') {
41
- return null;
42
- }
31
+ const instanceMap = elementMap.get(element); // make it clear we only want one instance per element
32
+ // can be removed later when multiple key/instances are fine to be used
43
33
 
44
- var keyProperties = element.bsKey;
34
+ if (!instanceMap.has(key) && instanceMap.size !== 0) {
35
+ // eslint-disable-next-line no-console
36
+ console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
37
+ return;
38
+ }
45
39
 
46
- if (keyProperties.key === key) {
47
- return storeData[keyProperties.id];
48
- }
40
+ instanceMap.set(key, instance);
41
+ },
49
42
 
50
- return null;
51
- },
52
- delete: function _delete(element, key) {
53
- if (typeof element.bsKey === 'undefined') {
54
- return;
55
- }
43
+ get(element, key) {
44
+ if (elementMap.has(element)) {
45
+ return elementMap.get(element).get(key) || null;
46
+ }
56
47
 
57
- var keyProperties = element.bsKey;
48
+ return null;
49
+ },
58
50
 
59
- if (keyProperties.key === key) {
60
- delete storeData[keyProperties.id];
61
- delete element.bsKey;
62
- }
51
+ remove(element, key) {
52
+ if (!elementMap.has(element)) {
53
+ return;
63
54
  }
64
- };
65
- }();
66
55
 
67
- var Data = {
68
- setData: function setData(instance, key, data) {
69
- mapData.set(instance, key, data);
70
- },
71
- getData: function getData(instance, key) {
72
- return mapData.get(instance, key);
73
- },
74
- removeData: function removeData(instance, key) {
75
- mapData.delete(instance, key);
56
+ const instanceMap = elementMap.get(element);
57
+ instanceMap.delete(key); // free up element references if there are no instances left for an element
58
+
59
+ if (instanceMap.size === 0) {
60
+ elementMap.delete(element);
61
+ }
76
62
  }
63
+
77
64
  };
78
65
 
79
- return Data;
66
+ return data;
80
67
 
81
68
  })));
@@ -1,26 +1,27 @@
1
1
  /*!
2
- * Bootstrap event-handler.js v5.0.0-alpha2 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap event-handler.js v5.0.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) :
8
- typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory(global.Polyfill));
10
- }(this, (function (polyfill_js) { 'use strict';
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
+ typeof define === 'function' && define.amd ? define(factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory());
10
+ }(this, (function () { 'use strict';
11
11
 
12
12
  /**
13
13
  * --------------------------------------------------------------------------
14
- * Bootstrap (v5.0.0-alpha2): util/index.js
14
+ * Bootstrap (v5.0.0): util/index.js
15
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16
16
  * --------------------------------------------------------------------------
17
17
  */
18
18
 
19
- var getjQuery = function getjQuery() {
20
- var _window = window,
21
- jQuery = _window.jQuery;
19
+ const getjQuery = () => {
20
+ const {
21
+ jQuery
22
+ } = window;
22
23
 
23
- if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
24
+ if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
24
25
  return jQuery;
25
26
  }
26
27
 
@@ -29,7 +30,7 @@
29
30
 
30
31
  /**
31
32
  * --------------------------------------------------------------------------
32
- * Bootstrap (v5.0.0-alpha2): dom/event-handler.js
33
+ * Bootstrap (v5.0.0): dom/event-handler.js
33
34
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
34
35
  * --------------------------------------------------------------------------
35
36
  */
@@ -39,18 +40,18 @@
39
40
  * ------------------------------------------------------------------------
40
41
  */
41
42
 
42
- var $ = getjQuery();
43
- var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
44
- var stripNameRegex = /\..*/;
45
- var stripUidRegex = /::\d+$/;
46
- var eventRegistry = {}; // Events storage
43
+ const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
44
+ const stripNameRegex = /\..*/;
45
+ const stripUidRegex = /::\d+$/;
46
+ const eventRegistry = {}; // Events storage
47
47
 
48
- var uidEvent = 1;
49
- var customEvents = {
48
+ let uidEvent = 1;
49
+ const customEvents = {
50
50
  mouseenter: 'mouseover',
51
51
  mouseleave: 'mouseout'
52
52
  };
53
- var nativeEvents = ['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll'];
53
+ const customEventsRegex = /^(mouseenter|mouseleave)/i;
54
+ const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
54
55
  /**
55
56
  * ------------------------------------------------------------------------
56
57
  * Private methods
@@ -58,11 +59,11 @@
58
59
  */
59
60
 
60
61
  function getUidEvent(element, uid) {
61
- return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++;
62
+ return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
62
63
  }
63
64
 
64
65
  function getEvent(element) {
65
- var uid = getUidEvent(element);
66
+ const uid = getUidEvent(element);
66
67
  element.uidEvent = uid;
67
68
  eventRegistry[uid] = eventRegistry[uid] || {};
68
69
  return eventRegistry[uid];
@@ -82,15 +83,18 @@
82
83
 
83
84
  function bootstrapDelegationHandler(element, selector, fn) {
84
85
  return function handler(event) {
85
- var domElements = element.querySelectorAll(selector);
86
+ const domElements = element.querySelectorAll(selector);
86
87
 
87
- for (var target = event.target; target && target !== this; target = target.parentNode) {
88
- for (var i = domElements.length; i--;) {
88
+ for (let {
89
+ target
90
+ } = event; target && target !== this; target = target.parentNode) {
91
+ for (let i = domElements.length; i--;) {
89
92
  if (domElements[i] === target) {
90
93
  event.delegateTarget = target;
91
94
 
92
95
  if (handler.oneOff) {
93
- EventHandler.off(element, event.type, fn);
96
+ // eslint-disable-next-line unicorn/consistent-destructuring
97
+ EventHandler.off(element, event.type, selector, fn);
94
98
  }
95
99
 
96
100
  return fn.apply(target, [event]);
@@ -103,15 +107,11 @@
103
107
  };
104
108
  }
105
109
 
106
- function findHandler(events, handler, delegationSelector) {
107
- if (delegationSelector === void 0) {
108
- delegationSelector = null;
109
- }
110
-
111
- var uidEventList = Object.keys(events);
110
+ function findHandler(events, handler, delegationSelector = null) {
111
+ const uidEventList = Object.keys(events);
112
112
 
113
- for (var i = 0, len = uidEventList.length; i < len; i++) {
114
- var event = events[uidEventList[i]];
113
+ for (let i = 0, len = uidEventList.length; i < len; i++) {
114
+ const event = events[uidEventList[i]];
115
115
 
116
116
  if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {
117
117
  return event;
@@ -122,17 +122,10 @@
122
122
  }
123
123
 
124
124
  function normalizeParams(originalTypeEvent, handler, delegationFn) {
125
- var delegation = typeof handler === 'string';
126
- var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
127
-
128
- var typeEvent = originalTypeEvent.replace(stripNameRegex, '');
129
- var custom = customEvents[typeEvent];
130
-
131
- if (custom) {
132
- typeEvent = custom;
133
- }
134
-
135
- var isNative = nativeEvents.indexOf(typeEvent) > -1;
125
+ const delegation = typeof handler === 'string';
126
+ const originalHandler = delegation ? delegationFn : handler;
127
+ let typeEvent = getTypeEvent(originalTypeEvent);
128
+ const isNative = nativeEvents.has(typeEvent);
136
129
 
137
130
  if (!isNative) {
138
131
  typeEvent = originalTypeEvent;
@@ -149,24 +142,38 @@
149
142
  if (!handler) {
150
143
  handler = delegationFn;
151
144
  delegationFn = null;
152
- }
145
+ } // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
146
+ // this prevents the handler from being dispatched the same way as mouseover or mouseout does
153
147
 
154
- var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),
155
- delegation = _normalizeParams[0],
156
- originalHandler = _normalizeParams[1],
157
- typeEvent = _normalizeParams[2];
158
148
 
159
- var events = getEvent(element);
160
- var handlers = events[typeEvent] || (events[typeEvent] = {});
161
- var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);
149
+ if (customEventsRegex.test(originalTypeEvent)) {
150
+ const wrapFn = fn => {
151
+ return function (event) {
152
+ if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
153
+ return fn.call(this, event);
154
+ }
155
+ };
156
+ };
157
+
158
+ if (delegationFn) {
159
+ delegationFn = wrapFn(delegationFn);
160
+ } else {
161
+ handler = wrapFn(handler);
162
+ }
163
+ }
164
+
165
+ const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);
166
+ const events = getEvent(element);
167
+ const handlers = events[typeEvent] || (events[typeEvent] = {});
168
+ const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);
162
169
 
163
170
  if (previousFn) {
164
171
  previousFn.oneOff = previousFn.oneOff && oneOff;
165
172
  return;
166
173
  }
167
174
 
168
- var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
169
- var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
175
+ const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
176
+ const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
170
177
  fn.delegationSelector = delegation ? handler : null;
171
178
  fn.originalHandler = originalHandler;
172
179
  fn.oneOff = oneOff;
@@ -176,7 +183,7 @@
176
183
  }
177
184
 
178
185
  function removeHandler(element, events, typeEvent, handler, delegationSelector) {
179
- var fn = findHandler(events[typeEvent], handler, delegationSelector);
186
+ const fn = findHandler(events[typeEvent], handler, delegationSelector);
180
187
 
181
188
  if (!fn) {
182
189
  return;
@@ -187,35 +194,39 @@
187
194
  }
188
195
 
189
196
  function removeNamespacedHandlers(element, events, typeEvent, namespace) {
190
- var storeElementEvent = events[typeEvent] || {};
191
- Object.keys(storeElementEvent).forEach(function (handlerKey) {
192
- if (handlerKey.indexOf(namespace) > -1) {
193
- var event = storeElementEvent[handlerKey];
197
+ const storeElementEvent = events[typeEvent] || {};
198
+ Object.keys(storeElementEvent).forEach(handlerKey => {
199
+ if (handlerKey.includes(namespace)) {
200
+ const event = storeElementEvent[handlerKey];
194
201
  removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
195
202
  }
196
203
  });
197
204
  }
198
205
 
199
- var EventHandler = {
200
- on: function on(element, event, handler, delegationFn) {
206
+ function getTypeEvent(event) {
207
+ // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
208
+ event = event.replace(stripNameRegex, '');
209
+ return customEvents[event] || event;
210
+ }
211
+
212
+ const EventHandler = {
213
+ on(element, event, handler, delegationFn) {
201
214
  addHandler(element, event, handler, delegationFn, false);
202
215
  },
203
- one: function one(element, event, handler, delegationFn) {
216
+
217
+ one(element, event, handler, delegationFn) {
204
218
  addHandler(element, event, handler, delegationFn, true);
205
219
  },
206
- off: function off(element, originalTypeEvent, handler, delegationFn) {
220
+
221
+ off(element, originalTypeEvent, handler, delegationFn) {
207
222
  if (typeof originalTypeEvent !== 'string' || !element) {
208
223
  return;
209
224
  }
210
225
 
211
- var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn),
212
- delegation = _normalizeParams2[0],
213
- originalHandler = _normalizeParams2[1],
214
- typeEvent = _normalizeParams2[2];
215
-
216
- var inNamespace = typeEvent !== originalTypeEvent;
217
- var events = getEvent(element);
218
- var isNamespace = originalTypeEvent.charAt(0) === '.';
226
+ const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn);
227
+ const inNamespace = typeEvent !== originalTypeEvent;
228
+ const events = getEvent(element);
229
+ const isNamespace = originalTypeEvent.startsWith('.');
219
230
 
220
231
  if (typeof originalHandler !== 'undefined') {
221
232
  // Simplest case: handler is passed, remove that listener ONLY.
@@ -228,34 +239,36 @@
228
239
  }
229
240
 
230
241
  if (isNamespace) {
231
- Object.keys(events).forEach(function (elementEvent) {
242
+ Object.keys(events).forEach(elementEvent => {
232
243
  removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
233
244
  });
234
245
  }
235
246
 
236
- var storeElementEvent = events[typeEvent] || {};
237
- Object.keys(storeElementEvent).forEach(function (keyHandlers) {
238
- var handlerKey = keyHandlers.replace(stripUidRegex, '');
247
+ const storeElementEvent = events[typeEvent] || {};
248
+ Object.keys(storeElementEvent).forEach(keyHandlers => {
249
+ const handlerKey = keyHandlers.replace(stripUidRegex, '');
239
250
 
240
- if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
241
- var event = storeElementEvent[keyHandlers];
251
+ if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
252
+ const event = storeElementEvent[keyHandlers];
242
253
  removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
243
254
  }
244
255
  });
245
256
  },
246
- trigger: function trigger(element, event, args) {
257
+
258
+ trigger(element, event, args) {
247
259
  if (typeof event !== 'string' || !element) {
248
260
  return null;
249
261
  }
250
262
 
251
- var typeEvent = event.replace(stripNameRegex, '');
252
- var inNamespace = event !== typeEvent;
253
- var isNative = nativeEvents.indexOf(typeEvent) > -1;
254
- var jQueryEvent;
255
- var bubbles = true;
256
- var nativeDispatch = true;
257
- var defaultPrevented = false;
258
- var evt = null;
263
+ const $ = getjQuery();
264
+ const typeEvent = getTypeEvent(event);
265
+ const inNamespace = event !== typeEvent;
266
+ const isNative = nativeEvents.has(typeEvent);
267
+ let jQueryEvent;
268
+ let bubbles = true;
269
+ let nativeDispatch = true;
270
+ let defaultPrevented = false;
271
+ let evt = null;
259
272
 
260
273
  if (inNamespace && $) {
261
274
  jQueryEvent = $.Event(event, args);
@@ -270,32 +283,25 @@
270
283
  evt.initEvent(typeEvent, bubbles, true);
271
284
  } else {
272
285
  evt = new CustomEvent(event, {
273
- bubbles: bubbles,
286
+ bubbles,
274
287
  cancelable: true
275
288
  });
276
289
  } // merge custom information in our event
277
290
 
278
291
 
279
292
  if (typeof args !== 'undefined') {
280
- Object.keys(args).forEach(function (key) {
293
+ Object.keys(args).forEach(key => {
281
294
  Object.defineProperty(evt, key, {
282
- get: function get() {
295
+ get() {
283
296
  return args[key];
284
297
  }
298
+
285
299
  });
286
300
  });
287
301
  }
288
302
 
289
303
  if (defaultPrevented) {
290
304
  evt.preventDefault();
291
-
292
- if (!polyfill_js.defaultPreventedPreservedOnDispatch) {
293
- Object.defineProperty(evt, 'defaultPrevented', {
294
- get: function get() {
295
- return true;
296
- }
297
- });
298
- }
299
305
  }
300
306
 
301
307
  if (nativeDispatch) {
@@ -308,6 +314,7 @@
308
314
 
309
315
  return evt;
310
316
  }
317
+
311
318
  };
312
319
 
313
320
  return EventHandler;