bootstrap 4.4.1 → 4.5.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.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -1
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +7 -7
  5. data/assets/javascripts/bootstrap.js +516 -617
  6. data/assets/javascripts/bootstrap.min.js +3 -3
  7. data/assets/javascripts/bootstrap/alert.js +19 -27
  8. data/assets/javascripts/bootstrap/button.js +50 -56
  9. data/assets/javascripts/bootstrap/carousel.js +88 -99
  10. data/assets/javascripts/bootstrap/collapse.js +43 -53
  11. data/assets/javascripts/bootstrap/dropdown.js +75 -93
  12. data/assets/javascripts/bootstrap/modal.js +87 -91
  13. data/assets/javascripts/bootstrap/popover.js +15 -21
  14. data/assets/javascripts/bootstrap/scrollspy.js +39 -53
  15. data/assets/javascripts/bootstrap/tab.js +44 -52
  16. data/assets/javascripts/bootstrap/toast.js +33 -41
  17. data/assets/javascripts/bootstrap/tooltip.js +53 -65
  18. data/assets/javascripts/bootstrap/util.js +9 -5
  19. data/assets/stylesheets/_bootstrap-grid.scss +3 -3
  20. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  21. data/assets/stylesheets/_bootstrap.scss +3 -3
  22. data/assets/stylesheets/bootstrap/_breadcrumb.scss +2 -0
  23. data/assets/stylesheets/bootstrap/_buttons.scss +10 -7
  24. data/assets/stylesheets/bootstrap/_card.scss +11 -7
  25. data/assets/stylesheets/bootstrap/_close.scss +0 -1
  26. data/assets/stylesheets/bootstrap/_custom-forms.scss +2 -1
  27. data/assets/stylesheets/bootstrap/_dropdown.scss +2 -1
  28. data/assets/stylesheets/bootstrap/_forms.scss +9 -0
  29. data/assets/stylesheets/bootstrap/_functions.scss +12 -5
  30. data/assets/stylesheets/bootstrap/_grid.scss +9 -1
  31. data/assets/stylesheets/bootstrap/_input-group.scss +2 -1
  32. data/assets/stylesheets/bootstrap/_list-group.scss +9 -13
  33. data/assets/stylesheets/bootstrap/_modal.scss +2 -0
  34. data/assets/stylesheets/bootstrap/_nav.scss +1 -0
  35. data/assets/stylesheets/bootstrap/_pagination.scss +1 -0
  36. data/assets/stylesheets/bootstrap/_progress.scss +1 -0
  37. data/assets/stylesheets/bootstrap/_reboot.scss +10 -12
  38. data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
  39. data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
  40. data/assets/stylesheets/bootstrap/_variables.scss +4 -0
  41. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
  42. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
  43. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +6 -6
  44. data/assets/stylesheets/bootstrap/mixins/_forms.scss +2 -2
  45. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +25 -15
  46. data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
  47. data/assets/stylesheets/bootstrap/utilities/_background.scss +1 -1
  48. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  49. data/assets/stylesheets/bootstrap/utilities/_text.scss +1 -2
  50. data/lib/bootstrap/version.rb +2 -2
  51. data/tasks/updater/network.rb +2 -2
  52. data/test/gemfiles/rails_6_0.gemfile +7 -0
  53. metadata +6 -3
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap collapse.js v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap collapse.js v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -9,8 +9,8 @@
9
9
  (global = global || self, global.Collapse = factory(global.jQuery, global.Util));
