bootstrap 4.4.1 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
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
  /**