10
10
  }(this, (function ($, Util) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
14
14
 
15
15
  function _defineProperties(target, props) {
16
16
  for (var i = 0; i < props.length; i++) {
@@ -84,7 +84,7 @@
84
84
  */
85
85
 
86
86
  var NAME = 'collapse';
87
- var VERSION = '4.4.1';
87
+ var VERSION = '4.5.0';
88
88
  var DATA_KEY = 'bs.collapse';
89
89
  var EVENT_KEY = "." + DATA_KEY;
90
90
  var DATA_API_KEY = '.data-api';
@@ -97,42 +97,32 @@
97
97
  toggle: 'boolean',
98
98
  parent: '(string|element)'
99
99
  };
100
- var Event = {
101
- SHOW: "show" + EVENT_KEY,
102
- SHOWN: "shown" + EVENT_KEY,
103
- HIDE: "hide" + EVENT_KEY,
104
- HIDDEN: "hidden" + EVENT_KEY,
105
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
106
- };
107
- var ClassName = {
108
- SHOW: 'show',
109
- COLLAPSE: 'collapse',
110
- COLLAPSING: 'collapsing',
111
- COLLAPSED: 'collapsed'
112
- };
113
- var Dimension = {
114
- WIDTH: 'width',
115
- HEIGHT: 'height'
116
- };
117
- var Selector = {
118
- ACTIVES: '.show, .collapsing',
119
- DATA_TOGGLE: '[data-toggle="collapse"]'
120
- };
100
+ var EVENT_SHOW = "show" + EVENT_KEY;
101
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
102
+ var EVENT_HIDE = "hide" + EVENT_KEY;
103
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
104
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
105
+ var CLASS_NAME_SHOW = 'show';
106
+ var CLASS_NAME_COLLAPSE = 'collapse';
107
+ var CLASS_NAME_COLLAPSING = 'collapsing';
108
+ var CLASS_NAME_COLLAPSED = 'collapsed';
109
+ var DIMENSION_WIDTH = 'width';
110
+ var DIMENSION_HEIGHT = 'height';
111
+ var SELECTOR_ACTIVES = '.show, .collapsing';
112
+ var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
121
113
  /**
122
114
  * ------------------------------------------------------------------------
123
115
  * Class Definition
124
116
  * ------------------------------------------------------------------------
125
117
  */
126
118
 
127
- var Collapse =
128
- /*#__PURE__*/
129
- function () {
119
+ var Collapse = /*#__PURE__*/function () {
130
120
  function Collapse(element, config) {
131
121
  this._isTransitioning = false;
132
122
  this._element = element;
133
123
  this._config = this._getConfig(config);
134
124
  this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
135
- var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
125
+ var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
136
126
 
137
127
  for (var i = 0, len = toggleList.length; i < len; i++) {
138
128
  var elem = toggleList[i];
@@ -164,7 +154,7 @@
164
154
 
165
155
  // Public
166
156
  _proto.toggle = function toggle() {
167
- if ($(this._element).hasClass(ClassName.SHOW)) {
157
+ if ($(this._element).hasClass(CLASS_NAME_SHOW)) {
168
158
  this.hide();
169
159
  } else {
170
160
  this.show();
@@ -174,7 +164,7 @@
174
164
  _proto.show = function show() {
175
165
  var _this = this;
176
166
 
177
- if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
167
+ if (this._isTransitioning || $(this._element).hasClass(CLASS_NAME_SHOW)) {
178
168
  return;
179
169
  }
180
170
 
@@ -182,12 +172,12 @@
182
172
  var activesData;
183
173
 
184
174
  if (this._parent) {
185
- actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
175
+ actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {
186
176
  if (typeof _this._config.parent === 'string') {
187
177
  return elem.getAttribute('data-parent') === _this._config.parent;
188
178
  }
189
179
 
190
- return elem.classList.contains(ClassName.COLLAPSE);
180
+ return elem.classList.contains(CLASS_NAME_COLLAPSE);
191
181
  });
192
182
 
193
183
  if (actives.length === 0) {
@@ -203,7 +193,7 @@
203
193
  }
204
194
  }
205
195
 
206
- var startEvent = $.Event(Event.SHOW);
196
+ var startEvent = $.Event(EVENT_SHOW);
207
197
  $(this._element).trigger(startEvent);
208
198
 
209
199
  if (startEvent.isDefaultPrevented()) {
@@ -220,22 +210,22 @@
220
210
 
221
211
  var dimension = this._getDimension();
222
212
 
223
- $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
213
+ $(this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);
224
214
  this._element.style[dimension] = 0;
225
215
 
226
216
  if (this._triggerArray.length) {
227
- $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
217
+ $(this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);
228
218
  }
229
219
 
230
220
  this.setTransitioning(true);
231
221
 
232
222
  var complete = function complete() {
233
- $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
223
+ $(_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
234
224
  _this._element.style[dimension] = '';
235
225
 
236
226
  _this.setTransitioning(false);
237
227
 
238
- $(_this._element).trigger(Event.SHOWN);
228
+ $(_this._element).trigger(EVENT_SHOWN);
239
229
  };
240
230
 
241
231
  var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@@ -248,11 +238,11 @@
248
238
  _proto.hide = function hide() {
249
239
  var _this2 = this;
250
240
 
251
- if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
241
+ if (this._isTransitioning || !$(this._element).hasClass(CLASS_NAME_SHOW)) {
252
242
  return;
253
243
  }
254
244
 
255
- var startEvent = $.Event(Event.HIDE);
245
+ var startEvent = $.Event(EVENT_HIDE);
256
246
  $(this._element).trigger(startEvent);
257
247
 
258
248
  if (startEvent.isDefaultPrevented()) {
@@ -263,7 +253,7 @@
263
253
 
264
254
  this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
265
255
  Util.reflow(this._element);
266
- $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
256
+ $(this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW);
267
257
  var triggerArrayLength = this._triggerArray.length;
268
258
 
269
259
  if (triggerArrayLength > 0) {
@@ -274,8 +264,8 @@
274
264
  if (selector !== null) {
275
265
  var $elem = $([].slice.call(document.querySelectorAll(selector)));
276
266
 
277
- if (!$elem.hasClass(ClassName.SHOW)) {
278
- $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
267
+ if (!$elem.hasClass(CLASS_NAME_SHOW)) {
268
+ $(trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);
279
269
  }
280
270
  }
281
271
  }
@@ -286,7 +276,7 @@
286
276
  var complete = function complete() {
287
277
  _this2.setTransitioning(false);
288
278
 
289
- $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
279
+ $(_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);
290
280
  };
291
281
 
292
282
  this._element.style[dimension] = '';
@@ -309,7 +299,7 @@
309
299
  ;
310
300
 
311
301
  _proto._getConfig = function _getConfig(config) {
312
- config = _objectSpread2({}, Default, {}, config);
302
+ config = _objectSpread2(_objectSpread2({}, Default), config);
313
303
  config.toggle = Boolean(config.toggle); // Coerce string values
314
304
 
315
305
  Util.typeCheckConfig(NAME, config, DefaultType);
@@ -317,8 +307,8 @@
317
307
  };
318
308
 
319
309
  _proto._getDimension = function _getDimension() {
320
- var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
321
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
310
+ var hasWidth = $(this._element).hasClass(DIMENSION_WIDTH);
311
+ return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;
322
312
  };
323
313
 
324
314
  _proto._getParent = function _getParent() {
@@ -345,10 +335,10 @@
345
335
  };
346
336
 
347
337
  _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
348
- var isOpen = $(element).hasClass(ClassName.SHOW);
338
+ var isOpen = $(element).hasClass(CLASS_NAME_SHOW);
349
339
 
350
340
  if (triggerArray.length) {
351
- $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
341
+ $(triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
352
342
  }
353
343
  } // Static
354
344
  ;
@@ -363,9 +353,9 @@
363
353
  var $this = $(this);
364
354
  var data = $this.data(DATA_KEY);
365
355
 
366
- var _config = _objectSpread2({}, Default, {}, $this.data(), {}, typeof config === 'object' && config ? config : {});
356
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), $this.data()), typeof config === 'object' && config ? config : {});
367
357
 
368
- if (!data && _config.toggle && /show|hide/.test(config)) {
358
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
369
359
  _config.toggle = false;
370
360
  }
371
361
 
@@ -405,7 +395,7 @@
405
395
  */
406
396
 
407
397
 
408
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
398
+ $(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
409
399
  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
410
400
  if (event.currentTarget.tagName === 'A') {
411
401
  event.preventDefault();
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap dropdown.js v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap dropdown.js v4.5.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -9,9 +9,9 @@
9
9
  (global = global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));
10
10
  }(this, (function ($, Popper, Util) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13
- Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
14
- Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
12
+ $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
+ Popper = Popper && Object.prototype.hasOwnProperty.call(Popper, 'default') ? Popper['default'] : Popper;
14
+ Util = Util && Object.prototype.hasOwnProperty.call(Util, 'default') ? Util['default'] : Util;
15
15
 
16
16
  function _defineProperties(target, props) {
17
17
  for (var i = 0; i < props.length; i++) {
@@ -85,7 +85,7 @@
85
85
  */
86
86
 
87
87
  var NAME = 'dropdown';
88
- var VERSION = '4.4.1';
88
+ var VERSION = '4.5.0';
89
89
  var DATA_KEY = 'bs.dropdown';
90
90
  var EVENT_KEY = "." + DATA_KEY;
91
91
  var DATA_API_KEY = '.data-api';
@@ -103,43 +103,32 @@
103
103
  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
104
104
 
105
105
  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
106
- var Event = {
107
- HIDE: "hide" + EVENT_KEY,
108
- HIDDEN: "hidden" + EVENT_KEY,
109
- SHOW: "show" + EVENT_KEY,
110
- SHOWN: "shown" + EVENT_KEY,
111
- CLICK: "click" + EVENT_KEY,
112
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
113
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
114
- KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
115
- };
116
- var ClassName = {
117
- DISABLED: 'disabled',
118
- SHOW: 'show',
119
- DROPUP: 'dropup',
120
- DROPRIGHT: 'dropright',
121
- DROPLEFT: 'dropleft',
122
- MENURIGHT: 'dropdown-menu-right',
123
- MENULEFT: 'dropdown-menu-left',
124
- POSITION_STATIC: 'position-static'
125
- };
126
- var Selector = {
127
- DATA_TOGGLE: '[data-toggle="dropdown"]',
128
- FORM_CHILD: '.dropdown form',
129
- MENU: '.dropdown-menu',
130
- NAVBAR_NAV: '.navbar-nav',
131
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
132
- };
133
- var AttachmentMap = {
134
- TOP: 'top-start',
135
- TOPEND: 'top-end',
136
- BOTTOM: 'bottom-start',
137
- BOTTOMEND: 'bottom-end',
138
- RIGHT: 'right-start',
139
- RIGHTEND: 'right-end',
140
- LEFT: 'left-start',
141
- LEFTEND: 'left-end'
142
- };
106
+ var EVENT_HIDE = "hide" + EVENT_KEY;
107
+ var EVENT_HIDDEN = "hidden" + EVENT_KEY;
108
+ var EVENT_SHOW = "show" + EVENT_KEY;
109
+ var EVENT_SHOWN = "shown" + EVENT_KEY;
110
+ var EVENT_CLICK = "click" + EVENT_KEY;
111
+ var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
112
+ var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY;
113
+ var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY;
114
+ var CLASS_NAME_DISABLED = 'disabled';
115
+ var CLASS_NAME_SHOW = 'show';
116
+ var CLASS_NAME_DROPUP = 'dropup';
117
+ var CLASS_NAME_DROPRIGHT = 'dropright';
118
+ var CLASS_NAME_DROPLEFT = 'dropleft';
119
+ var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
120
+ var CLASS_NAME_POSITION_STATIC = 'position-static';
121
+ var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
122
+ var SELECTOR_FORM_CHILD = '.dropdown form';
123
+ var SELECTOR_MENU = '.dropdown-menu';
124
+ var SELECTOR_NAVBAR_NAV = '.navbar-nav';
125
+ var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
126
+ var PLACEMENT_TOP = 'top-start';
127
+ var PLACEMENT_TOPEND = 'top-end';
128
+ var PLACEMENT_BOTTOM = 'bottom-start';
129
+ var PLACEMENT_BOTTOMEND = 'bottom-end';
130
+ var PLACEMENT_RIGHT = 'right-start';
131
+ var PLACEMENT_LEFT = 'left-start';
143
132
  var Default = {
144
133
  offset: 0,
145
134
  flip: true,
@@ -162,9 +151,7 @@
162
151
  * ------------------------------------------------------------------------
163
152
  */
164
153
 
165
- var Dropdown =
166
- /*#__PURE__*/
167
- function () {
154
+ var Dropdown = /*#__PURE__*/function () {
168
155
  function Dropdown(element, config) {
169
156
  this._element = element;
170
157
  this._popper = null;
@@ -180,11 +167,11 @@
180
167
 
181
168
  // Public
182
169
  _proto.toggle = function toggle() {
183
- if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
170
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {
184
171
  return;
185
172
  }
186
173
 
187
- var isActive = $(this._menu).hasClass(ClassName.SHOW);
174
+ var isActive = $(this._menu).hasClass(CLASS_NAME_SHOW);
188
175
 
189
176
  Dropdown._clearMenus();
190
177
 
@@ -200,14 +187,14 @@
200
187
  usePopper = false;
201
188
  }
202
189
 
203
- if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
190
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {
204
191
  return;
205
192
  }
206
193
 
207
194
  var relatedTarget = {
208
195
  relatedTarget: this._element
209
196
  };
210
- var showEvent = $.Event(Event.SHOW, relatedTarget);
197
+ var showEvent = $.Event(EVENT_SHOW, relatedTarget);
211
198
 
212
199
  var parent = Dropdown._getParentFromElement(this._element);
213
200
 
@@ -243,7 +230,7 @@
243
230
 
244
231
 
245
232
  if (this._config.boundary !== 'scrollParent') {
246
- $(parent).addClass(ClassName.POSITION_STATIC);
233
+ $(parent).addClass(CLASS_NAME_POSITION_STATIC);
247
234
  }
248
235
 
249
236
  this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
@@ -253,7 +240,7 @@
253
240
  // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
254
241
 
255
242
 
256
- if ('ontouchstart' in document.documentElement && $(parent).closest(Selector.NAVBAR_NAV).length === 0) {
243
+ if ('ontouchstart' in document.documentElement && $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {
257
244
  $(document.body).children().on('mouseover', null, $.noop);
258
245
  }
259
246
 
@@ -261,19 +248,19 @@
261
248
 
262
249
  this._element.setAttribute('aria-expanded', true);
263
250
 
264
- $(this._menu).toggleClass(ClassName.SHOW);
265
- $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
251
+ $(this._menu).toggleClass(CLASS_NAME_SHOW);
252
+ $(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_SHOWN, relatedTarget));
266
253
  };
267
254
 
268
255
  _proto.hide = function hide() {
269
- if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {
256
+ if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {
270
257
  return;
271
258
  }
272
259
 
273
260
  var relatedTarget = {
274
261
  relatedTarget: this._element
275
262
  };
276
- var hideEvent = $.Event(Event.HIDE, relatedTarget);
263
+ var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
277
264
 
278
265
  var parent = Dropdown._getParentFromElement(this._element);
279
266
 
@@ -287,8 +274,8 @@
287
274
  this._popper.destroy();
288
275
  }
289
276
 
290
- $(this._menu).toggleClass(ClassName.SHOW);
291
- $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
277
+ $(this._menu).toggleClass(CLASS_NAME_SHOW);
278
+ $(parent).toggleClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
292
279
  };
293
280
 
294
281
  _proto.dispose = function dispose() {
@@ -316,7 +303,7 @@
316
303
  _proto._addEventListeners = function _addEventListeners() {
317
304
  var _this = this;
318
305
 
319
- $(this._element).on(Event.CLICK, function (event) {
306
+ $(this._element).on(EVENT_CLICK, function (event) {
320
307
  event.preventDefault();
321
308
  event.stopPropagation();
322
309
 
@@ -325,7 +312,7 @@
325
312
  };
326
313
 
327
314
  _proto._getConfig = function _getConfig(config) {
328
- config = _objectSpread2({}, this.constructor.Default, {}, $(this._element).data(), {}, config);
315
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), $(this._element).data()), config);
329
316
  Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
330
317
  return config;
331
318
  };
@@ -335,7 +322,7 @@
335
322
  var parent = Dropdown._getParentFromElement(this._element);
336
323
 
337
324
  if (parent) {
338
- this._menu = parent.querySelector(Selector.MENU);
325
+ this._menu = parent.querySelector(SELECTOR_MENU);
339
326
  }
340
327
  }
341
328
 
@@ -344,20 +331,16 @@
344
331
 
345
332
  _proto._getPlacement = function _getPlacement() {
346
333
  var $parentDropdown = $(this._element.parentNode);
347
- var placement = AttachmentMap.BOTTOM; // Handle dropup
348
-
349
- if ($parentDropdown.hasClass(ClassName.DROPUP)) {
350
- placement = AttachmentMap.TOP;
351
-
352
- if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
353
- placement = AttachmentMap.TOPEND;
354
- }
355
- } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
356
- placement = AttachmentMap.RIGHT;
357
- } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
358
- placement = AttachmentMap.LEFT;
359
- } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
360
- placement = AttachmentMap.BOTTOMEND;
334
+ var placement = PLACEMENT_BOTTOM; // Handle dropup
335
+
336
+ if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {
337
+ placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
338
+ } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {
339
+ placement = PLACEMENT_RIGHT;
340
+ } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {
341
+ placement = PLACEMENT_LEFT;
342
+ } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {
343
+ placement = PLACEMENT_BOTTOMEND;
361
344
  }
362
345
 
363
346
  return placement;
@@ -374,7 +357,7 @@
374
357
 
375
358
  if (typeof this._config.offset === 'function') {
376
359
  offset.fn = function (data) {
377
- data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {});
360
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
378
361
  return data;
379
362
  };
380
363
  } else {
@@ -404,7 +387,7 @@
404
387
  };
405
388
  }
406
389
 
407
- return _objectSpread2({}, popperConfig, {}, this._config.popperConfig);
390
+ return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
408
391
  } // Static
409
392
  ;
410
393
 
@@ -434,7 +417,7 @@
434
417
  return;
435
418
  }
436
419
 
437
- var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
420
+ var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
438
421
 
439
422
  for (var i = 0, len = toggles.length; i < len; i++) {
440
423
  var parent = Dropdown._getParentFromElement(toggles[i]);
@@ -454,7 +437,7 @@
454
437
 
455
438
  var dropdownMenu = context._menu;
456
439
 
457
- if (!$(parent).hasClass(ClassName.SHOW)) {
440
+ if (!$(parent).hasClass(CLASS_NAME_SHOW)) {
458
441
  continue;
459
442
  }
460
443
 
@@ -462,7 +445,7 @@
462
445
  continue;
463
446
  }
464
447
 
465
- var hideEvent = $.Event(Event.HIDE, relatedTarget);
448
+ var hideEvent = $.Event(EVENT_HIDE, relatedTarget);
466
449
  $(parent).trigger(hideEvent);
467
450
 
468
451
  if (hideEvent.isDefaultPrevented()) {
@@ -481,8 +464,8 @@
481
464
  context._popper.destroy();
482
465
  }
483
466
 
484
- $(dropdownMenu).removeClass(ClassName.SHOW);
485
- $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
467
+ $(dropdownMenu).removeClass(CLASS_NAME_SHOW);
468
+ $(parent).removeClass(CLASS_NAME_SHOW).trigger($.Event(EVENT_HIDDEN, relatedTarget));
486
469
  }
487
470
  };
488
471
 
@@ -506,36 +489,35 @@
506
489
  // - If key is other than escape
507
490
  // - If key is not up or down => not a dropdown command
508
491
  // - If trigger inside the menu => not a dropdown command
509
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
492
+ if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
510
493
  return;
511
494
  }
512
495
 
513
- event.preventDefault();
514
- event.stopPropagation();
515
-
516
- if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
496
+ if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {
517
497
  return;
518
498
  }
519
499
 
520
500
  var parent = Dropdown._getParentFromElement(this);
521
501
 
522
- var isActive = $(parent).hasClass(ClassName.SHOW);
502
+ var isActive = $(parent).hasClass(CLASS_NAME_SHOW);
523
503
 
524
504
  if (!isActive && event.which === ESCAPE_KEYCODE) {
525
505
  return;
526
506
  }
527
507
 
508
+ event.preventDefault();
509
+ event.stopPropagation();
510
+
528
511
  if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
529
512
  if (event.which === ESCAPE_KEYCODE) {
530
- var toggle = parent.querySelector(Selector.DATA_TOGGLE);
531
- $(toggle).trigger('focus');
513
+ $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus');
532
514
  }
533
515
 
534
516
  $(this).trigger('click');
535
517
  return;
536
518
  }
537
519
 
538
- var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS)).filter(function (item) {
520
+ var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {
539
521
  return $(item).is(':visible');
540
522
  });
541
523
 
@@ -588,12 +570,12 @@
588
570
  */
589
571
 
590
572
 
591
- $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
573
+ $(document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
592
574
  event.preventDefault();
593
575
  event.stopPropagation();
594
576
 
595
577
  Dropdown._jQueryInterface.call($(this), 'toggle');
596
- }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
578
+ }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
597
579
  e.stopPropagation();
598
580
  });
599
581
  /**